// { dg-do assemble } | |
// Origin: Jakub Jelinek <jakub@redhat.com> | |
template<class T> struct foo { | |
foo(); | |
void c(); | |
static void d(foo* x) { x->c(); } | |
}; | |
template<class T> struct bar { | |
bar(); | |
}; | |
template <class T> struct baz { | |
typedef foo<T> t; | |
t *e; | |
baz(); | |
~baz() { t::d(e); } | |
}; | |
template <class T> void foo<T>::c() | |
{ | |
bar<T>* x = (bar<T>*)this; | |
x->bar<T>::~bar(); | |
} | |
void a(void) | |
{ | |
baz<char> b; | |
} |