diff options
author | Brian Gaeke <gaeke@uiuc.edu> | 2003-11-16 23:07:42 +0000 |
---|---|---|
committer | Brian Gaeke <gaeke@uiuc.edu> | 2003-11-16 23:07:42 +0000 |
commit | 9cebe2d83be10f0189a789324ce16209f5ec602c (patch) | |
tree | ff4759e4df6f03f07f63b43c8b3de58d6fdafe74 | |
parent | 1ab90d4e38eec71fb71cb2681d5d17bef6441301 (diff) |
When failing a Verifier assertion, use WriteAsOperand to print out the
offending types and/or values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10041 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/VMCore/Verifier.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp index cbc8e06f25..e03cb17d75 100644 --- a/lib/VMCore/Verifier.cpp +++ b/lib/VMCore/Verifier.cpp @@ -40,6 +40,7 @@ //===----------------------------------------------------------------------===// #include "llvm/Analysis/Verifier.h" +#include "llvm/Assembly/Writer.h" #include "llvm/Pass.h" #include "llvm/Module.h" #include "llvm/DerivedTypes.h" @@ -65,7 +66,7 @@ namespace { // Anonymous namespace for class bool Broken; // Is this module found to be broken? bool RealPass; // Are we not being run by a PassManager? bool AbortBroken; // If broken, should it or should it not abort? - + Module *Mod; // Module we are verifying right now DominatorSet *DS; // Dominator set, caution can be null! Verifier() : Broken(false), RealPass(true), AbortBroken(true), DS(0) {} @@ -75,6 +76,7 @@ namespace { // Anonymous namespace for class bool doInitialization(Module &M) { + Mod = &M; verifySymbolTable(M.getSymbolTable()); // If this is a real pass, in a pass manager, we must abort before @@ -161,10 +163,10 @@ namespace { // Anonymous namespace for class const Value *V1 = 0, const Value *V2 = 0, const Value *V3 = 0, const Value *V4 = 0) { std::cerr << Message << "\n"; - if (V1) std::cerr << *V1 << "\n"; - if (V2) std::cerr << *V2 << "\n"; - if (V3) std::cerr << *V3 << "\n"; - if (V4) std::cerr << *V4 << "\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"; } Broken = true; } }; |