diff --git a/lib/valueflow.cpp b/lib/valueflow.cpp index bba2f0bcaf3..2f3a6520cf1 100644 --- a/lib/valueflow.cpp +++ b/lib/valueflow.cpp @@ -4602,11 +4602,15 @@ struct ConditionHandler { if (Token::Match(tok, ":|;|,")) continue; + std::vector conditions = parse(tok, settings); + if (conditions.empty()) + continue; + const Token* top = tok->astTop(); if (!Token::Match(top->previous(), "if|while|for (") && !Token::Match(tok->astParent(), "&&|%oror%|?|!")) continue; - for (const Condition& cond : parse(tok, settings)) { + for (const Condition& cond : conditions) { if (!cond.vartok) continue; if (cond.vartok->exprId() == 0)