Bug hunting; Timeout
This commit is contained in:
parent
65498b5e9a
commit
11e2b5ea14
|
@ -337,6 +337,7 @@ namespace {
|
|||
, tokenizer(tokenizer)
|
||||
, callbacks(callbacks)
|
||||
, recursion(0)
|
||||
, startTime(std::time(nullptr))
|
||||
, mTrackExecution(trackExecution)
|
||||
, mDataIndex(trackExecution->getNewDataIndex()) {}
|
||||
typedef std::map<nonneg int, ExprEngine::ValuePtr> Memory;
|
||||
|
@ -347,6 +348,7 @@ namespace {
|
|||
const std::vector<ExprEngine::Callback> &callbacks;
|
||||
std::vector<ExprEngine::ValuePtr> constraints;
|
||||
int recursion;
|
||||
std::time_t startTime;
|
||||
|
||||
ExprEngine::ValuePtr executeContract(const Function *function, ExprEngine::ValuePtr(*executeExpression)(const Token*, Data&)) {
|
||||
const auto it = settings->functionContracts.find(function->fullName());
|
||||
|
@ -2253,9 +2255,15 @@ static std::string execute(const Token *start, const Token *end, Data &data)
|
|||
caseData.addConstraint(condValue, caseValue, true);
|
||||
defaultData.addConstraint(condValue, caseValue, false);
|
||||
exec(tok2->tokAt(2), end, caseData);
|
||||
// After 1 minute processing a function.. only check first case..
|
||||
if (std::time(nullptr) > data.startTime + 60)
|
||||
break;
|
||||
} else if (Token::Match(tok2, "case %name% :") && !Token::Match(tok2->tokAt(3), ";| case")) {
|
||||
Data caseData(data);
|
||||
exec(tok2->tokAt(2), end, caseData);
|
||||
// After 1 minute processing a function.. only check first case..
|
||||
if (std::time(nullptr) > data.startTime + 60)
|
||||
break;
|
||||
} else if (Token::simpleMatch(tok2, "default :"))
|
||||
defaultStart = tok2;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue