// RUN: %target-sil-func-extractor %s -func=use_before_init | %FileCheck %s // RUN: %empty-directory(%t) // RUN: %target-sil-func-extractor %s -func=use_before_init -emit-sib -o %t/out.sib -module-name main && %target-sil-opt %t/out.sib -module-name main | %FileCheck %s // Use this testfile to check if the `swift-frontend -sil-func-extractr` option works. // RUN: %swift_frontend_plain -sil-func-extractor %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 [serialized] @use_before_init : $@convention(thin) () -> Int64 { // CHECK: bb0: // CHECK: return // CHECK: } sil [serialized] @use_before_init : $@convention(thin) () -> Int64 { bb0: %1 = alloc_box $<τ_0_0> { var τ_0_0 } %1a = project_box %1 : $<τ_0_0> { var τ_0_0 } , 0 %2 = load %1a : $*Int64 %3 = function_ref @inout_uninit : $@convention(thin)() -> () apply %3() : $@convention(thin) () -> () strong_release %1 : $<τ_0_0> { var τ_0_0 } return %2 : $Int64 } // CHECK-NOT: sil @inout_uninit : $@convention(thin) () -> () { sil @inout_uninit : $@convention(thin) () -> () { bb0: %1 = alloc_box $<τ_0_0> { var τ_0_0 } %1a = project_box %1 : $<τ_0_0> { var τ_0_0 } , 0 %5 = function_ref @takes_Int_inout : $@convention(thin) (@inout Int64) -> () %6 = apply %5(%1a) : $@convention(thin) (@inout Int64) -> () %0 = tuple () strong_release %1 : $<τ_0_0> { var τ_0_0 } return %0 : $() }