diff --git a/include/klee/Statistics/Statistic.h b/include/klee/Statistics/Statistic.h index bbb67116db..7407153305 100644 --- a/include/klee/Statistics/Statistic.h +++ b/include/klee/Statistics/Statistic.h @@ -11,6 +11,7 @@ #define KLEE_STATISTIC_H #include +#include namespace klee { class Statistic; diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp index 65b4ad7c89..37c5a2d8a6 100644 --- a/lib/Core/Executor.cpp +++ b/lib/Core/Executor.cpp @@ -4282,6 +4282,7 @@ void Executor::terminateStateOnSolverError(ExecutionState &state, // XXX shoot me static const char *okExternalsList[] = { "printf", "fprintf", + "vsnprintf", "sscanf", "snprintf", "puts", @@ -4403,7 +4404,7 @@ static std::set nokExternals({"fesetround", "fesetenv", "feclearexcept", "feraiseexcept", "gettext", "dcgettext" , "longjmp", "fgets", "getmntent", "__freading", "__fwriting", "fread", "fread_unlocked", - "strspn", "strtod"}); + "strspn", "strtod", "setlocale"}); void Executor::callExternalFunction(ExecutionState &state, KInstruction *target, diff --git a/lib/Core/SpecialFunctionHandler.cpp b/lib/Core/SpecialFunctionHandler.cpp index 72ed553f56..571ea63e19 100644 --- a/lib/Core/SpecialFunctionHandler.cpp +++ b/lib/Core/SpecialFunctionHandler.cpp @@ -1106,7 +1106,7 @@ void SpecialFunctionHandler::handleVerifierNondetType(ExecutionState &state, // std::get<0>(nondet).c_str(), std::get<1>(nondet), // std::get<2>(nondet), val.getZExtValue()); - putConcreteValue(state, name, val.isSigned(), target, + putConcreteValue(state, name, isSigned, target, ConstantExpr::alloc(val.getZExtValue(), size)); ++position; // matched, move on