From: Zack Weinberg Date: Thu, 29 Oct 1998 11:55:06 +0000 (+0000) Subject: lex.c: Call check_newline from lang_init always. X-Git-Tag: prereleases/libgcj-0.1~2247 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7140b0dba6389942f7dd33e4629fe85a5df7db52;p=thirdparty%2Fgcc.git lex.c: Call check_newline from lang_init always. 1998-10-28 Zack Weinberg * cp/lex.c: Call check_newline from lang_init always. After calling cpp_start_read, set yy_cur and yy_lim to read from the cpplib token buffer. From-SVN: r23425 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 64fa42284356..fd5706bef643 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -8,6 +8,12 @@ * Makefile.in (cc1plus): Put CXX_OBJS, and thence @extra_cxx_objs@, last. +1998-10-28 Zack Weinberg + + * cp/lex.c: Call check_newline from lang_init always. After + calling cpp_start_read, set yy_cur and yy_lim to read from the + cpplib token buffer. + 1998-10-28 Jason Merrill * class.c (instantiate_type): Don't consider templates for a normal diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c index 30c70489abc5..5901c8a89fee 100644 --- a/gcc/cp/lex.c +++ b/gcc/cp/lex.c @@ -395,11 +395,14 @@ lang_init_options () void lang_init () { -#if ! USE_CPPLIB /* the beginning of the file is a new line; check for # */ /* With luck, we discover the real source file's name from that and put it in input_filename. */ +#if ! USE_CPPLIB put_back (check_newline ()); +#else + check_newline (); + yy_cur--; #endif if (flag_gnu_xref) GNU_xref_begin (input_filename); init_repo (input_filename); @@ -475,12 +478,15 @@ init_parse (filename) #endif #if USE_CPPLIB - yy_cur = "\n"; - yy_lim = yy_cur + 1; - parse_in.show_column = 1; if (! cpp_start_read (&parse_in, filename)) abort (); + + /* cpp_start_read always puts at least one line directive into the + token buffer. We must arrange to read it out here. */ + yy_cur = parse_in.token_buffer; + yy_lim = CPP_PWRITTEN (&parse_in); + #else /* Open input file. */ if (filename == 0 || !strcmp (filename, "-"))