Skip to content

Commit 2406655

Browse files
committed
[clang] CTAD: Remove an incorrect assertion in BuildDeductionGuideForTypeAlias
1 parent 1aa48af commit 2406655

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

clang/lib/Sema/SemaTemplateDeductionGuide.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -998,8 +998,6 @@ getRHSTemplateDeclAndArgs(Sema &SemaRef, TypeAliasTemplateDecl *AliasTemplate) {
998998
Template = CTSD->getSpecializedTemplate();
999999
AliasRhsTemplateArgs = CTSD->getTemplateArgs().asArray();
10001000
}
1001-
} else {
1002-
assert(false && "unhandled RHS type of the alias");
10031001
}
10041002
return {Template, AliasRhsTemplateArgs};
10051003
}

clang/test/SemaCXX/cxx20-ctad-type-alias.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -525,3 +525,17 @@ template <ArrayType<int>::Array array> void test() {}
525525
void foo() { test<{1, 2, 3}>(); }
526526

527527
} // namespace GH113518
528+
529+
namespace GH125821 {
530+
template<typename T>
531+
struct A { A(T){} };
532+
533+
template<typename T>
534+
using Proxy = T;
535+
536+
template<typename T>
537+
using C = Proxy< A<T> >;
538+
539+
C test{ 42 }; // expected-error {{no viable constructor or deduction guide for deduction of template arguments}}
540+
541+
} // namespace GH125821

0 commit comments

Comments
 (0)