[llvm-commits] CVS: llvm/lib/VMCore/Verifier.cpp

Brian Gaeke gaeke at cs.uiuc.edu
Sun Nov 16 17:08:22 PST 2003


Changes in directory llvm/lib/VMCore:

Verifier.cpp updated: 1.68 -> 1.69

---
Log message:

When failing a Verifier assertion, use WriteAsOperand to print out the
offending types and/or values.


---
Diffs of the changes:  (+7 -5)

Index: llvm/lib/VMCore/Verifier.cpp
diff -u llvm/lib/VMCore/Verifier.cpp:1.68 llvm/lib/VMCore/Verifier.cpp:1.69
--- llvm/lib/VMCore/Verifier.cpp:1.68	Thu Nov 13 13:47:29 2003
+++ llvm/lib/VMCore/Verifier.cpp	Sun Nov 16 17:07:42 2003
@@ -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 @@
     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 @@
 
 
     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 @@
                             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;
     }
   };





More information about the llvm-commits mailing list