From 64868646eed7384c38db41aff5002215b92c1601 Mon Sep 17 00:00:00 2001 From: Hristina Palikareva Date: Fri, 4 Oct 2013 18:32:55 +0100 Subject: MetaSMT builder, solver and command-line options. --- include/klee/CommandLine.h | 9 +++++++++ include/klee/Solver.h | 15 +++++++++++++++ 2 files changed, 24 insertions(+) (limited to 'include') 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 queryLoggingOptions; +enum MetaSMTBackendType +{ + METASMT_BACKEND_NONE, + METASMT_BACKEND_STP, + METASMT_BACKEND_Z3, + METASMT_BACKEND_BOOLECTOR +}; + +extern llvm::cl::opt UseMetaSMT; //A bit of ugliness so we can use cl::list<> like cl::bits<>, see queryLoggingOptions template 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 + 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 -- cgit 1.4.1