From 89db1455a28af887f64bf56ffc8aaf3b7acadda5 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Mon, 22 Mar 2010 18:10:25 +0000 Subject: [PATCH] revert r99174. It caused PR6677. Will try to debug why tonight. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99188 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Sema/SemaDeclCXX.cpp | 2 +- lib/Sema/SemaTemplate.cpp | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp index 1522d6399a..13a7ead76b 100644 --- a/lib/Sema/SemaDeclCXX.cpp +++ b/lib/Sema/SemaDeclCXX.cpp @@ -5889,7 +5889,7 @@ static bool needsVtable(CXXMethodDecl *MD, ASTContext &Context) { break; case TSK_ExplicitInstantiationDeclaration: - return false; + return true; //FIXME: This looks wrong. case TSK_ExplicitInstantiationDefinition: // This is method of a explicit instantiation; mark all of the virtual diff --git a/lib/Sema/SemaTemplate.cpp b/lib/Sema/SemaTemplate.cpp index 5951549d9d..434d5563e1 100644 --- a/lib/Sema/SemaTemplate.cpp +++ b/lib/Sema/SemaTemplate.cpp @@ -4388,12 +4388,8 @@ Sema::ActOnExplicitInstantiation(Scope *S, // Instantiate the members of this class template specialization. Def = cast_or_null( Specialization->getDefinition()); - if (Def) { - // Fix a TSK_ExplicitInstantiationDeclaration followed by a - // TSK_ExplicitInstantiationDefinition - Def->setTemplateSpecializationKind(TSK); + if (Def) InstantiateClassTemplateSpecializationMembers(TemplateNameLoc, Def, TSK); - } return DeclPtrTy::make(Specialization); } -- 2.40.0