[clang] [Clang][RFC] Bypass TAD during overload resolution if a perfect match exists (PR #133426)
Richard Smith via cfe-commits
cfe-commits at lists.llvm.org
Mon Mar 31 14:34:58 PDT 2025
================
@@ -8455,11 +8524,17 @@ void Sema::AddNonMemberOperatorCandidates(
if (FunTmpl) {
AddTemplateOverloadCandidate(FunTmpl, F.getPair(), ExplicitTemplateArgs,
FunctionArgs, CandidateSet);
- if (CandidateSet.getRewriteInfo().shouldAddReversed(*this, Args, FD))
- AddTemplateOverloadCandidate(
- FunTmpl, F.getPair(), ExplicitTemplateArgs,
- {FunctionArgs[1], FunctionArgs[0]}, CandidateSet, false, false,
- true, ADLCallKind::NotADL, OverloadCandidateParamOrder::Reversed);
+ if (CandidateSet.getRewriteInfo().shouldAddReversed(*this, Args, FD)) {
+
+ // As template candidates are not deduced immediately,
+ // persist the arry in the overload set.
----------------
zygoloid wrote:
```suggestion
// persist the array in the overload set.
```
https://github.com/llvm/llvm-project/pull/133426
More information about the cfe-commits
mailing list