From f60f32b35695eb05d36b83a78f26b833ccb04edf Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 30 Jun 2011 12:26:32 +0200 Subject: [PATCH] re PR debug/49364 ([4.7 regressions] Empty .debug_abbrev sections confuse SGI nm) 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 | 8 ++++++++ gcc/dwarf2out.c | 12 ++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3ed1193..fceef96 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2011-06-30 Jakub Jelinek + + 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 * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 8ff5c1e..0b5a68a 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -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) -- 2.7.4