// RUN: %target-swift-frontend -Xllvm -sil-full-demangle -O -emit-sil %s | %FileCheck %s

// The second run tests is it can be compiled without crashes.
// RUN: %target-swift-frontend -Xllvm -sil-full-demangle -O -S %s

private class A {
	func foo() -> Int { return 0 }
}

// CHECK-LABEL: deinit_in_vtable.(A in {{.*}}).__deallocating_deinit
// CHECK: sil private @[[A:.*]] :

private class B : A {
	override func foo() -> Int { return 1 }
}

// CHECK-LABEL: deinit_in_vtable.(B in {{.*}}).__deallocating_deinit
// CHECK: sil private @[[B:.*]] :

@inline(never)
private func testfunc(_ a: A) -> Int {
  return a.foo()
}

public func testmain() {
	testfunc(B())
}

// Check if the deallocating destructors are listed in the vtable.
// This is required so that the are not removed (if not public) by dead
// function elimination

// CHECK-LABEL: sil_vtable A
// CHECK: A.deinit!deallocator: [[A]]

// CHECK-LABEL: sil_vtable B
// CHECK-NOT: A.deinit
// CHECK: B.deinit!deallocator: [[B]]

