diff options
author | Tim Northover <Tim.Northover@arm.com> | 2012-12-17 17:59:35 +0000 |
---|---|---|
committer | Tim Northover <Tim.Northover@arm.com> | 2012-12-17 17:59:35 +0000 |
commit | 788221398a2cdb219c37625b5176211e7c7d44a6 (patch) | |
tree | aae3721b92fd2dba0c89575782f24fd9a4b7e052 /lib/ExecutionEngine | |
parent | 1c2b2f9c56c01aa1c317da4fd0234eaa1fe6e739 (diff) | |
download | external_llvm-788221398a2cdb219c37625b5176211e7c7d44a6.zip external_llvm-788221398a2cdb219c37625b5176211e7c7d44a6.tar.gz external_llvm-788221398a2cdb219c37625b5176211e7c7d44a6.tar.bz2 |
Query section for whether it should be executable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170350 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/ExecutionEngine')
-rw-r--r-- | lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp index f348a33..c5b807b 100644 --- a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp +++ b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp @@ -107,20 +107,18 @@ ObjectImage *RuntimeDyldImpl::loadObject(ObjectBuffer *InputBuffer) { SymType == object::SymbolRef::ST_Unknown) { uint64_t FileOffset; StringRef SectionData; + bool IsCode; section_iterator si = obj->end_sections(); Check(i->getFileOffset(FileOffset)); Check(i->getSection(si)); if (si == obj->end_sections()) continue; Check(si->getContents(SectionData)); + Check(si->isText(IsCode)); const uint8_t* SymPtr = (const uint8_t*)InputBuffer->getBufferStart() + (uintptr_t)FileOffset; uintptr_t SectOffset = (uintptr_t)(SymPtr - (const uint8_t*)SectionData.begin()); - unsigned SectionID = - findOrEmitSection(*obj, - *si, - SymType == object::SymbolRef::ST_Function, - LocalSections); + unsigned SectionID = findOrEmitSection(*obj, *si, IsCode, LocalSections); LocalSymbols[Name.data()] = SymbolLoc(SectionID, SectOffset); DEBUG(dbgs() << "\tFileOffset: " << format("%p", (uintptr_t)FileOffset) << " flags: " << flags |