https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115066
Tom de Vries <vries at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|REOPENED |RESOLVED
--- Comment #11 from Tom de Vries <vries at gcc dot gnu.org> ---
(In reply to Rainer Orth from comment #10)
> The new test currently FAILs on Solaris/SPARC with the native as:
>
> FAIL: gcc.dg/pr115066.c scan-assembler \\\\.byte\\\\t0xb\\\\t# Define macro
> strx
>
> The relevant snippet of pr115066.s is
>
> .section ".debug_macro.dwo",#exclude,#progbits
> .LLdebug_macro0:
> .uahalf 0x4 ! DWARF macro version number
> .byte 0x2 ! Flags: 32-bit, lineptr present
> .uaword .LLskeleton_debug_line0
> .byte 0x1 ! Define macro
>
> while when using gas, I have
>
> .section .debug_macro.dwo,"e",@progbits
> .LLdebug_macro0:
> .uahalf 0x4 ! DWARF macro version number
> .byte 0x2 ! Flags: 32-bit, lineptr present
> .uaword .LLskeleton_debug_line0
> .byte 0xb ! Define macro strx
>
> AFAICS from dwarf2out.cc (output_macinfo_op), the requirements for using
> DW_MACRO_define_strx are (among others)
> !DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET && SECTION_MERGE.
>
> However, with the native assembler, SHF_MERGE doesn't work (as emits
> something
> ld cannot link).
>
> I wonder how best to handle this: just skip the test on sparc*-sun-solaris2*
> && !gas? Theoretically, there could be other targets with similar issues.
This looks like test-case issue, so re-closing the PR.
How about:
...
-/* { dg-final { scan-assembler {\.byte\t0xb\t[^\n\r]* Define macro strx} } }
*/
+/* { dg-final { scan-assembler {\.byte\t0xb\t[^\n\r]* Define macro
strx|\.byte\t0x1\t[^\n\r]* Define macro}
...
?