[llvm-commits] [llvm] r55460 - /llvm/trunk/lib/VMCore/Verifier.cpp
Chris Lattner
sabre at nondot.org
Wed Aug 27 21:02:44 PDT 2008
Author: lattner
Date: Wed Aug 27 23:02:44 2008
New Revision: 55460
URL: http://llvm.org/viewvc/llvm-project?rev=55460&view=rev
Log:
Make the verifier reject instructions which have null pointers
for operands: rdar://6179606. no testcase, because I can't write
a .ll file that is this broken ;-)
Modified:
llvm/trunk/lib/VMCore/Verifier.cpp
Modified: llvm/trunk/lib/VMCore/Verifier.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Verifier.cpp?rev=55460&r1=55459&r2=55460&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/Verifier.cpp (original)
+++ llvm/trunk/lib/VMCore/Verifier.cpp Wed Aug 27 23:02:44 2008
@@ -224,6 +224,10 @@
void visitGlobalAlias(GlobalAlias &GA);
void visitFunction(Function &F);
void visitBasicBlock(BasicBlock &BB);
+ using InstVisitor<Verifier>::visit;
+
+ void visit(Instruction &I);
+
void visitTruncInst(TruncInst &I);
void visitZExtInst(ZExtInst &I);
void visitSExtInst(SExtInst &I);
@@ -326,6 +330,13 @@
do { if (!(C)) { CheckFailed(M, V1, V2, V3, V4); return; } } while (0)
+void Verifier::visit(Instruction &I) {
+ for (unsigned i = 0, e = I.getNumOperands(); i != e; ++i)
+ Assert1(I.getOperand(i) != 0, "Operand is null", &I);
+ InstVisitor<Verifier>::visit(I);
+}
+
+
void Verifier::visitGlobalValue(GlobalValue &GV) {
Assert1(!GV.isDeclaration() ||
GV.hasExternalLinkage() ||
More information about the llvm-commits
mailing list