@@ -5040,19 +5040,22 @@ void Tokenizer::setVarIdPass1()
50405040 }
50415041 }
50425042
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 (), " ,|=|}" ))) &&
5043+ if (tok->varId () == 0 && (!scopeStack.top ().isEnum || !(Token::Match (tok->previous (), " {|," ) && Token::Match (tok->next (), " ,|=|}" ))) &&
50515044 !Token::simpleMatch (tok->next (), " : ;" ) && !(tok->tokAt (-1 ) && Token::Match (tok->tokAt (-2 ), " {|, ." ))) {
5052- const auto it = variableMap.map (globalNamespace).find (tok->str ());
5053- if (it != variableMap.map (globalNamespace).end ()) {
5054- tok->varId (it->second );
5055- setVarIdStructMembers (tok, structMembers, variableMap.getVarId ());
5045+
5046+ bool isFuncPointerArg = false ;
5047+ const Token *fpTok = tok;
5048+ while (Token::Match (fpTok, " %name%|&|*|," ))
5049+ fpTok = fpTok->previous ();
5050+ if (fpTok && fpTok->str () == " (" && (fpTok = fpTok->previous ()) && (fpTok = fpTok->link ()))
5051+ isFuncPointerArg = Token::Match (fpTok->previous (), " %type% ( *" );
5052+
5053+ if (!isFuncPointerArg) {
5054+ const auto it = variableMap.map (globalNamespace).find (tok->str ());
5055+ if (it != variableMap.map (globalNamespace).end ()) {
5056+ tok->varId (it->second );
5057+ setVarIdStructMembers (tok, structMembers, variableMap.getVarId ());
5058+ }
50565059 }
50575060 }
50585061 } else if (Token::Match (tok, " ::|. %name%" ) && Token::Match (tok->previous (), " )|]|>|%name%" )) {
0 commit comments