From: David Blaikie Date: Fri, 13 Jun 2014 21:52:33 +0000 (+0000) Subject: DebugInfo: Refactor some tests to allow DW_AT_name to not be the first attribute... X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=c4268a67950514b1e5f2f602882dc7c22609c448;p=oota-llvm.git DebugInfo: Refactor some tests to allow DW_AT_name to not be the first attribute in a local variable. In an effort to fix concrete variables referencing abstract origins where the concrete variable preceeds the first inlined usage, the addition of attributes such as name, file, etc will be delayed until the end of the module (to wait to see if any inlined instances have occurred, thus necessitating an abstract definition that the concrete definition should also reference). These test cases don't actually need to care about this ordering of attributes, so update them to be more resilient to such changes coming in the near future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210940 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll b/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll index 1bbfbf4e6c1..4dc747f566d 100644 --- a/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll +++ b/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll @@ -37,13 +37,19 @@ declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone !20 = metadata !{metadata !"test.c", metadata !"/work/llvm/vanilla/test/DebugInfo"} ; CHECK: DW_TAG_variable -; CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x{{[0-9a-f]*}}] = "GLB") +; CHECK-NOT: DW_TAG +; CHECK: DW_AT_name [DW_FORM_strp] ( .debug_str[0x{{[0-9a-f]*}}] = "GLB") +; CHECK-NOT: DW_TAG ; CHECK: DW_AT_decl_file [DW_FORM_data1] (0x01) +; CHECK-NOT: DW_TAG ; CHECK: DW_AT_decl_line [DW_FORM_data1] (0x01) ; CHECK: DW_TAG_variable -; CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x{{[0-9a-f]*}}] = "LOC") +; CHECK-NOT: DW_TAG +; CHECK: DW_AT_name [DW_FORM_strp] ( .debug_str[0x{{[0-9a-f]*}}] = "LOC") +; CHECK-NOT: DW_TAG ; CHECK: DW_AT_decl_file [DW_FORM_data1] (0x01) +; CHECK-NOT: DW_TAG ; CHECK: DW_AT_decl_line [DW_FORM_data1] (0x04) !21 = metadata !{i32 1, metadata !"Debug Info Version", i32 1} diff --git a/test/DebugInfo/X86/DW_AT_object_pointer.ll b/test/DebugInfo/X86/DW_AT_object_pointer.ll index 5fa96994a8b..4b9fae8e5af 100644 --- a/test/DebugInfo/X86/DW_AT_object_pointer.ll +++ b/test/DebugInfo/X86/DW_AT_object_pointer.ll @@ -7,7 +7,8 @@ ; CHECK: DW_TAG_class_type ; CHECK: DW_AT_object_pointer [DW_FORM_ref4] (cu + 0x{{[0-9a-f]*}} => {[[PARAM:0x[0-9a-f]*]]}) ; CHECK: [[PARAM]]: DW_TAG_formal_parameter -; CHECK-NEXT: DW_AT_name [DW_FORM_strp] ( .debug_str[0x{{[0-9a-f]*}}] = "this") +; CHECK-NOT: DW_TAG +; CHECK: DW_AT_name [DW_FORM_strp] ( .debug_str[0x{{[0-9a-f]*}}] = "this") %class.A = type { i32 } diff --git a/test/DebugInfo/X86/arguments.ll b/test/DebugInfo/X86/arguments.ll index 3597b2ca1dc..989e4fff484 100644 --- a/test/DebugInfo/X86/arguments.ll +++ b/test/DebugInfo/X86/arguments.ll @@ -19,10 +19,12 @@ ; CHECK: DW_AT_MIPS_linkage_name{{.*}}"_Z4func3fooS_" ; CHECK-NOT: NULL ; CHECK: DW_TAG_formal_parameter -; CHECK-NEXT: DW_AT_name{{.*}}"f" +; CHECK-NOT: DW_TAG +; CHECK: DW_AT_name{{.*}}"f" ; CHECK-NOT: NULL ; CHECK: DW_TAG_formal_parameter -; CHECK-NEXT: DW_AT_name{{.*}}"g" +; CHECK-NOT: DW_TAG +; CHECK: DW_AT_name{{.*}}"g" %struct.foo = type { i32 } diff --git a/test/DebugInfo/X86/block-capture.ll b/test/DebugInfo/X86/block-capture.ll index 31b4fa937d8..b3877df3017 100644 --- a/test/DebugInfo/X86/block-capture.ll +++ b/test/DebugInfo/X86/block-capture.ll @@ -6,13 +6,13 @@ ; Checks that we emit debug info for the block variable declare. ; CHECK: DW_TAG_subprogram ; CHECK: DW_TAG_variable -; CHECK: DW_AT_name {{.*}} "block" ; CHECK: DW_AT_location [DW_FORM_sec_offset] +; CHECK: DW_AT_name {{.*}} "block" ; DWARF3: DW_TAG_subprogram ; DWARF3: DW_TAG_variable -; DWARF3: DW_AT_name {{.*}} "block" ; DWARF3: DW_AT_location [DW_FORM_data4] +; DWARF3: DW_AT_name {{.*}} "block" %struct.__block_descriptor = type { i64, i64 } %struct.__block_literal_generic = type { i8*, i32, i32, i8*, %struct.__block_descriptor* } diff --git a/test/DebugInfo/X86/byvalstruct.ll b/test/DebugInfo/X86/byvalstruct.ll index 731f8dbc672..d787ef39c36 100644 --- a/test/DebugInfo/X86/byvalstruct.ll +++ b/test/DebugInfo/X86/byvalstruct.ll @@ -6,7 +6,8 @@ ; CHECK: DW_TAG_formal_parameter ; CHECK: DW_TAG_formal_parameter ; CHECK: DW_TAG_formal_parameter -; CHECK-NEXT: DW_AT_name {{.*}} "info" +; CHECK-NOT: DW_TAG +; CHECK: DW_AT_name {{.*}} "info" ; ; generated from ; diff --git a/test/DebugInfo/X86/dbg-value-inlined-parameter.ll b/test/DebugInfo/X86/dbg-value-inlined-parameter.ll index bc86a4f26f5..2d3cf6e6807 100644 --- a/test/DebugInfo/X86/dbg-value-inlined-parameter.ll +++ b/test/DebugInfo/X86/dbg-value-inlined-parameter.ll @@ -10,16 +10,21 @@ ; FIXME: An out of line definition preceding an inline usage doesn't properly ; reference abstract variables. ; CHECK: DW_TAG_formal_parameter -; CHECK-NEXT: DW_AT_name {{.*}} "sp" +; CHECK-NOT: DW_TAG +; CHECK: DW_AT_name {{.*}} "sp" ; CHECK: DW_TAG_formal_parameter -; CHECK-NEXT: DW_AT_name {{.*}} "nums" +; CHECK-NOT: DW_TAG +; CHECK: DW_AT_name {{.*}} "nums" ; CHECK: [[ABS]]: DW_TAG_subprogram +; CHECK-NOT: DW_TAG ; CHECK: DW_AT_name {{.*}} "foo" ; CHECK: [[ABS_SP:.*]]: DW_TAG_formal_parameter -; CHECK-NEXT: DW_AT_name {{.*}} "sp" +; CHECK-NOT: DW_TAG +; CHECK: DW_AT_name {{.*}} "sp" ; CHECK: [[ABS_NUMS:.*]]: DW_TAG_formal_parameter -; CHECK-NEXT: DW_AT_name {{.*}} "nums" +; CHECK-NOT: DW_TAG +; CHECK: DW_AT_name {{.*}} "nums" ;CHECK: DW_TAG_inlined_subroutine ;CHECK-NEXT: DW_AT_abstract_origin {{.*}}{[[ABS]]} @@ -30,9 +35,10 @@ ;CHECK: DW_TAG_formal_parameter ;FIXME: Linux shouldn't drop this parameter either... -;DARWIN-NEXT: DW_AT_abstract_origin {{.*}}{[[ABS_SP]]} +;CHECK-NOT: DW_TAG +;DARWIN: DW_AT_abstract_origin {{.*}}{[[ABS_SP]]} ;DARWIN: DW_TAG_formal_parameter -;CHECK-NEXT: DW_AT_abstract_origin {{.*}}{[[ABS_NUMS]]} +;CHECK: DW_AT_abstract_origin {{.*}}{[[ABS_NUMS]]} ;CHECK-NOT: DW_TAG_formal_parameter %struct.S1 = type { float*, i32 } diff --git a/test/DebugInfo/X86/formal_parameter.ll b/test/DebugInfo/X86/formal_parameter.ll index 3445f46fb4d..2fdab7a07f5 100644 --- a/test/DebugInfo/X86/formal_parameter.ll +++ b/test/DebugInfo/X86/formal_parameter.ll @@ -19,7 +19,8 @@ target triple = "x86_64-apple-macosx10.9.0" ; rdar://problem/14874886 ; ; CHECK: DW_TAG_formal_parameter -; CHECK-NEXT: DW_AT_name {{.*}}map +; CHECK-NOT: DW_TAG +; CHECK: DW_AT_name {{.*}}map ; CHECK-NOT: DW_AT_name {{.*}}map ; Function Attrs: nounwind ssp uwtable diff --git a/test/DebugInfo/X86/subregisters.ll b/test/DebugInfo/X86/subregisters.ll index 738ab02c0ca..d46a95f2c99 100644 --- a/test/DebugInfo/X86/subregisters.ll +++ b/test/DebugInfo/X86/subregisters.ll @@ -6,8 +6,8 @@ ; ; rdar://problem/16015314 ; +; CHECK: DW_AT_location [DW_FORM_block1] (<0x03> 54 93 04 ) ; CHECK: DW_AT_name [DW_FORM_strp]{{.*}} "a" -; CHECK: DW_AT_location [DW_FORM_block1] (<0x03> 54 93 04 ) ; ; struct bar { ; int a; diff --git a/test/DebugInfo/inlined-arguments.ll b/test/DebugInfo/inlined-arguments.ll index ebc81a683f7..6979862a536 100644 --- a/test/DebugInfo/inlined-arguments.ll +++ b/test/DebugInfo/inlined-arguments.ll @@ -16,9 +16,11 @@ ; CHECK: DW_AT_name{{.*}}"f1" ; CHECK: DW_TAG_formal_parameter -; CHECK-NEXT: DW_AT_name{{.*}}"x" +; CHECK-NOT: DW_TAG +; CHECK: DW_AT_name{{.*}}"x" ; CHECK: DW_TAG_formal_parameter -; CHECK-NEXT: DW_AT_name{{.*}}"y" +; CHECK-NOT: DW_TAG +; CHECK: DW_AT_name{{.*}}"y" ; Function Attrs: uwtable define void @_Z2f2v() #0 {