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