1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02: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:
Duncan P. N. Exon Smith 2015-03-24 17:32:19 +00:00
parent 5205e351d5
commit f3cc216d43
2 changed files with 10 additions and 6 deletions

View File

@ -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);

View File

@ -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}