| 258 | } |
| 259 | |
| 260 | static bool isMemberAssignment(const Token* tok, const Token*& rhs, const Settings& settings) |
| 261 | { |
| 262 | const Token *endBracket = nullptr; |
| 263 | if (!Token::Match(tok, "[;{}] %var% . %var%")) { |
| 264 | if (!Token::Match(tok, "[;{}] %var% [")) |
| 265 | return false; |
| 266 | endBracket = tok->linkAt(2); |
| 267 | if (!Token::Match(endBracket, "] . %var%")) |
| 268 | return false; |
| 269 | } |
| 270 | if (!isPtrArg(tok->next())) |
| 271 | return false; |
| 272 | const Token* assign = (endBracket ? endBracket->next() : tok->tokAt(2))->astParent(); |
| 273 | while (Token::simpleMatch(assign, "[")) |
| 274 | assign = assign->astParent(); |
| 275 | if (!Token::simpleMatch(assign, "=")) |
| 276 | return false; |
| 277 | if (!isAutoVariableRHS(assign->astOperand2(), settings)) |
| 278 | return false; |
| 279 | rhs = assign->astOperand2(); |
| 280 | return true; |
| 281 | } |
| 282 | |
| 283 | void CheckAutoVariablesImpl::autoVariables() |
| 284 | { |
no test coverage detected