debug/111409 - don't generate COMDAT macro sections for split DWARF

Split DWARF files aren't processed by the linker, so DW_MACRO_import
offsets aren't relocated and the .debug_macro.dwo sections aren't
deduplicated and merged.  There's no clear way for this to work for
split DWARF, so disable it.

gcc/ChangeLog:

	PR debug/111409
	* dwarf2out.cc (output_macinfo): Don't call optimize_macinfo_range if
	dwarf_split_debug_info.

gcc/testsuite/ChangeLog:

	PR debug/111409
	* gcc.dg/pr111409.c: New test.
This commit is contained in:
Omar Sandoval 2023-09-13 23:41:22 -07:00 committed by Richard Biener
parent d64631ff88
commit 80048aa13a
2 changed files with 8 additions and 0 deletions

View file

@ -29247,6 +29247,7 @@ output_macinfo (const char *debug_line_label, bool early_lto_debug)
case DW_MACINFO_define:
case DW_MACINFO_undef:
if ((!dwarf_strict || dwarf_version >= 5)
&& !dwarf_split_debug_info
&& HAVE_COMDAT_GROUP
&& vec_safe_length (files) != 1
&& i > 0

View file

@ -0,0 +1,7 @@
/* { dg-do compile } */
/* { dg-skip-if "split DWARF unsupported" { *-*-darwin* } } */
/* { dg-options "-gsplit-dwarf -g3 -dA" } */
/* { dg-final { scan-assembler-times {.section\s+.debug_macro} 1 } } */
/* { dg-final { scan-assembler-not {.byte\s+0x7\s*#\s*Import} } } */
#define foo 1