mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
37 lines
1.2 KiB
Plaintext
37 lines
1.2 KiB
Plaintext
// RUN: %target-sil-opt -enable-objc-interop -enable-sil-verify-all %s -specdevirt -code-sinking | %FileCheck %s
|
|
|
|
sil_stage canonical
|
|
|
|
import Builtin
|
|
import Swift
|
|
|
|
@objc class X {
|
|
@objc func ping()
|
|
}
|
|
|
|
sil @_TFC4main1X4pingfS0_FT_T_ : $@convention(method) (@guaranteed X) -> ()
|
|
sil @_TFC4main1XcfMS0_FT_S0_ : $@convention(method) (@owned X) -> @owned X
|
|
|
|
// CHECK-LABEL: _TFC4main1X4pingfS0_FT_T_
|
|
// CHECK-NOT: checked_cast_br identical
|
|
// CHECK: return
|
|
sil @_TF4main1fFCS_1XT_ : $@convention(thin) (@owned X) -> () {
|
|
bb0(%0 : $X):
|
|
debug_value %0 : $X, let, name "x" // id: %1
|
|
strong_retain %0 : $X // id: %2
|
|
%3 = objc_method %0 : $X, #X.ping!foreign : (X) -> () -> () , $@convention(objc_method) (X) -> () // user: %4
|
|
%4 = apply %3(%0) : $@convention(objc_method) (X) -> ()
|
|
strong_release %0 : $X // id: %5
|
|
strong_release %0 : $X // id: %6
|
|
%7 = tuple () // user: %8
|
|
return %7 : $() // id: %8
|
|
}
|
|
|
|
sil_vtable X {
|
|
#X.ping: @_TFC4main1X4pingfS0_FT_T_ // main.X.ping (main.X)() -> ()
|
|
#X.init!initializer: @_TFC4main1XcfMS0_FT_S0_ // main.X.init (main.X.Type)() -> main.X
|
|
}
|
|
|
|
|
|
|