// RUN: %target-sil-extract %s -func=use_before_init | FileCheck %s

import Builtin
import Swift

// For now we do not remove dead functions so update this when that functionality is added.

// CHECK-NOT: sil @takes_Int_inout : $@convention(thin) (@inout Int64) -> ()
sil @takes_Int_inout : $@convention(thin) (@inout Int64) -> ()

// CHECK-NOT: sil @makesInt : $@convention(thin) () -> Int64
sil @makesInt : $@convention(thin) () -> Int64

// CHECK-LABEL: sil @use_before_init : $@convention(thin) () -> Int64 {
// CHECK: bb0:
// CHECK: return
// CHECK: }
sil @use_before_init : $@convention(thin) () -> Int64 {
bb0:
  %1 = alloc_box $Int64
  %1a = project_box %1 : $@box Int64
  %2 = load %1a : $*Int64
  %3 = function_ref @inout_uninit : $@convention(thin)() -> ()
  apply %3() : $@convention(thin) () -> ()
  strong_release %1 : $@box Int64
  %4 = return %2 : $Int64
}

// CHECK-NOT: sil @inout_uninit : $@convention(thin) () -> () {
sil @inout_uninit : $@convention(thin) () -> () {
bb0:
  %1 = alloc_box $Int64
  %1a = project_box %1 : $@box Int64
  %5 = function_ref @takes_Int_inout : $@convention(thin) (@inout Int64) -> ()
  %6 = apply %5(%1a) : $@convention(thin) (@inout Int64) -> ()

  %0 = tuple ()
  strong_release %1 : $@box Int64
  return %0 : $()
}
