X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=lib%2FIR%2FVerifier.cpp;h=bcf8c0ffa1eea9e4eb13c38550aaa6d1fd0bfa11;hp=c8aba14e8132e139f4dc4282d99dcb0cf3ba4b98;hb=819d0a503e30a7ad9332ef9127d742c02777b06e;hpb=155b4af95d985e6f0b6c22cf9d318b0bff2324a4 diff --git a/lib/IR/Verifier.cpp b/lib/IR/Verifier.cpp index c8aba14e813..bcf8c0ffa1e 100644 --- a/lib/IR/Verifier.cpp +++ b/lib/IR/Verifier.cpp @@ -1779,8 +1779,20 @@ void Verifier::visitFunction(const Function &F) { } // Visit metadata attachments. - for (const auto &I : MDs) + for (const auto &I : MDs) { + // Verify that the attachment is legal. + switch (I.first) { + default: + break; + case LLVMContext::MD_dbg: + Assert(isa(I.second), + "function !dbg attachment must be a subprogram", &F, I.second); + break; + } + + // Verify the metadata itself. visitMDNode(*I.second); + } } // If this function is actually an intrinsic, verify that it is only used in