brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.3 KiB · 46b2bbf Raw
145 lines · plain
1; REQUIRES: aarch642; RUN: rm -rf %t && split-file %s %t3 4; Test that ObjC method names are tail merged and5; ObjCSelRefsHelper::makeSelRef() still works correctly6 7; RUN: llvm-mc -filetype=obj -triple=arm64-apple-darwin %t/a.s -o %t/a.o8; RUN: %lld -dylib -arch arm64 --tail-merge-strings %t/a.o -o %t/a9; RUN: llvm-objdump --macho --section="__TEXT,__objc_methname" %t/a | FileCheck %s --implicit-check-not=error10 11; RUN: %lld -dylib -arch arm64 --no-tail-merge-strings %t/a.o -o %t/nomerge12; RUN: llvm-objdump --macho --section="__TEXT,__objc_methname" %t/nomerge | FileCheck %s --check-prefixes=CHECK,NOMERGE --implicit-check-not=error13 14; CHECK: withBar:error:15; NOMERGE: error:16 17;--- a.mm18__attribute__((objc_root_class))19@interface Foo20- (void)withBar:(int)bar error:(int)error;21- (void)error:(int)error;22@end23 24@implementation Foo25- (void)withBar:(int)bar error:(int)error {}26- (void)error:(int)error {}27@end28 29void *_objc_empty_cache;30void *_objc_empty_vtable;31;--- gen32clang -Oz -target arm64-apple-darwin a.mm -S -o -33;--- a.s34	.build_version macos, 11, 035	.section	__TEXT,__text,regular,pure_instructions36	.p2align	2                               ; -- Begin function -[Foo withBar:error:]37"-[Foo withBar:error:]":                ; @"\01-[Foo withBar:error:]"38	.cfi_startproc39; %bb.0:40	ret41	.cfi_endproc42                                        ; -- End function43	.p2align	2                               ; -- Begin function -[Foo error:]44"-[Foo error:]":                        ; @"\01-[Foo error:]"45	.cfi_startproc46; %bb.0:47	ret48	.cfi_endproc49                                        ; -- End function50	.globl	__objc_empty_vtable             ; @_objc_empty_vtable51.zerofill __DATA,__common,__objc_empty_vtable,8,352	.section	__DATA,__objc_data53	.globl	_OBJC_CLASS_$_Foo               ; @"OBJC_CLASS_$_Foo"54	.p2align	3, 0x055_OBJC_CLASS_$_Foo:56	.quad	_OBJC_METACLASS_$_Foo57	.quad	058	.quad	__objc_empty_cache59	.quad	__objc_empty_vtable60	.quad	__OBJC_CLASS_RO_$_Foo61 62	.globl	_OBJC_METACLASS_$_Foo           ; @"OBJC_METACLASS_$_Foo"63	.p2align	3, 0x064_OBJC_METACLASS_$_Foo:65	.quad	_OBJC_METACLASS_$_Foo66	.quad	_OBJC_CLASS_$_Foo67	.quad	__objc_empty_cache68	.quad	__objc_empty_vtable69	.quad	__OBJC_METACLASS_RO_$_Foo70 71	.section	__TEXT,__objc_classname,cstring_literals72l_OBJC_CLASS_NAME_:                     ; @OBJC_CLASS_NAME_73	.asciz	"Foo"74 75	.section	__DATA,__objc_const76	.p2align	3, 0x0                          ; @"_OBJC_METACLASS_RO_$_Foo"77__OBJC_METACLASS_RO_$_Foo:78	.long	3                               ; 0x379	.long	40                              ; 0x2880	.long	40                              ; 0x2881	.space	482	.quad	083	.quad	l_OBJC_CLASS_NAME_84	.quad	085	.quad	086	.quad	087	.quad	088	.quad	089 90	.section	__TEXT,__objc_methname,cstring_literals91l_OBJC_METH_VAR_NAME_:                  ; @OBJC_METH_VAR_NAME_92	.asciz	"withBar:error:"93 94	.section	__TEXT,__objc_methtype,cstring_literals95l_OBJC_METH_VAR_TYPE_:                  ; @OBJC_METH_VAR_TYPE_96	.asciz	"v24@0:8i16i20"97 98	.section	__TEXT,__objc_methname,cstring_literals99l_OBJC_METH_VAR_NAME_.1:                ; @OBJC_METH_VAR_NAME_.1100	.asciz	"error:"101 102	.section	__TEXT,__objc_methtype,cstring_literals103l_OBJC_METH_VAR_TYPE_.2:                ; @OBJC_METH_VAR_TYPE_.2104	.asciz	"v20@0:8i16"105 106	.section	__DATA,__objc_const107	.p2align	3, 0x0                          ; @"_OBJC_$_INSTANCE_METHODS_Foo"108__OBJC_$_INSTANCE_METHODS_Foo:109	.long	24                              ; 0x18110	.long	2                               ; 0x2111	.quad	l_OBJC_METH_VAR_NAME_112	.quad	l_OBJC_METH_VAR_TYPE_113	.quad	"-[Foo withBar:error:]"114	.quad	l_OBJC_METH_VAR_NAME_.1115	.quad	l_OBJC_METH_VAR_TYPE_.2116	.quad	"-[Foo error:]"117 118	.p2align	3, 0x0                          ; @"_OBJC_CLASS_RO_$_Foo"119__OBJC_CLASS_RO_$_Foo:120	.long	2                               ; 0x2121	.long	0                               ; 0x0122	.long	0                               ; 0x0123	.space	4124	.quad	0125	.quad	l_OBJC_CLASS_NAME_126	.quad	__OBJC_$_INSTANCE_METHODS_Foo127	.quad	0128	.quad	0129	.quad	0130	.quad	0131 132	.globl	__objc_empty_cache              ; @_objc_empty_cache133.zerofill __DATA,__common,__objc_empty_cache,8,3134	.section	__DATA,__objc_classlist,regular,no_dead_strip135	.p2align	3, 0x0                          ; @"OBJC_LABEL_CLASS_$"136l_OBJC_LABEL_CLASS_$:137	.quad	_OBJC_CLASS_$_Foo138 139	.section	__DATA,__objc_imageinfo,regular,no_dead_strip140L_OBJC_IMAGE_INFO:141	.long	0142	.long	64143 144.subsections_via_symbols145