diff --git a/test/testleakautovar.cpp b/test/testleakautovar.cpp index ac751bd37d7..280c428345c 100644 --- a/test/testleakautovar.cpp +++ b/test/testleakautovar.cpp @@ -943,7 +943,7 @@ class TestLeakAutoVar : public TestFixture { ASSERT_EQUALS("[test.c:4]: (error) Dereferencing 'p' after it is deallocated / released\n", errout.str()); - check("void g(int);\n" + check("int g(int);\n" "void f(int* p) {\n" " free(p);\n" " g(*p);\n" @@ -968,6 +968,19 @@ class TestLeakAutoVar : public TestFixture { ASSERT_EQUALS("[test.c:4]: (error) Dereferencing 'p' after it is deallocated / released\n" "[test.c:7] -> [test.c:8]: (error) Returning/dereferencing 'p' after it is deallocated / released\n", errout.str()); + + check("int g(int, int);\n" + "void f(int* p) {\n" + " free(p);\n" + " g(0, 1 + *p);\n" + "}\n" + "int h(int* p) {\n" + " free(p);\n" + " return g(0, 1 + *p);\n" + "}\n"); + ASSERT_EQUALS("[test.c:4]: (error) Dereferencing 'p' after it is deallocated / released\n" + "[test.c:7] -> [test.c:8]: (error) Returning/dereferencing 'p' after it is deallocated / released\n", + errout.str()); } void doublefree1() { // #3895