Add a verifier assertion

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18965 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2004-12-15 20:23:49 +00:00
parent fd4b3c4774
commit 56998b26ae

View File

@ -128,7 +128,7 @@ namespace { // Anonymous namespace for class
} }
for (Module::giterator I = M.gbegin(), E = M.gend(); I != E; ++I) for (Module::giterator I = M.gbegin(), E = M.gend(); I != E; ++I)
visitGlobalValue(*I); visitGlobalVariable(*I);
// If the module is broken, abort at this time. // If the module is broken, abort at this time.
abortIfBroken(); abortIfBroken();
@ -171,6 +171,7 @@ namespace { // Anonymous namespace for class
// Verification methods... // Verification methods...
void verifySymbolTable(SymbolTable &ST); void verifySymbolTable(SymbolTable &ST);
void visitGlobalValue(GlobalValue &GV); void visitGlobalValue(GlobalValue &GV);
void visitGlobalVariable(GlobalVariable &GV);
void visitFunction(Function &F); void visitFunction(Function &F);
void visitBasicBlock(BasicBlock &BB); void visitBasicBlock(BasicBlock &BB);
void visitPHINode(PHINode &PN); void visitPHINode(PHINode &PN);
@ -262,6 +263,16 @@ void Verifier::visitGlobalValue(GlobalValue &GV) {
} }
} }
void Verifier::visitGlobalVariable(GlobalVariable &GV) {
if (GV.hasInitializer())
Assert1(GV.getInitializer()->getType() == GV.getType()->getElementType(),
"Global variable initializer type does not match global "
"variable type!", &GV);
visitGlobalValue(GV);
}
// verifySymbolTable - Verify that a function or module symbol table is ok // verifySymbolTable - Verify that a function or module symbol table is ok
// //
void Verifier::verifySymbolTable(SymbolTable &ST) { void Verifier::verifySymbolTable(SymbolTable &ST) {