Fixed #913 (false positive: uninitialized variable)

This commit is contained in:
Daniel Marjamäki 2009-11-14 08:00:17 +01:00
parent a36c410d45
commit ec6d66ff45
2 changed files with 19 additions and 1 deletions

View File

@ -1203,9 +1203,11 @@ static const Token *uninitvar_checkscope(const Token * const tokens, const Token
return 0;
}
if (Token::Match(tok, "= {"))
if (Token::Match(tok, "= {|("))
{
tok = tok->next()->link();
if (Token::simpleMatch(tok, ") {"))
tok = tok->next()->link();
if (!tok)
{
init = true;

View File

@ -1062,6 +1062,22 @@ private:
"}\n");
ASSERT_EQUALS("", errout.str());
checkUninitVar("int foo()\n"
"{\n"
" int i;\n"
" if (x)\n"
" {\n"
" struct abc abc1 = (struct abc) { .a=0, .b=0, .c=0 };\n"
" i = 22;\n"
" }\n"
" else\n"
" {\n"
" i = 33;\n"
" }\n"
" return i;\n"
"}\n");
ASSERT_EQUALS("", errout.str());
checkUninitVar("static void foo()\n"
"{\n"
" Foo *p;\n"