1 // RUN: %clang -c -o %t %s
2 // RUN: %llvm_jitlink -preload libobjc.A.dylib %t
4 // Test that Objective-C class and instance methods work.
6 .section __TEXT,__text,regular,pure_instructions
7 .build_version macos, 11, 0 sdk_version 11, 5
17 "+[ZeroGen classZero]":
29 movq _OBJC_CLASSLIST_REFERENCES_$_(%rip), %rdi
30 callq _objc_alloc_init
31 movq _OBJC_SELECTOR_REFERENCES_(%rip), %rsi
33 callq *_objc_msgSend@GOTPCREL(%rip)
37 movq _OBJC_CLASSLIST_REFERENCES_$_(%rip), %rdi
38 movq _OBJC_SELECTOR_REFERENCES_.2(%rip), %rsi
39 callq *_objc_msgSend@GOTPCREL(%rip)
51 .section __TEXT,__objc_classname,cstring_literals
55 .section __TEXT,__objc_methname,cstring_literals
56 L_OBJC_METH_VAR_NAME_:
59 .section __TEXT,__objc_methtype,cstring_literals
60 L_OBJC_METH_VAR_TYPE_:
63 .section __DATA,__objc_const
65 __OBJC_$_CLASS_METHODS_ZeroGen:
68 .quad L_OBJC_METH_VAR_NAME_
69 .quad L_OBJC_METH_VAR_TYPE_
70 .quad "+[ZeroGen classZero]"
73 __OBJC_METACLASS_RO_$_ZeroGen:
79 .quad L_OBJC_CLASS_NAME_
80 .quad __OBJC_$_CLASS_METHODS_ZeroGen
86 .section __DATA,__objc_data
87 .globl _OBJC_METACLASS_$_ZeroGen
89 _OBJC_METACLASS_$_ZeroGen:
90 .quad _OBJC_METACLASS_$_NSObject
91 .quad _OBJC_METACLASS_$_NSObject
92 .quad __objc_empty_cache
94 .quad __OBJC_METACLASS_RO_$_ZeroGen
96 .section __TEXT,__objc_methname,cstring_literals
97 L_OBJC_METH_VAR_NAME_.1:
100 .section __DATA,__objc_const
102 __OBJC_$_INSTANCE_METHODS_ZeroGen:
105 .quad L_OBJC_METH_VAR_NAME_.1
106 .quad L_OBJC_METH_VAR_TYPE_
107 .quad "-[ZeroGen objZero]"
110 __OBJC_CLASS_RO_$_ZeroGen:
116 .quad L_OBJC_CLASS_NAME_
117 .quad __OBJC_$_INSTANCE_METHODS_ZeroGen
123 .section __DATA,__objc_data
124 .globl _OBJC_CLASS_$_ZeroGen
126 _OBJC_CLASS_$_ZeroGen:
127 .quad _OBJC_METACLASS_$_ZeroGen
128 .quad _OBJC_CLASS_$_NSObject
129 .quad __objc_empty_cache
131 .quad __OBJC_CLASS_RO_$_ZeroGen
133 .section __DATA,__objc_classrefs,regular,no_dead_strip
135 _OBJC_CLASSLIST_REFERENCES_$_:
136 .quad _OBJC_CLASS_$_ZeroGen
138 .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip
140 _OBJC_SELECTOR_REFERENCES_:
141 .quad L_OBJC_METH_VAR_NAME_.1
144 _OBJC_SELECTOR_REFERENCES_.2:
145 .quad L_OBJC_METH_VAR_NAME_
147 .section __DATA,__objc_classlist,regular,no_dead_strip
149 L_OBJC_LABEL_CLASS_$:
150 .quad _OBJC_CLASS_$_ZeroGen
152 .section __DATA,__objc_imageinfo,regular,no_dead_strip
157 .subsections_via_symbols