From 019d6d4149ee97d55ce9efe4e5e470d38130cdeb Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Wed, 13 Apr 2022 12:44:54 -0400 Subject: [PATCH] c++: add test [PR105265] This was fixed by r12-1165, but good to have a test that doesn't need -fno-elide-constructors. PR c++/105265 PR c++/100838 gcc/testsuite/ChangeLog: * g++.dg/cpp0x/initlist-new6.C: New test. --- gcc/testsuite/g++.dg/cpp0x/initlist-new6.C | 39 ++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 gcc/testsuite/g++.dg/cpp0x/initlist-new6.C diff --git a/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C b/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C new file mode 100644 index 0000000..0ef2780 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C @@ -0,0 +1,39 @@ +// PR c++/105265 +// { dg-do run { target c++11 } } + +int c; + +class Block +{ +public: + Block(int n) : data{new char[n]}, size{n} + { + ++c; + } + + ~Block() + { + --c; + delete[] data; + } + +private: + char* data; + int size; +}; + +struct Cargo +{ + Block const& block; +}; + +int main() +{ + { + Cargo* c = new Cargo{{4000}}; + delete c; + } + if (c != 0) + __builtin_abort (); + return 0; +} -- 2.7.4