diff --git a/lib/checksizeof.cpp b/lib/checksizeof.cpp index 6bf51f97c82..15a1caf1a8e 100644 --- a/lib/checksizeof.cpp +++ b/lib/checksizeof.cpp @@ -379,7 +379,7 @@ void CheckSizeof::sizeofFunction() if (const Token *argument = tok->next()->astOperand2()) { const Token *checkToken = argument->previous(); if (checkToken->tokType() == Token::eName) - break; + continue; const Function * fun = checkToken->function(); // Don't report error if the function is overloaded if (fun && fun->nestedIn->functionMap.count(checkToken->str()) == 1) { diff --git a/test/testsizeof.cpp b/test/testsizeof.cpp index 2080996fbb9..ad8aa3192af 100644 --- a/test/testsizeof.cpp +++ b/test/testsizeof.cpp @@ -206,6 +206,11 @@ class TestSizeof : public TestFixture { " };\n" "};"); ASSERT_EQUALS("", errout_str()); + + check("int g();\n" + "size_t f1() { return sizeof(x[0]); }\n" + "size_t f2() { return sizeof(g()); }\n"); + ASSERT_EQUALS("[test.cpp:3:22]: (warning) Found function call inside sizeof(). [sizeofFunctionCall]\n", errout_str()); } void sizeofForArrayParameter() {