xref: /aosp_15_r20/external/llvm/test/MC/COFF/linkonce.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker// Test section manipulation via .linkonce directive.
2*9880d681SAndroid Build Coastguard Worker//
3*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple i386-pc-win32 -filetype=obj %s | llvm-readobj -s -t | FileCheck %s
4*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple x86_64-pc-win32 -filetype=obj %s | llvm-readobj -s -t | FileCheck %s
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker.section s1
7*9880d681SAndroid Build Coastguard Worker.linkonce
8*9880d681SAndroid Build Coastguard Worker.long 1
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Worker.section s2
11*9880d681SAndroid Build Coastguard Worker.linkonce one_only
12*9880d681SAndroid Build Coastguard Worker.long 1
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Worker.section s3
15*9880d681SAndroid Build Coastguard Worker.linkonce discard
16*9880d681SAndroid Build Coastguard Worker.long 1
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker.section s4
19*9880d681SAndroid Build Coastguard Worker.linkonce same_size
20*9880d681SAndroid Build Coastguard Worker.long 1
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Worker.section s5
23*9880d681SAndroid Build Coastguard Worker.linkonce same_contents
24*9880d681SAndroid Build Coastguard Worker.long 1
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Worker.section s6
27*9880d681SAndroid Build Coastguard Worker.long 1
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Worker.section s7
30*9880d681SAndroid Build Coastguard Worker.linkonce largest
31*9880d681SAndroid Build Coastguard Worker.long 1
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Worker.section s8
34*9880d681SAndroid Build Coastguard Worker.linkonce newest
35*9880d681SAndroid Build Coastguard Worker.long 1
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Worker.section .foo$bar
38*9880d681SAndroid Build Coastguard Worker.linkonce discard
39*9880d681SAndroid Build Coastguard Worker.long 1
40*9880d681SAndroid Build Coastguard Worker
41*9880d681SAndroid Build Coastguard Worker
42*9880d681SAndroid Build Coastguard Worker// CHECK: Sections [
43*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
44*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: s1
45*9880d681SAndroid Build Coastguard Worker// CHECK:     Characteristics [
46*9880d681SAndroid Build Coastguard Worker// CHECK:       IMAGE_SCN_LNK_COMDAT
47*9880d681SAndroid Build Coastguard Worker// CHECK:     ]
48*9880d681SAndroid Build Coastguard Worker// CHECK:   }
49*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
50*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: s2
51*9880d681SAndroid Build Coastguard Worker// CHECK:     Characteristics [
52*9880d681SAndroid Build Coastguard Worker// CHECK:       IMAGE_SCN_LNK_COMDAT
53*9880d681SAndroid Build Coastguard Worker// CHECK:     ]
54*9880d681SAndroid Build Coastguard Worker// CHECK:   }
55*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
56*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: s3
57*9880d681SAndroid Build Coastguard Worker// CHECK:     Characteristics [
58*9880d681SAndroid Build Coastguard Worker// CHECK:       IMAGE_SCN_LNK_COMDAT
59*9880d681SAndroid Build Coastguard Worker// CHECK:     ]
60*9880d681SAndroid Build Coastguard Worker// CHECK:   }
61*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
62*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: s4
63*9880d681SAndroid Build Coastguard Worker// CHECK:     Characteristics [
64*9880d681SAndroid Build Coastguard Worker// CHECK:       IMAGE_SCN_LNK_COMDAT
65*9880d681SAndroid Build Coastguard Worker// CHECK:     ]
66*9880d681SAndroid Build Coastguard Worker// CHECK:   }
67*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
68*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: s5
69*9880d681SAndroid Build Coastguard Worker// CHECK:     Characteristics [
70*9880d681SAndroid Build Coastguard Worker// CHECK:       IMAGE_SCN_LNK_COMDAT
71*9880d681SAndroid Build Coastguard Worker// CHECK:     ]
72*9880d681SAndroid Build Coastguard Worker// CHECK:   }
73*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
74*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: s6
75*9880d681SAndroid Build Coastguard Worker// CHECK:     Characteristics [
76*9880d681SAndroid Build Coastguard Worker// CHECK:     ]
77*9880d681SAndroid Build Coastguard Worker// CHECK:   }
78*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
79*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: s7
80*9880d681SAndroid Build Coastguard Worker// CHECK:     Characteristics [
81*9880d681SAndroid Build Coastguard Worker// CHECK:       IMAGE_SCN_LNK_COMDAT
82*9880d681SAndroid Build Coastguard Worker// CHECK:     ]
83*9880d681SAndroid Build Coastguard Worker// CHECK:   }
84*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
85*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: s8
86*9880d681SAndroid Build Coastguard Worker// CHECK:     Characteristics [
87*9880d681SAndroid Build Coastguard Worker// CHECK:       IMAGE_SCN_LNK_COMDAT
88*9880d681SAndroid Build Coastguard Worker// CHECK:     ]
89*9880d681SAndroid Build Coastguard Worker// CHECK:   }
90*9880d681SAndroid Build Coastguard Worker// CHECK: ]
91*9880d681SAndroid Build Coastguard Worker// CHECK: Symbols [
92*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
93*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: s1
94*9880d681SAndroid Build Coastguard Worker// CHECK:     Section: s1 (4)
95*9880d681SAndroid Build Coastguard Worker// CHECK:     AuxSectionDef {
96*9880d681SAndroid Build Coastguard Worker// CHECK:       Number: 4
97*9880d681SAndroid Build Coastguard Worker// CHECK:       Selection: Any (0x2)
98*9880d681SAndroid Build Coastguard Worker// CHECK:     }
99*9880d681SAndroid Build Coastguard Worker// CHECK:   }
100*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
101*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: s2
102*9880d681SAndroid Build Coastguard Worker// CHECK:     Section: s2 (5)
103*9880d681SAndroid Build Coastguard Worker// CHECK:     AuxSectionDef {
104*9880d681SAndroid Build Coastguard Worker// CHECK:       Number: 5
105*9880d681SAndroid Build Coastguard Worker// CHECK:       Selection: NoDuplicates (0x1)
106*9880d681SAndroid Build Coastguard Worker// CHECK:     }
107*9880d681SAndroid Build Coastguard Worker// CHECK:   }
108*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
109*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: s3
110*9880d681SAndroid Build Coastguard Worker// CHECK:     Section: s3 (6)
111*9880d681SAndroid Build Coastguard Worker// CHECK:     AuxSectionDef {
112*9880d681SAndroid Build Coastguard Worker// CHECK:       Number: 6
113*9880d681SAndroid Build Coastguard Worker// CHECK:       Selection: Any (0x2)
114*9880d681SAndroid Build Coastguard Worker// CHECK:     }
115*9880d681SAndroid Build Coastguard Worker// CHECK:   }
116*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
117*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: s4
118*9880d681SAndroid Build Coastguard Worker// CHECK:     Section: s4 (7)
119*9880d681SAndroid Build Coastguard Worker// CHECK:     AuxSectionDef {
120*9880d681SAndroid Build Coastguard Worker// CHECK:       Number: 7
121*9880d681SAndroid Build Coastguard Worker// CHECK:       Selection: SameSize (0x3)
122*9880d681SAndroid Build Coastguard Worker// CHECK:     }
123*9880d681SAndroid Build Coastguard Worker// CHECK:   }
124*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
125*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: s5
126*9880d681SAndroid Build Coastguard Worker// CHECK:     Section: s5 (8)
127*9880d681SAndroid Build Coastguard Worker// CHECK:     AuxSectionDef {
128*9880d681SAndroid Build Coastguard Worker// CHECK:       Number: 8
129*9880d681SAndroid Build Coastguard Worker// CHECK:       Selection: ExactMatch (0x4)
130*9880d681SAndroid Build Coastguard Worker// CHECK:     }
131*9880d681SAndroid Build Coastguard Worker// CHECK:   }
132*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
133*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: s6
134*9880d681SAndroid Build Coastguard Worker// CHECK:   }
135*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
136*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: s7
137*9880d681SAndroid Build Coastguard Worker// CHECK:     Section: s7 (10)
138*9880d681SAndroid Build Coastguard Worker// CHECK:     AuxSectionDef {
139*9880d681SAndroid Build Coastguard Worker// CHECK:       Number: 10
140*9880d681SAndroid Build Coastguard Worker// CHECK:       Selection: Largest (0x6)
141*9880d681SAndroid Build Coastguard Worker// CHECK:     }
142*9880d681SAndroid Build Coastguard Worker// CHECK:   }
143*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
144*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: s8
145*9880d681SAndroid Build Coastguard Worker// CHECK:     Section: s8 (11)
146*9880d681SAndroid Build Coastguard Worker// CHECK:     AuxSectionDef {
147*9880d681SAndroid Build Coastguard Worker// CHECK:       Number: 11
148*9880d681SAndroid Build Coastguard Worker// CHECK:       Selection: Newest (0x7)
149*9880d681SAndroid Build Coastguard Worker// CHECK:     }
150*9880d681SAndroid Build Coastguard Worker// CHECK:   }
151