[llvm] r305866 - Updated llvm-objdump with Mach-O files and the -objc-meta-data option so
Kevin Enderby via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 20 15:55:11 PDT 2017
Author: enderby
Date: Tue Jun 20 17:55:11 2017
New Revision: 305866
URL: http://llvm.org/viewvc/llvm-project?rev=305866&view=rev
Log:
Updated llvm-objdump with Mach-O files and the -objc-meta-data option so
that it symbolically prints the superclass when it has dyld bind info for it.
rdar://7638823
Modified:
llvm/trunk/test/tools/llvm-objdump/X86/macho-objc-meta-data.test
llvm/trunk/tools/llvm-objdump/MachODump.cpp
Modified: llvm/trunk/test/tools/llvm-objdump/X86/macho-objc-meta-data.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-objdump/X86/macho-objc-meta-data.test?rev=305866&r1=305865&r2=305866&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-objdump/X86/macho-objc-meta-data.test (original)
+++ llvm/trunk/test/tools/llvm-objdump/X86/macho-objc-meta-data.test Tue Jun 20 17:55:11 2017
@@ -1042,7 +1042,7 @@ PROTOCOL: class_methods 0x00000000 (
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 t
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 *)
Modified: llvm/trunk/tools/llvm-objdump/MachODump.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objdump/MachODump.cpp?rev=305866&r1=305865&r2=305866&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-objdump/MachODump.cpp (original)
+++ llvm/trunk/tools/llvm-objdump/MachODump.cpp Tue Jun 20 17:55:11 2017
@@ -4573,6 +4573,12 @@ static void print_class64_t(uint64_t p,
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);
More information about the llvm-commits
mailing list