Skip to content

Commit abe253e

Browse files
committed
Fix #14439
1 parent 886db33 commit abe253e

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

lib/tokenize.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5040,7 +5040,16 @@ 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 (Token::simpleMatch(fpTok, "(")) {
5048+
const Token *start = fpTok->linkAt(-1);
5049+
isFuncPointerArg = start && Token::simpleMatch(start->next(), "*");
5050+
}
5051+
5052+
if (tok->varId() == 0 && !isFuncPointerArg && (!scopeStack.top().isEnum || !(Token::Match(tok->previous(), "{|,") && Token::Match(tok->next(), ",|=|}"))) &&
50445053
!Token::simpleMatch(tok->next(), ": ;") && !(tok->tokAt(-1) && Token::Match(tok->tokAt(-2), "{|, ."))) {
50455054
const auto it = variableMap.map(globalNamespace).find(tok->str());
50465055
if (it != variableMap.map(globalNamespace).end()) {

0 commit comments

Comments
 (0)