From: Chris Lattner Date: Fri, 21 Nov 2003 17:35:51 +0000 (+0000) Subject: Fix some problems with assertions printing X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=15e8752e8f6f8eace5e178a46802cd37b7a92623;p=oota-llvm.git Fix some problems with assertions printing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10129 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp index b7173e4e905..b517dacb440 100644 --- a/lib/VMCore/Verifier.cpp +++ b/lib/VMCore/Verifier.cpp @@ -155,18 +155,30 @@ namespace { // Anonymous namespace for class void visitUserOp2(Instruction &I) { visitUserOp1(I); } void visitIntrinsicFunctionCall(Intrinsic::ID ID, CallInst &CI); + + void WriteValue(const Value *V) { + if (!V) return; + if (isa(V)) + std::cerr << *V; + else { + WriteAsOperand (std::cerr, V, true, true, Mod); + std::cerr << "\n"; + } + } + + // CheckFailed - A check failed, so print out the condition and the message // that failed. This provides a nice place to put a breakpoint if you want // to see why something is not correct. // - inline void CheckFailed(const std::string &Message, - const Value *V1 = 0, const Value *V2 = 0, - const Value *V3 = 0, const Value *V4 = 0) { + void CheckFailed(const std::string &Message, + const Value *V1 = 0, const Value *V2 = 0, + const Value *V3 = 0, const Value *V4 = 0) { std::cerr << Message << "\n"; - if (V1) { WriteAsOperand (std::cerr, V1, true, true, Mod); std::cerr << "\n"; } - if (V2) { WriteAsOperand (std::cerr, V2, true, true, Mod); std::cerr << "\n"; } - if (V3) { WriteAsOperand (std::cerr, V3, true, true, Mod); std::cerr << "\n"; } - if (V4) { WriteAsOperand (std::cerr, V4, true, true, Mod); std::cerr << "\n"; } + WriteValue(V1); + WriteValue(V2); + WriteValue(V3); + WriteValue(V4); Broken = true; } };