blob: a76a88aa2fb26f2067a1e6a190697f557e7e799b [file] [log] [blame]
// 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> (@out τ_0_0, @in τ_0_0) -> ()
sil @_TF7TestMod11genlibfunc2urFq_q_ : $@convention(thin) _0_0> (@out τ_0_0, @in τ_0_0) -> ()
// CHECK-LABEL: sil @testit
sil @testit : $@convention(thin) () -> MyStruct {
bb0:
%x0 = function_ref @_TF7TestMod10genlibfuncurFq_q_ : $@convention(thin) <X> (@out X, @in X) -> ()
%13 = function_ref @_TF7TestMod11genlibfunc2urFq_q_ : $@convention(thin) _0_0> (@out τ_0_0, @in τ_0_0) -> ()
%14 = alloc_stack $MyStruct
%16 = alloc_stack $MyStruct
%17 = apply %13<MyStruct>(%16#1, %14#1) : $@convention(thin) <τ_0_0> (@out τ_0_0, @in τ_0_0) -> ()
%18 = struct $MyStruct ()
dealloc_stack %16#0 : $*@local_storage MyStruct
dealloc_stack %14#0 : $*@local_storage MyStruct
return %18 : $MyStruct
}