https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102465
Bug ID: 102465 Summary: Inaccessible operator == breaks child class with spaceship operator Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: fchelnokov at gmail dot com Target Milestone: --- Below code is valid: ``` #include <compare> struct A { std::strong_ordering operator <=>(const A &) const = default; bool operator==(int) const; }; struct B : A { virtual std::strong_ordering operator <=>(const B &) const noexcept = default; }; B b; //GCC error here ``` but GCC prints an error compiling it. Demo: https://gcc.godbolt.org/z/584nhfxxs It shall just delete `operator ==` in B.