diff options
Diffstat (limited to 'lib/Sema/SemaTemplateInstantiateDecl.cpp')
-rw-r--r-- | lib/Sema/SemaTemplateInstantiateDecl.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/lib/Sema/SemaTemplateInstantiateDecl.cpp b/lib/Sema/SemaTemplateInstantiateDecl.cpp index 432217d3c4..c5173bbca7 100644 --- a/lib/Sema/SemaTemplateInstantiateDecl.cpp +++ b/lib/Sema/SemaTemplateInstantiateDecl.cpp @@ -1071,17 +1071,12 @@ Decl *TemplateDeclInstantiator::VisitUsingShadowDecl(UsingShadowDecl *D) { cast<NamedDecl>(SemaRef.FindInstantiatedDecl(D->getTargetDecl(), TemplateArgs)); - UsingShadowDecl *InstD = UsingShadowDecl::Create(SemaRef.Context, Owner, - InstUsing->getLocation(), - InstUsing, InstTarget); - InstUsing->addShadowDecl(InstD); - - if (InstTarget->isInvalidDecl() || InstUsing->isInvalidDecl()) - InstD->setInvalidDecl(); + UsingShadowDecl *InstD = SemaRef.BuildUsingShadowDecl(/*Scope*/ 0, + D->getAccess(), + InstUsing, + InstTarget); SemaRef.Context.setInstantiatedFromUsingShadowDecl(InstD, D); - InstD->setAccess(D->getAccess()); - Owner->addDecl(InstD); return InstD; } |