summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Protivensky <dprotivensky@accesssoftek.com>2015-03-27 12:41:36 +0000
committerDenis Protivensky <dprotivensky@accesssoftek.com>2015-03-27 12:41:36 +0000
commit4bdaefdcbe1bccd2ba7ba1a4c09e4d10b2cc5499 (patch)
treed09a1ff3dfc0e2807faa76235efcc5ab209382e9
parent2034ce665ab37c98f894fcc814482521b91768ac (diff)
downloadbcm5719-llvm-4bdaefdcbe1bccd2ba7ba1a4c09e4d10b2cc5499.tar.gz
bcm5719-llvm-4bdaefdcbe1bccd2ba7ba1a4c09e4d10b2cc5499.zip
[ARM] Simplify IFUNC code by removing useless handler
llvm-svn: 233374
-rw-r--r--lld/lib/ReaderWriter/ELF/ARM/ARMRelocationPass.cpp13
1 files changed, 1 insertions, 12 deletions
diff --git a/lld/lib/ReaderWriter/ELF/ARM/ARMRelocationPass.cpp b/lld/lib/ReaderWriter/ELF/ARM/ARMRelocationPass.cpp
index 686396610d6..02bcb559117 100644
--- a/lld/lib/ReaderWriter/ELF/ARM/ARMRelocationPass.cpp
+++ b/lld/lib/ReaderWriter/ELF/ARM/ARMRelocationPass.cpp
@@ -289,14 +289,12 @@ protected:
ga->addReferenceELF_ARM(R_ARM_ABS32, 0, da, 0);
ga->addReferenceELF_ARM(R_ARM_IRELATIVE, 0, da, 0);
auto pa = createPLTforGOT(ga);
-
#ifndef NDEBUG
ga->_name = "__got_ifunc_";
ga->_name += da->name();
pa->_name = "__plt_ifunc_";
pa->_name += da->name();
#endif
-
_gotMap[da] = ga;
_pltMap[da] = pa;
_gotVector.push_back(ga);
@@ -304,14 +302,6 @@ protected:
return pa;
}
- /// \brief Handle adding of PLT entry by marking the reference
- /// as requiring veneer generation.
- std::error_code handlePLTEntry(Reference &ref, const PLTAtom *pa) {
- ref.setTarget(pa);
-
- return std::error_code();
- }
-
/// \brief Redirect the call to the PLT stub for the target IFUNC.
///
/// This create a PLT and GOT entry for the IFUNC if one does not exist. The
@@ -319,8 +309,7 @@ protected:
std::error_code handleIFUNC(const Reference &ref) {
auto target = dyn_cast<const DefinedAtom>(ref.target());
if (target && target->contentType() == DefinedAtom::typeResolver) {
- return handlePLTEntry(const_cast<Reference &>(ref),
- getIFUNCPLTEntry(target));
+ const_cast<Reference &>(ref).setTarget(getIFUNCPLTEntry(target));
}
return std::error_code();
}
OpenPOWER on IntegriCloud