diff --git a/lib/checkleakautovar.cpp b/lib/checkleakautovar.cpp index af61b2bed..4a6f1ccbf 100644 --- a/lib/checkleakautovar.cpp +++ b/lib/checkleakautovar.cpp @@ -268,7 +268,7 @@ static bool isLocalVarNoAutoDealloc(const Token *varTok, const bool isCpp) static const Token * isFunctionCall(const Token * nameToken) { - if (nameToken->isName()) { + if (!nameToken->isStandardType() && nameToken->isName()) { nameToken = nameToken->next(); // check if function is a template if (nameToken && nameToken->link() && nameToken->str() == "<") { diff --git a/test/testleakautovar.cpp b/test/testleakautovar.cpp index 363b3e0e5..6a31e840e 100644 --- a/test/testleakautovar.cpp +++ b/test/testleakautovar.cpp @@ -208,6 +208,7 @@ private: TEST_CASE(configuration2); TEST_CASE(configuration3); TEST_CASE(configuration4); + TEST_CASE(configuration5); TEST_CASE(ptrptr); @@ -2371,6 +2372,13 @@ private: ASSERT_EQUALS("[test.c:4]: (information) --check-library: Function set_data() should have / configuration\n", errout.str()); } + void configuration5() { + check("void f() {\n" + " int(i);\n" + "}\n"); + ASSERT_EQUALS("", errout.str()); + } + void ptrptr() { check("void f() {\n" " char **p = malloc(10);\n"