aboutsummaryrefslogtreecommitdiff
path: root/lld/MachO/Symbols.h
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2021-12-02 21:02:54 +0000
committerDimitry Andric <dim@FreeBSD.org>2021-12-02 21:02:54 +0000
commitf65dcba83ce5035ab88a85fe17628b447eb56e1b (patch)
tree35f37bb72b3cfc6060193e66c76ee7c9478969b0 /lld/MachO/Symbols.h
parent846a2208a8ab099f595fe7e8b2e6d54a7b5e67fb (diff)
downloadsrc-f65dcba83ce5035ab88a85fe17628b447eb56e1b.tar.gz
src-f65dcba83ce5035ab88a85fe17628b447eb56e1b.zip
Diffstat (limited to 'lld/MachO/Symbols.h')
-rw-r--r--lld/MachO/Symbols.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/lld/MachO/Symbols.h b/lld/MachO/Symbols.h
index cc6f51cc5fd3..d1182a0a2d32 100644
--- a/lld/MachO/Symbols.h
+++ b/lld/MachO/Symbols.h
@@ -236,7 +236,12 @@ public:
uint64_t getVA() const override;
bool isWeakDef() const override { return weakDef; }
- bool isWeakRef() const override { return refState == RefState::Weak; }
+
+ // Symbols from weak libraries/frameworks are also weakly-referenced.
+ bool isWeakRef() const override {
+ return refState == RefState::Weak ||
+ (file && getFile()->umbrella->forceWeakImport);
+ }
bool isReferenced() const { return refState != RefState::Unreferenced; }
bool isTlv() const override { return tlv; }
bool isDynamicLookup() const { return file == nullptr; }