From: Jakub Jelinek Date: Wed, 28 Jun 2000 19:16:22 +0000 (+0200) Subject: cpplex.c (output_line_command): Output correct #line if a header is including itself... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=54bef41ddce48d42d2303839b4701d9315b2613c;p=gcc.git cpplex.c (output_line_command): Output correct #line if a header is including itself and is not protected... * cpplex.c (output_line_command): Output correct #line if a header is including itself and is not protected against multiple inclusion. From-SVN: r34761 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dbe08c92841..d4a336fd89b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-06-28 Jakub Jelinek + + * cpplex.c (output_line_command): Output correct #line if a header + is including itself and is not protected against multiple inclusion. + 2000-06-28 Zack Weinberg * cppfiles.c (open_include_file): If open(2) returns EMFILE or diff --git a/gcc/cpplex.c b/gcc/cpplex.c index b7f6da5181b..6249fd7635c 100644 --- a/gcc/cpplex.c +++ b/gcc/cpplex.c @@ -289,25 +289,26 @@ output_line_command (pfile, print, line) if (CPP_OPTION (pfile, no_line_commands)) return; - /* Determine whether the current filename has changed, and if so, - how. 'nominal_fname' values are unique, so they can be compared - by comparing pointers. */ - if (ip->nominal_fname == print->last_fname) - change = same; - else + if (pfile->buffer_stack_depth == print->last_bsd) { - if (pfile->buffer_stack_depth == print->last_bsd) + /* Determine whether the current filename has changed, and if so, + how. 'nominal_fname' values are unique, so they can be compared + by comparing pointers. */ + if (ip->nominal_fname == print->last_fname) + change = same; + else change = rname; + } + else + { + if (pfile->buffer_stack_depth > print->last_bsd) + change = enter; else - { - if (pfile->buffer_stack_depth > print->last_bsd) - change = enter; - else - change = leave; - print->last_bsd = pfile->buffer_stack_depth; - } - print->last_fname = ip->nominal_fname; + change = leave; + print->last_bsd = pfile->buffer_stack_depth; } + print->last_fname = ip->nominal_fname; + /* If the current file has not changed, we can output a few newlines instead if we want to increase the line number by a small amount. We cannot do this if print->lineno is zero, because that means we