diff options
author | Dan Liew <daniel.liew@imperial.ac.uk> | 2016-01-14 16:59:08 +0000 |
---|---|---|
committer | Dan Liew <daniel.liew@imperial.ac.uk> | 2016-02-10 20:56:22 +0000 |
commit | 37694e11c7a767105244ec563b061d13f0779f05 (patch) | |
tree | 8948d430d72373221eb0c34a85a1127d033efab7 /lib | |
parent | e6ba74cf608cf733916f0df2471c6a5fc5a804cf (diff) | |
download | klee-37694e11c7a767105244ec563b061d13f0779f05.tar.gz |
Add some of the basic plumbing required to support a Z3 solver in KLEE.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Basic/CmdLineOptions.cpp | 10 | ||||
-rw-r--r-- | lib/Solver/CoreSolver.cpp | 9 |
2 files changed, 19 insertions, 0 deletions
diff --git a/lib/Basic/CmdLineOptions.cpp b/lib/Basic/CmdLineOptions.cpp index b7502023..70ee736e 100644 --- a/lib/Basic/CmdLineOptions.cpp +++ b/lib/Basic/CmdLineOptions.cpp @@ -92,11 +92,19 @@ llvm::cl::opt<klee::MetaSMTBackendType> MetaSMTBackend( #ifdef ENABLE_STP #define STP_IS_DEFAULT_STR " (default)" #define METASMT_IS_DEFAULT_STR "" +#define Z3_IS_DEFAULT_STR "" #define DEFAULT_CORE_SOLVER STP_SOLVER +#elif ENABLE_Z3 +#define STP_IS_DEFAULT_STR "" +#define METASMT_IS_DEFAULT_STR "" +#define Z3_IS_DEFAULT_STR " (default)" +#define DEFAULT_CORE_SOLVER Z3_SOLVER #elif ENABLE_METASMT #define STP_IS_DEFAULT_STR "" #define METASMT_IS_DEFAULT_STR " (default)" +#define Z3_IS_DEFAULT_STR "" #define DEFAULT_CORE_SOLVER METASMT_SOLVER +#define Z3_IS_DEFAULT_STR "" #else #error "Unsupported solver configuration" #endif @@ -105,11 +113,13 @@ llvm::cl::opt<CoreSolverType> CoreSolverToUse( llvm::cl::values(clEnumValN(STP_SOLVER, "stp", "stp" STP_IS_DEFAULT_STR), clEnumValN(METASMT_SOLVER, "metasmt", "metaSMT" METASMT_IS_DEFAULT_STR), clEnumValN(DUMMY_SOLVER, "dummy", "Dummy solver"), + clEnumValN(Z3_SOLVER, "z3", "Z3" Z3_IS_DEFAULT_STR), clEnumValEnd), llvm::cl::init(DEFAULT_CORE_SOLVER)); } #undef STP_IS_DEFAULT_STR #undef METASMT_IS_DEFAULT_STR +#undef Z3_IS_DEFAULT_STR #undef DEFAULT_CORE_SOLVER diff --git a/lib/Solver/CoreSolver.cpp b/lib/Solver/CoreSolver.cpp index 9248f3d3..26842d31 100644 --- a/lib/Solver/CoreSolver.cpp +++ b/lib/Solver/CoreSolver.cpp @@ -86,6 +86,15 @@ Solver *createCoreSolver(CoreSolverType cst) { #endif case DUMMY_SOLVER: return createDummySolver(); + case Z3_SOLVER: +#ifdef ENABLE_Z3 + // TODO + llvm::report_fatal_error("Z3 support not implemented"); + return NULL; +#else + llvm::errs() << "Not compiled with Z3 support\n"; + return NULL; +#endif default: llvm_unreachable("Unsupported CoreSolverType"); } |