[clang] [clang] Avoid doing C++20 aggregate init during copy-initialization (PR #131320)

via cfe-commits cfe-commits at lists.llvm.org
Fri Mar 14 06:01:12 PDT 2025


================
@@ -6714,7 +6714,8 @@ void InitializationSequence::InitializeFrom(Sema &S,
         OverloadCandidateSet::iterator Best;
         OverloadingResult OR = getFailedCandidateSet().BestViableFunction(
             S, Kind.getLocation(), Best);
-        if (OR != OverloadingResult::OR_Deleted) {
+        if (OR != OverloadingResult::OR_Deleted &&
+            Kind.getKind() == InitializationKind::IK_Direct) {
----------------
cor3ntin wrote:

Presumably, this is https://eel.is/c++draft/dcl.init.general#16.6.2.sentence-1
Why do you think copy should not be valid here?

Afaik, the core issue @frederick-vs-ja mentioned here, https://github.com/llvm/llvm-project/issues/88089#issuecomment-2044223386, only applies to the array case. 


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


More information about the cfe-commits mailing list