зеркало из https://github.com/microsoft/clang-1.git
revert my previous patch, I committed the wrong file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71585 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
2df0716635
Коммит
005eedce54
|
@ -245,7 +245,7 @@ GetLinkageForFunction(const FunctionDecl *FD, const LangOptions &Features) {
|
|||
if (FD->getStorageClass() == FunctionDecl::Static)
|
||||
return CodeGenModule::GVA_Internal;
|
||||
|
||||
if (!FD->isInline() && !isa<CXXMethodDecl>(FD))
|
||||
if (!FD->isInline())
|
||||
return CodeGenModule::GVA_StrongExternal;
|
||||
|
||||
// If the inline function explicitly has the GNU inline attribute on it, or if
|
||||
|
@ -600,20 +600,12 @@ llvm::Constant *CodeGenModule::GetOrCreateLLVMFunction(const char *MangledName,
|
|||
// deferred decl with this name, remember that we need to emit it at the end
|
||||
// of the file.
|
||||
llvm::DenseMap<const char*, GlobalDecl>::iterator DDI =
|
||||
DeferredDecls.find(MangledName);
|
||||
DeferredDecls.find(MangledName);
|
||||
if (DDI != DeferredDecls.end()) {
|
||||
// Move the potentially referenced deferred decl to the DeferredDeclsToEmit
|
||||
// list, and remove it from DeferredDecls (since we don't need it anymore).
|
||||
DeferredDeclsToEmit.push_back(DDI->second);
|
||||
DeferredDecls.erase(DDI);
|
||||
} else
|
||||
if (MayDeferGeneration(D)) {
|
||||
// If this the first reference to a C++ inline function in a class, queue up
|
||||
// the deferred function body for emission. These are not seen as
|
||||
// top-level declarations.
|
||||
if (!isa<CXXConstructorDecl>(D) &&
|
||||
!isa<CXXDestructorDecl>(D))
|
||||
DeferredDeclsToEmit.push_back(GlobalDecl(D));
|
||||
}
|
||||
|
||||
// This function doesn't have a complete type (for example, the return
|
||||
|
|
Загрузка…
Ссылка в новой задаче