Skip to content

Commit 12f88e5

Browse files
committed
Fix #14439
1 parent 15248cc commit 12f88e5

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

lib/tokenize.cpp

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

0 commit comments

Comments
 (0)