diff options
author | Joerg Sonnenberger <joerg@bec.de> | 2013-09-03 12:06:33 +0000 |
---|---|---|
committer | Joerg Sonnenberger <joerg@bec.de> | 2013-09-03 12:06:33 +0000 |
commit | 7d5aed5ce526c1d185b2d16996abef6b82068af8 (patch) | |
tree | d7540916df96158c1083e9359c849bf3980e4253 /lld/lib/ReaderWriter | |
parent | 1ecb96f652a676ba84adc8049e4fbd7fbddc8af6 (diff) | |
download | bcm5719-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.h | 4 |
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 = |