about summary refs log tree commit diff homepage
path: root/lib/Solver/Solver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Solver/Solver.cpp')
-rw-r--r--lib/Solver/Solver.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/Solver/Solver.cpp b/lib/Solver/Solver.cpp
index 936f252d..98dcad0b 100644
--- a/lib/Solver/Solver.cpp
+++ b/lib/Solver/Solver.cpp
@@ -375,6 +375,41 @@ Solver *klee::createValidatingSolver(Solver *s, Solver *oracle) {
 
 /***/
 
+class DummySolverImpl : public SolverImpl {
+public: 
+  DummySolverImpl() {}
+  
+  bool computeValidity(const Query&, Solver::Validity &result) { 
+    ++stats::queries;
+    // FIXME: We should have stats::queriesFail;
+    return false; 
+  }
+  bool computeTruth(const Query&, bool &isValid) { 
+    ++stats::queries;
+    // FIXME: We should have stats::queriesFail;
+    return false; 
+  }
+  bool computeValue(const Query&, ref<Expr> &result) { 
+    ++stats::queries;
+    ++stats::queryCounterexamples;
+    return false; 
+  }
+  bool computeInitialValues(const Query&,
+                            const std::vector<const Array*> &objects,
+                            std::vector< std::vector<unsigned char> > &values,
+                            bool &hasSolution) { 
+    ++stats::queries;
+    ++stats::queryCounterexamples;
+    return false; 
+  }
+};
+
+Solver *klee::createDummySolver() {
+  return new Solver(new DummySolverImpl());
+}
+
+/***/
+
 class STPSolverImpl : public SolverImpl {
 private:
   /// The solver we are part of, for access to public information.