From 6ac00218e10463af6597fb22e942601fd3751fad Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 3 May 2011 19:36:08 +0000 Subject: [PATCH] PR42288 emit empty .debug_aranges section. * dwarf2out.c (dwarf2out_finish): Always call output_aranges () when info_section_emitted. From-SVN: r173340 --- gcc/ChangeLog | 6 ++++++ gcc/dwarf2out.c | 18 +++++++----------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 37c251a584c..78b593f695c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-04-26 Mark Wielaard + + PR42288 + * dwarf2out.c (dwarf2out_finish): Always call output_aranges () + when info_section_emitted. + 2011-05-03 Joseph Myers * config/mips/mips-opts.h: New. diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 83653d2984e..f3620a41fea 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -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. */ -- 2.30.2