diff options
author | Neil Booth <neil@daikokuya.demon.co.uk> | 2001-08-04 16:28:14 +0000 |
---|---|---|
committer | Neil Booth <neil@gcc.gnu.org> | 2001-08-04 16:28:14 +0000 |
commit | 8bbbef343486eea56bb5c9ebf241c0872e4083b3 (patch) | |
tree | d9a94dd57cbcb162a1616b5fe4623e5c76a95412 /gcc/cpplib.c | |
parent | 95146dd651f1e96713c9eaeaa14bc61362b3f2f4 (diff) | |
download | gcc-8bbbef343486eea56bb5c9ebf241c0872e4083b3.zip gcc-8bbbef343486eea56bb5c9ebf241c0872e4083b3.tar.gz gcc-8bbbef343486eea56bb5c9ebf241c0872e4083b3.tar.bz2 |
cpphash.h (struct cpp_reader): New member directive_line.
* cpphash.h (struct cpp_reader): New member directive_line.
* cpplib.h (struct cpp_callbacks): Update prototypes of callbacks.
* cpplib.c (do_define, do_undef, do_ident, do_include_common,
do_pragma): Pass line to callbacks.
(start_directive): Record line of directive.
* cppmain.c (cb_ident, cb_define, cb_undef, cb_def_pragma,
cb_include): Similarly.
* c-lex.c (cb_ident, cb_define, cb_undef, cb_def_pragma):
Similarly.
From-SVN: r44637
Diffstat (limited to 'gcc/cpplib.c')
-rw-r--r-- | gcc/cpplib.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/cpplib.c b/gcc/cpplib.c index 76e5355..d46fb93 100644 --- a/gcc/cpplib.c +++ b/gcc/cpplib.c @@ -225,6 +225,7 @@ start_directive (pfile) /* Some handlers need the position of the # for diagnostics. */ pfile->directive_pos = pfile->lexer_pos; + pfile->directive_line = pfile->line; /* Don't save directive tokens for external clients. */ pfile->la_saved = pfile->la_write; @@ -476,7 +477,7 @@ do_define (pfile) { if (_cpp_create_definition (pfile, node)) if (pfile->cb.define) - (*pfile->cb.define) (pfile, node); + (*pfile->cb.define) (pfile, pfile->directive_line, node); } } @@ -492,7 +493,7 @@ do_undef (pfile) if (node && node->type == NT_MACRO) { if (pfile->cb.undef) - (*pfile->cb.undef) (pfile, node); + (*pfile->cb.undef) (pfile, pfile->directive_line, node); if (node->flags & NODE_WARN) cpp_warning (pfile, "undefining \"%s\"", NODE_NAME (node)); @@ -625,7 +626,8 @@ do_include_common (pfile, type) /* Get out of macro context, if we are. */ end_directive (pfile, 1); if (pfile->cb.include) - (*pfile->cb.include) (pfile, pfile->directive->name, &header); + (*pfile->cb.include) (pfile, pfile->directive_line, + pfile->directive->name, &header); _cpp_execute_include (pfile, &header, type); } @@ -888,7 +890,7 @@ do_ident (pfile) if (str.type != CPP_STRING) cpp_error (pfile, "invalid #ident"); else if (pfile->cb.ident) - (*pfile->cb.ident) (pfile, &str.val.str); + (*pfile->cb.ident) (pfile, pfile->directive_line, &str.val.str); check_eol (pfile); } @@ -1042,7 +1044,7 @@ do_pragma (pfile) if (handler) (*handler) (pfile); else if (pfile->cb.def_pragma) - (*pfile->cb.def_pragma) (pfile); + (*pfile->cb.def_pragma) (pfile, pfile->directive_line); } static void |