Jason Merrill <ja...@redhat.com> writes: > +// { dg-final { scan-assembler "a1.*(0x\[0-9a-f\]+)\[ \t\]*# > DW_AT_type.*\\1. > DW_TAG_unspecified_type.*DW_AT_specification\[\n\r\]{1,2}\[^\n\r\]*(0x\[0-9a-f\]+)\[ > \t\]*# DW_AT_type.*\\2. DW_TAG_base_type" } }
This regexp is completely broken. Here's what I get on m68k: .uleb128 0x3 | (DIE (0x2b) DW_TAG_subprogram) | DW_AT_external .ascii "a1\0" | DW_AT_name .byte 0x1 | DW_AT_decl_file (/daten/aranym/gcc/gcc-20140129/gcc/testsuite/g++.dg/debug/dwarf2/auto1.C) .byte 0x17 | DW_AT_decl_line .long .LASF2 | DW_AT_linkage_name: "_ZN1A2a1Ev" .long 0x44 | DW_AT_type | DW_AT_declaration .long 0x3d | DW_AT_object_pointer .uleb128 0x4 | (DIE (0x3d) DW_TAG_formal_parameter) .long 0x49 | DW_AT_type | DW_AT_artificial .byte 0 | end of children of DIE 0x2b .byte 0 | end of children of DIE 0x21 .uleb128 0x5 | (DIE (0x44) DW_TAG_unspecified_type) .long .LASF3 | DW_AT_name: "auto" .uleb128 0x6 | (DIE (0x49) DW_TAG_pointer_type) .byte 0x4 | DW_AT_byte_size .long 0x21 | DW_AT_type .uleb128 0x7 | (DIE (0x4f) DW_TAG_subprogram) .long 0x2b | DW_AT_specification .long 0x77 | DW_AT_type .long .LFB0 | DW_AT_low_pc .long .LFE0-.LFB0 | DW_AT_high_pc .uleb128 0x1 | DW_AT_frame_base .byte 0x9c | DW_OP_call_frame_cfa .long 0x6a | DW_AT_object_pointer | DW_AT_GNU_all_call_sites .long 0x77 | DW_AT_sibling .uleb128 0x8 | (DIE (0x6a) DW_TAG_formal_parameter) .long .LASF4 | DW_AT_name: "this" .long 0x7e | DW_AT_type | DW_AT_artificial .uleb128 0x2 | DW_AT_location .byte 0x91 | DW_OP_fbreg .sleb128 0 .byte 0 | end of children of DIE 0x4f .uleb128 0x9 | (DIE (0x77) DW_TAG_base_type) .byte 0x4 | DW_AT_byte_size .byte 0x5 | DW_AT_encoding .ascii "int\0" | DW_AT_name And this is what I get on ia64: .uleb128 0x3 // (DIE (0x2f) DW_TAG_subprogram) // DW_AT_external .ascii "a1\0" // DW_AT_name data1 0x1 // DW_AT_decl_file (/usr/local/gcc/gcc-20140129/gcc/testsuite/g++.dg/debug/dwarf2/auto1.C) data1 0x17 // DW_AT_decl_line data4.ua @secrel(.LASF2) // DW_AT_linkage_name: "_ZN1A2a1Ev" data4.ua 0x48 // DW_AT_type // DW_AT_declaration data4.ua 0x41 // DW_AT_object_pointer .uleb128 0x4 // (DIE (0x41) DW_TAG_formal_parameter) data4.ua 0x4d // DW_AT_type // DW_AT_artificial data1 0 // end of children of DIE 0x2f data1 0 // end of children of DIE 0x25 .uleb128 0x5 // (DIE (0x48) DW_TAG_unspecified_type) data4.ua @secrel(.LASF3) // DW_AT_name: "auto" .uleb128 0x6 // (DIE (0x4d) DW_TAG_pointer_type) data1 0x8 // DW_AT_byte_size data4.ua 0x25 // DW_AT_type .uleb128 0x7 // (DIE (0x53) DW_TAG_subprogram) data4.ua 0x2f // DW_AT_specification data4.ua 0x85 // DW_AT_type data8.ua .LFB0 // DW_AT_low_pc data8.ua .LFE0-.LFB0 // DW_AT_high_pc data4.ua @secrel(.LLST0) // DW_AT_frame_base data4.ua 0x78 // DW_AT_object_pointer // DW_AT_GNU_all_call_sites data4.ua 0x85 // DW_AT_sibling .uleb128 0x8 // (DIE (0x78) DW_TAG_formal_parameter) data4.ua @secrel(.LASF4) // DW_AT_name: "this" data4.ua 0x8c // DW_AT_type // DW_AT_artificial .uleb128 0x2 // DW_AT_location data1 0x91 // DW_OP_fbreg .sleb128 0 data1 0 // end of children of DIE 0x53 .uleb128 0x9 // (DIE (0x85) DW_TAG_base_type) data1 0x4 // DW_AT_byte_size data1 0x5 // DW_AT_encoding .ascii "int\0" // DW_AT_name Andreas. -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."