xref: /aosp_15_r20/external/llvm/test/MC/COFF/section.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple i386-pc-win32 -filetype=obj %s | llvm-readobj -s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple x86_64-pc-win32 -filetype=obj %s | llvm-readobj -s | FileCheck %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker.section .foo$bar; .long 1
5*9880d681SAndroid Build Coastguard Worker.section .foo@bar; .long 1
6*9880d681SAndroid Build Coastguard Worker.section ABCDEFGHIJKLMNOPQRSTUVWXYZ; .long 1
7*9880d681SAndroid Build Coastguard Worker.section abcdefghijklmnopqrstuvwxyz; .long 1
8*9880d681SAndroid Build Coastguard Worker.section _0123456789; .long 1
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Worker// CHECK: Sections [
11*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
12*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: .foo$bar
13*9880d681SAndroid Build Coastguard Worker// CHECK:   }
14*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
15*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: .foo@bar
16*9880d681SAndroid Build Coastguard Worker// CHECK:   }
17*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
18*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: ABCDEFGHIJKLMNOPQRSTUVWXYZ
19*9880d681SAndroid Build Coastguard Worker// CHECK:   }
20*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
21*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: abcdefghijklmnopqrstuvwxyz
22*9880d681SAndroid Build Coastguard Worker// CHECK:   }
23*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
24*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: _0123456789
25*9880d681SAndroid Build Coastguard Worker// CHECK:   }
26*9880d681SAndroid Build Coastguard Worker
27*9880d681SAndroid Build Coastguard Worker// Test that the defaults are used
28*9880d681SAndroid Build Coastguard Worker.section s      ; .long 1
29*9880d681SAndroid Build Coastguard Worker.section s_, "" ; .long 1
30*9880d681SAndroid Build Coastguard Worker.section s_a,"a"; .long 1
31*9880d681SAndroid Build Coastguard Worker.section s_b,"b"; .long 1
32*9880d681SAndroid Build Coastguard Worker.section s_d,"d"; .long 1
33*9880d681SAndroid Build Coastguard Worker.section s_n,"n"; .long 1
34*9880d681SAndroid Build Coastguard Worker.section s_r,"r"; .long 1
35*9880d681SAndroid Build Coastguard Worker.section s_s,"s"; .long 1
36*9880d681SAndroid Build Coastguard Worker.section s_w,"w"; .long 1
37*9880d681SAndroid Build Coastguard Worker.section s_x,"x"; .long 1
38*9880d681SAndroid Build Coastguard Worker.section s_y,"y"; .long 1
39*9880d681SAndroid Build Coastguard Worker
40*9880d681SAndroid Build Coastguard Worker// CHECK:        Section {
41*9880d681SAndroid Build Coastguard Worker// CHECK:          Name: s
42*9880d681SAndroid Build Coastguard Worker// CHECK:          Characteristics [
43*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES
44*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA
45*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_READ
46*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE
47*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     ]
48*9880d681SAndroid Build Coastguard Worker// CHECK:        }
49*9880d681SAndroid Build Coastguard Worker// CHECK:        Section {
50*9880d681SAndroid Build Coastguard Worker// CHECK:          Name: s_
51*9880d681SAndroid Build Coastguard Worker// CHECK:          Characteristics [
52*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES
53*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA
54*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_READ
55*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE
56*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     ]
57*9880d681SAndroid Build Coastguard Worker// CHECK:        }
58*9880d681SAndroid Build Coastguard Worker// CHECK:        Section {
59*9880d681SAndroid Build Coastguard Worker// CHECK:          Name: s_a
60*9880d681SAndroid Build Coastguard Worker// CHECK:          Characteristics [
61*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES
62*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA
63*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_READ
64*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE
65*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     ]
66*9880d681SAndroid Build Coastguard Worker// CHECK:        }
67*9880d681SAndroid Build Coastguard Worker// CHECK:        Section {
68*9880d681SAndroid Build Coastguard Worker// CHECK:          Name: s_b
69*9880d681SAndroid Build Coastguard Worker// CHECK:          Characteristics [
70*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES
71*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_CNT_UNINITIALIZED_DATA
72*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_READ
73*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE
74*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     ]
75*9880d681SAndroid Build Coastguard Worker// CHECK:        }
76*9880d681SAndroid Build Coastguard Worker// CHECK:        Section {
77*9880d681SAndroid Build Coastguard Worker// CHECK:          Name: s_d
78*9880d681SAndroid Build Coastguard Worker// CHECK:          Characteristics [
79*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES
80*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA
81*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_READ
82*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE
83*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     ]
84*9880d681SAndroid Build Coastguard Worker// CHECK:        }
85*9880d681SAndroid Build Coastguard Worker// CHECK:        Section {
86*9880d681SAndroid Build Coastguard Worker// CHECK:          Name: s_n
87*9880d681SAndroid Build Coastguard Worker// CHECK:          Characteristics [
88*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES
89*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_LNK_REMOVE
90*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_READ
91*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE
92*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     ]
93*9880d681SAndroid Build Coastguard Worker// CHECK:        }
94*9880d681SAndroid Build Coastguard Worker// CHECK:        Section {
95*9880d681SAndroid Build Coastguard Worker// CHECK:          Name: s_r
96*9880d681SAndroid Build Coastguard Worker// CHECK:          Characteristics [
97*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES
98*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA
99*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_READ
100*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     ]
101*9880d681SAndroid Build Coastguard Worker// CHECK:        }
102*9880d681SAndroid Build Coastguard Worker// CHECK:        Section {
103*9880d681SAndroid Build Coastguard Worker// CHECK:          Name: s_s
104*9880d681SAndroid Build Coastguard Worker// CHECK:          Characteristics [
105*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES
106*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA
107*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_READ
108*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_SHARED
109*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE
110*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     ]
111*9880d681SAndroid Build Coastguard Worker// CHECK:        }
112*9880d681SAndroid Build Coastguard Worker// CHECK:        Section {
113*9880d681SAndroid Build Coastguard Worker// CHECK:          Name: s_w
114*9880d681SAndroid Build Coastguard Worker// CHECK:          Characteristics [
115*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES
116*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA
117*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_READ
118*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE
119*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     ]
120*9880d681SAndroid Build Coastguard Worker// CHECK:        }
121*9880d681SAndroid Build Coastguard Worker// CHECK:        Section {
122*9880d681SAndroid Build Coastguard Worker// CHECK:          Name: s_x
123*9880d681SAndroid Build Coastguard Worker// CHECK:          Characteristics [
124*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES
125*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_CNT_CODE
126*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_EXECUTE
127*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_READ
128*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     ]
129*9880d681SAndroid Build Coastguard Worker// CHECK:        }
130*9880d681SAndroid Build Coastguard Worker// CHECK:        Section {
131*9880d681SAndroid Build Coastguard Worker// CHECK:          Name: s_y
132*9880d681SAndroid Build Coastguard Worker// CHECK:          Characteristics [
133*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES
134*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     ]
135*9880d681SAndroid Build Coastguard Worker// CHECK:        }
136*9880d681SAndroid Build Coastguard Worker
137*9880d681SAndroid Build Coastguard Worker// w makes read-only to readable
138*9880d681SAndroid Build Coastguard Worker.section s_rw,"rw"; .long 1
139*9880d681SAndroid Build Coastguard Worker// CHECK:        Section {
140*9880d681SAndroid Build Coastguard Worker// CHECK:          Name: s_rw
141*9880d681SAndroid Build Coastguard Worker// CHECK:          Characteristics [
142*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES
143*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA
144*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_READ
145*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE
146*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     ]
147*9880d681SAndroid Build Coastguard Worker// CHECK:        }
148*9880d681SAndroid Build Coastguard Worker
149*9880d681SAndroid Build Coastguard Worker// r cancels w
150*9880d681SAndroid Build Coastguard Worker.section s_wr,"wr"; .long 1
151*9880d681SAndroid Build Coastguard Worker// CHECK:        Section {
152*9880d681SAndroid Build Coastguard Worker// CHECK:          Name: s_wr
153*9880d681SAndroid Build Coastguard Worker// CHECK:          Characteristics [
154*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES
155*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA
156*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_MEM_READ
157*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     ]
158*9880d681SAndroid Build Coastguard Worker// CHECK:        }
159*9880d681SAndroid Build Coastguard Worker
160*9880d681SAndroid Build Coastguard Worker// y cancels both
161*9880d681SAndroid Build Coastguard Worker.section s_rwy,"rwy"; .long 1
162*9880d681SAndroid Build Coastguard Worker// CHECK:        Section {
163*9880d681SAndroid Build Coastguard Worker// CHECK:          Name: s_rwy
164*9880d681SAndroid Build Coastguard Worker// CHECK:          Characteristics [
165*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES
166*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA
167*9880d681SAndroid Build Coastguard Worker// CHECK-NEXT:     ]
168*9880d681SAndroid Build Coastguard Worker// CHECK:        }
169*9880d681SAndroid Build Coastguard Worker
170*9880d681SAndroid Build Coastguard Worker// CHECK:      ]
171