diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/klee/CommandLine.h | 9 | ||||
-rw-r--r-- | include/klee/Solver.h | 15 |
2 files changed, 24 insertions, 0 deletions
diff --git a/include/klee/CommandLine.h b/include/klee/CommandLine.h index 38b22c6f..c755114b 100644 --- a/include/klee/CommandLine.h +++ b/include/klee/CommandLine.h @@ -43,6 +43,15 @@ enum QueryLoggingSolverType */ extern llvm::cl::list<QueryLoggingSolverType> queryLoggingOptions; +enum MetaSMTBackendType +{ + METASMT_BACKEND_NONE, + METASMT_BACKEND_STP, + METASMT_BACKEND_Z3, + METASMT_BACKEND_BOOLECTOR +}; + +extern llvm::cl::opt<klee::MetaSMTBackendType> UseMetaSMT; //A bit of ugliness so we can use cl::list<> like cl::bits<>, see queryLoggingOptions template <typename T> diff --git a/include/klee/Solver.h b/include/klee/Solver.h index 8fe33c7c..00e4c962 100644 --- a/include/klee/Solver.h +++ b/include/klee/Solver.h @@ -219,6 +219,21 @@ namespace klee { virtual void setCoreSolverTimeout(double timeout); }; + +#ifdef SUPPORT_METASMT + + template<typename SolverContext> + class MetaSMTSolver : public Solver { + public: + MetaSMTSolver(bool useForked, bool optimizeDivides); + virtual ~MetaSMTSolver(); + + virtual char *getConstraintLog(const Query&); + virtual void setCoreSolverTimeout(double timeout); +}; + +#endif /* SUPPORT_METASMT */ + /* *** */ /// createValidatingSolver - Create a solver which will validate all query |