@@ -134,13 +134,13 @@ void CheckSizeof::checkSizeofForPointerSize()
134134 } else if (Token::simpleMatch (tok, " return calloc (" )) {
135135 tokSize = tok->tokAt (3 )->nextArgument ();
136136 tokFunc = tok->next ();
137- } else if (Token::simpleMatch (tok, " memset (" )) {
137+ } else if (Token::simpleMatch (tok, " memset (" ) && tok-> strAt (- 1 ) != " . " ) {
138138 variable = tok->tokAt (2 );
139139 tokSize = variable->nextArgument ();
140140 if (tokSize)
141141 tokSize = tokSize->nextArgument ();
142142 tokFunc = tok;
143- } else if (Token::Match (tok, " memcpy|memcmp|memmove|strncpy|strncmp|strncat (" )) {
143+ } else if (Token::Match (tok, " memcpy|memcmp|memmove|strncpy|strncmp|strncat (" ) && tok-> strAt (- 1 ) != " . " ) {
144144 variable = tok->tokAt (2 );
145145 variable2 = variable->nextArgument ();
146146 if (!variable2)
@@ -158,7 +158,7 @@ void CheckSizeof::checkSizeofForPointerSize()
158158 }
159159 }
160160
161- if (!variable)
161+ if (!variable || !tokSize )
162162 continue ;
163163
164164 while (Token::Match (variable, " %var% ::|." ))
@@ -199,6 +199,9 @@ void CheckSizeof::checkSizeofForPointerSize()
199199 while (Token::Match (tokSize, " %var% ::|." ))
200200 tokSize = tokSize->tokAt (2 );
201201
202+ if (Token::Match (tokSize, " %var% [|(" ))
203+ continue ;
204+
202205 // Now check for the sizeof usage. Once here, everything using sizeof(varid) or sizeof(&varid)
203206 // looks suspicious
204207 // Do it for first variable
0 commit comments