aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/VMCore/Verifier.cpp20
1 files changed, 8 insertions, 12 deletions
diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp
index 1e3c3c779a..768bf4dc81 100644
--- a/lib/VMCore/Verifier.cpp
+++ b/lib/VMCore/Verifier.cpp
@@ -44,6 +44,7 @@
#include "llvm/Constants.h"
#include "llvm/Pass.h"
#include "llvm/Module.h"
+#include "llvm/ModuleProvider.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Instructions.h"
#include "llvm/Intrinsics.h"
@@ -619,19 +620,14 @@ FunctionPass *llvm::createVerifierPass() {
// verifyFunction - Create
bool llvm::verifyFunction(const Function &f) {
- Function &F = (Function&)f;
+ Function &F = const_cast<Function&>(f);
assert(!F.isExternal() && "Cannot verify external functions");
-
- DominatorSet DS;
- DS.doInitialization(*F.getParent());
- DS.runOnFunction(F);
-
- Verifier V(DS);
- V.runOnFunction(F);
-
- DS.doFinalization(*F.getParent());
-
- return V.Broken;
+
+ FunctionPassManager FPM(new ExistingModuleProvider(F.getParent()));
+ Verifier *V = new Verifier();
+ FPM.add(V);
+ FPM.run(F);
+ return V->Broken;
}
/// verifyModule - Check a module for errors, printing messages on stderr.