diff --git a/lib/checkuninitvar.cpp b/lib/checkuninitvar.cpp index 2e749c6b71e..9ff66c055ef 100644 --- a/lib/checkuninitvar.cpp +++ b/lib/checkuninitvar.cpp @@ -1262,8 +1262,6 @@ const Token* CheckUninitVar::isVariableUsage(const Token *vartok, const Library& const Token *parent = valueExpr->astParent(); while (Token::simpleMatch(parent, ",")) parent = parent->astParent(); - if (Token::simpleMatch(parent, "{")) - return valueExpr; const int use = isFunctionParUsage(valueExpr, library, pointer, alloc, indirect); return (use>0) ? valueExpr : nullptr; } diff --git a/test/testuninitvar.cpp b/test/testuninitvar.cpp index e22c4009f5d..1366b350223 100644 --- a/test/testuninitvar.cpp +++ b/test/testuninitvar.cpp @@ -7935,6 +7935,12 @@ class TestUninitVar : public TestFixture { " (*fp[0])();\n" "}"); ASSERT_EQUALS("", errout_str()); + + checkUninitVar("void f() {\n" // #14708 + " int a[1], b[1];\n" + " int* c[2]{ a, b };\n" + "}"); + ASSERT_EQUALS("", errout_str()); } void isVariableUsageDerefValueflow()