summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Sema/SemaTemplateInstantiateDecl.cpp')
-rw-r--r--clang/lib/Sema/SemaTemplateInstantiateDecl.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
index 208afa6de60..5c8aa7287ea 100644
--- a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+++ b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
@@ -599,7 +599,13 @@ TemplateDeclInstantiator::VisitTypeAliasTemplateDecl(TypeAliasTemplateDecl *D) {
}
Decl *TemplateDeclInstantiator::VisitBindingDecl(BindingDecl *D) {
- return BindingDecl::Create(SemaRef.Context, Owner, D->getLocation(),
+ auto *NewDD =
+ dyn_cast_or_null<DecompositionDecl>(SemaRef.FindInstantiatedDecl(
+ D->getLocation(), D->getDecompositionDecl(), TemplateArgs));
+ if (!NewDD)
+ return nullptr;
+
+ return BindingDecl::Create(SemaRef.Context, Owner, NewDD, D->getLocation(),
D->getIdentifier());
}
OpenPOWER on IntegriCloud