Skip to content

Commit df03bae

Browse files
committed
Merge remote-tracking branch 'origin/main' into rebranch
2 parents deefb44 + 7ea2b4b commit df03bae

File tree

1 file changed

+154
-87
lines changed

1 file changed

+154
-87
lines changed

validation-test/Reflection/reflect_Enum_MultiPayload_degenerate.swift

Lines changed: 154 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,12 @@
22
// RUN: %target-build-swift -g -lswiftSwiftReflectionTest %s -o %t/reflect_Enum_MultiPayload_degenerate
33
// RUN: %target-codesign %t/reflect_Enum_MultiPayload_degenerate
44

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
66

77
// REQUIRES: reflection_test_support
88
// REQUIRES: executable_test
99
// UNSUPPORTED: use_os_stdlib
1010

11-
// Currently broken rdar://104199930
12-
// UNSUPPORTED: OS=watchos
13-
1411
import SwiftReflectionTest
1512

1613
// Only one case has a non-zero-sized payload, so this gets
@@ -22,12 +19,13 @@ case b(Void)
2219

2320
reflect(enum: FooVoid.a([]))
2421

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:
2928

30-
// CHECK-64: Type info:
3129
// CHECK-64: (multi_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=2147483646 bitwise_takable=1
3230
// CHECK-64: (case name=a index=0 offset=0
3331
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
@@ -37,25 +35,38 @@ reflect(enum: FooVoid.a([]))
3735
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
3836
// CHECK-64: (field name=rawValue offset=0
3937
// 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
4438

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: )
5060

5161
reflect(enum: FooVoid.b(()))
5262

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:
5769

58-
// CHECK-64: Type info:
5970
// CHECK-64: (multi_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=2147483646 bitwise_takable=1
6071
// CHECK-64: (case name=a index=0 offset=0
6172
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
@@ -65,15 +76,26 @@ reflect(enum: FooVoid.b(()))
6576
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
6677
// CHECK-64: (field name=rawValue offset=0
6778
// 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
7279

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: )
7799

78100

79101
// Same as above, except the first payload has zero size
@@ -84,12 +106,13 @@ case b([Int])
84106

85107
reflect(enum: FooVoid2.a(()))
86108

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:
91115

92-
// CHECK-64: Type info:
93116
// CHECK-64: (multi_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=2147483646 bitwise_takable=1
94117
// CHECK-64: (case name=b index=0 offset=0
95118
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
@@ -99,24 +122,36 @@ reflect(enum: FooVoid2.a(()))
99122
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
100123
// CHECK-64: (field name=rawValue offset=0
101124
// 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
106125

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: )
111145

112146
reflect(enum: FooVoid2.b([]))
113147

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:
118154

119-
// CHECK-64: Type info:
120155
// CHECK-64: (multi_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=2147483646 bitwise_takable=1
121156
// CHECK-64: (case name=b index=0 offset=0
122157
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
@@ -126,16 +161,27 @@ reflect(enum: FooVoid2.b([]))
126161
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
127162
// CHECK-64: (field name=rawValue offset=0
128163
// 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
133164

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: )
139185

140186

141187
// As above, this is laid out as a single-payload enum
@@ -148,12 +194,13 @@ case b(B)
148194

149195
reflect(enum: FooEmptyStruct.a([]))
150196

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:
155203

156-
// CHECK-64: Type info:
157204
// CHECK-64: (multi_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=2147483646 bitwise_takable=1
158205
// CHECK-64: (case name=a index=0 offset=0
159206
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
@@ -163,25 +210,37 @@ reflect(enum: FooEmptyStruct.a([]))
163210
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
164211
// CHECK-64: (field name=rawValue offset=0
165212
// 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
170213

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: )
176234

177235
reflect(enum: FooEmptyStruct.b(B()))
178236

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:
183243

184-
// CHECK-64: Type info:
185244
// CHECK-64: (multi_payload_enum size=8 alignment=8 stride=8 num_extra_inhabitants=2147483646 bitwise_takable=1
186245
// CHECK-64: (case name=a index=0 offset=0
187246
// 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()))
191250
// CHECK-64: (struct size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1
192251
// CHECK-64: (field name=rawValue offset=0
193252
// 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
198253

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))))))))
203263

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: )
204273

205274

206275
// TODO: Variations of Foo where `b` payload is class, Bool
207276

208277
doneReflecting()
209278

210-
// CHECK-32: FAIL
211-
212279
// CHECK: Done.

0 commit comments

Comments
 (0)