Hi Richard, > On Thu, 3 Jan 2019, Rainer Orth wrote: > >> gcc.dg/debug/dwarf2/inline5.c currently FAILs with Solaris as (both >> sparc and x86): >> >> FAIL: gcc.dg/debug/dwarf2/inline5.c scan-assembler-not \\\\(DIE >> \\\\(0x([0-9a-f]*)\\\\) DW_TAG_lexical_block\\\\)[^#/!]*[#/!] >> [^(].*DW_TAG_lexical_block\\\\)[^#/!x]*x\\\\1[^#/!]*[#/!] >> DW_AT_abstract_origin >> FAIL: gcc.dg/debug/dwarf2/inline5.c scan-assembler-times >> DW_TAG_lexical_block\\\\)[^#/!]*[#/!] \\\\(DIE \\\\(0x[0-9a-f]*\\\\) >> DW_TAG_variable 1 >> >> The first failure seems to be caused because .* performs multiline >> matches by default in Tcl; tightening it to [^\n]* avoids the problem. > > Hmm, but the matches are supposed to match multiple lines... how > does it fail for you?
it matches all of (DIE (0x19f) DW_TAG_lexical_block) .byte 0xd / uleb128 0xd; (DIE (0x1a0) DW_TAG_variable) .ascii "j" / DW_AT_name .byte 0x1 / DW_AT_decl_file (/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/debug/dwarf2/inline5.c) .byte 0x12 / DW_AT_decl_line .byte 0x14 / DW_AT_decl_column .long 0x17f / DW_AT_type .byte 0 / end of children of DIE 0x19f .byte 0 / end of children of DIE 0x184 .byte 0xe / uleb128 0xe; (DIE (0x1ac) DW_TAG_subprogram) .long 0x184 / DW_AT_abstract_origin .long .LFB0 / DW_AT_low_pc .long .LFE0-.LFB0 / DW_AT_high_pc .byte 0x1 / uleb128 0x1; DW_AT_frame_base .byte 0x9c / DW_OP_call_frame_cfa / DW_AT_GNU_all_call_sites .byte 0xf / uleb128 0xf; (DIE (0x1bb) DW_TAG_formal_parameter) .long 0x195 / DW_AT_abstract_origin .byte 0x2 / uleb128 0x2; DW_AT_location .byte 0x91 / DW_OP_fbreg .byte 0 / sleb128 0 .byte 0x6 / uleb128 0x6; (DIE (0x1c3) DW_TAG_lexical_block) .long 0x19f / DW_AT_abstract_origin while with gas there's instead .uleb128 0xc / (DIE (0xad) DW_TAG_lexical_block) .uleb128 0xd / (DIE (0xae) DW_TAG_variable) .ascii "j\0" / DW_AT_name .byte 0x1 / DW_AT_decl_file (/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/debug/dwarf2/inline5.c) i.e. the pattern doesn't match with gas due to the [^(] while with as we have uleb128 first which does match, producing the failure (which shows that that part of my patch is wrong). Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University