aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
diff options
context:
space:
mode:
authorXiangling Liao <Xiangling.Liao@ibm.com>2020-05-29 11:41:10 -0400
committerXiangling Liao <Xiangling.Liao@ibm.com>2020-05-29 13:12:59 -0400
commit26604d06b6fe10bb047a3620cf306be8648dcc20 (patch)
tree28f0948897aa5699c034683d0cb573c5f1ddf5b2 /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
parentb82a95f8bc91976a9ba663f8fa2edf15708b5c0f (diff)
downloadllvm-26604d06b6fe10bb047a3620cf306be8648dcc20.zip
llvm-26604d06b6fe10bb047a3620cf306be8648dcc20.tar.gz
llvm-26604d06b6fe10bb047a3620cf306be8648dcc20.tar.bz2
[AIX] Emit AvailableExternally Linkage on AIX
Since on AIX, our strategy is to not use -u to suppress any undefined symbols, we need to emit .extern for the symbols with AvailableExternally linkage. Differential Revision: https://reviews.llvm.org/D80642
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp')
-rw-r--r--llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
index 586de4f..68df50f 100644
--- a/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
+++ b/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
@@ -1983,7 +1983,7 @@ TargetLoweringObjectFileXCOFF::getTargetSymbol(const GlobalValue *GV,
// function entry point. We choose to always return a function descriptor
// here.
if (const GlobalObject *GO = dyn_cast<GlobalObject>(GV)) {
- if (GO->isDeclaration())
+ if (GO->isDeclarationForLinker())
return cast<MCSectionXCOFF>(getSectionForExternalReference(GO, TM))
->getQualNameSymbol();
@@ -2011,7 +2011,7 @@ MCSection *TargetLoweringObjectFileXCOFF::getExplicitSectionGlobal(
MCSection *TargetLoweringObjectFileXCOFF::getSectionForExternalReference(
const GlobalObject *GO, const TargetMachine &TM) const {
- assert(GO->isDeclaration() &&
+ assert(GO->isDeclarationForLinker() &&
"Tried to get ER section for a defined global.");
SmallString<128> Name;
@@ -2133,6 +2133,7 @@ XCOFF::StorageClass TargetLoweringObjectFileXCOFF::getStorageClassForGlobal(
return XCOFF::C_HIDEXT;
case GlobalValue::ExternalLinkage:
case GlobalValue::CommonLinkage:
+ case GlobalValue::AvailableExternallyLinkage:
return XCOFF::C_EXT;
case GlobalValue::ExternalWeakLinkage:
case GlobalValue::LinkOnceAnyLinkage:
@@ -2143,9 +2144,6 @@ XCOFF::StorageClass TargetLoweringObjectFileXCOFF::getStorageClassForGlobal(
case GlobalValue::AppendingLinkage:
report_fatal_error(
"There is no mapping that implements AppendingLinkage for XCOFF.");
- case GlobalValue::AvailableExternallyLinkage:
- report_fatal_error("unhandled AvailableExternallyLinkage when mapping "
- "linkage to StorageClass");
}
llvm_unreachable("Unknown linkage type!");
}