TODO test case realloc5 added and "Checkmemoryleak: simplifycode result for" debug info added.
This commit is contained in:
parent
e0f416e52e
commit
10f6678cf9
|
@ -1530,7 +1530,11 @@ void CheckMemoryLeakInFunction::checkScope(const Token *Tok1, const char varname
|
|||
}
|
||||
|
||||
simplifycode(tok, all);
|
||||
//tok->printOut("simplifycode result");
|
||||
|
||||
if (_settings->_debug)
|
||||
{
|
||||
tok->printOut((std::string("Checkmemoryleak: simplifycode result for: ") + varname).c_str());
|
||||
}
|
||||
|
||||
// If the variable is not allocated at all => no memory leak
|
||||
if (Token::findmatch(tok, "alloc") == 0)
|
||||
|
|
|
@ -223,6 +223,7 @@ private:
|
|||
TEST_CASE(realloc2);
|
||||
TEST_CASE(realloc3);
|
||||
TEST_CASE(realloc4);
|
||||
TEST_CASE(realloc5);
|
||||
|
||||
TEST_CASE(assign);
|
||||
|
||||
|
@ -1662,6 +1663,22 @@ private:
|
|||
TODO_ASSERT_EQUALS("[test.cpp:5]: (error) Memory leak: a\n", errout.str());
|
||||
}
|
||||
|
||||
void realloc5()
|
||||
{
|
||||
check("void foo()\n"
|
||||
"{\n"
|
||||
"char *buf;\n"
|
||||
"char *new_buf;\n"
|
||||
"buf = calloc( 10 );\n"
|
||||
"new_buf = realloc ( buf, 20);\n"
|
||||
"if ( !new_buf )\n"
|
||||
" free(buf);\n"
|
||||
"else\n"
|
||||
" free(new_buf);\n"
|
||||
"}\n", true);
|
||||
|
||||
TODO_ASSERT_EQUALS("", errout.str());
|
||||
}
|
||||
|
||||
void assign()
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue