diff options
Diffstat (limited to 'llvm/test/DebugInfo/X86/dbg-value-inlined-parameter.ll')
| -rw-r--r-- | llvm/test/DebugInfo/X86/dbg-value-inlined-parameter.ll | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/llvm/test/DebugInfo/X86/dbg-value-inlined-parameter.ll b/llvm/test/DebugInfo/X86/dbg-value-inlined-parameter.ll index 74b2f8bc338..1922272cab9 100644 --- a/llvm/test/DebugInfo/X86/dbg-value-inlined-parameter.ll +++ b/llvm/test/DebugInfo/X86/dbg-value-inlined-parameter.ll @@ -5,12 +5,16 @@ ; RUN: llc -mtriple=x86_64-apple-darwin < %s -filetype=obj -regalloc=basic \ ; RUN: | llvm-dwarfdump -debug-dump=info - | FileCheck --check-prefix=CHECK --check-prefix=DARWIN %s -; FIXME: This is both a concrete and abstract definition, which is -; incorrect. They should be separate -; CHECK: [[ABS:.*]]: DW_TAG_subprogram -; CHECK-NOT: DW_TAG -; CHECK: DW_AT_high_pc -; CHECK-NOT: DW_TAG +; CHECK: DW_TAG_subprogram +; CHECK: DW_AT_abstract_origin {{.*}}{[[ABS:.*]]} +; FIXME: An out of line definition preceeding an inline usage doesn't properly +; reference abstract variables. +; CHECK: DW_TAG_formal_parameter +; CHECK-NEXT: DW_AT_name {{.*}} "sp" +; CHECK: DW_TAG_formal_parameter +; CHECK-NEXT: DW_AT_name {{.*}} "nums" + +; CHECK: [[ABS]]: DW_TAG_subprogram ; CHECK: DW_AT_name {{.*}} "foo" ; CHECK: [[ABS_SP:.*]]: DW_TAG_formal_parameter ; CHECK-NEXT: DW_AT_name {{.*}} "sp" @@ -26,10 +30,9 @@ ;CHECK: DW_TAG_formal_parameter ;FIXME: Linux shouldn't drop this parameter either... -;FIXME: These parameters should have DW_AT_abstract_origin, instead of names. -;DARWIN-NEXT: DW_AT_name {{.*}} "sp" +;DARWIN-NEXT: DW_AT_abstract_origin {{.*}}{[[ABS_SP]]} ;DARWIN: DW_TAG_formal_parameter -;CHECK-NEXT: DW_AT_name {{.*}} "nums" +;CHECK-NEXT: DW_AT_abstract_origin {{.*}}{[[ABS_NUMS]]} ;CHECK-NOT: DW_TAG_formal_parameter %struct.S1 = type { float*, i32 } |

