// RUN: %target-sil-opt -assume-parsing-unqualified-ownership-sil -sil-deadfuncelim %s | %FileCheck %s

// Check that we don't crash on this.

sil_stage canonical

import Builtin
import Swift
import SwiftShims

private class Base {
	init()
}

private class Derived : Base {
}

sil private @BaseInit : $@convention(method) (@owned Base) -> @owned Base {
bb0(%4 : $Base):
  return %4 : $Base
}

sil private @DerivedInit : $@convention(method) (@owned Derived) -> @owned Derived {
bb0(%4 : $Derived):
  return %4 : $Derived
}

sil @testit : $@convention(method) (@owned Derived) -> @owned Derived {
bb0(%1 : $Derived):
  %157 = class_method %1 : $Derived, #Derived.init!initializer.1 : (Derived.Type) -> () -> Derived, $@convention(method) (@owned Derived) -> @owned Derived
  return %1 : $Derived
}

sil_vtable Base {
  #Base.init!initializer.1: BaseInit
}

sil_vtable Derived {
  #Base.init!initializer.1: DerivedInit
}


// CHECK-LABEL: sil_vtable Base
// CHECK-: BaseInit

// CHECK-LABEL: sil_vtable Derived
// CHECK: DerivedInit
