2
2
// RUN: %target-build-swift -g -lswiftSwiftReflectionTest %s -o %t/reflect_Enum_MultiPayload_degenerate
3
3
// RUN: %target-codesign %t/reflect_Enum_MultiPayload_degenerate
4
4
5
- // RUN: %target-run %target-swift-reflection-test %t/reflect_Enum_MultiPayload_degenerate | %FileCheck %s --check-prefix=CHECK-%target-ptrsize
5
+ // RUN: %target-run %target-swift-reflection-test %t/reflect_Enum_MultiPayload_degenerate | %FileCheck %s --check-prefix=CHECK --check-prefix=CHECK -%target-ptrsize
6
6
7
7
// REQUIRES: reflection_test_support
8
8
// REQUIRES: executable_test
9
9
// UNSUPPORTED: use_os_stdlib
10
10
11
- // Currently broken rdar://104199930
12
- // UNSUPPORTED: OS=watchos
13
-
14
11
import SwiftReflectionTest
15
12
16
13
// Only one case has a non-zero-sized payload, so this gets
@@ -22,12 +19,13 @@ case b(Void)
22
19
23
20
reflect ( enum: FooVoid . a ( [ ] ) )
24
21
25
- // CHECK-64: Reflecting an enum.
26
- // CHECK-64: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
27
- // CHECK-64: Type reference:
28
- // CHECK-64: (enum reflect_Enum_MultiPayload_degenerate.FooVoid)
22
+ // CHECK: Reflecting an enum.
23
+ // CHECK: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
24
+ // CHECK: Type reference:
25
+ // CHECK: (enum reflect_Enum_MultiPayload_degenerate.FooVoid)
26
+
27
+ // CHECK: Type info:
29
28
30
- // CHECK-64: Type info:
31
29
// CHECK-64: (multi_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=2147483646 bitwise_takable=1
32
30
// CHECK-64: (case name=a index=0 offset=0
33
31
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
@@ -37,25 +35,38 @@ reflect(enum: FooVoid.a([]))
37
35
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
38
36
// CHECK-64: (field name=rawValue offset=0
39
37
// CHECK-64: (builtin size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1))))))))
40
- // CHECK-64: (case name=b index=1 offset=0
41
- // CHECK-64: (tuple size=0 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1)))
42
- // CHECK-64: Mangled name: $s36reflect_Enum_MultiPayload_degenerate7FooVoidO
43
- // CHECK-64: Demangled name: reflect_Enum_MultiPayload_degenerate.FooVoid
44
38
45
- // CHECK-64: Enum value:
46
- // CHECK-64: (enum_value name=a index=0
47
- // CHECK-64: (bound_generic_struct Swift.Array
48
- // CHECK-64: (struct Swift.Int))
49
- // CHECK-64: )
39
+ // CHECK-32: (multi_payload_enum size=4 alignment=4 stride=4 num_extra_inhabitants=4095 bitwise_takable=1
40
+ // CHECK-32: (case name=a index=0 offset=0
41
+ // CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1
42
+ // CHECK-32: (field name=_buffer offset=0
43
+ // CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1
44
+ // CHECK-32: (field name=_storage offset=0
45
+ // CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1
46
+ // CHECK-32: (field name=rawValue offset=0
47
+ // CHECK-32: (builtin size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1))))))))
48
+
49
+ // CHECK: (case name=b index=1 offset=0
50
+ // CHECK: (tuple size=0 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1)))
51
+
52
+ // CHECK: Mangled name: $s36reflect_Enum_MultiPayload_degenerate7FooVoidO
53
+ // CHECK: Demangled name: reflect_Enum_MultiPayload_degenerate.FooVoid
54
+
55
+ // CHECK: Enum value:
56
+ // CHECK: (enum_value name=a index=0
57
+ // CHECK: (bound_generic_struct Swift.Array
58
+ // CHECK: (struct Swift.Int))
59
+ // CHECK: )
50
60
51
61
reflect ( enum: FooVoid . b ( ( ) ) )
52
62
53
- // CHECK-64: Reflecting an enum.
54
- // CHECK-64: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
55
- // CHECK-64: Type reference:
56
- // CHECK-64: (enum reflect_Enum_MultiPayload_degenerate.FooVoid)
63
+ // CHECK: Reflecting an enum.
64
+ // CHECK: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
65
+ // CHECK: Type reference:
66
+ // CHECK: (enum reflect_Enum_MultiPayload_degenerate.FooVoid)
67
+
68
+ // CHECK: Type info:
57
69
58
- // CHECK-64: Type info:
59
70
// CHECK-64: (multi_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=2147483646 bitwise_takable=1
60
71
// CHECK-64: (case name=a index=0 offset=0
61
72
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
@@ -65,15 +76,26 @@ reflect(enum: FooVoid.b(()))
65
76
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
66
77
// CHECK-64: (field name=rawValue offset=0
67
78
// CHECK-64: (builtin size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1))))))))
68
- // CHECK-64: (case name=b index=1 offset=0
69
- // CHECK-64: (tuple size=0 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1)))
70
- // CHECK-64: Mangled name: $s36reflect_Enum_MultiPayload_degenerate7FooVoidO
71
- // CHECK-64: Demangled name: reflect_Enum_MultiPayload_degenerate.FooVoid
72
79
73
- // CHECK-64: Enum value:
74
- // CHECK-64: (enum_value name=b index=1
75
- // CHECK-64: (tuple)
76
- // CHECK-64: )
80
+ // CHECK-32: (multi_payload_enum size=4 alignment=4 stride=4 num_extra_inhabitants=4095 bitwise_takable=1
81
+ // CHECK-32: (case name=a index=0 offset=0
82
+ // CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1
83
+ // CHECK-32: (field name=_buffer offset=0
84
+ // CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1
85
+ // CHECK-32: (field name=_storage offset=0
86
+ // CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1
87
+ // CHECK-32: (field name=rawValue offset=0
88
+ // CHECK-32: (builtin size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1))))))))
89
+
90
+ // CHECK: (case name=b index=1 offset=0
91
+ // CHECK: (tuple size=0 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1)))
92
+ // CHECK: Mangled name: $s36reflect_Enum_MultiPayload_degenerate7FooVoidO
93
+ // CHECK: Demangled name: reflect_Enum_MultiPayload_degenerate.FooVoid
94
+
95
+ // CHECK: Enum value:
96
+ // CHECK: (enum_value name=b index=1
97
+ // CHECK: (tuple)
98
+ // CHECK: )
77
99
78
100
79
101
// Same as above, except the first payload has zero size
@@ -84,12 +106,13 @@ case b([Int])
84
106
85
107
reflect ( enum: FooVoid2 . a ( ( ) ) )
86
108
87
- // CHECK-64: Reflecting an enum.
88
- // CHECK-64: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
89
- // CHECK-64: Type reference:
90
- // CHECK-64: (enum reflect_Enum_MultiPayload_degenerate.FooVoid2)
109
+ // CHECK: Reflecting an enum.
110
+ // CHECK: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
111
+ // CHECK: Type reference:
112
+ // CHECK: (enum reflect_Enum_MultiPayload_degenerate.FooVoid2)
113
+
114
+ // CHECK: Type info:
91
115
92
- // CHECK-64: Type info:
93
116
// CHECK-64: (multi_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=2147483646 bitwise_takable=1
94
117
// CHECK-64: (case name=b index=0 offset=0
95
118
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
@@ -99,24 +122,36 @@ reflect(enum: FooVoid2.a(()))
99
122
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
100
123
// CHECK-64: (field name=rawValue offset=0
101
124
// CHECK-64: (builtin size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1))))))))
102
- // CHECK-64: (case name=a index=1 offset=0
103
- // CHECK-64: (tuple size=0 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1)))
104
- // CHECK-64: Mangled name: $s36reflect_Enum_MultiPayload_degenerate8FooVoid2O
105
- // CHECK-64: Demangled name: reflect_Enum_MultiPayload_degenerate.FooVoid2
106
125
107
- // CHECK-64: Enum value:
108
- // CHECK-64: (enum_value name=a index=1
109
- // CHECK-64: (tuple)
110
- // CHECK-64: )
126
+ // CHECK-32: (multi_payload_enum size=4 alignment=4 stride=4 num_extra_inhabitants=4095 bitwise_takable=1
127
+ // CHECK-32: (case name=b index=0 offset=0
128
+ // CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1
129
+ // CHECK-32: (field name=_buffer offset=0
130
+ // CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1
131
+ // CHECK-32: (field name=_storage offset=0
132
+ // CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1
133
+ // CHECK-32: (field name=rawValue offset=0
134
+ // CHECK-32: (builtin size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1))))))))
135
+
136
+ // CHECK: (case name=a index=1 offset=0
137
+ // CHECK: (tuple size=0 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1)))
138
+ // CHECK: Mangled name: $s36reflect_Enum_MultiPayload_degenerate8FooVoid2O
139
+ // CHECK: Demangled name: reflect_Enum_MultiPayload_degenerate.FooVoid2
140
+
141
+ // CHECK: Enum value:
142
+ // CHECK: (enum_value name=a index=1
143
+ // CHECK: (tuple)
144
+ // CHECK: )
111
145
112
146
reflect ( enum: FooVoid2 . b ( [ ] ) )
113
147
114
- // CHECK-64: Reflecting an enum.
115
- // CHECK-64: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
116
- // CHECK-64: Type reference:
117
- // CHECK-64: (enum reflect_Enum_MultiPayload_degenerate.FooVoid2)
148
+ // CHECK: Reflecting an enum.
149
+ // CHECK: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
150
+ // CHECK: Type reference:
151
+ // CHECK: (enum reflect_Enum_MultiPayload_degenerate.FooVoid2)
152
+
153
+ // CHECK: Type info:
118
154
119
- // CHECK-64: Type info:
120
155
// CHECK-64: (multi_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=2147483646 bitwise_takable=1
121
156
// CHECK-64: (case name=b index=0 offset=0
122
157
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
@@ -126,16 +161,27 @@ reflect(enum: FooVoid2.b([]))
126
161
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
127
162
// CHECK-64: (field name=rawValue offset=0
128
163
// CHECK-64: (builtin size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1))))))))
129
- // CHECK-64: (case name=a index=1 offset=0
130
- // CHECK-64: (tuple size=0 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1)))
131
- // CHECK-64: Mangled name: $s36reflect_Enum_MultiPayload_degenerate8FooVoid2O
132
- // CHECK-64: Demangled name: reflect_Enum_MultiPayload_degenerate.FooVoid2
133
164
134
- // CHECK-64: Enum value:
135
- // CHECK-64: (enum_value name=b index=0
136
- // CHECK-64: (bound_generic_struct Swift.Array
137
- // CHECK-64: (struct Swift.Int))
138
- // CHECK-64: )
165
+ // CHECK-32: (multi_payload_enum size=4 alignment=4 stride=4 num_extra_inhabitants=4095 bitwise_takable=1
166
+ // CHECK-32: (case name=b index=0 offset=0
167
+ // CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1
168
+ // CHECK-32: (field name=_buffer offset=0
169
+ // CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1
170
+ // CHECK-32: (field name=_storage offset=0
171
+ // CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1
172
+ // CHECK-32: (field name=rawValue offset=0
173
+ // CHECK-32: (builtin size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1))))))))
174
+
175
+ // CHECK: (case name=a index=1 offset=0
176
+ // CHECK: (tuple size=0 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1)))
177
+ // CHECK: Mangled name: $s36reflect_Enum_MultiPayload_degenerate8FooVoid2O
178
+ // CHECK: Demangled name: reflect_Enum_MultiPayload_degenerate.FooVoid2
179
+
180
+ // CHECK: Enum value:
181
+ // CHECK: (enum_value name=b index=0
182
+ // CHECK: (bound_generic_struct Swift.Array
183
+ // CHECK: (struct Swift.Int))
184
+ // CHECK: )
139
185
140
186
141
187
// As above, this is laid out as a single-payload enum
@@ -148,12 +194,13 @@ case b(B)
148
194
149
195
reflect ( enum: FooEmptyStruct . a ( [ ] ) )
150
196
151
- // CHECK-64: Reflecting an enum.
152
- // CHECK-64: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
153
- // CHECK-64: Type reference:
154
- // CHECK-64: (enum reflect_Enum_MultiPayload_degenerate.FooEmptyStruct)
197
+ // CHECK: Reflecting an enum.
198
+ // CHECK: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
199
+ // CHECK: Type reference:
200
+ // CHECK: (enum reflect_Enum_MultiPayload_degenerate.FooEmptyStruct)
201
+
202
+ // CHECK: Type info:
155
203
156
- // CHECK-64: Type info:
157
204
// CHECK-64: (multi_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=2147483646 bitwise_takable=1
158
205
// CHECK-64: (case name=a index=0 offset=0
159
206
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
@@ -163,25 +210,37 @@ reflect(enum: FooEmptyStruct.a([]))
163
210
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
164
211
// CHECK-64: (field name=rawValue offset=0
165
212
// CHECK-64: (builtin size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1))))))))
166
- // CHECK-64: (case name=b index=1 offset=0
167
- // CHECK-64: (struct size=0 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1)))
168
- // CHECK-64: Mangled name: $s36reflect_Enum_MultiPayload_degenerate14FooEmptyStructO
169
- // CHECK-64: Demangled name: reflect_Enum_MultiPayload_degenerate.FooEmptyStruct
170
213
171
- // CHECK-64: Enum value:
172
- // CHECK-64: (enum_value name=a index=0
173
- // CHECK-64: (bound_generic_struct Swift.Array
174
- // CHECK-64: (struct Swift.Int))
175
- // CHECK-64: )
214
+ // CHECK-32: (multi_payload_enum size=4 alignment=4 stride=4 num_extra_inhabitants=4095 bitwise_takable=1
215
+ // CHECK-32: (case name=a index=0 offset=0
216
+ // CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1
217
+ // CHECK-32: (field name=_buffer offset=0
218
+ // CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1
219
+ // CHECK-32: (field name=_storage offset=0
220
+ // CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1
221
+ // CHECK-32: (field name=rawValue offset=0
222
+ // CHECK-32: (builtin size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1))))))))
223
+
224
+ // CHECK: (case name=b index=1 offset=0
225
+ // CHECK: (struct size=0 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1)))
226
+ // CHECK: Mangled name: $s36reflect_Enum_MultiPayload_degenerate14FooEmptyStructO
227
+ // CHECK: Demangled name: reflect_Enum_MultiPayload_degenerate.FooEmptyStruct
228
+
229
+ // CHECK: Enum value:
230
+ // CHECK: (enum_value name=a index=0
231
+ // CHECK: (bound_generic_struct Swift.Array
232
+ // CHECK: (struct Swift.Int))
233
+ // CHECK: )
176
234
177
235
reflect ( enum: FooEmptyStruct . b ( B ( ) ) )
178
236
179
- // CHECK-64: Reflecting an enum.
180
- // CHECK-64: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
181
- // CHECK-64: Type reference:
182
- // CHECK-64: (enum reflect_Enum_MultiPayload_degenerate.FooEmptyStruct)
237
+ // CHECK: Reflecting an enum.
238
+ // CHECK: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
239
+ // CHECK: Type reference:
240
+ // CHECK: (enum reflect_Enum_MultiPayload_degenerate.FooEmptyStruct)
241
+
242
+ // CHECK: Type info:
183
243
184
- // CHECK-64: Type info:
185
244
// CHECK-64: (multi_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=2147483646 bitwise_takable=1
186
245
// CHECK-64: (case name=a index=0 offset=0
187
246
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
@@ -191,22 +250,30 @@ reflect(enum: FooEmptyStruct.b(B()))
191
250
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
192
251
// CHECK-64: (field name=rawValue offset=0
193
252
// CHECK-64: (builtin size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1))))))))
194
- // CHECK-64: (case name=b index=1 offset=0
195
- // CHECK-64: (struct size=0 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1)))
196
- // CHECK-64: Mangled name: $s36reflect_Enum_MultiPayload_degenerate14FooEmptyStructO
197
- // CHECK-64: Demangled name: reflect_Enum_MultiPayload_degenerate.FooEmptyStruct
198
253
199
- // CHECK-64: Enum value:
200
- // CHECK-64: (enum_value name=b index=1
201
- // CHECK-64: (struct reflect_Enum_MultiPayload_degenerate.B)
202
- // CHECK-64: )
254
+ // CHECK-32: (multi_payload_enum size=4 alignment=4 stride=4 num_extra_inhabitants=4095 bitwise_takable=1
255
+ // CHECK-32: (case name=a index=0 offset=0
256
+ // CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1
257
+ // CHECK-32: (field name=_buffer offset=0
258
+ // CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1
259
+ // CHECK-32: (field name=_storage offset=0
260
+ // CHECK-32: (struct size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1
261
+ // CHECK-32: (field name=rawValue offset=0
262
+ // CHECK-32: (builtin size=4 alignment=4 stride=4 num_extra_inhabitants=4096 bitwise_takable=1))))))))
203
263
264
+ // CHECK: (case name=b index=1 offset=0
265
+ // CHECK: (struct size=0 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1)))
266
+ // CHECK: Mangled name: $s36reflect_Enum_MultiPayload_degenerate14FooEmptyStructO
267
+ // CHECK: Demangled name: reflect_Enum_MultiPayload_degenerate.FooEmptyStruct
268
+
269
+ // CHECK: Enum value:
270
+ // CHECK: (enum_value name=b index=1
271
+ // CHECK: (struct reflect_Enum_MultiPayload_degenerate.B)
272
+ // CHECK: )
204
273
205
274
206
275
// TODO: Variations of Foo where `b` payload is class, Bool
207
276
208
277
doneReflecting ( )
209
278
210
- // CHECK-32: FAIL
211
-
212
279
// CHECK: Done.
0 commit comments