mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
Verifier: Start recursing into !dbg attachments
The main verifier already recurses through the other entry points, so we might as well descend here too. This temporarily duplicates some work already done in `verifyDebugInfo()`, but eventually I'll be removing the other side. llvm-svn: 233095
This commit is contained in:
parent
5205e351d5
commit
f3cc216d43
@ -2567,11 +2567,9 @@ void Verifier::visitInstruction(Instruction &I) {
|
||||
&I);
|
||||
}
|
||||
|
||||
// Don't recurse into !dbg attachments (leave that for verifyDebugInfo()),
|
||||
// but at least check that it's a legal type.
|
||||
if (MDNode *N = I.getDebugLoc().getAsMDNode()) {
|
||||
Assert(isa<MDLocation>(N),
|
||||
"invalid !dbg metadata attachment", &I, N);
|
||||
Assert(isa<MDLocation>(N), "invalid !dbg metadata attachment", &I, N);
|
||||
visitMDNode(*N);
|
||||
}
|
||||
|
||||
InstsInThisBlock.insert(&I);
|
||||
|
@ -1,12 +1,18 @@
|
||||
; RUN: not llvm-as -disable-output <%s 2>&1 | FileCheck %s
|
||||
|
||||
define void @foo() {
|
||||
ret void, !dbg !{}
|
||||
}
|
||||
entry:
|
||||
br label %exit, !dbg !MDLocation(scope: !MDSubprogram(), inlinedAt: !{})
|
||||
; CHECK: inlined-at should be a location
|
||||
; CHECK-NEXT: !{{[0-9]+}} = !MDLocation(line: 0, scope: !{{[0-9]+}}, inlinedAt: ![[IA:[0-9]+]])
|
||||
; CHECK-NEXT: ![[IA]] = !{}
|
||||
|
||||
exit:
|
||||
ret void, !dbg !{}
|
||||
; CHECK: invalid !dbg metadata attachment
|
||||
; CHECK-NEXT: ret void, !dbg ![[LOC:[0-9]+]]
|
||||
; CHECK-NEXT: ![[LOC]] = !{}
|
||||
}
|
||||
|
||||
!llvm.module.flags = !{!0}
|
||||
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
||||
|
Loading…
x
Reference in New Issue
Block a user