summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xllvm/test/tools/llvm-objdump/X86/Inputs/macho-universal64.x86_64.i386bin0 -> 16624 bytes
-rw-r--r--llvm/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test6
-rw-r--r--llvm/tools/llvm-objdump/MachODump.cpp9
3 files changed, 12 insertions, 3 deletions
diff --git a/llvm/test/tools/llvm-objdump/X86/Inputs/macho-universal64.x86_64.i386 b/llvm/test/tools/llvm-objdump/X86/Inputs/macho-universal64.x86_64.i386
new file mode 100755
index 00000000000..add12e44a35
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/X86/Inputs/macho-universal64.x86_64.i386
Binary files differ
diff --git a/llvm/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test b/llvm/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test
index 260e9aa341e..9089716f7a5 100644
--- a/llvm/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test
+++ b/llvm/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test
@@ -6,6 +6,8 @@ RUN: llvm-objdump %p/Inputs/macho-universal.x86_64.i386 -universal-headers -m \
RUN: | FileCheck %s -check-prefix FAT
RUN: llvm-objdump %p/Inputs/macho-universal.x86_64.i386 -universal-headers -m \
RUN: -non-verbose | FileCheck %s -check-prefix NON-VERBOSE
+RUN: llvm-objdump %p/Inputs/macho-universal64.x86_64.i386 -universal-headers \
+RUN: -m | FileCheck %s -check-prefix FAT-64
UEXE-all: macho-universal.x86_64.i386 (architecture x86_64):
UEXE-all: (__TEXT,__text) section
@@ -62,3 +64,7 @@ NON-VERBOSE: capabilities 0x0
NON-VERBOSE: offset 12288
NON-VERBOSE: size 4336
NON-VERBOSE: align 2^12 (4096)
+
+FAT-64: Fat headers
+FAT-64: fat_magic FAT_MAGIC_64
+FAT-64: nfat_arch 2
diff --git a/llvm/tools/llvm-objdump/MachODump.cpp b/llvm/tools/llvm-objdump/MachODump.cpp
index 3f4185e6330..b92599a02f8 100644
--- a/llvm/tools/llvm-objdump/MachODump.cpp
+++ b/llvm/tools/llvm-objdump/MachODump.cpp
@@ -1403,9 +1403,12 @@ static void printCPUType(uint32_t cputype, uint32_t cpusubtype) {
static void printMachOUniversalHeaders(const object::MachOUniversalBinary *UB,
bool verbose) {
outs() << "Fat headers\n";
- if (verbose)
- outs() << "fat_magic FAT_MAGIC\n";
- else
+ if (verbose) {
+ if (UB->getMagic() == MachO::FAT_MAGIC)
+ outs() << "fat_magic FAT_MAGIC\n";
+ else // UB->getMagic() == MachO::FAT_MAGIC_64
+ outs() << "fat_magic FAT_MAGIC_64\n";
+ } else
outs() << "fat_magic " << format("0x%" PRIx32, MachO::FAT_MAGIC) << "\n";
uint32_t nfat_arch = UB->getNumberOfObjects();
OpenPOWER on IntegriCloud