// { 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;
}
