OSDN Git Service

* cpplex.c (output_line_command): Output correct #line if a header
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Jun 2000 19:16:22 +0000 (19:16 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Jun 2000 19:16:22 +0000 (19:16 +0000)
is including itself and is not protected against multiple inclusion.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34761 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cpplex.c

index dbe08c9..d4a336f 100644 (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
index b7f6da5..6249fd7 100644 (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;
-  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