https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94468
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|needs-reduction | --- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> --- I reduced a test-case: $ cat pr94468.cc bool a(); enum b {}; class c; template <typename> struct d; template <class e, typename g, typename... h> struct d<g (e::*)(h...)> { typedef e i; }; class j { public: j(void(int, j *, c *, void **, bool *)) {} }; template <typename l> class m : public j { l ab; static void ac(int, j *, c *, void **, bool *); public: m(l f) : j(ac), ab(f) {} }; b ad; class c { public: template <typename n, typename o> void ae(typename d<n>::i *p, n af, typename d<o>::i *ag, o ah) { ai(p, &af, ag, &ah, new m<o>(ah), ad, &d<n>::i::aj); } void ai(c *, void *, c *, void *, j *, b, int *); }; class r : public c { public: static int aj; void t(); }; class al : public c { public: static int aj; void am(); void ao(); void ap(); }; class aq { public: aq(const int &, const int & = int()); }; class ar : public c { public: ~ar(); }; class as : public ar { as(); void at(); void au(); void av(); }; class u : public c { public: void ax(); }; class ay { public: int az(); }; class ba : public c { public: static int aj; void bb(); }; class bc : public al { public: bc() { if (a()) am(); } }; as::as() { al *bd = new bc; ae(bd, &al::ao, this, &as::au); ae(bd, &al::ap, this, &as::av); r be; u bf; ae(&be, &r::t, &bf, &u::ax); c bg = *bd; ae(static_cast<ba *>(&bg), &ba::bb, this, &as::at); ay bh; aq am(bh.az()); }