// RUN: rm -rf %t && mkdir %t
// RUN: %target-swift-frontend -parse-stdlib -parse-as-library  -module-name TestMod -sil-serialize-all %S/Inputs/TestMod.sil -emit-module-path %t/TestMod.swiftmodule 
// RUN: %target-sil-opt -enable-sil-verify-all -inline -I %t %s | FileCheck %s

// Test if the CG is updated correctly during specialization and
// there is no crash because of a missing CG node for a deserialized function.

sil_stage canonical

import Builtin
import TestMod

struct MyStruct {
}

sil @_TF7TestMod10genlibfuncurFq_q_ : $@convention(thin) <τ_0_0> (@in τ_0_0) -> @out τ_0_0
sil @_TF7TestMod11genlibfunc2urFq_q_ : $@convention(thin) <τ_0_0> (@in τ_0_0) -> @out τ_0_0

// CHECK-LABEL: sil @testit
sil @testit : $@convention(thin) () -> MyStruct {
bb0:
  %x0 = function_ref @_TF7TestMod10genlibfuncurFq_q_ : $@convention(thin) <X> (@in X) -> @out X
  %13 = function_ref @_TF7TestMod11genlibfunc2urFq_q_ : $@convention(thin) <τ_0_0> (@in τ_0_0) -> @out τ_0_0
  %14 = alloc_stack $MyStruct
  %16 = alloc_stack $MyStruct
  %17 = apply %13<MyStruct>(%16, %14) : $@convention(thin) <τ_0_0> (@in τ_0_0) -> @out τ_0_0
  %18 = struct $MyStruct ()
  dealloc_stack %16 : $*MyStruct
  dealloc_stack %14 : $*MyStruct
  return %18 : $MyStruct
}

