1// { dg-do assemble } 2// Origin: Jakub Jelinek <jakub@redhat.com> 3 4template<class T> struct foo { 5 foo(); 6 void c(); 7 static void d(foo* x) { x->c(); } 8}; 9template<class T> struct bar { 10 bar(); 11}; 12template <class T> struct baz { 13 typedef foo<T> t; 14 t *e; 15 baz(); 16 ~baz() { t::d(e); } 17}; 18template <class T> void foo<T>::c() 19{ 20 bar<T>* x = (bar<T>*)this; 21 x->bar<T>::~bar(); 22} 23void a(void) 24{ 25 baz<char> b; 26} 27