https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118387
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Note, for the second testcase, what happened is that when we synthetize the defaulted operator <=>, we indeed construct that static cast as required in the standard and figure out it is invalid, but we do so with complain = tf_none, i.e. no errors/warnings are reported. For all other possible problems during synthesization the function is marked as deleted and if/when we try to explain why it is deleted, we diagnose errors during its synthesization. Just in this case it actually isn't marked as deleted. So, I wonder if it isn't omission of the standard and it should have a sentence about this case as well, or what else should be done instead.