Fixed #2052 (False positive: possible null pointer dereference 'else continue')
This commit is contained in:
parent
334cbbcbf8
commit
de3c761790
|
@ -427,7 +427,10 @@ static void checkExecutionPaths_(const Token *tok, std::list<ExecutionPath *> &c
|
||||||
}
|
}
|
||||||
|
|
||||||
// return/throw ends all execution paths
|
// return/throw ends all execution paths
|
||||||
if (tok->str() == "return" || tok->str() == "throw")
|
if (tok->str() == "return" ||
|
||||||
|
tok->str() == "throw" ||
|
||||||
|
tok->str() == "continue" ||
|
||||||
|
tok->str() == "break")
|
||||||
{
|
{
|
||||||
ExecutionPath::bailOut(checks);
|
ExecutionPath::bailOut(checks);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1057,6 +1057,17 @@ private:
|
||||||
"}\n");
|
"}\n");
|
||||||
ASSERT_EQUALS("[test.cpp:12]: (error) Possible null pointer dereference: Q\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:12]: (error) Possible null pointer dereference: Q\n", errout.str());
|
||||||
|
|
||||||
|
// Ticket #2052 (false positive for 'else continue;')
|
||||||
|
checkNullPointer("void f() {\n"
|
||||||
|
" for (int x = 0; x < 5; ++x) {"
|
||||||
|
" int *p = 0;\n"
|
||||||
|
" if (a(x)) p=b(x);\n"
|
||||||
|
" else continue;\n"
|
||||||
|
" *p = 0;\n"
|
||||||
|
" }\n"
|
||||||
|
"}");
|
||||||
|
ASSERT_EQUALS("", errout.str());
|
||||||
|
|
||||||
// function pointer..
|
// function pointer..
|
||||||
checkNullPointer("void foo()\n"
|
checkNullPointer("void foo()\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
|
|
Loading…
Reference in New Issue