brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.5 KiB · bdc08e8 Raw
133 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	.section	__TEXT,__text,regular,pure_instructions10	.build_version macos, 15, 0	sdk_version 15, 011	.p2align	4, 0x90                         ## -- Begin function +[C load]12"+[C load]":                            ## @"\01+[C load]"13	.cfi_startproc14## %bb.0:15	pushq	%rbp16	.cfi_def_cfa_offset 1617	.cfi_offset %rbp, -1618	movq	%rsp, %rbp19	.cfi_def_cfa_register %rbp20	movq	%rdi, -8(%rbp)21	movq	%rsi, -16(%rbp)22	movl	$7, _x(%rip)23	popq	%rbp24	retq25	.cfi_endproc26                                        ## -- End function27	.globl	_main                           ## -- Begin function main28	.p2align	4, 0x9029_main:                                  ## @main30	.cfi_startproc31## %bb.0:32	pushq	%rbp33	.cfi_def_cfa_offset 1634	.cfi_offset %rbp, -1635	movq	%rsp, %rbp36	.cfi_def_cfa_register %rbp37	movl	$0, -4(%rbp)38	movl	_x(%rip), %edx39	movl	$1, %eax40	xorl	%ecx, %ecx41	cmpl	$7, %edx42	cmovel	%ecx, %eax43	popq	%rbp44	retq45	.cfi_endproc46                                        ## -- End function47	.globl	_x                              ## @x48.zerofill __DATA,__common,_x,4,249	.section	__DATA,__objc_data50	.globl	_OBJC_CLASS_$_C                 ## @"OBJC_CLASS_$_C"51	.p2align	3, 0x052_OBJC_CLASS_$_C:53	.quad	_OBJC_METACLASS_$_C54	.quad	055	.quad	__objc_empty_cache56	.quad	057	.quad	__OBJC_CLASS_RO_$_C58 59	.globl	_OBJC_METACLASS_$_C             ## @"OBJC_METACLASS_$_C"60	.p2align	3, 0x061_OBJC_METACLASS_$_C:62	.quad	_OBJC_METACLASS_$_C63	.quad	_OBJC_CLASS_$_C64	.quad	__objc_empty_cache65	.quad	066	.quad	__OBJC_METACLASS_RO_$_C67 68	.section	__TEXT,__objc_classname,cstring_literals69L_OBJC_CLASS_NAME_:                     ## @OBJC_CLASS_NAME_70	.asciz	"C"71 72	.section	__TEXT,__objc_methname,cstring_literals73L_OBJC_METH_VAR_NAME_:                  ## @OBJC_METH_VAR_NAME_74	.asciz	"load"75 76	.section	__TEXT,__objc_methtype,cstring_literals77L_OBJC_METH_VAR_TYPE_:                  ## @OBJC_METH_VAR_TYPE_78	.asciz	"v16@0:8"79 80	.section	__DATA,__objc_const81	.p2align	3, 0x0                          ## @"_OBJC_$_CLASS_METHODS_C"82__OBJC_$_CLASS_METHODS_C:83	.long	24                              ## 0x1884	.long	1                               ## 0x185	.quad	L_OBJC_METH_VAR_NAME_86	.quad	L_OBJC_METH_VAR_TYPE_87	.quad	"+[C load]"88 89	.p2align	3, 0x0                          ## @"_OBJC_METACLASS_RO_$_C"90__OBJC_METACLASS_RO_$_C:91	.long	3                               ## 0x392	.long	40                              ## 0x2893	.long	40                              ## 0x2894	.space	495	.quad	096	.quad	L_OBJC_CLASS_NAME_97	.quad	__OBJC_$_CLASS_METHODS_C98	.quad	099	.quad	0100	.quad	0101	.quad	0102 103	.p2align	3, 0x0                          ## @"_OBJC_CLASS_RO_$_C"104__OBJC_CLASS_RO_$_C:105	.long	2                               ## 0x2106	.long	0                               ## 0x0107	.long	0                               ## 0x0108	.space	4109	.quad	0110	.quad	L_OBJC_CLASS_NAME_111	.quad	0112	.quad	0113	.quad	0114	.quad	0115	.quad	0116 117	.section	__DATA,__objc_classlist,regular,no_dead_strip118	.p2align	3, 0x0                          ## @"OBJC_LABEL_CLASS_$"119l_OBJC_LABEL_CLASS_$:120	.quad	_OBJC_CLASS_$_C121 122	.section	__DATA,__objc_nlclslist,regular,no_dead_strip123	.p2align	3, 0x0                          ## @"OBJC_LABEL_NONLAZY_CLASS_$"124l_OBJC_LABEL_NONLAZY_CLASS_$:125	.quad	_OBJC_CLASS_$_C126 127	.section	__DATA,__objc_imageinfo,regular,no_dead_strip128L_OBJC_IMAGE_INFO:129	.long	0130	.long	64131 132.subsections_via_symbols133