diff options
author | David Blaikie <dblaikie@gmail.com> | 2014-06-13 21:52:33 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2014-06-13 21:52:33 +0000 |
commit | c4268a67950514b1e5f2f602882dc7c22609c448 (patch) | |
tree | b739c5fe80e958a53ea59ef608f0bc8acdd16ef0 /test/DebugInfo | |
parent | 0c2029af038c012b618e7187d0eb92112f068543 (diff) | |
download | llvm-c4268a67950514b1e5f2f602882dc7c22609c448.tar.gz llvm-c4268a67950514b1e5f2f602882dc7c22609c448.tar.bz2 llvm-c4268a67950514b1e5f2f602882dc7c22609c448.tar.xz |
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
Diffstat (limited to 'test/DebugInfo')
-rw-r--r-- | test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll | 10 | ||||
-rw-r--r-- | test/DebugInfo/X86/DW_AT_object_pointer.ll | 3 | ||||
-rw-r--r-- | test/DebugInfo/X86/arguments.ll | 6 | ||||
-rw-r--r-- | test/DebugInfo/X86/block-capture.ll | 4 | ||||
-rw-r--r-- | test/DebugInfo/X86/byvalstruct.ll | 3 | ||||
-rw-r--r-- | test/DebugInfo/X86/dbg-value-inlined-parameter.ll | 18 | ||||
-rw-r--r-- | test/DebugInfo/X86/formal_parameter.ll | 3 | ||||
-rw-r--r-- | test/DebugInfo/X86/subregisters.ll | 2 | ||||
-rw-r--r-- | test/DebugInfo/inlined-arguments.ll | 6 |
9 files changed, 37 insertions, 18 deletions
diff --git a/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll b/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll index 1bbfbf4e6c..4dc747f566 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 5fa96994a8..4b9fae8e5a 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 3597b2ca1d..989e4fff48 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 31b4fa937d..b3877df301 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 731f8dbc67..d787ef39c3 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 bc86a4f26f..2d3cf6e680 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 3445f46fb4..2fdab7a07f 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 738ab02c0c..d46a95f2c9 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 ebc81a683f..6979862a53 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 { |