diff options
Diffstat (limited to 'clang/lib/Sema/SemaTemplateDeductionGuide.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaTemplateDeductionGuide.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaTemplateDeductionGuide.cpp b/clang/lib/Sema/SemaTemplateDeductionGuide.cpp index 604591408728..3d54d1eb4373 100644 --- a/clang/lib/Sema/SemaTemplateDeductionGuide.cpp +++ b/clang/lib/Sema/SemaTemplateDeductionGuide.cpp @@ -995,8 +995,8 @@ getRHSTemplateDeclAndArgs(Sema &SemaRef, TypeAliasTemplateDecl *AliasTemplate) { // Cases where template arguments in the RHS of the alias are not // dependent. e.g. // using AliasFoo = Foo<bool>; - if (const auto *CTSD = llvm::dyn_cast<ClassTemplateSpecializationDecl>( - RT->getAsCXXRecordDecl())) { + if (const auto *CTSD = + dyn_cast<ClassTemplateSpecializationDecl>(RT->getOriginalDecl())) { Template = CTSD->getSpecializedTemplate(); AliasRhsTemplateArgs = CTSD->getTemplateArgs().asArray(); } @@ -1056,7 +1056,7 @@ BuildDeductionGuideForTypeAlias(Sema &SemaRef, // The (trailing) return type of the deduction guide. const TemplateSpecializationType *FReturnType = RType->getAs<TemplateSpecializationType>(); - if (const auto *ICNT = RType->getAs<InjectedClassNameType>()) + if (const auto *ICNT = RType->getAsCanonical<InjectedClassNameType>()) // implicitly-generated deduction guide. FReturnType = cast<TemplateSpecializationType>( ICNT->getOriginalDecl()->getCanonicalTemplateSpecializationType( |
