From 8d7fe702e04efa89e1c1bd0e8b1b3ebff89d493e Mon Sep 17 00:00:00 2001 From: orbitcowboy Date: Fri, 25 Mar 2022 17:01:57 +0100 Subject: [PATCH] Ticket #9104 - Adde a regression test --- test/testclass.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/test/testclass.cpp b/test/testclass.cpp index 3ef237f45..b1b63f790 100644 --- a/test/testclass.cpp +++ b/test/testclass.cpp @@ -2562,6 +2562,27 @@ private: "Base *base = new Derived;\n" "delete base;"); ASSERT_EQUALS("", errout.str()); + + // #9104 + checkVirtualDestructor("struct A\n" + "{\n" + " A() { cout << \"A is constructing\\n\"; }\n" + " ~A() { cout << \"A is destructing\\n\"; }\n" + "};\n" + " \n" + "struct Base {};\n" + " \n" + "struct Derived : Base\n" + "{\n" + " A a;\n" + "};\n" + " \n" + "int main(void)\n" + "{\n" + " Base* p = new Derived();\n" + " delete p;\n" + "}"); + ASSERT_EQUALS("[test.cpp:7]: (error) Class 'Base' which is inherited by class 'Derived' does not have a virtual destructor.\n", errout.str()); } void virtualDestructor3() {