[clang] [llvm] [Clang][C++23] Core language changes from P1467R9 extended floating-point types and standard names. (PR #78503)

Ilya Biryukov via cfe-commits cfe-commits at lists.llvm.org
Fri Mar 7 05:49:22 PST 2025


================
@@ -4446,6 +4455,73 @@ CompareStandardConversionSequences(Sema &S, SourceLocation Loc,
                ? ImplicitConversionSequence::Better
                : ImplicitConversionSequence::Worse;
 
+  // C++23 [over.ics.rank]p4b3:
+  // A conversion in either direction between floating-point type FP1 and
+  // floating-point type FP2 is better than a conversion in the same direction
+  // between FP1 and arithmetic type T3 if:
+  // 1) The floating-point conversion rank ([conv.rank]) of FP1 is equal to the
+  // rank of FP2, and 2) T3 is not a floating-point type, or T3 is a
+  // floating-point type whose rank is not equal to the rank of FP1, or the
+  // floating-point conversion subrank ([conv.rank]) of FP2 is greater than the
+  // subrank of T3.
----------------
ilya-biryukov wrote:

I am somewhat familiar with the overload resolution code and this has popped up in our internal discussions, so I would be happy to review that part if you need help.

I am not sure how much more eyes is needed on the whole change, let me know if looking only at overloading is useful...

https://github.com/llvm/llvm-project/pull/78503


More information about the cfe-commits mailing list