summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2019-12-20 21:40:50 -0800
committerFangrui Song <maskray@google.com>2020-01-08 09:41:59 -0800
commitb841e119d77ed0502e3a2e710f26a899bef28b3c (patch)
tree33745e0e9cc344060845e49dd4010c7c5cfb2a7f
parent96e2376d02f0840e82b96314108660ecabe63c7f (diff)
downloadbcm5719-llvm-b841e119d77ed0502e3a2e710f26a899bef28b3c.tar.gz
bcm5719-llvm-b841e119d77ed0502e3a2e710f26a899bef28b3c.zip
[ELF] Delete an unused special rule from isStaticLinkTimeConstant. NFC
Weak undefined symbols are preemptible after D71794. if (sym.isPreemptible) return false; if (!config->isPic) return true; // isPic means includeInDynsym is true after D71794. ... // We can delete this if because it can never be true. if (sym.isUndefWeak) return true; Differential Revision: https://reviews.llvm.org/D71795
-rw-r--r--lld/ELF/Relocations.cpp10
1 files changed, 0 insertions, 10 deletions
diff --git a/lld/ELF/Relocations.cpp b/lld/ELF/Relocations.cpp
index 894fe2eb93b..8025779d18d 100644
--- a/lld/ELF/Relocations.cpp
+++ b/lld/ELF/Relocations.cpp
@@ -404,17 +404,7 @@ static bool isStaticLinkTimeConstant(RelExpr e, RelType type, const Symbol &sym,
if (!absVal && !relE)
return target->usesOnlyLowPageBits(type);
- // Relative relocation to an absolute value. This is normally unrepresentable,
- // but if the relocation refers to a weak undefined symbol, we allow it to
- // resolve to the image base. This is a little strange, but it allows us to
- // link function calls to such symbols. Normally such a call will be guarded
- // with a comparison, which will load a zero from the GOT.
- // Another special case is MIPS _gp_disp symbol which represents offset
- // between start of a function and '_gp' value and defined as absolute just
- // to simplify the code.
assert(absVal && relE);
- if (sym.isUndefWeak())
- return true;
// We set the final symbols values for linker script defined symbols later.
// They always can be computed as a link time constant.
OpenPOWER on IntegriCloud