OSDN Git Service

* dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 14 May 2012 17:08:12 +0000 (17:08 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 14 May 2012 17:08:12 +0000 (17:08 +0000)
lineno 1 the same as lineno 0 before first start file directive.
(optimize_macinfo_range): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@187476 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/dwarf2out.c

index 9a840f9..7e36c78 100644 (file)
@@ -1,5 +1,9 @@
 2012-05-14  Jakub Jelinek  <jakub@redhat.com>
 
+       * dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
+       lineno 1 the same as lineno 0 before first start file directive.
+       (optimize_macinfo_range): Likewise.
+
        * dwarf2out.c (have_macinfo): Define.
        (dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info
        attribute, don't force empty compilation unit and don't emit any
index 5ca76f9..8e80f93 100644 (file)
@@ -20661,7 +20661,7 @@ dwarf2out_define (unsigned int lineno ATTRIBUTE_UNUSED,
       macinfo_entry e;
       /* Insert a dummy first entry to be able to optimize the whole
         predefined macro block using DW_MACRO_GNU_transparent_include.  */
-      if (VEC_empty (macinfo_entry, macinfo_table) && lineno == 0)
+      if (VEC_empty (macinfo_entry, macinfo_table) && lineno <= 1)
        {
          e.code = 0;
          e.lineno = 0;
@@ -20688,7 +20688,7 @@ dwarf2out_undef (unsigned int lineno ATTRIBUTE_UNUSED,
       macinfo_entry e;
       /* Insert a dummy first entry to be able to optimize the whole
         predefined macro block using DW_MACRO_GNU_transparent_include.  */
-      if (VEC_empty (macinfo_entry, macinfo_table) && lineno == 0)
+      if (VEC_empty (macinfo_entry, macinfo_table) && lineno <= 1)
        {
          e.code = 0;
          e.lineno = 0;
@@ -20827,13 +20827,13 @@ optimize_macinfo_range (unsigned int idx, VEC (macinfo_entry, gc) *files,
 
   /* Optimize only if there are at least two consecutive define/undef ops,
      and either all of them are before first DW_MACINFO_start_file
-     with lineno 0 (i.e. predefined macro block), or all of them are
+     with lineno {0,1} (i.e. predefined macro block), or all of them are
      in some included header file.  */
   if (second->code != DW_MACINFO_define && second->code != DW_MACINFO_undef)
     return 0;
   if (VEC_empty (macinfo_entry, files))
     {
-      if (first->lineno != 0 || second->lineno != 0)
+      if (first->lineno > 1 || second->lineno > 1)
        return 0;
     }
   else if (first->lineno == 0)
@@ -20846,7 +20846,7 @@ optimize_macinfo_range (unsigned int idx, VEC (macinfo_entry, gc) *files,
   for (i = idx; VEC_iterate (macinfo_entry, macinfo_table, i, cur); i++)
     if (cur->code != DW_MACINFO_define && cur->code != DW_MACINFO_undef)
       break;
-    else if (first->lineno == 0 && cur->lineno != 0)
+    else if (VEC_empty (macinfo_entry, files) && cur->lineno > 1)
       break;
     else
       {
@@ -20860,7 +20860,7 @@ optimize_macinfo_range (unsigned int idx, VEC (macinfo_entry, gc) *files,
 
   /* From the containing include filename (if any) pick up just
      usable characters from its basename.  */
-  if (first->lineno == 0)
+  if (VEC_empty (macinfo_entry, files))
     base = "";
   else
     base = lbasename (VEC_last (macinfo_entry, files)->info);