Fix llvm-readobj tests on big endian hosts.
authorRafael Espindola <rafael.espindola@gmail.com>
Thu, 11 Apr 2013 17:23:23 +0000 (17:23 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Thu, 11 Apr 2013 17:23:23 +0000 (17:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179298 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Object/MachO.h

index 1fd8b6c92c31bad020e003bf7b0036a0c0623afb..7bdb638b26fd25fb056ddd16550c0a7a9576482a 100644 (file)
@@ -112,11 +112,18 @@ namespace MachOFormat {
     MachOInt32 Reserved3;
   };
 
+  struct MachOInt24 {
+    uint8_t bytes[3];
+    operator uint32_t() const {
+      return (bytes[2] << 24) | (bytes[1] << 16) | bytes[0];
+    }
+  };
+
   template<endianness TargetEndianness>
   struct RelocationEntry {
     LLVM_MACHOB_IMPORT_TYPES(TargetEndianness)
     MachOInt32 Address;
-    unsigned SymbolNum : 24;
+    MachOInt24 SymbolNum;
     unsigned PCRel : 1;
     unsigned Length : 2;
     unsigned External : 1;