diff options
author | Tom Stellard <tstellar@redhat.com> | 2017-07-07 15:20:17 +0000 |
---|---|---|
committer | Tom Stellard <tstellar@redhat.com> | 2017-07-07 15:20:17 +0000 |
commit | a6b7efc7e3e8cbf4255b2a018f53fe4498eb0dc9 (patch) | |
tree | 7a7090524c8b15bb8477269607886f9cac402cb1 | |
parent | dd36f7573330ef12c1b150a83ae128c5c4d26a77 (diff) | |
download | bcm5719-llvm-a6b7efc7e3e8cbf4255b2a018f53fe4498eb0dc9.tar.gz bcm5719-llvm-a6b7efc7e3e8cbf4255b2a018f53fe4498eb0dc9.zip |
[MachO] Add missing byte-swaps when reading dyld_info
Summary:
This fixes the following tests on big-endian hosts:
lld :: mach-o/dylib-install-names.yaml
lld :: mach-o/force_load-dylib.yaml
lld :: mach-o/lib-search-paths.yaml
lld :: mach-o/upward-dylib-load-command.yaml
Reviewers: lhames, kledzik, ruiu
Reviewed By: ruiu
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D35022
llvm-svn: 307405
-rw-r--r-- | lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp b/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp index edbe576f008..b54054726df 100644 --- a/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp +++ b/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp @@ -508,9 +508,9 @@ readBinary(std::unique_ptr<MemoryBuffer> &mb, if (dyldInfo) { // If any exports, extract and add to normalized exportInfo vector. if (dyldInfo->export_size) { - const uint8_t *trieStart = reinterpret_cast<const uint8_t*>(start + - dyldInfo->export_off); - ArrayRef<uint8_t> trie(trieStart, dyldInfo->export_size); + const uint8_t *trieStart = reinterpret_cast<const uint8_t *>( + start + read32(&dyldInfo->export_off, isBig)); + ArrayRef<uint8_t> trie(trieStart, read32(&dyldInfo->export_size, isBig)); for (const ExportEntry &trieExport : MachOObjectFile::exports(trie)) { Export normExport; normExport.name = trieExport.name().copy(f->ownedAllocations); |