diff options
author | Lang Hames <lhames@gmail.com> | 2014-02-18 21:46:39 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2014-02-18 21:46:39 +0000 |
commit | 25818a6e26710e555dd8a32e8a6475ec20b60d65 (patch) | |
tree | 01656441e0e9e46da6f2c2890f72dfe0cfb145e4 | |
parent | a3de371b531a5667e2db3eb0cb1c8b9fc55941e4 (diff) | |
download | llvm-25818a6e26710e555dd8a32e8a6475ec20b60d65.tar.gz |
Consistently check 'IsCode' when allocating sections in RuntimeDyld (via
findOrEmitSection).
Vaidas Gasiunas's patch, r201259, fixed one instance where we were always
allocating sections as text. This patch fixes the remaining buggy call sites.
No test case: This isn't breaking anything that I know of, it's just
inconsistent.
<rdar://problem/15943542>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201605 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp | 4 | ||||
-rw-r--r-- | lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp index 52f33ca11ca5..c3736691c28f 100644 --- a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp +++ b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp @@ -709,7 +709,9 @@ void RuntimeDyldELF::findOPDEntrySection(ObjectImage &Obj, section_iterator tsi(Obj.end_sections()); check(TargetSymbol->getSection(tsi)); - Rel.SectionID = findOrEmitSection(Obj, (*tsi), true, LocalSections); + bool IsCode = false; + tsi->isText(IsCode); + Rel.SectionID = findOrEmitSection(Obj, (*tsi), IsCode, LocalSections); Rel.Addend = (intptr_t)Addend; return; } diff --git a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp index 0408337fff73..be80cbcfda75 100644 --- a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp +++ b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp @@ -378,7 +378,9 @@ void RuntimeDyldMachO::processRelocationRef(unsigned SectionID, } } else { SectionRef Sec = MachO->getRelocationSection(RE); - Value.SectionID = findOrEmitSection(Obj, Sec, true, ObjSectionToID); + bool IsCode = false; + Sec.isText(IsCode); + Value.SectionID = findOrEmitSection(Obj, Sec, IsCode, ObjSectionToID); uint64_t Addr; Sec.getAddress(Addr); Value.Addend = Addend - Addr; |