diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/other/gc2.C')
-rw-r--r-- | gcc/testsuite/g++.dg/other/gc2.C | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/other/gc2.C b/gcc/testsuite/g++.dg/other/gc2.C new file mode 100644 index 000000000..142229475 --- /dev/null +++ b/gcc/testsuite/g++.dg/other/gc2.C @@ -0,0 +1,38 @@ +// PR c++/12316 +// Origin: Volker Reichelt <reichelt@igpm.rwth-aachen.de> + +// { dg-do compile } +// { dg-options "--param ggc-min-expand=0 --param ggc-min-heapsize=0" } + +inline void FOO() {} + +template<typename> struct A +{ + A() {} + ~A() throw() {} +}; + +template<typename> struct B +{ + static void foo(); + static void bar() { foo(); } +}; + +struct C {}; + +template<typename> struct D : C +{ + D() {} + ~D() { B<void>::bar(); } +}; + +template<typename> struct E : D<void> +{ + static void baz() {} + E(A<void>) { baz(); } +}; + +void BAR() +{ + new E<void>(A<void>()); +} |