Z3SolverImpl::Z3SolverImpl() : builder(new Z3Builder( /*autoClearConstructCache=*/false, /*z3LogInteractionFileArg=*/Z3LogInteractionFile.size() > 0 ? Z3LogInteractionFile.c_str() : NULL)), timeout(0.0), runStatusCode(SOLVER_RUN_STATUS_FAILURE), dumpedQueriesFile(0) { assert(builder && "unable to create Z3Builder"); solverParameters = Z3_mk_params(builder->ctx); Z3_params_inc_ref(builder->ctx, solverParameters); timeoutParamStrSymbol = Z3_mk_string_symbol(builder->ctx, "timeout"); setCoreSolverTimeout(timeout); if (!Z3QueryDumpFile.empty()) { std::string error; dumpedQueriesFile = klee_open_output_file(Z3QueryDumpFile, error); if (!error.empty()) { klee_error("Error creating file for dumping Z3 queries: %s", error.c_str()); } klee_message("Dumping Z3 queries to \"%s\"", Z3QueryDumpFile.c_str()); } // Set verbosity if (Z3VerbosityLevel > 0) { std::string underlyingString; llvm::raw_string_ostream ss(underlyingString); ss << Z3VerbosityLevel; ss.flush(); Z3_global_param_set("verbose", underlyingString.c_str()); } }
Z3SolverImpl::Z3SolverImpl() : builder(new Z3Builder(/*autoClearConstructCache=*/false)), timeout(0.0), runStatusCode(SOLVER_RUN_STATUS_FAILURE) { assert(builder && "unable to create Z3Builder"); solverParameters = Z3_mk_params(builder->ctx); Z3_params_inc_ref(builder->ctx, solverParameters); timeoutParamStrSymbol = Z3_mk_string_symbol(builder->ctx, "timeout"); setCoreSolverTimeout(timeout); }