| // 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>()); |
| } |