@@ -2164,7 +2164,7 @@ static bool isConstStatement(const Token *tok, const Library& library, bool isNe
21642164 return isConstStatement(tok->astOperand1(), library) && isConstStatement(tok->astOperand2(), library);
21652165 if (Token::Match(tok, "!|~|%cop%") && (tok->astOperand1() || tok->astOperand2()))
21662166 return true;
2167- if (Token::simpleMatch (tok->previous(), "sizeof ("))
2167+ if (Token::Match (tok->previous(), "sizeof|alignof|noexcept|typeid (") && tok->previous()->isKeyword( ))
21682168 return true;
21692169 if (isCPPCast(tok)) {
21702170 if (Token::simpleMatch(tok->astOperand1(), "dynamic_cast") && Token::simpleMatch(tok->astOperand1()->linkAt(1)->previous(), "& >"))
@@ -2299,6 +2299,7 @@ void CheckOther::checkIncompleteStatement()
22992299 if (!Token::simpleMatch(tok->astParent(), ";") && !Token::simpleMatch(rtok, ";") &&
23002300 !Token::Match(tok->previous(), ";|}|{ %any% ;") &&
23012301 !(tok->isCpp() && tok->isCast() && !tok->astParent()) &&
2302+ !(!tok->astParent() && Token::Match(tok->previous(), "%name% (") && tok->previous()->isKeyword()) &&
23022303 !Token::simpleMatch(tok->tokAt(-2), "for (") &&
23032304 !Token::Match(tok->tokAt(-1), "%var% [") &&
23042305 !(tok->str() == "," && tok->astParent() && tok->astParent()->isAssignmentOp()))
@@ -2362,6 +2363,8 @@ void CheckOther::constStatementError(const Token *tok, const std::string &type,
23622363 msg = "Redundant code: Found unused lambda.";
23632364 else if (Token::Match(tok, "%name%|::"))
23642365 msg = "Redundant code: Found unused function.";
2366+ else if (Token::Match(tok->previous(), "%name% ("))
2367+ msg = "Redundant code: Found unused '" + tok->strAt(-1) + "' expression.";
23652368 else if (mSettings->debugwarnings) {
23662369 reportError(tok, Severity::debug, "debug", "constStatementError not handled.");
23672370 return;
0 commit comments