https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116168
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |diagnostic, | |ice-on-valid-code Ever confirmed|0 |1 Last reconfirmed| |2024-08-01 Status|UNCONFIRMED |NEW --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- clang reports: ``` <source>:25:18: error: cannot use builtin operator '<=>' because type 'std::partial_ordering' was not found; include <compare> 25 | auto a = 1.0 <=> 2.0; | ^ ``` MSVC reports: ``` <source>(25): error C7547: standard type 'std::partial_ordering' ill-formed: member 'less' was not found ``` EDG reports: ``` "<source>", line 25: error: no valid std::strong_ordering type found (<compare> must be included) auto a = 1.0 <=> 2.0; ^ "<source>", line 25: error: no valid std::weak_ordering type found (<compare> must be included) auto a = 1.0 <=> 2.0; ^ "<source>", line 25: warning: variable "a" was declared but never referenced auto a = 1.0 <=> 2.0; ^ ``` I think only EDG error message is decent and correct here. Ever other compiler rejects it for the wrong reason.