================
@@ -7688,7 +7688,7 @@ bool Sema::CheckNonDependentConversions(
     QualType ParamType = ParamTypes[I + Offset];
     if (!ParamType->isDependentType()) {
       unsigned ConvIdx = PO == OverloadCandidateParamOrder::Reversed
-                             ? 0
+                             ? Args.size() - 1 - (ThisConversions + I)
----------------
ilya-biryukov wrote:

Thanks for clearing this up for me offline. After going through an example I 
finally got what was wrong here.
For reversed operators `Args.size()` is always 2. When `ThisConversions == 0` 
(i.e. non-methods), we were writing conversions for *both* arguments into 
`ConvIdx == 0`, after this change we correctly loop through both.
When `ThisConversions == 1`, both versions work the same.

Indeed, the tests you added already check this behavior. Thanks! Resolving this.

https://github.com/llvm/llvm-project/pull/69595
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to