summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/test/tools/llvm-objdump/X86/macho-objc-meta-data.test4
-rw-r--r--llvm/tools/llvm-objdump/MachODump.cpp6
2 files changed, 8 insertions, 2 deletions
diff --git a/llvm/test/tools/llvm-objdump/X86/macho-objc-meta-data.test b/llvm/test/tools/llvm-objdump/X86/macho-objc-meta-data.test
index 0bdb39cdff8..0c38a649c5a 100644
--- a/llvm/test/tools/llvm-objdump/X86/macho-objc-meta-data.test
+++ b/llvm/test/tools/llvm-objdump/X86/macho-objc-meta-data.test
@@ -1042,7 +1042,7 @@ PROTOCOL: class_methods 0x00000000 (not in an __OBJC section)
OBJC2_64BIT_DYLIB: Contents of (__DATA_CONST,__objc_classlist) section
OBJC2_64BIT_DYLIB: 000000000000c038 0x8030 _OBJC_CLASS_$_Test
OBJC2_64BIT_DYLIB: isa 0x8008 _OBJC_METACLASS_$_Test
-OBJC2_64BIT_DYLIB: superclass 0x0
+OBJC2_64BIT_DYLIB: superclass 0x0 _OBJC_CLASS_$_NSObject
OBJC2_64BIT_DYLIB: cache 0x0
OBJC2_64BIT_DYLIB: vtable 0x0
OBJC2_64BIT_DYLIB: data 0xc120 (struct class_ro_t *)
@@ -1081,7 +1081,7 @@ OBJC2_64BIT_DYLIB: name 0x4f42 testProp
OBJC2_64BIT_DYLIB: attributes 0x4f4b TQ,V_testProp
OBJC2_64BIT_DYLIB: Meta Class
OBJC2_64BIT_DYLIB: isa 0x0
-OBJC2_64BIT_DYLIB: superclass 0x0
+OBJC2_64BIT_DYLIB: superclass 0x0 _OBJC_METACLASS_$_NSObject
OBJC2_64BIT_DYLIB: cache 0x0
OBJC2_64BIT_DYLIB: vtable 0x0
OBJC2_64BIT_DYLIB: data 0xc048 (struct class_ro_t *)
diff --git a/llvm/tools/llvm-objdump/MachODump.cpp b/llvm/tools/llvm-objdump/MachODump.cpp
index 99d2dbd3017..960ef6be414 100644
--- a/llvm/tools/llvm-objdump/MachODump.cpp
+++ b/llvm/tools/llvm-objdump/MachODump.cpp
@@ -4573,6 +4573,12 @@ static void print_class64_t(uint64_t p, struct DisassembleInfo *info) {
n_value, c.superclass);
if (name != nullptr)
outs() << " " << name;
+ else {
+ name = get_dyld_bind_info_symbolname(S.getAddress() +
+ offset + offsetof(struct class64_t, superclass), info);
+ if (name != nullptr)
+ outs() << " " << name;
+ }
outs() << "\n";
outs() << " cache " << format("0x%" PRIx64, c.cache);
OpenPOWER on IntegriCloud