brintos

brintos / llvm-project-archived public Read only

0
0
Text · 12.8 KiB · f6461e1 Raw
443 lines · plain
1# REQUIRES: aarch642# RUN: rm -rf %t; mkdir %t && cd %t3 4############ Test swift category merging into @objc class, with protocol ############5# RUN: llvm-mc -filetype=obj -triple=arm64-apple-macos -o cat_swift.o %s6# RUN: %lld -arch arm64 -dylib -o cat_swift.dylib cat_swift.o -objc_category_merging7# RUN: llvm-objdump --objc-meta-data --macho cat_swift.dylib | FileCheck %s --check-prefixes=CHECK-MERGE8 9 10; CHECK-MERGE:      Contents of (__DATA_CONST,__objc_classlist) section11 12; CHECK-MERGE-NEXT: [[#%x,]] 0x[[#%x,]] _OBJC_CLASS_$__TtC11MyTestClass11MyTestClass13; CHECK-MERGE-NEXT:            isa 0x[[#%x,]] _OBJC_METACLASS_$__TtC11MyTestClass11MyTestClass14; CHECK-MERGE-NEXT:     superclass 0x015; CHECK-MERGE-NEXT:          cache 0x016; CHECK-MERGE-NEXT:         vtable 0x017; CHECK-MERGE-NEXT:           data 0x[[#%x,]] (struct class_ro_t *) Swift class18; CHECK-MERGE-NEXT:                     flags 0x8019; CHECK-MERGE-NEXT:             instanceStart 820; CHECK-MERGE-NEXT:              instanceSize 821; CHECK-MERGE-NEXT:                  reserved 0x022; CHECK-MERGE-NEXT:                ivarLayout 0x023; CHECK-MERGE-NEXT:                      name 0x[[#%x,]] _TtC11MyTestClass11MyTestClass24; CHECK-MERGE-NEXT:               baseMethods 0x[[#%x,]] (struct method_list_t *)25; CHECK-MERGE-NEXT: 		   entsize 2426; CHECK-MERGE-NEXT: 		     count 127; CHECK-MERGE-NEXT: 		      name 0x[[#%x,]] init28; CHECK-MERGE-NEXT: 		     types 0x[[#%x,]] @16@0:829; CHECK-MERGE-NEXT: 		       imp _$s11MyTestClassAACABycfcTo30; CHECK-MERGE-NEXT:             baseProtocols 0x031; CHECK-MERGE-NEXT:                     ivars 0x032; CHECK-MERGE-NEXT:            weakIvarLayout 0x033; CHECK-MERGE-NEXT:            baseProperties 0x034; CHECK-MERGE-NEXT: Meta Class35; CHECK-MERGE-NEXT:            isa 0x036; CHECK-MERGE-NEXT:     superclass 0x037; CHECK-MERGE-NEXT:          cache 0x038; CHECK-MERGE-NEXT:         vtable 0x039; CHECK-MERGE-NEXT:           data 0x[[#%x,]] (struct class_ro_t *)40; CHECK-MERGE-NEXT:                     flags 0x81 RO_META41; CHECK-MERGE-NEXT:             instanceStart 4042; CHECK-MERGE-NEXT:              instanceSize 4043; CHECK-MERGE-NEXT:                  reserved 0x044; CHECK-MERGE-NEXT:                ivarLayout 0x045; CHECK-MERGE-NEXT:                      name 0x[[#%x,]] _TtC11MyTestClass11MyTestClass46; CHECK-MERGE-NEXT:               baseMethods 0x0 (struct method_list_t *)47; CHECK-MERGE-NEXT:             baseProtocols 0x048; CHECK-MERGE-NEXT:                     ivars 0x049; CHECK-MERGE-NEXT:            weakIvarLayout 0x050; CHECK-MERGE-NEXT:            baseProperties 0x051 52 53;  ================== Generated from Swift: ==================54;; > xcrun swiftc --version55;; swift-driver version: 1.109.2 Apple Swift version 6.0 (swiftlang-6.0.0.3.300 clang-1600.0.20.10)56;; > xcrun swiftc -S MyTestClass.swift -o MyTestClass.s57;;58; import Foundation59;60; protocol MyProtocol {61;     func protocolMethod()62; }63;64; @objc class MyTestClass: NSObject, MyProtocol {65;     func protocolMethod() {66;     }67; }68;69; extension MyTestClass {70;     public func extensionMethod() {71;     }72; }73;  ================== Generated from Swift: ==================74 75 76	.section	__TEXT,__text,regular,pure_instructions77	.build_version macos, 11, 0	sdk_version 10, 078	.globl	_main79	.p2align	280_main:81	.cfi_startproc82	mov	w0, #083	ret84	.cfi_endproc85 86	.private_extern	_$s11MyTestClassAAC14protocolMethodyyF87	.globl	_$s11MyTestClassAAC14protocolMethodyyF88	.p2align	289_$s11MyTestClassAAC14protocolMethodyyF:90	.cfi_startproc91	ret92	.cfi_endproc93 94	.private_extern	_$s11MyTestClassAACABycfC95	.globl	_$s11MyTestClassAACABycfC96	.p2align	297_$s11MyTestClassAACABycfC:98	.cfi_startproc99	ret100	.cfi_endproc101 102	.private_extern	_$s11MyTestClassAACABycfc103	.globl	_$s11MyTestClassAACABycfc104	.p2align	2105_$s11MyTestClassAACABycfc:106	.cfi_startproc107	ret108	.cfi_endproc109 110	.private_extern	_$s11MyTestClassAACMa111	.globl	_$s11MyTestClassAACMa112	.p2align	2113_$s11MyTestClassAACMa:114	ret115 116	.p2align	2117_$s11MyTestClassAACABycfcTo:118	.cfi_startproc119	ret120	.cfi_endproc121 122	.private_extern	_$s11MyTestClassAACfD123	.globl	_$s11MyTestClassAACfD124	.p2align	2125_$s11MyTestClassAACfD:126	.cfi_startproc127	ret128	.cfi_endproc129 130	.p2align	2131_$s11MyTestClassAACAA0A8ProtocolA2aCP14protocolMethodyyFTW:132	.cfi_startproc133	ret134	.cfi_endproc135 136	.private_extern	_$s11MyTestClassAAC15extensionMethodyyF137	.globl	_$s11MyTestClassAAC15extensionMethodyyF138	.p2align	2139_$s11MyTestClassAAC15extensionMethodyyF:140	.cfi_startproc141	ret142	.cfi_endproc143 144	.section	__TEXT,__objc_methname,cstring_literals145"L_selector_data(init)":146	.asciz	"init"147 148	.section	__DATA,__objc_selrefs,literal_pointers,no_dead_strip149	.p2align	3, 0x0150"L_selector(init)":151	.quad	"L_selector_data(init)"152 153	.section	__TEXT,__objc_methname,cstring_literals154"L_selector_data(dealloc)":155	.asciz	"dealloc"156 157	.section	__DATA,__objc_selrefs,literal_pointers,no_dead_strip158	.p2align	3, 0x0159"L_selector(dealloc)":160	.quad	"L_selector_data(dealloc)"161 162	.private_extern	_$s11MyTestClassAACAA0A8ProtocolAAMc163	.section	__TEXT,__const164	.globl	_$s11MyTestClassAACAA0A8ProtocolAAMc165	.p2align	2, 0x0166_$s11MyTestClassAACAA0A8ProtocolAAMc:167	.long	_$s11MyTestClass0A8ProtocolMp-_$s11MyTestClassAACAA0A8ProtocolAAMc168	.long	(_$s11MyTestClassAACMn-_$s11MyTestClassAACAA0A8ProtocolAAMc)-4169	.long	(_$s11MyTestClassAACAA0A8ProtocolAAWP-_$s11MyTestClassAACAA0A8ProtocolAAMc)-8170	.long	0171 172	.private_extern	_$s11MyTestClassAACAA0A8ProtocolAAWP173	.section	__DATA,__const174	.globl	_$s11MyTestClassAACAA0A8ProtocolAAWP175	.p2align	3, 0x0176_$s11MyTestClassAACAA0A8ProtocolAAWP:177	.quad	_$s11MyTestClassAACAA0A8ProtocolAAMc178	.quad	_$s11MyTestClassAACAA0A8ProtocolA2aCP14protocolMethodyyFTW179 180	.section	__TEXT,__swift5_entry,regular,no_dead_strip181	.p2align	2, 0x0182l_entry_point:183	.long	_main-l_entry_point184	.long	0185 186	.private_extern	"_symbolic $s11MyTestClass0A8ProtocolP"187	.section	__TEXT,__swift5_typeref188	.globl	"_symbolic $s11MyTestClass0A8ProtocolP"189	.weak_definition	"_symbolic $s11MyTestClass0A8ProtocolP"190	.p2align	1, 0x0191"_symbolic $s11MyTestClass0A8ProtocolP":192	.ascii	"$s11MyTestClass0A8ProtocolP"193	.byte	0194 195	.section	__TEXT,__swift5_fieldmd196	.p2align	2, 0x0197_$s11MyTestClass0A8Protocol_pMF:198	.long	"_symbolic $s11MyTestClass0A8ProtocolP"-_$s11MyTestClass0A8Protocol_pMF199	.long	0200	.short	4201	.short	12202	.long	0203 204	.section	__TEXT,__const205l_.str.11.MyTestClass:206	.asciz	"MyTestClass"207 208	.private_extern	_$s11MyTestClassMXM209	.section	__TEXT,__constg_swiftt210	.globl	_$s11MyTestClassMXM211	.weak_definition	_$s11MyTestClassMXM212	.p2align	2, 0x0213_$s11MyTestClassMXM:214	.long	0215	.long	0216	.long	(l_.str.11.MyTestClass-_$s11MyTestClassMXM)-8217 218	.section	__TEXT,__const219l_.str.10.MyProtocol:220	.asciz	"MyProtocol"221 222	.private_extern	_$s11MyTestClass0A8ProtocolMp223	.section	__TEXT,__constg_swiftt224	.globl	_$s11MyTestClass0A8ProtocolMp225	.p2align	2, 0x0226_$s11MyTestClass0A8ProtocolMp:227	.long	65603228	.long	(_$s11MyTestClassMXM-_$s11MyTestClass0A8ProtocolMp)-4229	.long	(l_.str.10.MyProtocol-_$s11MyTestClass0A8ProtocolMp)-8230	.long	0231	.long	1232	.long	0233	.long	17234	.long	0235 236	.private_extern	_OBJC_METACLASS_$__TtC11MyTestClass11MyTestClass237	.section	__DATA,__data238	.globl	_OBJC_METACLASS_$__TtC11MyTestClass11MyTestClass239	.p2align	3, 0x0240_OBJC_METACLASS_$__TtC11MyTestClass11MyTestClass:241	.quad	_OBJC_METACLASS_$_NSObject242	.quad	_OBJC_METACLASS_$_NSObject243	.quad	__objc_empty_cache244	.quad	0245	.quad	__METACLASS_DATA__TtC11MyTestClass11MyTestClass246 247	.section	__TEXT,__cstring,cstring_literals248	.p2align	4, 0x0249l_.str.30._TtC11MyTestClass11MyTestClass:250	.asciz	"_TtC11MyTestClass11MyTestClass"251 252	.section	__DATA,__objc_const253	.p2align	3, 0x0254__METACLASS_DATA__TtC11MyTestClass11MyTestClass:255	.long	129256	.long	40257	.long	40258	.long	0259	.quad	0260	.quad	l_.str.30._TtC11MyTestClass11MyTestClass261	.quad	0262	.quad	0263	.quad	0264	.quad	0265	.quad	0266 267	.section	__TEXT,__cstring,cstring_literals268"l_.str.7.@16@0:8":269	.asciz	"@16@0:8"270 271	.section	__DATA,__objc_data272	.p2align	3, 0x0273__INSTANCE_METHODS__TtC11MyTestClass11MyTestClass:274	.long	24275	.long	1276	.quad	"L_selector_data(init)"277	.quad	"l_.str.7.@16@0:8"278	.quad	_$s11MyTestClassAACABycfcTo279 280	.p2align	3, 0x0281__DATA__TtC11MyTestClass11MyTestClass:282	.long	128283	.long	8284	.long	8285	.long	0286	.quad	0287	.quad	l_.str.30._TtC11MyTestClass11MyTestClass288	.quad	__INSTANCE_METHODS__TtC11MyTestClass11MyTestClass289	.quad	0290	.quad	0291	.quad	0292	.quad	0293 294	.private_extern	"_symbolic So8NSObjectC"295	.section	__TEXT,__swift5_typeref296	.globl	"_symbolic So8NSObjectC"297	.weak_definition	"_symbolic So8NSObjectC"298	.p2align	1, 0x0299"_symbolic So8NSObjectC":300	.ascii	"So8NSObjectC"301	.byte	0302 303	.private_extern	_$s11MyTestClassAACMn304	.section	__TEXT,__constg_swiftt305	.globl	_$s11MyTestClassAACMn306	.p2align	2, 0x0307_$s11MyTestClassAACMn:308	.long	2147483728309	.long	(_$s11MyTestClassMXM-_$s11MyTestClassAACMn)-4310	.long	(l_.str.11.MyTestClass-_$s11MyTestClassAACMn)-8311	.long	(_$s11MyTestClassAACMa-_$s11MyTestClassAACMn)-12312	.long	(_$s11MyTestClassAACMF-_$s11MyTestClassAACMn)-16313	.long	("_symbolic So8NSObjectC"-_$s11MyTestClassAACMn)-20314	.long	3315	.long	11316	.long	1317	.long	0318	.long	10319	.long	10320	.long	1321	.long	16322	.long	(_$s11MyTestClassAAC14protocolMethodyyF-_$s11MyTestClassAACMn)-56323 324	.section	__DATA,__objc_data325	.p2align	3, 0x0326_$s11MyTestClassAACMf:327	.quad	0328	.quad	_$s11MyTestClassAACfD329	.quad	_$sBOWV330	.quad	_OBJC_METACLASS_$__TtC11MyTestClass11MyTestClass331	.quad	_OBJC_CLASS_$_NSObject332	.quad	__objc_empty_cache333	.quad	0334	.quad	__DATA__TtC11MyTestClass11MyTestClass+2335	.long	0336	.long	0337	.long	8338	.short	7339	.short	0340	.long	112341	.long	24342	.quad	_$s11MyTestClassAACMn343	.quad	0344	.quad	_$s11MyTestClassAAC14protocolMethodyyF345 346	.private_extern	"_symbolic _____ 11MyTestClassAAC"347	.section	__TEXT,__swift5_typeref348	.globl	"_symbolic _____ 11MyTestClassAAC"349	.weak_definition	"_symbolic _____ 11MyTestClassAAC"350	.p2align	1, 0x0351"_symbolic _____ 11MyTestClassAAC":352	.byte	1353	.long	(_$s11MyTestClassAACMn-"_symbolic _____ 11MyTestClassAAC")-1354	.byte	0355 356	.section	__TEXT,__swift5_fieldmd357	.p2align	2, 0x0358_$s11MyTestClassAACMF:359	.long	"_symbolic _____ 11MyTestClassAAC"-_$s11MyTestClassAACMF360	.long	("_symbolic So8NSObjectC"-_$s11MyTestClassAACMF)-4361	.short	7362	.short	12363	.long	0364 365	.section	__TEXT,__swift5_protos366	.p2align	2, 0x0367l_$s11MyTestClass0A8ProtocolHr:368	.long	_$s11MyTestClass0A8ProtocolMp-l_$s11MyTestClass0A8ProtocolHr369 370	.section	__TEXT,__swift5_proto371	.p2align	2, 0x0372l_$s11MyTestClassAACAA0A8ProtocolAAHc:373	.long	_$s11MyTestClassAACAA0A8ProtocolAAMc-l_$s11MyTestClassAACAA0A8ProtocolAAHc374 375	.section	__TEXT,__swift5_types376	.p2align	2, 0x0377l_$s11MyTestClassAACHn:378	.long	_$s11MyTestClassAACMn-l_$s11MyTestClassAACHn379 380	.private_extern	___swift_reflection_version381	.section	__TEXT,__const382	.globl	___swift_reflection_version383	.weak_definition	___swift_reflection_version384	.p2align	1, 0x0385___swift_reflection_version:386	.short	3387 388	.section	__DATA,__objc_classlist,regular,no_dead_strip389	.p2align	3, 0x0390_objc_classes_$s11MyTestClassAACN:391	.quad	_$s11MyTestClassAACN392 393	.no_dead_strip	_main394	.no_dead_strip	l_entry_point395	.no_dead_strip	_$s11MyTestClass0A8Protocol_pMF396	.no_dead_strip	_$s11MyTestClassAACMF397	.no_dead_strip	__swift_FORCE_LOAD_$_swiftFoundation_$_MyTestClass398	.no_dead_strip	__swift_FORCE_LOAD_$_swiftDarwin_$_MyTestClass399	.no_dead_strip	__swift_FORCE_LOAD_$_swiftObjectiveC_$_MyTestClass400	.no_dead_strip	__swift_FORCE_LOAD_$_swiftCoreFoundation_$_MyTestClass401	.no_dead_strip	__swift_FORCE_LOAD_$_swiftDispatch_$_MyTestClass402	.no_dead_strip	__swift_FORCE_LOAD_$_swiftXPC_$_MyTestClass403	.no_dead_strip	__swift_FORCE_LOAD_$_swiftIOKit_$_MyTestClass404	.no_dead_strip	l_$s11MyTestClass0A8ProtocolHr405	.no_dead_strip	l_$s11MyTestClassAACAA0A8ProtocolAAHc406	.no_dead_strip	l_$s11MyTestClassAACHn407	.no_dead_strip	___swift_reflection_version408	.no_dead_strip	_objc_classes_$s11MyTestClassAACN409	.section	__DATA,__objc_imageinfo,regular,no_dead_strip410L_OBJC_IMAGE_INFO:411	.long	0412	.long	100665152413 414	.globl	_$s11MyTestClass0A8ProtocolTL415	.private_extern	_$s11MyTestClass0A8ProtocolTL416	.alt_entry	_$s11MyTestClass0A8ProtocolTL417.set _$s11MyTestClass0A8ProtocolTL, (_$s11MyTestClass0A8ProtocolMp+24)-8418	.globl	_$s11MyTestClassAAC14protocolMethodyyFTq419	.private_extern	_$s11MyTestClassAAC14protocolMethodyyFTq420	.alt_entry	_$s11MyTestClassAAC14protocolMethodyyFTq421.set _$s11MyTestClassAAC14protocolMethodyyFTq, _$s11MyTestClassAACMn+52422	.globl	_$s11MyTestClassAACN423	.private_extern	_$s11MyTestClassAACN424	.alt_entry	_$s11MyTestClassAACN425.set _$s11MyTestClassAACN, _$s11MyTestClassAACMf+24426	.globl	_OBJC_CLASS_$__TtC11MyTestClass11MyTestClass427	.private_extern	_OBJC_CLASS_$__TtC11MyTestClass11MyTestClass428.set _OBJC_CLASS_$__TtC11MyTestClass11MyTestClass, _$s11MyTestClassAACN429	.weak_reference __swift_FORCE_LOAD_$_swiftFoundation430	.weak_reference __swift_FORCE_LOAD_$_swiftDarwin431	.weak_reference __swift_FORCE_LOAD_$_swiftObjectiveC432	.weak_reference __swift_FORCE_LOAD_$_swiftCoreFoundation433	.weak_reference __swift_FORCE_LOAD_$_swiftDispatch434	.weak_reference __swift_FORCE_LOAD_$_swiftXPC435	.weak_reference __swift_FORCE_LOAD_$_swiftIOKit436.subsections_via_symbols437 438_OBJC_CLASS_$_NSObject:439_OBJC_METACLASS_$_NSObject:440__objc_empty_cache:441_$sBOWV:442  .quad 0443