// RUN: %target-sil-opt -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 = class_method [volatile] %0 : $X, #X.ping!1.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!1: _TFC4main1X4pingfS0_FT_T_	// main.X.ping (main.X)() -> ()
  #X.init!initializer.1: _TFC4main1XcfMS0_FT_S0_	// main.X.init (main.X.Type)() -> main.X
}



