MCPcopy Create free account
hub / github.com/cppcheck-opensource/cppcheck / singleMemberCallInScope

Function singleMemberCallInScope

lib/checkstl.cpp:2686–2706  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2684}
2685
2686static const Token *singleMemberCallInScope(const Token *start, nonneg int varid, bool &input, const Settings& settings)
2687{
2688 if (start->str() != "{")
2689 return nullptr;
2690 const Token *endToken = start->link();
2691 if (!Token::Match(start->next(), "%var% . %name% ("))
2692 return nullptr;
2693 if (!Token::simpleMatch(start->linkAt(4), ") ; }"))
2694 return nullptr;
2695 const Token *endStatement = start->linkAt(4)->next();
2696 if (endStatement->next() != endToken)
2697 return nullptr;
2698
2699 const Token *dotTok = start->tokAt(2);
2700 if (!Token::findmatch(dotTok->tokAt(2), "%varid%", endStatement, varid))
2701 return nullptr;
2702 input = Token::Match(start->next(), "%var% . %name% ( %varid% )", varid);
2703 if (isVariableChanged(dotTok->next(), endStatement, dotTok->astOperand1()->varId(), /*globalvar*/ false, settings))
2704 return nullptr;
2705 return dotTok;
2706}
2707
2708static const Token *singleIncrementInScope(const Token *start, nonneg int varid, bool &input)
2709{

Callers 1

useStlAlgorithmMethod · 0.85

Calls 7

isVariableChangedFunction · 0.85
nextMethod · 0.80
linkAtMethod · 0.80
astOperand1Method · 0.80
simpleMatchFunction · 0.70
strMethod · 0.45
tokAtMethod · 0.45

Tested by

no test coverage detected