brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.4 KiB · 7a385b1 Raw
132 lines · plain
1// Test that we register non-lazy classes by ensuring a +load is called even if2// the class is never referenced.3//4// RUN: %clang -c -o %t.o %s5// RUN: %llvm_jitlink -preload libobjc.A.dylib %t.o6//7// REQUIRES: jit-compatible-osx-swift-runtime8 9 10	.section	__TEXT,__text,regular,pure_instructions11	.build_version macos, 15, 0	sdk_version 15, 012	.p2align	2                               ; -- Begin function +[C load]13"+[C load]":                            ; @"\01+[C load]"14	.cfi_startproc15; %bb.0:16	sub	sp, sp, #1617	.cfi_def_cfa_offset 1618	str	x0, [sp, #8]19	str	x1, [sp]20	adrp	x9, _x@PAGE21	mov	w8, #7                          ; =0x722	str	w8, [x9, _x@PAGEOFF]23	add	sp, sp, #1624	ret25	.cfi_endproc26                                        ; -- End function27	.globl	_main                           ; -- Begin function main28	.p2align	229_main:                                  ; @main30	.cfi_startproc31; %bb.0:32	sub	sp, sp, #1633	.cfi_def_cfa_offset 1634	str	wzr, [sp, #12]35	adrp	x8, _x@PAGE36	ldr	w8, [x8, _x@PAGEOFF]37	subs	w8, w8, #738	cset	w8, eq39	and	w8, w8, #0x140	ands	w8, w8, #0x141	cset	w0, eq42	add	sp, sp, #1643	ret44	.cfi_endproc45                                        ; -- End function46	.globl	_x                              ; @x47.zerofill __DATA,__common,_x,4,248	.section	__DATA,__objc_data49	.globl	_OBJC_CLASS_$_C                 ; @"OBJC_CLASS_$_C"50	.p2align	3, 0x051_OBJC_CLASS_$_C:52	.quad	_OBJC_METACLASS_$_C53	.quad	054	.quad	__objc_empty_cache55	.quad	056	.quad	__OBJC_CLASS_RO_$_C57 58	.globl	_OBJC_METACLASS_$_C             ; @"OBJC_METACLASS_$_C"59	.p2align	3, 0x060_OBJC_METACLASS_$_C:61	.quad	_OBJC_METACLASS_$_C62	.quad	_OBJC_CLASS_$_C63	.quad	__objc_empty_cache64	.quad	065	.quad	__OBJC_METACLASS_RO_$_C66 67	.section	__TEXT,__objc_classname,cstring_literals68l_OBJC_CLASS_NAME_:                     ; @OBJC_CLASS_NAME_69	.asciz	"C"70 71	.section	__TEXT,__objc_methname,cstring_literals72l_OBJC_METH_VAR_NAME_:                  ; @OBJC_METH_VAR_NAME_73	.asciz	"load"74 75	.section	__TEXT,__objc_methtype,cstring_literals76l_OBJC_METH_VAR_TYPE_:                  ; @OBJC_METH_VAR_TYPE_77	.asciz	"v16@0:8"78 79	.section	__DATA,__objc_const80	.p2align	3, 0x0                          ; @"_OBJC_$_CLASS_METHODS_C"81__OBJC_$_CLASS_METHODS_C:82	.long	24                              ; 0x1883	.long	1                               ; 0x184	.quad	l_OBJC_METH_VAR_NAME_85	.quad	l_OBJC_METH_VAR_TYPE_86	.quad	"+[C load]"87 88	.p2align	3, 0x0                          ; @"_OBJC_METACLASS_RO_$_C"89__OBJC_METACLASS_RO_$_C:90	.long	3                               ; 0x391	.long	40                              ; 0x2892	.long	40                              ; 0x2893	.space	494	.quad	095	.quad	l_OBJC_CLASS_NAME_96	.quad	__OBJC_$_CLASS_METHODS_C97	.quad	098	.quad	099	.quad	0100	.quad	0101 102	.p2align	3, 0x0                          ; @"_OBJC_CLASS_RO_$_C"103__OBJC_CLASS_RO_$_C:104	.long	2                               ; 0x2105	.long	0                               ; 0x0106	.long	0                               ; 0x0107	.space	4108	.quad	0109	.quad	l_OBJC_CLASS_NAME_110	.quad	0111	.quad	0112	.quad	0113	.quad	0114	.quad	0115 116	.section	__DATA,__objc_classlist,regular,no_dead_strip117	.p2align	3, 0x0                          ; @"OBJC_LABEL_CLASS_$"118l_OBJC_LABEL_CLASS_$:119	.quad	_OBJC_CLASS_$_C120 121	.section	__DATA,__objc_nlclslist,regular,no_dead_strip122	.p2align	3, 0x0                          ; @"OBJC_LABEL_NONLAZY_CLASS_$"123l_OBJC_LABEL_NONLAZY_CLASS_$:124	.quad	_OBJC_CLASS_$_C125 126	.section	__DATA,__objc_imageinfo,regular,no_dead_strip127L_OBJC_IMAGE_INFO:128	.long	0129	.long	64130 131.subsections_via_symbols132