aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Booth <neil@daikokuya.demon.co.uk>2000-12-18 10:16:26 +0000
committerNeil Booth <neil@gcc.gnu.org>2000-12-18 10:16:26 +0000
commit851ef03661397f78874d792ed893edf3b7ab4e54 (patch)
treedb463bd414e6865727f94ef194e4996997ab798e
parent33ba48b6193690abc1e9ea10f2637240332613bf (diff)
downloadgcc-851ef03661397f78874d792ed893edf3b7ab4e54.zip
gcc-851ef03661397f78874d792ed893edf3b7ab4e54.tar.gz
gcc-851ef03661397f78874d792ed893edf3b7ab4e54.tar.bz2
c-lex.c (lex_lineno): Remove.
* c-lex.c (lex_lineno): Remove. (init_c_lex, c_lex): Remove lex_lineno. (cb_change_file): Update lineno correctly, both before calling push_srcloc and before leaving the function. (cb_def_pragma): Set lineno before outputting diagnostics. From-SVN: r38342
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/c-lex.c16
2 files changed, 14 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 260b5be..98711ba 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2000-12-18 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * c-lex.c (lex_lineno): Remove.
+ (init_c_lex, c_lex): Remove lex_lineno.
+ (cb_change_file): Update lineno correctly, both before calling
+ push_srcloc and before leaving the function.
+ (cb_def_pragma): Set lineno before outputting diagnostics.
+
Sun Dec 17 18:45:41 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* print-tree.c (print_node): Print DECL_USER_ALIGN and TYPE_USER_ALIGN.
diff --git a/gcc/c-lex.c b/gcc/c-lex.c
index 13e0ef2..072aee7 100644
--- a/gcc/c-lex.c
+++ b/gcc/c-lex.c
@@ -56,9 +56,6 @@ Boston, MA 02111-1307, USA. */
/* The original file name, before changing "-" to "stdin". */
static const char *orig_filename;
-/* Private idea of the line number. See discussion in c_lex(). */
-static int lex_lineno;
-
/* We may keep statistics about how long which files took to compile. */
static int header_time, body_time;
static splay_tree file_info_tree;
@@ -129,9 +126,8 @@ init_c_lex (filename)
if (filename == 0 || !strcmp (filename, "-"))
filename = "stdin";
- /* Start it at 0, because check_newline is called at the very beginning
- and will increment it to 1. */
- lineno = lex_lineno = 0;
+ /* Start it at 0. */
+ lineno = 0;
return filename;
}
@@ -240,7 +236,7 @@ cb_change_file (pfile, fc)
/* Don't stack the main buffer on the input stack. */
if (fc->from.filename)
{
- lineno = lex_lineno;
+ lineno = fc->from.lineno;
push_srcloc (fc->to.filename, 1);
input_file_stack->indent_level = indent_level;
debug_start_source_file (fc->to.filename);
@@ -290,7 +286,7 @@ cb_change_file (pfile, fc)
update_header_times (fc->to.filename);
in_system_header = fc->sysp;
input_filename = fc->to.filename;
- lex_lineno = fc->to.lineno;
+ lineno = fc->to.lineno; /* Do we need this? */
/* Hook for C++. */
extract_interface_info ();
@@ -314,6 +310,7 @@ cb_def_pragma (pfile)
if (s.type == CPP_NAME)
name = cpp_token_as_text (pfile, &s);
+ lineno = cpp_get_line (parse_in)->line;
if (name)
warning ("ignoring #pragma %s %s", space, name);
else
@@ -950,10 +947,9 @@ c_lex (value)
/* The C++ front end does horrible things with the current line
number. To ensure an accurate line number, we must reset it
every time we return a token. */
- lex_lineno = cpp_get_line (parse_in)->line;
+ lineno = cpp_get_line (parse_in)->line;
*value = NULL_TREE;
- lineno = lex_lineno;
type = tok.type;
switch (type)
{