OSDN Git Service

* c-lex.c (fe_file_change): Handle a NULL new_map.
authorbothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 2 Oct 2003 07:03:42 +0000 (07:03 +0000)
committerbothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 2 Oct 2003 07:03:42 +0000 (07:03 +0000)
* fix-header.c (cb_file_change):  Likewise.
* c-ppoutput.c (pp_file_change):  Likewise.

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

gcc/ChangeLog
gcc/c-lex.c
gcc/c-ppoutput.c
gcc/fix-header.c

index 3bad417..2cd52af 100644 (file)
@@ -5,6 +5,10 @@
        (get_non_padding_token):  We no longer need to compensate for the
        "horrible things" the C++ front-end does with the current line number,
 
+       * c-lex.c (fe_file_change):  Handle a NULL new_map.
+       * fix-header.c (cb_file_change):  Likewise.
+       * c-ppoutput.c (pp_file_change):  Likewise.
+
 2003-10-01  Zack Weinberg  <zack@codesourcery.com>
 
        * target.h (init_libfuncs): New hook.
index f3cdd3c..5546fc9 100644 (file)
@@ -212,6 +212,12 @@ cb_dir_change (cpp_reader *pfile ATTRIBUTE_UNUSED, const char *dir)
 void
 fe_file_change (const struct line_map *new_map)
 {
+  if (new_map == NULL)
+    {
+      map = NULL;
+      return;
+    }
+
   if (new_map->reason == LC_ENTER)
     {
       /* Don't stack the main buffer on the input stack;
index 669d11e..22e595f 100644 (file)
@@ -346,24 +346,27 @@ pp_file_change (const struct line_map *map)
   if (flag_no_line_commands || flag_no_output)
     return;
 
-  /* First time?  */
-  if (print.map == NULL)
+  if (map != NULL)
     {
-      /* Avoid printing foo.i when the main file is foo.c.  */
-      if (!cpp_get_options (parse_in)->preprocessed)
-       print_line (map, map->from_line, flags);
-    }
-  else
-    {
-      /* Bring current file to correct line when entering a new file.  */
-      if (map->reason == LC_ENTER)
-       maybe_print_line (map - 1, map->from_line - 1);
-
-      if (map->reason == LC_ENTER)
-       flags = " 1";
-      else if (map->reason == LC_LEAVE)
-       flags = " 2";
-      print_line (map, map->from_line, flags);
+      /* First time?  */
+      if (print.map == NULL)
+       {
+         /* Avoid printing foo.i when the main file is foo.c.  */
+         if (!cpp_get_options (parse_in)->preprocessed)
+           print_line (map, map->from_line, flags);
+       }
+      else
+       {
+         /* Bring current file to correct line when entering a new file.  */
+         if (map->reason == LC_ENTER)
+           maybe_print_line (map - 1, map->from_line - 1);
+
+         if (map->reason == LC_ENTER)
+           flags = " 1";
+         else if (map->reason == LC_LEAVE)
+           flags = " 2";
+         print_line (map, map->from_line, flags);
+       }
     }
 
   print.map = map;
index 0f5f8c0..8ae3025 100644 (file)
@@ -578,7 +578,7 @@ cb_file_change (cpp_reader *pfile ATTRIBUTE_UNUSED,
                const struct line_map *map)
 {
   /* Just keep track of current file name.  */
-  cur_file = map->to_file;
+  cur_file = map == NULL ? NULL : map->to_file;
 }
 
 static void