@@ -1360,8 +1360,10 @@ class TestMemleakInClass : public TestFixture {
13601360 " public:\n "
13611361 " A() : b(new B()), c(new C(b)) { }\n "
13621362 " }" );
1363- ASSERT_EQUALS (" [test.cpp:9]: (style) Class 'A' is unsafe, 'A::b' can leak by wrong usage.\n "
1364- " [test.cpp:10]: (style) Class 'A' is unsafe, 'A::c' can leak by wrong usage.\n " , errout.str ());
1363+ TODO_ASSERT_EQUALS (" [test.cpp:9]: (style) Class 'A' is unsafe, 'A::b' can leak by wrong usage.\n "
1364+ " [test.cpp:10]: (style) Class 'A' is unsafe, 'A::c' can leak by wrong usage.\n " ,
1365+ " [test.cpp:9]: (style) Class 'A' is unsafe, 'A::b' can leak by wrong usage.\n " ,
1366+ errout.str ());
13651367
13661368 check (" struct B { };\n "
13671369 " struct C\n "
@@ -1380,8 +1382,10 @@ class TestMemleakInClass : public TestFixture {
13801382 " c = new C(b);\n "
13811383 " }\n "
13821384 " }" );
1383- ASSERT_EQUALS (" [test.cpp:9]: (style) Class 'A' is unsafe, 'A::b' can leak by wrong usage.\n "
1384- " [test.cpp:10]: (style) Class 'A' is unsafe, 'A::c' can leak by wrong usage.\n " , errout.str ());
1385+ TODO_ASSERT_EQUALS (" [test.cpp:9]: (style) Class 'A' is unsafe, 'A::b' can leak by wrong usage.\n "
1386+ " [test.cpp:10]: (style) Class 'A' is unsafe, 'A::c' can leak by wrong usage.\n " ,
1387+ " [test.cpp:9]: (style) Class 'A' is unsafe, 'A::b' can leak by wrong usage.\n " ,
1388+ errout.str ());
13851389 }
13861390
13871391 void class22 () { // ticket #3012 - false positive
@@ -2521,6 +2525,26 @@ class TestMemleakNoVar : public TestFixture {
25212525 " makeThing();\n "
25222526 " }" );
25232527 ASSERT_EQUALS (" " , errout.str ());
2528+
2529+ // #10631
2530+ check (" struct Thing {\n "
2531+ " Thing();\n "
2532+ " };\n "
2533+ " std::vector<Thing*> g_things;\n "
2534+ " Thing* makeThing() {\n "
2535+ " Thing* n = new Thing();\n "
2536+ " return n;\n "
2537+ " }\n "
2538+ " Thing::Thing() {\n "
2539+ " g_things.push_back(this);\n "
2540+ " }\n "
2541+ " void f() {\n "
2542+ " makeThing();\n "
2543+ " for(Thing* t : g_things) {\n "
2544+ " delete t;\n "
2545+ " }\n "
2546+ " }\n " );
2547+ ASSERT_EQUALS (" " , errout.str ());
25242548 }
25252549};
25262550REGISTER_TEST (TestMemleakNoVar)
0 commit comments