diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2019-02-13 21:49:55 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2019-02-13 21:49:55 +0000 |
commit | 8331f61a51a7a0a1efbf5ed398e181593023d151 (patch) | |
tree | 009e2ef3bab288e03bf760ff9ad158fc7695aee4 /llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp | |
parent | 776179088159837057d19404b99dc8107e31f76b (diff) | |
download | bcm5719-llvm-8331f61a51a7a0a1efbf5ed398e181593023d151.tar.gz bcm5719-llvm-8331f61a51a7a0a1efbf5ed398e181593023d151.zip |
ELF: Allow GOT relocs pointing to non-preemptable ifunc to resolve to an IRELATIVE where possible.
Non-GOT non-PLT relocations to non-preemptible ifuncs result in the
creation of a canonical PLT, which now takes the identity of the IFUNC
in the symbol table. This (a) ensures address consistency inside and
outside the module, and (b) fixes a bug where some of these relocations
end up pointing to the resolver.
Fixes (at least) PR40474 and PR40501.
Differential Revision: https://reviews.llvm.org/D57371
llvm-svn: 353981
Diffstat (limited to 'llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp')
0 files changed, 0 insertions, 0 deletions