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.