1 // RUN: %clang -c -o %t %s
2 // RUN: %llvm_jitlink -preload libobjc.A.dylib %t
4 // REQUIRES: jit-compatible-osx-swift-runtime
6 // Test that Objective-C class and instance methods work.
8 .section __TEXT,__text,regular,pure_instructions
9 .build_version macos, 11, 0 sdk_version 11, 5
19 "+[ZeroGen classZero]":
31 movq _OBJC_CLASSLIST_REFERENCES_$_(%rip), %rdi
32 callq _objc_alloc_init
33 movq _OBJC_SELECTOR_REFERENCES_(%rip), %rsi
35 callq *_objc_msgSend@GOTPCREL(%rip)
39 movq _OBJC_CLASSLIST_REFERENCES_$_(%rip), %rdi
40 movq _OBJC_SELECTOR_REFERENCES_.2(%rip), %rsi
41 callq *_objc_msgSend@GOTPCREL(%rip)
53 .section __TEXT,__objc_classname,cstring_literals
57 .section __TEXT,__objc_methname,cstring_literals
58 L_OBJC_METH_VAR_NAME_:
61 .section __TEXT,__objc_methtype,cstring_literals
62 L_OBJC_METH_VAR_TYPE_:
65 .section __DATA,__objc_const
67 __OBJC_$_CLASS_METHODS_ZeroGen:
70 .quad L_OBJC_METH_VAR_NAME_
71 .quad L_OBJC_METH_VAR_TYPE_
72 .quad "+[ZeroGen classZero]"
75 __OBJC_METACLASS_RO_$_ZeroGen:
81 .quad L_OBJC_CLASS_NAME_
82 .quad __OBJC_$_CLASS_METHODS_ZeroGen
88 .section __DATA,__objc_data
89 .globl _OBJC_METACLASS_$_ZeroGen
91 _OBJC_METACLASS_$_ZeroGen:
92 .quad _OBJC_METACLASS_$_NSObject
93 .quad _OBJC_METACLASS_$_NSObject
94 .quad __objc_empty_cache
96 .quad __OBJC_METACLASS_RO_$_ZeroGen
98 .section __TEXT,__objc_methname,cstring_literals
99 L_OBJC_METH_VAR_NAME_.1:
102 .section __DATA,__objc_const
104 __OBJC_$_INSTANCE_METHODS_ZeroGen:
107 .quad L_OBJC_METH_VAR_NAME_.1
108 .quad L_OBJC_METH_VAR_TYPE_
109 .quad "-[ZeroGen objZero]"
112 __OBJC_CLASS_RO_$_ZeroGen:
118 .quad L_OBJC_CLASS_NAME_
119 .quad __OBJC_$_INSTANCE_METHODS_ZeroGen
125 .section __DATA,__objc_data
126 .globl _OBJC_CLASS_$_ZeroGen
128 _OBJC_CLASS_$_ZeroGen:
129 .quad _OBJC_METACLASS_$_ZeroGen
130 .quad _OBJC_CLASS_$_NSObject
131 .quad __objc_empty_cache
133 .quad __OBJC_CLASS_RO_$_ZeroGen
135 .section __DATA,__objc_classrefs,regular,no_dead_strip
137 _OBJC_CLASSLIST_REFERENCES_$_:
138 .quad _OBJC_CLASS_$_ZeroGen
140 .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip
142 _OBJC_SELECTOR_REFERENCES_:
143 .quad L_OBJC_METH_VAR_NAME_.1
146 _OBJC_SELECTOR_REFERENCES_.2:
147 .quad L_OBJC_METH_VAR_NAME_
149 .section __DATA,__objc_classlist,regular,no_dead_strip
151 L_OBJC_LABEL_CLASS_$:
152 .quad _OBJC_CLASS_$_ZeroGen
154 .section __DATA,__objc_imageinfo,regular,no_dead_strip
159 .subsections_via_symbols