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