https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91969
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> --- A reduced test-case: $ cat ice.C enum by {}; class A { public: class B { public: virtual void m_fn2(by) = 0; }; virtual int m_fn1(); B *cf; }; by a; class C : A, A::B { void m_fn2(by); }; void C::m_fn2(by) { cf->m_fn2(a); }