aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2004-05-25 08:53:29 +0000
committerReid Spencer <rspencer@reidspencer.com>2004-05-25 08:53:29 +0000
commitaf90b0d8b8071b4ddc9e5932abde7a1845defdba (patch)
tree1acb9d6c820bc5482ee4fc2d8cde6acf29a956e2
parentb870c5f7c50a2e8e21329f10ab9105588adc773f (diff)
downloadexternal_llvm-af90b0d8b8071b4ddc9e5932abde7a1845defdba.zip
external_llvm-af90b0d8b8071b4ddc9e5932abde7a1845defdba.tar.gz
external_llvm-af90b0d8b8071b4ddc9e5932abde7a1845defdba.tar.bz2
Convert to SymbolTable's new iteration interface. Remove tabs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13753 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/VMCore/Verifier.cpp41
1 files changed, 27 insertions, 14 deletions
diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp
index 7d8f8ff..25a86e9 100644
--- a/lib/VMCore/Verifier.cpp
+++ b/lib/VMCore/Verifier.cpp
@@ -64,21 +64,21 @@ namespace { // Anonymous namespace for class
bool Broken; // Is this module found to be broken?
bool RealPass; // Are we not being run by a PassManager?
VerifierFailureAction action;
- // What to do if verification fails.
+ // What to do if verification fails.
Module *Mod; // Module we are verifying right now
DominatorSet *DS; // Dominator set, caution can be null!
std::stringstream msgs; // A stringstream to collect messages
Verifier()
- : Broken(false), RealPass(true), action(AbortProcessAction),
+ : Broken(false), RealPass(true), action(AbortProcessAction),
DS(0), msgs( std::ios_base::app | std::ios_base::out ) {}
Verifier( VerifierFailureAction ctn )
- : Broken(false), RealPass(true), action(ctn), DS(0),
+ : Broken(false), RealPass(true), action(ctn), DS(0),
msgs( std::ios_base::app | std::ios_base::out ) {}
Verifier(bool AB )
- : Broken(false), RealPass(true),
+ : Broken(false), RealPass(true),
action( AB ? AbortProcessAction : PrintMessageAction), DS(0),
- msgs( std::ios_base::app | std::ios_base::out ) {}
+ msgs( std::ios_base::app | std::ios_base::out ) {}
Verifier(DominatorSet &ds)
: Broken(false), RealPass(false), action(PrintMessageAction),
DS(&ds), msgs( std::ios_base::app | std::ios_base::out ) {}
@@ -184,14 +184,17 @@ namespace { // Anonymous namespace for class
if (!V) return;
if (isa<Instruction>(V)) {
msgs << *V;
- } else if (const Type *Ty = dyn_cast<Type>(V)) {
- WriteTypeSymbolic(msgs, Ty, Mod);
} else {
WriteAsOperand (msgs, V, true, true, Mod);
msgs << "\n";
}
}
+ void WriteType(const Type* T ) {
+ if ( !T ) return;
+ WriteTypeSymbolic(msgs, T, Mod );
+ }
+
// 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
@@ -206,6 +209,14 @@ namespace { // Anonymous namespace for class
WriteValue(V4);
Broken = true;
}
+
+ void CheckFailed( const std::string& Message, const Value* V1,
+ const Type* T2, const Value* V3 = 0 ) {
+ msgs << Message << "\n";
+ WriteValue(V1);
+ WriteType(T2);
+ WriteValue(V3);
+ }
};
RegisterOpt<Verifier> X("verify", "Module Verifier");
@@ -241,21 +252,21 @@ void Verifier::visitGlobalValue(GlobalValue &GV) {
// verifySymbolTable - Verify that a function or module symbol table is ok
//
void Verifier::verifySymbolTable(SymbolTable &ST) {
- // Loop over all of the types in the symbol table...
- for (SymbolTable::iterator TI = ST.begin(), TE = ST.end(); TI != TE; ++TI)
- for (SymbolTable::type_iterator I = TI->second.begin(),
- E = TI->second.end(); I != E; ++I) {
- Value *V = I->second;
+ // Loop over all of the values in all type planes in the symbol table.
+ for (SymbolTable::plane_const_iterator PI = ST.plane_begin(),
+ PE = ST.plane_end(); PI != PE; ++PI)
+ for (SymbolTable::value_const_iterator VI = PI->second.begin(),
+ VE = PI->second.end(); VI != VE; ++VI) {
+ Value *V = VI->second;
// Check that there are no void typed values in the symbol table. Values
// with a void type cannot be put into symbol tables because they cannot
// have names!
Assert1(V->getType() != Type::VoidTy,
- "Values with void type are not allowed to have names!", V);
+ "Values with void type are not allowed to have names!", V);
}
}
-
// visitFunction - Verify that a function is ok.
//
void Verifier::visitFunction(Function &F) {
@@ -749,3 +760,5 @@ bool llvm::verifyModule(const Module &M, VerifierFailureAction action) {
PM.run((Module&)M);
return V->Broken;
}
+
+// vim: sw=2