summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter
diff options
context:
space:
mode:
authorJoerg Sonnenberger <joerg@bec.de>2013-09-03 12:06:33 +0000
committerJoerg Sonnenberger <joerg@bec.de>2013-09-03 12:06:33 +0000
commit7d5aed5ce526c1d185b2d16996abef6b82068af8 (patch)
treed7540916df96158c1083e9359c849bf3980e4253 /lld/lib/ReaderWriter
parent1ecb96f652a676ba84adc8049e4fbd7fbddc8af6 (diff)
downloadbcm5719-llvm-7d5aed5ce526c1d185b2d16996abef6b82068af8.tar.gz
bcm5719-llvm-7d5aed5ce526c1d185b2d16996abef6b82068af8.zip
A weak reference to a symbol that is only weakly referenced in
dependencies should remain weak, not get promoted to undef or dropped. llvm-svn: 189793
Diffstat (limited to 'lld/lib/ReaderWriter')
-rw-r--r--lld/lib/ReaderWriter/ELF/DynamicFile.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/lld/lib/ReaderWriter/ELF/DynamicFile.h b/lld/lib/ReaderWriter/ELF/DynamicFile.h
index 442382421c8..b5c3f29531e 100644
--- a/lld/lib/ReaderWriter/ELF/DynamicFile.h
+++ b/lld/lib/ReaderWriter/ELF/DynamicFile.h
@@ -57,7 +57,9 @@ public:
if (i->st_shndx == llvm::ELF::SHN_ABS)
continue;
- if (useShlibUndefines && (i->st_shndx == llvm::ELF::SHN_UNDEF)) {
+ if (i->st_shndx == llvm::ELF::SHN_UNDEF) {
+ if (!useShlibUndefines)
+ continue;
// Create an undefined atom.
if (!name->empty()) {
auto *newAtom =
OpenPOWER on IntegriCloud