From: Duncan P. N. Exon Smith Date: Tue, 24 Mar 2015 17:32:19 +0000 (+0000) Subject: Verifier: Start recursing into !dbg attachments X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=15a873a6e202d238d5019a314b81e689dec03495;p=oota-llvm.git 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233095 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/IR/Verifier.cpp b/lib/IR/Verifier.cpp index d5a5afa0c40..5f25891f2b1 100644 --- a/lib/IR/Verifier.cpp +++ b/lib/IR/Verifier.cpp @@ -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(N), - "invalid !dbg metadata attachment", &I, N); + Assert(isa(N), "invalid !dbg metadata attachment", &I, N); + visitMDNode(*N); } InstsInThisBlock.insert(&I); diff --git a/test/Verifier/dbg.ll b/test/Verifier/dbg.ll index 20b80ff2efe..3cff1e05157 100644 --- a/test/Verifier/dbg.ll +++ b/test/Verifier/dbg.ll @@ -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}