diff options
| author | Tom Stellard <tstellar@redhat.com> | 2017-07-24 23:13:31 +0000 |
|---|---|---|
| committer | Tom Stellard <tstellar@redhat.com> | 2017-07-24 23:13:31 +0000 |
| commit | 1d70d75f468c2df944dffe48aa4efe22716156f9 (patch) | |
| tree | 4086ba00aecede0a936a50414329581bb166b268 /lld/lib/ReaderWriter/MachO | |
| parent | 7cff7d466413b4c9634b6f84335e6baeff232929 (diff) | |
| download | bcm5719-llvm-1d70d75f468c2df944dffe48aa4efe22716156f9.tar.gz bcm5719-llvm-1d70d75f468c2df944dffe48aa4efe22716156f9.zip | |
Fix ObjCPass on big-endian host
Summary:
This fixes test/mach-o/objc-image-info-pass-output.yaml on
big-endian hosts.
Reviewers: lhames, kledzik, ruiu
Reviewed By: ruiu
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D35052
llvm-svn: 308935
Diffstat (limited to 'lld/lib/ReaderWriter/MachO')
| -rw-r--r-- | lld/lib/ReaderWriter/MachO/ObjCPass.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lld/lib/ReaderWriter/MachO/ObjCPass.cpp b/lld/lib/ReaderWriter/MachO/ObjCPass.cpp index 4712d8ca969..ccea081f053 100644 --- a/lld/lib/ReaderWriter/MachO/ObjCPass.cpp +++ b/lld/lib/ReaderWriter/MachO/ObjCPass.cpp @@ -11,6 +11,7 @@ #include "ArchHandler.h" #include "File.h" +#include "MachONormalizedFileBinaryUtils.h" #include "MachOPasses.h" #include "lld/Core/DefinedAtom.h" #include "lld/Core/File.h" @@ -29,7 +30,7 @@ namespace mach_o { /// class ObjCImageInfoAtom : public SimpleDefinedAtom { public: - ObjCImageInfoAtom(const File &file, + ObjCImageInfoAtom(const File &file, bool isBig, MachOLinkingContext::ObjCConstraint objCConstraint, uint32_t swiftVersion) : SimpleDefinedAtom(file) { @@ -54,6 +55,8 @@ public: } Data.info.flags |= (swiftVersion << 8); + + normalized::write32(Data.bytes + 4, Data.info.flags, isBig); } ~ObjCImageInfoAtom() override = default; @@ -109,7 +112,8 @@ public: private: const DefinedAtom* getImageInfo() { - return new (_file.allocator()) ObjCImageInfoAtom(_file, + bool IsBig = MachOLinkingContext::isBigEndian(_ctx.arch()); + return new (_file.allocator()) ObjCImageInfoAtom(_file, IsBig, _ctx.objcConstraint(), _ctx.swiftVersion()); } |

