diff --git a/lib/astutils.cpp b/lib/astutils.cpp index bc85cfab931..df93634240b 100644 --- a/lib/astutils.cpp +++ b/lib/astutils.cpp @@ -696,9 +696,10 @@ std::vector getParentValueTypes(const Token* tok, const Settings* set return {*tok->astParent()->astOperand1()->valueType()}; return {}; } + const Token* ftok{}; if (Token::Match(tok->astParent(), "(|{|,")) { int argn = -1; - const Token* ftok = getTokenArgumentFunction(tok, argn); + ftok = getTokenArgumentFunction(tok, argn); const Token* typeTok = nullptr; if (ftok && argn >= 0) { if (ftok->function()) { @@ -744,7 +745,7 @@ std::vector getParentValueTypes(const Token* tok, const Settings* set if (Token::Match(tok->astParent(), "return|(|{|%assign%") && parent) { *parent = tok->astParent(); } - if (tok->astParent()->valueType()) + if (!ftok && tok->astParent()->valueType()) return {*tok->astParent()->valueType()}; return {}; }