blob: fe592f33859e4874de4674dee67cb4d4b0684a14 [file] [log] [blame]
// RUN: %target-swift-frontend -module-name=test -Onone -emit-ir %s | %FileCheck %s
// CHECK-DAG: define linkonce_odr hidden swiftcc void @shared_external_test()
// CHECK-DAG: declare {{(dllimport )?}}swiftcc void @public_external_test()
// Non-public external symbols are emitted into clients.
// CHECK-DAG: define available_externally hidden swiftcc void @hidden_external_test()
// CHECK-NOT: public_external_unused_test
sil public_external @public_external_test : $@convention(thin) () -> () {
%0 = tuple()
return %0 : $()
}
sil hidden_external @hidden_external_test : $@convention(thin) () -> () {
%0 = tuple()
return %0 : $()
}
sil shared_external @shared_external_test : $@convention(thin) () -> () {
%0 = tuple()
return %0 : $()
}
sil public_external @public_external_unused_test : $@convention(thin) () -> () {
%0 = tuple()
return %0 : $()
}
sil public @use_all_symbols : $@convention(thin) () -> () {
%0 = function_ref @public_external_test : $@convention(thin) () -> ()
%1 = function_ref @hidden_external_test : $@convention(thin) () -> ()
%2 = function_ref @shared_external_test : $@convention(thin) () -> ()
apply %0() : $@convention(thin) () -> ()
apply %1() : $@convention(thin) () -> ()
apply %2() : $@convention(thin) () -> ()
%24 = tuple()
return %24 : $()
}