https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117317
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu.org --- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- This really isn't specific to defaulted comparison operators, struct C { constexpr virtual bool foo () const = 0; }; struct A : public C {}; struct B : public C {}; template <int> struct D : A, B { constexpr D () {} constexpr bool foo () const override { return true; } }; constexpr D<0> d; static_assert (d.foo (), ""); ICEs already since r0-110035-g2fda8e144a7db5b, since r0-113261-g99c18869efe4d723 in that exact use_thunk spot. Maybe emit_associated_thunks should do nothing on !DECL_INTERFACE_KNOWN (fn) && DECL_DEFER_OUTPUT (fn) functions?