diff options
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r-- | clang/lib/CodeGen/CGVtable.cpp | 12 | ||||
-rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 13 |
2 files changed, 3 insertions, 22 deletions
diff --git a/clang/lib/CodeGen/CGVtable.cpp b/clang/lib/CodeGen/CGVtable.cpp index cedefba1e4e..9204e4e565c 100644 --- a/clang/lib/CodeGen/CGVtable.cpp +++ b/clang/lib/CodeGen/CGVtable.cpp @@ -3805,17 +3805,7 @@ void CodeGenVTables::EmitVTableRelatedData(GlobalDecl GD) { return; TemplateSpecializationKind kind = RD->getTemplateSpecializationKind(); - - - // The reason we have TSK_ExplicitInstantiationDeclaration in here (but not - // in Sema::MaybeMarkVirtualMembersReferenced) is for the case - // template<> void stdio_sync_filebuf<wchar_t>::xsgetn() { - // } - // extern template class stdio_sync_filebuf<wchar_t>; - // Since we are called after the extern declaration is seen. - - if (kind == TSK_ImplicitInstantiation || - kind == TSK_ExplicitInstantiationDeclaration) + if (kind == TSK_ImplicitInstantiation) CGM.DeferredVtables.push_back(RD); else GenerateClassData(CGM.getVtableLinkage(RD), RD); diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 69ce49cbb18..1606710bc5c 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -310,17 +310,8 @@ GetLinkageForFunction(ASTContext &Context, const FunctionDecl *FD, // instantiated when used so that the body can be considered for // inlining, but that no out-of-line copy of the inline function would be // generated in the translation unit. -- end note ] - - // We check the specialization kind of the class for implicit methods. - // They have a TSK_Undeclared specialization kind. - TemplateSpecializationKind TSK; - const CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(FD); - if (MD && MD->isImplicit()) - TSK = MD->getParent()->getTemplateSpecializationKind(); - else - TSK = FD->getTemplateSpecializationKind(); - - if (TSK == TSK_ExplicitInstantiationDeclaration) + if (FD->getTemplateSpecializationKind() + == TSK_ExplicitInstantiationDeclaration) return CodeGenModule::GVA_C99Inline; return CodeGenModule::GVA_CXXInline; |