bugpoint: Verify input files
[oota-llvm.git] / tools / bugpoint / BugDriver.cpp
index d76e7d030ec7b95586acaaa29941429c7f0150f3..865cb513c55f507815de4562cb86706b38a08847 100644 (file)
@@ -16,6 +16,7 @@
 #include "BugDriver.h"
 #include "ToolRunner.h"
 #include "llvm/IR/Module.h"
+#include "llvm/IR/Verifier.h"
 #include "llvm/IRReader/IRReader.h"
 #include "llvm/Linker/Linker.h"
 #include "llvm/Pass.h"
@@ -91,6 +92,11 @@ std::unique_ptr<Module> llvm::parseInputFile(StringRef Filename,
     return Result;
   }
 
+  if (verifyModule(*Result, &errs())) {
+    errs() << "bugpoint: " << Filename << ": error: does not verify\n";
+    return std::unique_ptr<Module>();
+  }
+
   // If we don't have an override triple, use the first one to configure
   // bugpoint, or use the host triple if none provided.
   if (TargetTriple.getTriple().empty()) {