PR42288 emit empty .debug_aranges section.
authorMark Wielaard <mjw@redhat.com>
Tue, 3 May 2011 19:36:08 +0000 (19:36 +0000)
committerMark Wielaard <mark@gcc.gnu.org>
Tue, 3 May 2011 19:36:08 +0000 (19:36 +0000)
* dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
  when info_section_emitted.

From-SVN: r173340

gcc/ChangeLog
gcc/dwarf2out.c

index 37c251a584cf73504028e6ce934f346bc6ce3874..78b593f695cd6ce923eb20766caadb20f9008c09 100644 (file)
@@ -1,3 +1,9 @@
+2011-04-26  Mark Wielaard  <mjw@redhat.com>
+
+       PR42288
+       * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
+       when info_section_emitted.
+
 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
 
        * config/mips/mips-opts.h: New.
index 83653d2984e9bd72c0601c4be26b07474dc9e435..f3620a41fea2d76a13efab3ed9b51ac990b2ca73 100644 (file)
@@ -24587,21 +24587,17 @@ dwarf2out_finish (const char *filename)
        }
     }
 
-  /* Output the address range information.  We only put functions in the
-     arange table, so don't write it out if we don't have any.  */
+  /* Output the address range information if a CU (.debug_info section)
+     was emitted.  We output an empty table even if we had no functions
+     to put in it.  This because the consumer has no way to tell the
+     difference between an empty table that we omitted and failure to
+     generate a table that would have contained data.  */
   if (info_section_emitted)
     {
       unsigned long aranges_length = size_of_aranges ();
 
-      /* Empty .debug_aranges would contain just header and
-        terminating 0,0.  */
-      if (aranges_length
-         != (unsigned long) (DWARF_ARANGES_HEADER_SIZE
-                             + 2 * DWARF2_ADDR_SIZE))
-       {
-         switch_to_section (debug_aranges_section);
-         output_aranges (aranges_length);
-       }
+      switch_to_section (debug_aranges_section);
+      output_aranges (aranges_length);
     }
 
   /* Output ranges section if necessary.  */