diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/test/tools/llvm-objdump/X86/macho-image-info.test | 7 | ||||
| -rw-r--r-- | llvm/tools/llvm-objdump/MachODump.cpp | 6 |
2 files changed, 13 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-objdump/X86/macho-image-info.test b/llvm/test/tools/llvm-objdump/X86/macho-image-info.test new file mode 100644 index 00000000000..dbb864f84dc --- /dev/null +++ b/llvm/test/tools/llvm-objdump/X86/macho-image-info.test @@ -0,0 +1,7 @@ +# RUN: llvm-mc < %s -triple x86_64-darwin -filetype=obj | llvm-objdump -m -objc-meta-data - | FileCheck %s + +.section __DATA,__objc_imageinfo,regular,no_dead_strip +.long 0 +.long 96 + +# CHECK: OBJC_IMAGE_IS_SIMULATED OBJC_IMAGE_HAS_CATEGORY_CLASS_PROPERTIES diff --git a/llvm/tools/llvm-objdump/MachODump.cpp b/llvm/tools/llvm-objdump/MachODump.cpp index e7a1f472928..bdf80c73b99 100644 --- a/llvm/tools/llvm-objdump/MachODump.cpp +++ b/llvm/tools/llvm-objdump/MachODump.cpp @@ -3229,6 +3229,8 @@ struct imageInfo_t { /* masks for objc_image_info.flags */ #define OBJC_IMAGE_IS_REPLACEMENT (1 << 0) #define OBJC_IMAGE_SUPPORTS_GC (1 << 1) +#define OBJC_IMAGE_IS_SIMULATED (1 << 5) +#define OBJC_IMAGE_HAS_CATEGORY_CLASS_PROPERTIES (1 << 6) struct message_ref64 { uint64_t imp; /* IMP (64-bit pointer) */ @@ -5590,6 +5592,10 @@ static void print_image_info64(SectionRef S, struct DisassembleInfo *info) { outs() << " OBJC_IMAGE_IS_REPLACEMENT"; if (o.flags & OBJC_IMAGE_SUPPORTS_GC) outs() << " OBJC_IMAGE_SUPPORTS_GC"; + if (o.flags & OBJC_IMAGE_IS_SIMULATED) + outs() << " OBJC_IMAGE_IS_SIMULATED"; + if (o.flags & OBJC_IMAGE_HAS_CATEGORY_CLASS_PROPERTIES) + outs() << " OBJC_IMAGE_HAS_CATEGORY_CLASS_PROPERTIES"; swift_version = (o.flags >> 8) & 0xff; if (swift_version != 0) { if (swift_version == 1) |

