diff --git a/lib/checkuninitvar.cpp b/lib/checkuninitvar.cpp index 342194c4c..c015b6e75 100644 --- a/lib/checkuninitvar.cpp +++ b/lib/checkuninitvar.cpp @@ -1775,7 +1775,7 @@ bool CheckUninitVar::isVariableUsage(const Token *vartok, bool pointer, bool all tok2 = tok2->link(); else if (tok2->str() == ":") rhs = true; - else if (Token::Match(tok2, "[)];,{}]")) + else if (Token::Match(tok2, "[)];,{}=]")) break; else if (rhs && tok2->varId() == vartok->varId()) return true; diff --git a/test/testuninitvar.cpp b/test/testuninitvar.cpp index ed4d09df8..3e1c3f00e 100644 --- a/test/testuninitvar.cpp +++ b/test/testuninitvar.cpp @@ -2191,6 +2191,12 @@ private: "}"); ASSERT_EQUALS("", errout.str()); + checkUninitVar2("int f(int a) {\n" + " int result;\n" + " foo() ? result = 1 : result = 0;\n" + "}"); + ASSERT_EQUALS("", errout.str()); + // = { .. } checkUninitVar2("int f() {\n" " int a;\n"