diff --git a/test/testleakautovar.cpp b/test/testleakautovar.cpp index 131d22d15..d6b1b46c3 100644 --- a/test/testleakautovar.cpp +++ b/test/testleakautovar.cpp @@ -141,6 +141,8 @@ private: TEST_CASE(testKeywords); // #6767 TEST_CASE(inlineFunction); // #3989 + + TEST_CASE(smartPtrInContainer); // #8262 } void check(const char code[], bool cpp = false) { @@ -1520,6 +1522,19 @@ private: "}"); ASSERT_EQUALS("", errout.str()); } + + // #8262 + void smartPtrInContainer() { + check( "std::list< std::shared_ptr > mList;\n" + "void test(){\n" + " int *pt = new int(1);\n" + " mList.push_back(std::shared_ptr(pt));\n" + "}\n", + true + ); + TODO_ASSERT_EQUALS("", "[test.cpp:5]: (error) Memory leak: pt\n", errout.str()); + } + }; REGISTER_TEST(TestLeakAutoVar)