https://github.com/hokein updated https://github.com/llvm/llvm-project/pull/126532
>From cc0b4f59c273db9baff85a457ef534d6f7ca9cfb Mon Sep 17 00:00:00 2001 From: Haojian Wu <hokein...@gmail.com> Date: Mon, 10 Feb 2025 15:44:00 +0100 Subject: [PATCH] [clang] CTAD: Remove an incorrect assertion in BuildDeductionGuideForTypeAlias --- clang/lib/Sema/SemaTemplateDeductionGuide.cpp | 2 -- clang/test/SemaCXX/cxx20-ctad-type-alias.cpp | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/clang/lib/Sema/SemaTemplateDeductionGuide.cpp b/clang/lib/Sema/SemaTemplateDeductionGuide.cpp index e5931f4684a57d8..b789824d9702081 100644 --- a/clang/lib/Sema/SemaTemplateDeductionGuide.cpp +++ b/clang/lib/Sema/SemaTemplateDeductionGuide.cpp @@ -998,8 +998,6 @@ getRHSTemplateDeclAndArgs(Sema &SemaRef, TypeAliasTemplateDecl *AliasTemplate) { Template = CTSD->getSpecializedTemplate(); AliasRhsTemplateArgs = CTSD->getTemplateArgs().asArray(); } - } else { - assert(false && "unhandled RHS type of the alias"); } return {Template, AliasRhsTemplateArgs}; } diff --git a/clang/test/SemaCXX/cxx20-ctad-type-alias.cpp b/clang/test/SemaCXX/cxx20-ctad-type-alias.cpp index 37dca2215af6ba3..832ce15e662508d 100644 --- a/clang/test/SemaCXX/cxx20-ctad-type-alias.cpp +++ b/clang/test/SemaCXX/cxx20-ctad-type-alias.cpp @@ -525,3 +525,17 @@ template <ArrayType<int>::Array array> void test() {} void foo() { test<{1, 2, 3}>(); } } // namespace GH113518 + +namespace GH125821 { +template<typename T> +struct A { A(T){} }; + +template<typename T> +using Proxy = T; + +template<typename T> +using C = Proxy< A<T> >; + +C test{ 42 }; // expected-error {{no viable constructor or deduction guide for deduction of template arguments}} + +} // namespace GH125821 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits