diff options
author | Hristina Palikareva <h.palikareva@imperial.ac.uk> | 2013-10-04 18:32:55 +0100 |
---|---|---|
committer | Hristina Palikareva <h.palikareva@imperial.ac.uk> | 2013-10-11 20:02:33 +0100 |
commit | 64868646eed7384c38db41aff5002215b92c1601 (patch) | |
tree | 974ee540ed95b23c3a561c17ab710aadeece72f7 /include | |
parent | bd233936e40f019e0ab066440dc13398ae6754f6 (diff) | |
download | klee-64868646eed7384c38db41aff5002215b92c1601.tar.gz |
MetaSMT builder, solver and command-line 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 |