@@ -752,8 +752,12 @@ llvm::DenseSet<const NamedDecl *> getSourceDeductionGuides(DeclarationName Name,
752752 if (const auto *FTD = dyn_cast<FunctionTemplateDecl>(D))
753753 D = FTD->getTemplatedDecl ();
754754
755- if (const auto *GD = dyn_cast<CXXDeductionGuideDecl>(D))
755+ if (const auto *GD = dyn_cast<CXXDeductionGuideDecl>(D)) {
756+ assert (GD->getSourceDeductionGuide () &&
757+ " deduction guide for alias template must have a source deduction "
758+ " guide" );
756759 Result.insert (GD->getSourceDeductionGuide ());
760+ }
757761 }
758762 return Result;
759763}
@@ -1209,14 +1213,14 @@ void DeclareImplicitDeductionGuidesForTypeAlias(
12091213 if (AliasTemplate->isInvalidDecl ())
12101214 return ;
12111215 auto &Context = SemaRef.Context ;
1212- auto SourceDeductionGuides = getSourceDeductionGuides (
1213- Context.DeclarationNames .getCXXDeductionGuideName (AliasTemplate),
1214- AliasTemplate->getDeclContext ());
1215-
12161216 auto [Template, AliasRhsTemplateArgs] =
12171217 getRHSTemplateDeclAndArgs (SemaRef, AliasTemplate);
12181218 if (!Template)
12191219 return ;
1220+ auto SourceDeductionGuides = getSourceDeductionGuides (
1221+ Context.DeclarationNames .getCXXDeductionGuideName (AliasTemplate),
1222+ AliasTemplate->getDeclContext ());
1223+
12201224 DeclarationNameInfo NameInfo (
12211225 Context.DeclarationNames .getCXXDeductionGuideName (Template), Loc);
12221226 LookupResult Guides (SemaRef, NameInfo, clang::Sema::LookupOrdinaryName);
0 commit comments