Skip to content

Commit 43ab4d4

Browse files
committed
Fix #14439
1 parent 15248cc commit 43ab4d4

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

lib/tokenize.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5040,7 +5040,14 @@ void Tokenizer::setVarIdPass1()
50405040
}
50415041
}
50425042

5043-
if (tok->varId() == 0 && (!scopeStack.top().isEnum || !(Token::Match(tok->previous(), "{|,") && Token::Match(tok->next(), ",|=|}"))) &&
5043+
bool isFuncPointerArg = false;
5044+
const Token *fpTok = tok;
5045+
while (Token::Match(fpTok, "%name%|&|*|,"))
5046+
fpTok = fpTok->previous();
5047+
if (fpTok && fpTok->str() == "(" && (fpTok = fpTok->previous()) && (fpTok = fpTok->link()))
5048+
isFuncPointerArg = Token::Match(fpTok->previous(), "%type% ( *");
5049+
5050+
if (tok->varId() == 0 && !isFuncPointerArg && (!scopeStack.top().isEnum || !(Token::Match(tok->previous(), "{|,") && Token::Match(tok->next(), ",|=|}"))) &&
50445051
!Token::simpleMatch(tok->next(), ": ;") && !(tok->tokAt(-1) && Token::Match(tok->tokAt(-2), "{|, ."))) {
50455052
const auto it = variableMap.map(globalNamespace).find(tok->str());
50465053
if (it != variableMap.map(globalNamespace).end()) {

0 commit comments

Comments
 (0)