mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-30 00:51:02 +00:00
[DebugInfo] Re-engineer a test to be stricter, add XFails
In the LLVM-IR for this test, the inlined argument "b" in the "a" function is optimized out on certain architectures, not on others. This hasn't been reported as a test failure since93faeecd8f
andff2073a51
because we would create a variable that looks like this: DW_TAG_formal_parameter DW_AT_abstract_origin With no further information (and no location). With D95617 however, we stop emitting such variables. Prior to landing D95617: make this test stricter by checking that the variable mentioned above has a location. We have to accept that on certain architectures this goes missing, so add those to the XFail list. I've run a few experiments, and right now it looks likely only powerpc64 still drops the variable location.
This commit is contained in:
parent
b46aac125d
commit
e05c10380c
@ -1,5 +1,10 @@
|
||||
; RUN: %llc_dwarf -O0 -filetype=obj < %s | llvm-dwarfdump -v -debug-info - | FileCheck %s
|
||||
|
||||
; The formal parameter 'b' for Function 'x' when inlined within 'a' is lost on
|
||||
; powerpc64 (and on x86_64 at at least -O2). Presumably this is a SelectionDAG
|
||||
; issue.
|
||||
; XFAIL: powerpc64
|
||||
|
||||
; Build from the following source with clang -O2.
|
||||
|
||||
; The important details are that 'x's abstract definition is first built during
|
||||
@ -78,6 +83,7 @@
|
||||
; fastisel succeeds).
|
||||
; CHECK: DW_TAG_formal_parameter
|
||||
; CHECK-NOT: DW_TAG
|
||||
; CHECK: DW_AT_location
|
||||
; CHECK: DW_AT_abstract_origin {{.*}} "b"
|
||||
|
||||
; CHECK-NOT: {{DW_TAG|NULL}}
|
||||
|
Loading…
Reference in New Issue
Block a user