diff options
| author | Fangrui Song <maskray@google.com> | 2019-12-20 21:40:50 -0800 |
|---|---|---|
| committer | Fangrui Song <maskray@google.com> | 2020-01-08 09:41:59 -0800 |
| commit | b841e119d77ed0502e3a2e710f26a899bef28b3c (patch) | |
| tree | 33745e0e9cc344060845e49dd4010c7c5cfb2a7f | |
| parent | 96e2376d02f0840e82b96314108660ecabe63c7f (diff) | |
| download | bcm5719-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.cpp | 10 |
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. |

