re PR debug/49364 ([4.7 regressions] Empty .debug_abbrev sections confuse SGI nm)
authorJakub Jelinek <jakub@redhat.com>
Thu, 30 Jun 2011 10:26:32 +0000 (12:26 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 30 Jun 2011 10:26:32 +0000 (12:26 +0200)
PR debug/49364
* dwarf2out.c (output_abbrev_section): Don't return early
if abbrev_die_table_in_use is 1.
(dwarf2out_finish): Instead don't call output_abbrev_section
nor emit abbrev_section_label in that case.

From-SVN: r175694

gcc/ChangeLog
gcc/dwarf2out.c

index 3ed1193..fceef96 100644 (file)
@@ -1,3 +1,11 @@
+2011-06-30  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/49364
+       * dwarf2out.c (output_abbrev_section): Don't return early
+       if abbrev_die_table_in_use is 1.
+       (dwarf2out_finish): Instead don't call output_abbrev_section
+       nor emit abbrev_section_label in that case.
+
 2011-06-30  Nick Clifton  <nickc@redhat.com>
 
        * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
index 8ff5c1e..0b5a68a 100644 (file)
@@ -11358,9 +11358,6 @@ output_abbrev_section (void)
 {
   unsigned long abbrev_id;
 
-  if (abbrev_die_table_in_use == 1)
-    return;
-
   for (abbrev_id = 1; abbrev_id < abbrev_die_table_in_use; ++abbrev_id)
     {
       dw_die_ref abbrev = abbrev_die_table[abbrev_id];
@@ -25226,9 +25223,12 @@ dwarf2out_finish (const char *filename)
   output_comp_unit (comp_unit_die (), debug_info_level >= DINFO_LEVEL_VERBOSE);
 
   /* Output the abbreviation table.  */
-  switch_to_section (debug_abbrev_section);
-  ASM_OUTPUT_LABEL (asm_out_file, abbrev_section_label);
-  output_abbrev_section ();
+  if (abbrev_die_table_in_use != 1)
+    {
+      switch_to_section (debug_abbrev_section);
+      ASM_OUTPUT_LABEL (asm_out_file, abbrev_section_label);
+      output_abbrev_section ();
+    }
 
   /* Output location list section if necessary.  */
   if (have_location_lists)