zyn0217 wrote: I see the problem here:
When substituting into the constraint __is_derived_from_optional with [_Tp = __sfinae_assign_base] prior to substituting the three-way operator, we must also substitute into the lambda call expression. This requires instantiating the lambda body to deduce its return type, and instantiating the lambda body necessitates mangling its parent for Microsoft mangling. In this case, the lambda resides within the function declaration `compare_three_way_result_t<_Tp, _Up> operator<=>(_Tp, _Up)`, which remains uninstantiated at this point! @cor3ntin https://github.com/llvm/llvm-project/pull/102857 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits