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
This commit is contained in:
Jakub Jelinek 2000-06-28 21:16:22 +02:00 committed by Jakub Jelinek
parent d4506961cd
commit 54bef41ddc
2 changed files with 21 additions and 15 deletions

View File

@ -1,3 +1,8 @@
2000-06-28 Jakub Jelinek <jakub@redhat.com>
* 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 <zack@wolery.cumb.org>
* cppfiles.c (open_include_file): If open(2) returns EMFILE or

View File

@ -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;
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 = rname;
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