Fixed #1778 (false negative: nullpointer dereference (std::string pointer))

This commit is contained in:
Daniel Marjamäki 2010-10-09 07:57:34 +02:00
parent 068317bed1
commit a3367874d9
2 changed files with 11 additions and 9 deletions

View File

@ -2685,7 +2685,10 @@ private:
vartok = vartok->tokAt(3);
while (vartok && (vartok->str() == "*" || vartok->isName()))
vartok = vartok->next();
if (Token::Match(vartok, "> * %var% ;|="))
}
if (vartok
&& (vartok->str() == ">" || vartok->isName())
&& Token::Match(vartok->next(), "* %var% ;|="))
{
vartok = vartok->tokAt(2);
checks.push_back(new CheckNullpointer(owner, vartok->varId(), vartok->str()));
@ -2694,7 +2697,6 @@ private:
return vartok->next();
}
}
}
if (Token::simpleMatch(&tok, "try {"))
{

View File

@ -1134,7 +1134,7 @@ private:
" std::string * x = 0;\n"
" *x = \"test\";\n"
"}\n");
TODO_ASSERT_EQUALS("[test.cpp:4]: (error) Possible null pointer dereference: x\n", errout.str());
ASSERT_EQUALS("[test.cpp:4]: (error) Possible null pointer dereference: x\n", errout.str());
}
void checkUninitVar(const char code[])