diff --git a/lib/checkuninitvar.cpp b/lib/checkuninitvar.cpp index 07e90a25e..60a17c905 100644 --- a/lib/checkuninitvar.cpp +++ b/lib/checkuninitvar.cpp @@ -925,7 +925,7 @@ public: } if (tok->str() != "::" && Token::Match(tok->next(), "%var% ( %type%")) { - if (!Token::simpleMatch(tok->tokAt(2)->link(), ") {")) + if (!Token::Match(tok->tokAt(2)->link(), ") [{;]")) continue; const Token *tok2 = tok->tokAt(3); while (tok2 && tok2->str() != ")") diff --git a/test/testuninitvar.cpp b/test/testuninitvar.cpp index 0d2c3ffc8..973071bb6 100644 --- a/test/testuninitvar.cpp +++ b/test/testuninitvar.cpp @@ -1128,6 +1128,7 @@ private: { // function analysis.. ASSERT_EQUALS("foo", analyseFunctions("void foo(int x) { }")); + ASSERT_EQUALS("foo", analyseFunctions("void foo(int x);")); ASSERT_EQUALS("foo", analyseFunctions("void foo(const int &x) { }")); ASSERT_EQUALS("foo", analyseFunctions("void foo(int &x) { ++x; }")); ASSERT_EQUALS("", analyseFunctions("void foo(int &x) { x = 0; }"));