xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/osx-private-labels.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker; Test all the cases where a L label is safe. Removing any entry from
3*9880d681SAndroid Build Coastguard Worker; TargetLoweringObjectFileMachO::isSectionAtomizableBySymbols should cause
4*9880d681SAndroid Build Coastguard Worker; this to fail.
5*9880d681SAndroid Build Coastguard Worker; We also test some noteworthy cases that require an l label.
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker@private1 = private unnamed_addr constant [4 x i8] c"zed\00"
8*9880d681SAndroid Build Coastguard Worker; CHECK: .section	__TEXT,__cstring,cstring_literals
9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: L_private1:
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Worker@private2 = private unnamed_addr constant [5 x i16] [i16 116, i16 101,
12*9880d681SAndroid Build Coastguard Worker                                                     i16 115, i16 116, i16 0]
13*9880d681SAndroid Build Coastguard Worker; CHECK: .section	__TEXT,__ustring
14*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .p2align	1
15*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: l_private2:
16*9880d681SAndroid Build Coastguard Worker
17*9880d681SAndroid Build Coastguard Worker; There is no dedicated 4 byte strings on MachO.
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Worker%struct.NSConstantString = type { i32*, i32, i8*, i32 }
20*9880d681SAndroid Build Coastguard Worker@private3 = private constant %struct.NSConstantString { i32* null, i32 1992, i8* null, i32 0 }, section "__DATA,__cfstring"
21*9880d681SAndroid Build Coastguard Worker; CHECK: .section	__DATA,__cfstring
22*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .p2align	4
23*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: L_private3:
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Worker; There is no dedicated 1 or 2 byte constant section on MachO.
26*9880d681SAndroid Build Coastguard Worker
27*9880d681SAndroid Build Coastguard Worker@private4 = private unnamed_addr constant i32 42
28*9880d681SAndroid Build Coastguard Worker; CHECK: .section	__TEXT,__literal4,4byte_literals
29*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .p2align	2
30*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: L_private4:
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Worker@private5 = private unnamed_addr constant i64 42
33*9880d681SAndroid Build Coastguard Worker; CHECK: .section	__TEXT,__literal8,8byte_literals
34*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .p2align	3
35*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: L_private5:
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Worker@private6 = private unnamed_addr constant i128 42
38*9880d681SAndroid Build Coastguard Worker; CHECK: .section	__TEXT,__literal16,16byte_literals
39*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .p2align	3
40*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: L_private6:
41*9880d681SAndroid Build Coastguard Worker
42*9880d681SAndroid Build Coastguard Worker%struct._objc_class = type { i8* }
43*9880d681SAndroid Build Coastguard Worker@private7 = private global %struct._objc_class* null, section "__OBJC,__cls_refs,literal_pointers,no_dead_strip"
44*9880d681SAndroid Build Coastguard Worker; CHECK: .section	__OBJC,__cls_refs,literal_pointers,no_dead_strip
45*9880d681SAndroid Build Coastguard Worker; CHECK: .p2align	3
46*9880d681SAndroid Build Coastguard Worker; CHECK: L_private7:
47*9880d681SAndroid Build Coastguard Worker
48*9880d681SAndroid Build Coastguard Worker@private8 = private global i32* null, section "__DATA,__nl_symbol_ptr,non_lazy_symbol_pointers"
49*9880d681SAndroid Build Coastguard Worker; CHECK: .section	__DATA,__nl_symbol_ptr,non_lazy_symbol_pointers
50*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .p2align	3
51*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: L_private8:
52*9880d681SAndroid Build Coastguard Worker
53*9880d681SAndroid Build Coastguard Worker@private9 = private global i32* null, section "__DATA,__la_symbol_ptr,lazy_symbol_pointers"
54*9880d681SAndroid Build Coastguard Worker; CHECK: .section	__DATA,__la_symbol_ptr,lazy_symbol_pointers
55*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .p2align	3
56*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: L_private9:
57*9880d681SAndroid Build Coastguard Worker
58*9880d681SAndroid Build Coastguard Worker@private10 = private global i32* null, section "__DATA,__mod_init_func,mod_init_funcs"
59*9880d681SAndroid Build Coastguard Worker; CHECK: .section	__DATA,__mod_init_func,mod_init_funcs
60*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .p2align	3
61*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: L_private10:
62*9880d681SAndroid Build Coastguard Worker
63*9880d681SAndroid Build Coastguard Worker@private11 = private global i32* null, section "__DATA,__mod_term_func,mod_term_funcs"
64*9880d681SAndroid Build Coastguard Worker; CHECK: .section	__DATA,__mod_term_func,mod_term_funcs
65*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .p2align	3
66*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: L_private11:
67*9880d681SAndroid Build Coastguard Worker
68*9880d681SAndroid Build Coastguard Worker@private12 = private global i32* null, section "__DATA,__foobar,interposing"
69*9880d681SAndroid Build Coastguard Worker; CHECK: .section	__DATA,__foobar,interposing
70*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .p2align	3
71*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: L_private12:
72*9880d681SAndroid Build Coastguard Worker
73*9880d681SAndroid Build Coastguard Worker@private13 = private global i32 42, section "__DATA, __objc_classlist, regular, no_dead_strip"
74*9880d681SAndroid Build Coastguard Worker; CHECK: .section	__DATA,__objc_classlist,regular,no_dead_strip
75*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .p2align	2
76*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: L_private13:
77*9880d681SAndroid Build Coastguard Worker
78*9880d681SAndroid Build Coastguard Worker@private14 = private global [4 x i8] c"zed\00", section "__TEXT,__objc_classname,cstring_literals"
79*9880d681SAndroid Build Coastguard Worker; CHECK: .section	__TEXT,__objc_classname,cstring_literals
80*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: L_private14:
81*9880d681SAndroid Build Coastguard Worker
82*9880d681SAndroid Build Coastguard Worker@private15 = private global [4 x i8] c"zed\00", section "__TEXT,__objc_methname,cstring_literals"
83*9880d681SAndroid Build Coastguard Worker; CHECK: .section	__TEXT,__objc_methname,cstring_literals
84*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: L_private15:
85*9880d681SAndroid Build Coastguard Worker
86*9880d681SAndroid Build Coastguard Worker@private16 = private global [4 x i8] c"zed\00", section "__TEXT,__objc_methtype,cstring_literals"
87*9880d681SAndroid Build Coastguard Worker; CHECK: .section	__TEXT,__objc_methtype,cstring_literals
88*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: L_private16:
89