diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2010-03-23 19:55:22 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2010-03-23 19:55:22 +0000 |
commit | f075b229643aa07389a6055352ade7446241c3ca (patch) | |
tree | 197cd0788a3b87679989c5d5d77f08f710e0cfcc /lib/CodeGen | |
parent | f921a4868cf1876636f6684e7f68697b18c0cb47 (diff) |
revert 99311. Looks like it broke darwin bootstrap.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99317 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
-rw-r--r-- | lib/CodeGen/CGVtable.cpp | 12 | ||||
-rw-r--r-- | lib/CodeGen/CodeGenModule.cpp | 13 |
2 files changed, 3 insertions, 22 deletions
diff --git a/lib/CodeGen/CGVtable.cpp b/lib/CodeGen/CGVtable.cpp index cedefba1e4..9204e4e565 100644 --- a/lib/CodeGen/CGVtable.cpp +++ b/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/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp index 69ce49cbb1..1606710bc5 100644 --- a/lib/CodeGen/CodeGenModule.cpp +++ b/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; |