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

Function skipUnreachableElseBranch

lib/astutils.cpp:3894–3918  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3892}
3893
3894static const Token *skipUnreachableElseBranch(const Token *tok)
3895{
3896 if (!Token::simpleMatch(tok->tokAt(-2), "} else {"))
3897 return tok;
3898
3899 const Token *condTok = tok->linkAt(-2);
3900 if (!condTok)
3901 return tok;
3902
3903 condTok = condTok->linkAt(-1);
3904 if (!condTok)
3905 return tok;
3906
3907 if (!Token::simpleMatch(condTok->tokAt(-1), "if (") && !Token::simpleMatch(condTok->tokAt(-2), "if constexpr ("))
3908 return tok;
3909
3910 condTok = condTok->astOperand2();
3911
3912 if ((condTok->hasKnownIntValue() && condTok->getKnownIntValue() != 0)
3913 || (unknownLeafValuesAreTemplateArgs(condTok) && condTok->getValueNE(0))) {
3914 tok = tok->link();
3915 }
3916
3917 return tok;
3918}
3919
3920const Token *skipUnreachableBranch(const Token *tok)
3921{

Callers 1

skipUnreachableBranchFunction · 0.85

Calls 8

linkAtMethod · 0.80
astOperand2Method · 0.80
getKnownIntValueMethod · 0.80
getValueNEMethod · 0.80
simpleMatchFunction · 0.70
tokAtMethod · 0.45
hasKnownIntValueMethod · 0.45

Tested by

no test coverage detected