http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60640
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Reduced testcase:
struct A {};
struct E { ~E (); };
struct B { virtual unsigned foo () const; };
struct C { virtual void foo (); };
struct D : public A { D (A *); };
struct I : public D { A i; I (int) : D (0) {} };
struct F : E { virtual unsigned foo (bool) const; };
template <class T>
struct G : public T {};
struct J : C, public F {};
struct K : public J { unsigned foo (bool) const { return 0; } };
struct H : B
{
H (A);
unsigned foo () const { return bar ().foo (0); }
const F &bar () const { return h; }
G<K> h;
};
template <class T>
void
baz ()
{
I f (0);
T d (f);
}
void
test ()
{
baz<H> ();
}
Regressed with r205019.