diff options
Diffstat (limited to 'lib/CodeGen/CodeGenModule.cpp')
-rw-r--r-- | lib/CodeGen/CodeGenModule.cpp | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp index a4859e7fbb..8eb2176ca3 100644 --- a/lib/CodeGen/CodeGenModule.cpp +++ b/lib/CodeGen/CodeGenModule.cpp @@ -1699,8 +1699,11 @@ bool CodeGenModule::GetCPUAndFeaturesAttributes(GlobalDecl GD, return AddedAttr; } -void CodeGenModule::setPragmaSectionAttributes(const Decl *D, - llvm::GlobalObject *GO) { +void CodeGenModule::setNonAliasAttributes(GlobalDecl GD, + llvm::GlobalObject *GO) { + const Decl *D = GD.getDecl(); + SetCommonAttributes(GD, GO); + if (D) { if (auto *GV = dyn_cast<llvm::GlobalVariable>(GO)) { if (auto *SA = D->getAttr<PragmaClangBSSSectionAttr>()) @@ -1718,26 +1721,6 @@ void CodeGenModule::setPragmaSectionAttributes(const Decl *D, if (!D->getAttr<SectionAttr>()) F->addFnAttr("implicit-section-name", SA->getName()); - if (auto *SA = D->getAttr<PragmaClangBSSSectionAttr>()) - F->addFnAttr("bss-section", SA->getName()); - if (auto *SA = D->getAttr<PragmaClangDataSectionAttr>()) - F->addFnAttr("data-section", SA->getName()); - if (auto *SA = D->getAttr<PragmaClangRodataSectionAttr>()) - F->addFnAttr("rodata-section", SA->getName()); - if (auto *SA = D->getAttr<PragmaClangRelroSectionAttr>()) - F->addFnAttr("relro-section", SA->getName()); - } - } -} - -void CodeGenModule::setNonAliasAttributes(GlobalDecl GD, - llvm::GlobalObject *GO) { - const Decl *D = GD.getDecl(); - SetCommonAttributes(GD, GO); - setPragmaSectionAttributes(D, GO); - - if (D) { - if (auto *F = dyn_cast<llvm::Function>(GO)) { llvm::AttrBuilder Attrs; if (GetCPUAndFeaturesAttributes(GD, Attrs)) { // We know that GetCPUAndFeaturesAttributes will always have the |