https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118387
--- Comment #3 from Yihe Li <winmikedows at hotmail dot com> --- Indeed, the second case should be ill-formed on declaration of <=>. I misread the relevant clause in the standard and assumed that if the implicitly generated body of <=> would be invalid, then the operator should be defaulted as deleted. It seems that in the no-member case, the standard actually mandates ill-formedness here.