aboutsummaryrefslogtreecommitdiff
path: root/gcc/cpplex.c
diff options
context:
space:
mode:
authorZack Weinberg <zack@wolery.cumb.org>2000-08-09 19:41:12 +0000
committerZack Weinberg <zack@gcc.gnu.org>2000-08-09 19:41:12 +0000
commit9ec7291f1ffab5af0ffcbc0037046d3cf7730217 (patch)
treed5bb51bad6a6b24f2b2de095f7c7474492e78f9a /gcc/cpplex.c
parent9cc82a019817f8eaf807831dd34afc8701d37ee0 (diff)
downloadgcc-9ec7291f1ffab5af0ffcbc0037046d3cf7730217.zip
gcc-9ec7291f1ffab5af0ffcbc0037046d3cf7730217.tar.gz
gcc-9ec7291f1ffab5af0ffcbc0037046d3cf7730217.tar.bz2
configure.in (--enable-c-cpplib): Uncomment.
* configure.in (--enable-c-cpplib): Uncomment. Use AC_DEFINE instead of extra_c_flags. (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags. * configure: Regenerate. * config.in: Regenerate. * cpperror.c (cpp_type2name): New function. * cpplex.c (lex_line): If we issued an error for an invalid preprocessing directive, discard that logical line. * cpplib.c (do_line): Call a hook function if the current file is renamed by #line. (do_ident): Pass the contents of the string, not the entire token, to the callback function. * cpplib.h (CPP_LAST_PUNCTUATOR): New #define. (cb.rename_file): New hook function. (cb.ident): Adjust prototype. (cpp_type2name): Prototype. * cppmacro.c (dump_macro_args): Correct precedence lossage. * cppmain.c (cb_ident): Update for changed interface. (cb_rename_file): New function. (main): Set rename callback. From-SVN: r35593
Diffstat (limited to 'gcc/cpplex.c')
-rw-r--r--gcc/cpplex.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/cpplex.c b/gcc/cpplex.c
index 5307edc..c2052bc 100644
--- a/gcc/cpplex.c
+++ b/gcc/cpplex.c
@@ -1294,7 +1294,8 @@ lex_line (pfile, list)
if (!(list->flags & LIST_OFFSET))
(abort) ();
-
+
+ retry:
list->file = buffer->nominal_fname;
list->line = CPP_BUF_LINE (buffer);
pfile->col_adjust = 0;
@@ -1823,6 +1824,10 @@ lex_line (pfile, list)
first[1].val.node->name);
else
cpp_error (pfile, "invalid preprocessing directive");
+
+ /* Discard this line to prevent further errors from cc1. */
+ _cpp_clear_toklist (list);
+ goto retry;
}
/* Put EOF at end of known directives. This covers "directives do