@@ -275,52 +275,72 @@ class ClassWithLoadableStructWithBiggerString {
275
275
//===----------------------------------------------------------------------===//
276
276
// SR-8076
277
277
//===----------------------------------------------------------------------===//
278
- public struct sr8076_BigStruct {
279
- public var m1 : String
280
- public var m2 : String
281
- public var m3 : String
282
- }
283
-
284
- public typealias sr8076_Filter = ( sr8076_BigStruct ) -> Bool
278
+ public typealias sr8076_Filter = ( BigStruct ) -> Bool
285
279
286
280
public protocol sr8076_Query {
287
281
associatedtype Returned
288
282
}
289
283
290
284
public protocol sr8076_ProtoQueryHandler {
291
285
func forceHandle_1< Q: sr8076_Query > ( query: Q ) -> Void
292
- func forceHandle_2< Q: sr8076_Query > ( query: Q ) -> ( Q . Returned , sr8076_BigStruct ? )
286
+ func forceHandle_2< Q: sr8076_Query > ( query: Q ) -> ( Q . Returned , BigStruct ? )
293
287
func forceHandle_3< Q: sr8076_Query > ( query: Q ) -> ( Q . Returned , sr8076_Filter ? )
294
288
func forceHandle_4< Q: sr8076_Query > ( query: Q ) throws -> ( Q . Returned , sr8076_Filter ? )
295
289
}
296
290
297
291
public protocol sr8076_QueryHandler : sr8076_ProtoQueryHandler {
298
292
associatedtype Handled : sr8076_Query
299
293
func handle_1( query: Handled ) -> Void
300
- func handle_2( query: Handled ) -> ( Handled . Returned , sr8076_BigStruct ? )
294
+ func handle_2( query: Handled ) -> ( Handled . Returned , BigStruct ? )
301
295
func handle_3( query: Handled ) -> ( Handled . Returned , sr8076_Filter ? )
302
296
func handle_4( query: Handled ) throws -> ( Handled . Returned , sr8076_Filter ? )
303
297
}
304
298
299
+
305
300
public extension sr8076_QueryHandler {
306
- func forceHandle_4< Q: sr8076_Query > ( query: Q ) -> Void {
301
+
302
+ // CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @"$S22big_types_corner_cases19sr8076_QueryHandlerPAAE13forceHandle_15queryyqd___tAA0e1_F0Rd__lF"(%swift.opaque* noalias nocapture, %swift.type*{{.*}}, %swift.type*{{.*}}, i8** {{.*}}.sr8076_QueryHandler, i8** {{.*}}.sr8076_Query, %swift.opaque* noalias nocapture swiftself)
303
+ // CHECK: call swiftcc void {{.*}}(%swift.opaque* noalias nocapture {{.*}}, %swift.refcounted* swiftself {{.*}})
304
+ // CHECK: ret void
305
+ func forceHandle_1< Q: sr8076_Query > ( query: Q ) -> Void {
307
306
guard let body = handle_1 as? ( Q ) -> Void else {
308
307
fatalError ( " handler \( self ) is expected to handle query \( query) " )
309
308
}
310
309
body ( query)
311
310
}
312
- func forceHandle_4< Q: sr8076_Query > ( query: Q ) -> ( Q . Returned , sr8076_BigStruct ? ) {
313
- guard let body = handle_2 as? ( Q ) -> ( Q . Returned , sr8076_BigStruct ? ) else {
311
+
312
+ // CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @"$S22big_types_corner_cases19sr8076_QueryHandlerPAAE13forceHandle_25query8ReturnedQyd___AA9BigStructVSgtqd___tAA0e1_F0Rd__lF"(%T22big_types_corner_cases9BigStructVSg* noalias nocapture sret, %swift.opaque* noalias nocapture, %swift.opaque* noalias nocapture, %swift.type*{{.*}}, %swift.type*{{.*}}, i8** {{.*}}.sr8076_QueryHandler, i8** {{.*}}.sr8076_Query, %swift.opaque* noalias nocapture swiftself)
313
+ // CHECK: [[ALLOC:%.*]] = alloca %T22big_types_corner_cases9BigStructVSg
314
+ // CHECK: call swiftcc void {{.*}}(%T22big_types_corner_cases9BigStructVSg* noalias nocapture sret [[ALLOC]], %swift.opaque* noalias nocapture {{.*}}, %swift.opaque* noalias nocapture {{.*}}, %swift.refcounted* swiftself {{.*}})
315
+ // CHECK: ret void
316
+ func forceHandle_2< Q: sr8076_Query > ( query: Q ) -> ( Q . Returned , BigStruct ? ) {
317
+ guard let body = handle_2 as? ( Q ) -> ( Q . Returned , BigStruct ? ) else {
314
318
fatalError ( " handler \( self ) is expected to handle query \( query) " )
315
319
}
316
320
return body ( query)
317
321
}
322
+
323
+ // CHECK-LABEL-64: define{{( dllexport)?}}{{( protected)?}} swiftcc { i64, i64 } @"$S22big_types_corner_cases19sr8076_QueryHandlerPAAE13forceHandle_35query8ReturnedQyd___SbAA9BigStructVcSgtqd___tAA0e1_F0Rd__lF"(%swift.opaque* noalias nocapture, %swift.opaque* noalias nocapture, %swift.type*{{.*}}, %swift.type*{{.*}}, i8** {{.*}}.sr8076_QueryHandler, i8** {{.*}}.sr8076_Query, %swift.opaque* noalias nocapture swiftself)
324
+ // CHECK-64: {{.*}} = call swiftcc { i64, i64 } {{.*}}(%swift.opaque* noalias nocapture {{.*}}, %swift.opaque* noalias nocapture {{.*}}, %swift.refcounted* swiftself {{.*}})
325
+ // CHECK-64: ret { i64, i64 }
326
+
327
+ // CHECK-LABEL-32: define{{( dllexport)?}}{{( protected)?}} swiftcc { i32, i32} @"$S22big_types_corner_cases19sr8076_QueryHandlerPAAE13forceHandle_35query8ReturnedQyd___SbAA9BigStructVcSgtqd___tAA0e1_F0Rd__lF"(%swift.opaque* noalias nocapture, %swift.opaque* noalias nocapture, %swift.type*{{.*}}, %swift.type*{{.*}}, i8** {{.*}}.sr8076_QueryHandler, i8** {{.*}}.sr8076_Query, %swift.opaque* noalias nocapture swiftself)
328
+ // CHECK-32: {{.*}} = call swiftcc { i32, i32 } {{.*}}(%swift.opaque* noalias nocapture {{.*}}, %swift.opaque* noalias nocapture {{.*}}, %swift.refcounted* swiftself {{.*}})
329
+ // CHECK-32: ret { i32, i32 }
318
330
func forceHandle_3< Q: sr8076_Query > ( query: Q ) -> ( Q . Returned , sr8076_Filter ? ) {
319
331
guard let body = handle_3 as? ( Q ) -> ( Q . Returned , sr8076_Filter ? ) else {
320
332
fatalError ( " handler \( self ) is expected to handle query \( query) " )
321
333
}
322
334
return body ( query)
323
335
}
336
+
337
+ // CHECK-LABEL-64: define{{( dllexport)?}}{{( protected)?}} swiftcc { i64, i64 } @"$S22big_types_corner_cases19sr8076_QueryHandlerPAAE13forceHandle_45query8ReturnedQyd___SbAA9BigStructVcSgtqd___tKAA0e1_F0Rd__lF"(%swift.opaque* noalias nocapture, %swift.opaque* noalias nocapture, %swift.type*{{.*}}, %swift.type*{{.*}}, i8** {{.*}}.sr8076_QueryHandler, i8** {{.*}}.sr8076_Query, %swift.opaque* noalias nocapture swiftself, %swift.error** swifterror)
338
+ // CHECK-64: {{.*}} = call swiftcc { i64, i64 } {{.*}}(%swift.opaque* noalias nocapture {{.*}}, %swift.opaque* noalias nocapture {{.*}}, %swift.refcounted* swiftself {{.*}}, %swift.error** nocapture swifterror {{.*}})
339
+ // CHECK-64: ret { i64, i64 }
340
+
341
+ // CHECK-LABEL-32: define{{( dllexport)?}}{{( protected)?}} swiftcc { i32, i32} @"$S22big_types_corner_cases19sr8076_QueryHandlerPAAE13forceHandle_45query8ReturnedQyd___SbAA9BigStructVcSgtqd___tKAA0e1_F0Rd__lF"(%swift.opaque* noalias nocapture, %swift.opaque* noalias nocapture, %swift.type*{{.*}}, %swift.type*{{.*}}, i8** {{.*}}.sr8076_QueryHandler, i8** {{.*}}.sr8076_Query, %swift.opaque* noalias nocapture swiftself, %swift.error** swifterror)
342
+ // CHECK-32: {{.*}} = call swiftcc { i32, i32 } {{.*}}(%swift.opaque* noalias nocapture {{.*}}, %swift.opaque* noalias nocapture {{.*}}, %swift.refcounted* swiftself {{.*}}, %swift.error** nocapture {{.*}})
343
+ // CHECK-32: ret { i32, i32 }
324
344
func forceHandle_4< Q: sr8076_Query > ( query: Q ) throws -> ( Q . Returned , sr8076_Filter ? ) {
325
345
guard let body = handle_4 as? ( Q ) throws -> ( Q . Returned , sr8076_Filter ? ) else {
326
346
fatalError ( " handler \( self ) is expected to handle query \( query) " )
0 commit comments