Fix false positive in memory leak
This commit is contained in:
parent
7290ec0db6
commit
8b3647edd7
|
@ -1006,7 +1006,7 @@ void CheckLeakAutoVar::ret(const Token *tok, VarInfo &varInfo, const bool isEndO
|
|||
tok2 = tok3->tokAt(4);
|
||||
else
|
||||
continue;
|
||||
if (Token::Match(tok2, "[});,]")) {
|
||||
if (Token::Match(tok2, "[});,+]")) {
|
||||
used = true;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -184,6 +184,7 @@ private:
|
|||
TEST_CASE(return6); // #8282 return {p, p}
|
||||
TEST_CASE(return7); // #9343 return (uint8_t*)x
|
||||
TEST_CASE(return8);
|
||||
TEST_CASE(return9);
|
||||
|
||||
// General tests: variable type, allocation type, etc
|
||||
TEST_CASE(test1);
|
||||
|
@ -2104,6 +2105,14 @@ private:
|
|||
ASSERT_EQUALS("", errout.str());
|
||||
}
|
||||
|
||||
void return9() {
|
||||
check("void* f() {\n"
|
||||
" void *x = malloc (sizeof (struct alloc));\n"
|
||||
" return x + sizeof (struct alloc);\n"
|
||||
"}", true);
|
||||
ASSERT_EQUALS("", errout.str());
|
||||
}
|
||||
|
||||
void test1() { // 3809
|
||||
check("void f(double*&p) {\n"
|
||||
" p = malloc(0x100);\n"
|
||||
|
|
Loading…
Reference in New Issue