[clang] [clang][Sema] fix incorrect ambiguous function call which use designated-initializer as template argument (PR #167159)
Zhikai Zeng via cfe-commits
cfe-commits at lists.llvm.org
Fri Nov 21 22:48:19 PST 2025
================
@@ -7291,11 +7291,26 @@ ExprResult Sema::CheckTemplateArgument(NamedDecl *Param, QualType ParamType,
Result = ActOnConstantExpression(Result.get());
if (Result.isInvalid() || !Result.get())
return ExprError();
+ Expr* OldDeductionArg = DeductionArg;
setDeductionArg(ActOnFinishFullExpr(Result.get(), Arg->getBeginLoc(),
/*DiscardedValue=*/false,
/*IsConstexpr=*/true,
/*IsTemplateArgument=*/true)
.get());
+ // As for designated initializer, there might be multiple candidate
----------------
Backl1ght wrote:
Field decls are required by checks after `CheckDesignatedInitializer`. e.g.
https://github.com/llvm/llvm-project/blob/545c3022d28164f5040036a7b515a85f74dbd5cc/clang/lib/Sema/SemaInit.cpp#L2498-L2516
https://github.com/llvm/llvm-project/pull/167159
More information about the cfe-commits
mailing list