Files
swift-mirror/test/SIL/Serialization/semanticsattr.sil
Michael Gottesman 389238e801 Add support for multiple @_semantics attributes at the SIL level.
This is something that we have wanted for a long time and will enable us to
remove some hacks from the compiler (i.e. how we determine in the ARC optimizer
that we have "fatalError" like function) and also express new things like
"noarc".
2016-01-02 04:17:07 -06:00

28 lines
977 B
Plaintext

// RUN: rm -rf %t
// RUN: mkdir -p %t
// RUN: %target-swift-frontend -parse-sil -emit-sib -parse-as-library -parse-stdlib -module-name SemanticsAttr -o %t/SemanticsAttr.sib %s
// RUN: %target-sil-opt %t/SemanticsAttr.sib -o - | FileCheck %s
sil_stage canonical
import Builtin
// CHECK: @_semantics("123") @_semantics("456") func semanticsFunction() -> Builtin.Int64
@_semantics("123") @_semantics("456")
func semanticsFunction() -> Builtin.Int64
// CHECK: sil [_semantics "789"] [_semantics "ABC"] @foo1 : $@convention(thin) () -> () {
sil public [_semantics "789"] [_semantics "ABC"] @foo1 : $@convention(thin) () -> () {
bb0:
return undef : $()
}
// Make sure that we can parse with multiple generics that are after the semantic attributes.
//
// CHECK: sil [_semantics "DEF"] [_semantics "GHI"] @foo2 : $@convention(thin) <T1, T2> () -> () {
sil public [_semantics "DEF"] [_semantics "GHI"] @foo2 : $@convention(thin) <T1, T2> () -> () {
bb0:
return undef : $()
}