Commit d5c90983 by Jakub Jelinek Committed by Jakub Jelinek

dwarf2out.c (have_macinfo): Define.

	* 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
	.debug_macinfo/.debug_macro section if macinfo_table is empty.

From-SVN: r187473
parent 6052c299
2012-05-14 Jakub Jelinek <jakub@redhat.com>
* 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
.debug_macinfo/.debug_macro section if macinfo_table is empty.
2012-05-14 Georg-Johann Lay <avr@gjlay.de> 2012-05-14 Georg-Johann Lay <avr@gjlay.de>
PR target/53344 PR target/53344
......
...@@ -2799,6 +2799,12 @@ static GTY (()) VEC (pubname_entry, gc) * pubtype_table; ...@@ -2799,6 +2799,12 @@ static GTY (()) VEC (pubname_entry, gc) * pubtype_table;
defines/undefines (and file start/end markers). */ defines/undefines (and file start/end markers). */
static GTY (()) VEC (macinfo_entry, gc) * macinfo_table; static GTY (()) VEC (macinfo_entry, gc) * macinfo_table;
/* True if .debug_macinfo or .debug_macros section is going to be
emitted. */
#define have_macinfo \
(debug_info_level >= DINFO_LEVEL_VERBOSE \
&& !VEC_empty (macinfo_entry, macinfo_table))
/* Array of dies for which we should generate .debug_ranges info. */ /* Array of dies for which we should generate .debug_ranges info. */
static GTY ((length ("ranges_table_allocated"))) dw_ranges_ref ranges_table; static GTY ((length ("ranges_table_allocated"))) dw_ranges_ref ranges_table;
...@@ -22140,7 +22146,7 @@ dwarf2out_finish (const char *filename) ...@@ -22140,7 +22146,7 @@ dwarf2out_finish (const char *filename)
add_AT_lineptr (comp_unit_die (), DW_AT_stmt_list, add_AT_lineptr (comp_unit_die (), DW_AT_stmt_list,
debug_line_section_label); debug_line_section_label);
if (debug_info_level >= DINFO_LEVEL_VERBOSE) if (have_macinfo)
add_AT_macptr (comp_unit_die (), add_AT_macptr (comp_unit_die (),
dwarf_strict ? DW_AT_macro_info : DW_AT_GNU_macros, dwarf_strict ? DW_AT_macro_info : DW_AT_GNU_macros,
macinfo_section_label); macinfo_section_label);
...@@ -22175,8 +22181,8 @@ dwarf2out_finish (const char *filename) ...@@ -22175,8 +22181,8 @@ dwarf2out_finish (const char *filename)
htab_delete (comdat_type_table); htab_delete (comdat_type_table);
/* Output the main compilation unit if non-empty or if .debug_macinfo /* Output the main compilation unit if non-empty or if .debug_macinfo
will be emitted. */ or .debug_macro will be emitted. */
output_comp_unit (comp_unit_die (), debug_info_level >= DINFO_LEVEL_VERBOSE); output_comp_unit (comp_unit_die (), have_macinfo);
/* Output the abbreviation table. */ /* Output the abbreviation table. */
if (abbrev_die_table_in_use != 1) if (abbrev_die_table_in_use != 1)
...@@ -22256,12 +22262,11 @@ dwarf2out_finish (const char *filename) ...@@ -22256,12 +22262,11 @@ dwarf2out_finish (const char *filename)
} }
/* Have to end the macro section. */ /* Have to end the macro section. */
if (debug_info_level >= DINFO_LEVEL_VERBOSE) if (have_macinfo)
{ {
switch_to_section (debug_macinfo_section); switch_to_section (debug_macinfo_section);
ASM_OUTPUT_LABEL (asm_out_file, macinfo_section_label); ASM_OUTPUT_LABEL (asm_out_file, macinfo_section_label);
if (!VEC_empty (macinfo_entry, macinfo_table)) output_macinfo ();
output_macinfo ();
dw2_asm_output_data (1, 0, "End compilation unit"); dw2_asm_output_data (1, 0, "End compilation unit");
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment