@@ -674,7 +674,7 @@ namespace {
674674 return ;
675675
676676 mUsed = true ;
677- const bool isFunctionPointer = Token::Match (mNameToken , " %name% ) " );
677+ const bool isFunctionPointer = Tokenizer::isFunctionPointer (mNameToken );
678678
679679 // Special handling for T(...) when T is a pointer
680680 if (Token::Match (tok, " %name% [({]" ) && !isFunctionPointer && !Token::simpleMatch (tok->linkAt (1 ), " ) (" )) {
@@ -1019,6 +1019,10 @@ namespace {
10191019 };
10201020}
10211021
1022+ bool Tokenizer::isFunctionPointer (const Token* tok) {
1023+ return Token::Match (tok, " %name% ) (" );
1024+ }
1025+
10221026void Tokenizer::simplifyTypedef ()
10231027{
10241028 // Simplify global typedefs that are not redefined with the fast 1-pass simplification.
@@ -1088,7 +1092,7 @@ void Tokenizer::simplifyTypedef()
10881092 typedefInfo.lineNumber = typedefToken->linenr ();
10891093 typedefInfo.column = typedefToken->column ();
10901094 typedefInfo.used = t.second .isUsed ();
1091- typedefInfo.isFunctionPointer = Token::Match (t.second .nameToken (), " %name% ) ( " );
1095+ typedefInfo.isFunctionPointer = isFunctionPointer (t.second .nameToken ());
10921096 if (typedefInfo.isFunctionPointer ) {
10931097 const Token* tok = typedefToken;
10941098 while (tok != t.second .endToken ()) {
@@ -1622,7 +1626,7 @@ void Tokenizer::simplifyTypedefCpp()
16221626 typedefInfo.lineNumber = typeName->linenr ();
16231627 typedefInfo.column = typeName->column ();
16241628 typedefInfo.used = false ;
1625- typedefInfo.isFunctionPointer = Token::Match (typeName, " %name% ) ( " );
1629+ typedefInfo.isFunctionPointer = isFunctionPointer (typeName);
16261630 if (typedefInfo.isFunctionPointer ) {
16271631 const Token* t = typeDef;
16281632 while (t != tok) {
@@ -7155,7 +7159,7 @@ void Tokenizer::simplifyFunctionPointers()
71557159 while (Token::Match (tok2, " %type%|:: %type%|::" ))
71567160 tok2 = tok2->next ();
71577161
7158- if (!Token::Match (tok2, " %name% ) ( " ) &&
7162+ if (!isFunctionPointer (tok2) &&
71597163 !Token::Match (tok2, " %name% [ ] ) (" ) &&
71607164 !(Token::Match (tok2, " %name% (" ) && Token::simpleMatch (tok2->linkAt (1 ), " ) ) (" )))
71617165 continue ;
@@ -7448,7 +7452,7 @@ void Tokenizer::simplifyVarDecl(Token * tokBegin, const Token * const tokEnd, co
74487452 }
74497453 // Function pointer
74507454 if (Token::simpleMatch (varName, " ( *" ) &&
7451- Token::Match (varName->link ()->previous (), " %name% ) ( " ) &&
7455+ isFunctionPointer (varName->link ()->previous ()) &&
74527456 Token::simpleMatch (varName->link ()->linkAt (1 ), " ) =" )) {
74537457 Token *endDecl = varName->link ()->linkAt (1 );
74547458 varName = varName->link ()->previous ();
@@ -9376,7 +9380,7 @@ Token* Tokenizer::getAttributeFuncTok(Token* tok, bool gccattr) const {
93769380 if (Token::simpleMatch (prev, " )" )) {
93779381 if (Token::Match (prev->link ()->previous (), " %name% (" ))
93789382 return prev->link ()->previous ();
9379- if (Token::Match (prev->link ()->tokAt (-2 ), " %name% ) ( " ))
9383+ if (isFunctionPointer (prev->link ()->tokAt (-2 )))
93809384 return prev->link ()->tokAt (-2 );
93819385 }
93829386 if (Token::simpleMatch (prev, " )" ) && Token::Match (prev->link ()->tokAt (-2 ), " operator %op% (" ) && isCPP ())
0 commit comments