| // RUN: %target-swift-frontend -emit-ir %s | %FileCheck %s -DINT=i%target-ptrsize |
| |
| import Swift |
| |
| sil @take_any_error : $@convention(thin) <T: Error> (@in T) -> () |
| |
| // CHECK-LABEL: swiftcc void @test(%swift.error** |
| sil @test : $@convention(thin) (@in Error) -> () { |
| entry(%0 : $*Error): |
| // CHECK: [[VALUE:%.*]] = bitcast %swift.error** %0 to %swift.opaque* |
| // CHECK-NEXT: [[T0:%.*]] = call swiftcc %swift.metadata_response @"$ss5Error_pMa"([[INT]] 0) |
| // CHECK-NEXT: [[ERROR_METADATA:%.*]] = extractvalue %swift.metadata_response [[T0]], 0 |
| // CHECK-NEXT: call swiftcc void @take_any_error(%swift.opaque* noalias nocapture [[VALUE]], %swift.type* [[ERROR_METADATA]], i8** @"$ss5ErrorWS") |
| // CHECK-NEXT: ret void |
| %take = function_ref @take_any_error : $@convention(thin) <T: Error> (@in T) -> () |
| apply %take<Error>(%0) : $@convention(thin) <T: Error> (@in T) -> () |
| %ret = tuple () |
| return %ret : $() |
| } |