1// PR c++/12316
2// Origin: Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3
4// { dg-do compile }
5// { dg-options "--param ggc-min-expand=0 --param ggc-min-heapsize=0" }
6
7inline void FOO() {}
8
9template<typename> struct A
10{
11    A() {}
12    ~A() throw() {}
13};
14
15template<typename> struct B
16{
17    static void foo();
18    static void bar() { foo(); }
19};
20
21struct C {};
22
23template<typename> struct D : C
24{
25    D() {}
26    ~D() { B<void>::bar(); }
27};
28
29template<typename> struct E : D<void>
30{
31    static void baz() {}
32    E(A<void>) { baz(); }
33};
34
35void BAR()
36{
37    new E<void>(A<void>());
38}
39