mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[embedded] Test changes for new Embedded Swift mangling prefix
This commit is contained in:
@@ -19,5 +19,5 @@ struct Foo {
|
||||
let foo = Foo()
|
||||
let _ = foo[5]
|
||||
|
||||
// CHECK: $s4main3FooVyS2icig
|
||||
// CHECK-NOT: $s4main3FooVyS2icis
|
||||
// CHECK: $e4main3FooVyS2icig
|
||||
// CHECK-NOT: $e4main3FooVyS2icis
|
||||
|
||||
@@ -19,5 +19,5 @@ public func copy(_ a: inout [MyStruct]) {
|
||||
var a = a
|
||||
}
|
||||
|
||||
// CHECK: define {{.*}}@"$s4mainAAyyF"
|
||||
// CHECK: define {{.*}}@"$s4main4copyyySayAA8MyStructVGzF"
|
||||
// CHECK: define {{.*}}@"$e4mainAAyyF"
|
||||
// CHECK: define {{.*}}@"$e4main4copyyySayAA8MyStructVGzF"
|
||||
|
||||
@@ -22,4 +22,4 @@ public func test() -> any Player {
|
||||
}
|
||||
|
||||
// CHECK-A: $s4main4testAA6Player_pyF
|
||||
// CHECK-B-NOT: $s4main4testAA6Player_pyF
|
||||
// CHECK-B-NOT: $e4main4testAA6Player_pyF
|
||||
|
||||
@@ -23,13 +23,13 @@ public func main() {
|
||||
start(p: Concrete())
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define {{.*}}void @"$s4main8ConcreteVACycfC"()
|
||||
// CHECK-LABEL: define {{.*}}void @"$e4main8ConcreteVACycfC"()
|
||||
|
||||
// CHECK-LABEL: define {{.*}}void @"$s4main5start1pyx_tAA6PlayerRzlFAA8ConcreteV_Tg5"()
|
||||
// CHECK-LABEL: define {{.*}}void @"$e4main5start1pyx_tAA6PlayerRzlFAA8ConcreteV_Tg5"()
|
||||
|
||||
// CHECK-LABEL: define {{.*}}void @"$s4mainAAyyF"()
|
||||
// CHECK-LABEL: define {{.*}}void @"$e4mainAAyyF"()
|
||||
// CHECK-NEXT: entry:
|
||||
// CHECK-NEXT: call swiftcc void @"$s4main8ConcreteVACycfC"()
|
||||
// CHECK-NEXT: call swiftcc void @"$s4main5start1pyx_tAA6PlayerRzlFAA8ConcreteV_Tg5"()
|
||||
// CHECK-NEXT: call swiftcc void @"$e4main8ConcreteVACycfC"()
|
||||
// CHECK-NEXT: call swiftcc void @"$e4main5start1pyx_tAA6PlayerRzlFAA8ConcreteV_Tg5"()
|
||||
// CHECK-NEXT: ret void
|
||||
// CHECK-NEXT: }
|
||||
|
||||
@@ -53,11 +53,11 @@ public func main() {
|
||||
}
|
||||
|
||||
// CHECK: define {{.*}}i32 @main(i32 %0, ptr %1)
|
||||
// CHECK: define {{.*}}void @"$s4Main4BoolVACycfC"()
|
||||
// CHECK: define {{.*}}void @"$s4Main4mainyyF"()
|
||||
// CHECK: define {{.*}}void @"$s8MyModule14nonGenericFuncyyF"()
|
||||
// CHECK: define {{.*}}void @"$s8MyModule11genericFuncyxxlF4Main4BoolV_Tg5"()
|
||||
// CHECK: define {{.*}}void @"$s8MyModule14NonGenericTypeVACycfC"()
|
||||
// CHECK: define {{.*}}void @"$s8MyModule11GenericTypeVyACyxGxcfC4Main4BoolV_Tt1g5"()
|
||||
// CHECK: define {{.*}}void @"$s8MyModule17protocolBoundFuncyyxAA8ProtocolRzlF4Main4BoolV_Tg5"()
|
||||
// CHECK: define {{.*}}void @"$s8MyModule17protocolBoundFuncyyxAA8ProtocolRzlFAA11GenericTypeVy4Main4BoolVG_Tg5"()
|
||||
// CHECK: define {{.*}}void @"$e4Main4BoolVACycfC"()
|
||||
// CHECK: define {{.*}}void @"$e4Main4mainyyF"()
|
||||
// CHECK: define {{.*}}void @"$e8MyModule14nonGenericFuncyyF"()
|
||||
// CHECK: define {{.*}}void @"$e8MyModule11genericFuncyxxlF4Main4BoolV_Tg5"()
|
||||
// CHECK: define {{.*}}void @"$e8MyModule14NonGenericTypeVACycfC"()
|
||||
// CHECK: define {{.*}}void @"$e8MyModule11GenericTypeVyACyxGxcfC4Main4BoolV_Tt1g5"()
|
||||
// CHECK: define {{.*}}void @"$e8MyModule17protocolBoundFuncyyxAA8ProtocolRzlF4Main4BoolV_Tg5"()
|
||||
// CHECK: define {{.*}}void @"$e8MyModule17protocolBoundFuncyyxAA8ProtocolRzlFAA11GenericTypeVy4Main4BoolVG_Tg5"()
|
||||
|
||||
@@ -39,8 +39,8 @@ public func main() {
|
||||
}
|
||||
|
||||
// CHECK: define {{.*}}@main{{.*}} {
|
||||
// CHECK: define {{.*}}void @"$s4Main4mainyyF"{{.*}} {
|
||||
// CHECK: define {{.*}}void @"$s8MyModule10moduleMainyyF"{{.*}} {
|
||||
// CHECK: define {{.*}}void @"$s8MyModule8ConcreteVACycfC"{{.*}} {
|
||||
// CHECK: define {{.*}}void @"$s8MyModule5start1pyx_tAA6PlayerRzlFAA8ConcreteV_Tg5"{{.*}} {
|
||||
// CHECK: define {{.*}}void @"$s8MyModule8ConcreteV4playyyF"{{.*}} {
|
||||
// CHECK: define {{.*}}void @"$e4Main4mainyyF"{{.*}} {
|
||||
// CHECK: define {{.*}}void @"$e8MyModule10moduleMainyyF"{{.*}} {
|
||||
// CHECK: define {{.*}}void @"$e8MyModule8ConcreteVACycfC"{{.*}} {
|
||||
// CHECK: define {{.*}}void @"$e8MyModule5start1pyx_tAA6PlayerRzlFAA8ConcreteV_Tg5"{{.*}} {
|
||||
// CHECK: define {{.*}}void @"$e8MyModule8ConcreteV4playyyF"{{.*}} {
|
||||
|
||||
@@ -13,7 +13,7 @@ public func foo() -> Builtin.Int1 {
|
||||
return Builtin.ispod(MyStruct.self)
|
||||
}
|
||||
|
||||
// CHECK: define {{.*}}i1 @"$ss3fooBi1_yF"()
|
||||
// CHECK: define {{.*}}i1 @"$es3fooBi1_yF"()
|
||||
// CHECK-NEXT: entry:
|
||||
// CHECK-NEXT: ret i1 false
|
||||
// CHECK-NEXT: }
|
||||
@@ -29,7 +29,7 @@ public struct MyGenericStruct<T> {
|
||||
}
|
||||
}
|
||||
|
||||
// CHECK: define {{.*}}i1 @"$ss15MyGenericStructV3fooBi1_yFs0aC0V_Tg5"()
|
||||
// CHECK: define {{.*}}i1 @"$es15MyGenericStructV3fooBi1_yFs0aC0V_Tg5"()
|
||||
// CHECK-NEXT: entry:
|
||||
// CHECK-NEXT: ret i1 false
|
||||
// CHECK-NEXT: }
|
||||
|
||||
@@ -22,49 +22,49 @@ public func bar(t: T2) -> MyClass<T2> {
|
||||
return MyClass<T2>(t: t)
|
||||
}
|
||||
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$s4main7MyClassC1txvgAA2T1V_Tg5 {{.*}}{
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$s4main7MyClassC1txvsAA2T1V_Tg5 {{.*}}{
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$s4main7MyClassC1txvMAA2T1V_Tg5 {{.*}}{
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$s4main7MyClassC1tACyxGx_tcfCAA2T1V_Tt0g5 {{.*}}{
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$s4main7MyClassCfDAA2T1V_Tg5 {{.*}}{
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$e4main7MyClassC1txvgAA2T1V_Tg5 {{.*}}{
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$e4main7MyClassC1txvsAA2T1V_Tg5 {{.*}}{
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$e4main7MyClassC1txvMAA2T1V_Tg5 {{.*}}{
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$e4main7MyClassC1tACyxGx_tcfCAA2T1V_Tt0g5 {{.*}}{
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$e4main7MyClassCfDAA2T1V_Tg5 {{.*}}{
|
||||
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$s4main7MyClassC1txvgAA2T2V_Tg5 {{.*}}{
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$s4main7MyClassC1txvsAA2T2V_Tg5 {{.*}}{
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$s4main7MyClassC1txvMAA2T2V_Tg5 {{.*}}{
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$s4main7MyClassC1tACyxGx_tcfCAA2T2V_Tt0g5 {{.*}}{
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$s4main7MyClassCfDAA2T2V_Tg5 {{.*}}{
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$e4main7MyClassC1txvgAA2T2V_Tg5 {{.*}}{
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$e4main7MyClassC1txvsAA2T2V_Tg5 {{.*}}{
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$e4main7MyClassC1txvMAA2T2V_Tg5 {{.*}}{
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$e4main7MyClassC1tACyxGx_tcfCAA2T2V_Tt0g5 {{.*}}{
|
||||
// CHECK-SIL-DAG: sil {{.*}}@$e4main7MyClassCfDAA2T2V_Tg5 {{.*}}{
|
||||
|
||||
// CHECK-SIL: sil_vtable MyClass {
|
||||
// CHECK-SIL: #MyClass.t!getter: <T> (MyClass<T>) -> () -> T : @$s4main7MyClassC1txvgAA2T1V_Tg5 // specialized MyClass.t.getter
|
||||
// CHECK-SIL: #MyClass.t!setter: <T> (MyClass<T>) -> (T) -> () : @$s4main7MyClassC1txvsAA2T1V_Tg5 // specialized MyClass.t.setter
|
||||
// CHECK-SIL: #MyClass.t!modify: <T> (MyClass<T>) -> () -> () : @$s4main7MyClassC1txvMAA2T1V_Tg5 // specialized MyClass.t.modify
|
||||
// CHECK-SIL: #MyClass.init!allocator: <T> (MyClass<T>.Type) -> (T) -> MyClass<T> : @$s4main7MyClassC1tACyxGx_tcfCAA2T1V_Tg5 // specialized MyClass.__allocating_init(t:)
|
||||
// CHECK-SIL: #MyClass.deinit!deallocator: @$s4main7MyClassCfDAA2T1V_Tg5 // specialized MyClass.__deallocating_deinit
|
||||
// CHECK-SIL: #MyClass.t!getter: <T> (MyClass<T>) -> () -> T : @$e4main7MyClassC1txvgAA2T1V_Tg5 // specialized MyClass.t.getter
|
||||
// CHECK-SIL: #MyClass.t!setter: <T> (MyClass<T>) -> (T) -> () : @$e4main7MyClassC1txvsAA2T1V_Tg5 // specialized MyClass.t.setter
|
||||
// CHECK-SIL: #MyClass.t!modify: <T> (MyClass<T>) -> () -> () : @$e4main7MyClassC1txvMAA2T1V_Tg5 // specialized MyClass.t.modify
|
||||
// CHECK-SIL: #MyClass.init!allocator: <T> (MyClass<T>.Type) -> (T) -> MyClass<T> : @$e4main7MyClassC1tACyxGx_tcfCAA2T1V_Tg5 // specialized MyClass.__allocating_init(t:)
|
||||
// CHECK-SIL: #MyClass.deinit!deallocator: @$e4main7MyClassCfDAA2T1V_Tg5 // specialized MyClass.__deallocating_deinit
|
||||
// CHECK-SIL: }
|
||||
|
||||
// CHECK-SIL: sil_vtable $MyClass<T2> {
|
||||
// CHECK-SIL: #MyClass.t!getter: <T> (MyClass<T>) -> () -> T : @$s4main7MyClassC1txvgAA2T2V_Tg5 // specialized MyClass.t.getter
|
||||
// CHECK-SIL: #MyClass.t!setter: <T> (MyClass<T>) -> (T) -> () : @$s4main7MyClassC1txvsAA2T2V_Tg5 // specialized MyClass.t.setter
|
||||
// CHECK-SIL: #MyClass.t!modify: <T> (MyClass<T>) -> () -> () : @$s4main7MyClassC1txvMAA2T2V_Tg5 // specialized MyClass.t.modify
|
||||
// CHECK-SIL: #MyClass.init!allocator: <T> (MyClass<T>.Type) -> (T) -> MyClass<T> : @$s4main7MyClassC1tACyxGx_tcfCAA2T2V_Tg5 // specialized MyClass.__allocating_init(t:)
|
||||
// CHECK-SIL: #MyClass.deinit!deallocator: @$s4main7MyClassCfDAA2T2V_Tg5 // specialized MyClass.__deallocating_deinit
|
||||
// CHECK-SIL: #MyClass.t!getter: <T> (MyClass<T>) -> () -> T : @$e4main7MyClassC1txvgAA2T2V_Tg5 // specialized MyClass.t.getter
|
||||
// CHECK-SIL: #MyClass.t!setter: <T> (MyClass<T>) -> (T) -> () : @$e4main7MyClassC1txvsAA2T2V_Tg5 // specialized MyClass.t.setter
|
||||
// CHECK-SIL: #MyClass.t!modify: <T> (MyClass<T>) -> () -> () : @$e4main7MyClassC1txvMAA2T2V_Tg5 // specialized MyClass.t.modify
|
||||
// CHECK-SIL: #MyClass.init!allocator: <T> (MyClass<T>.Type) -> (T) -> MyClass<T> : @$e4main7MyClassC1tACyxGx_tcfCAA2T2V_Tg5 // specialized MyClass.__allocating_init(t:)
|
||||
// CHECK-SIL: #MyClass.deinit!deallocator: @$e4main7MyClassCfDAA2T2V_Tg5 // specialized MyClass.__deallocating_deinit
|
||||
// CHECK-SIL: }
|
||||
|
||||
|
||||
// CHECK-IR: @"$s4main7MyClassCyAA2T2VGN" = {{.*}}<{ ptr, ptr, ptr, ptr, ptr, ptr, ptr }> <{ ptr null, ptr @"$s4main7MyClassCfDAA2T2V_Tg5", ptr null, ptr @"$s4main7MyClassC1txvgAA2T2V_Tg5", ptr @"$s4main7MyClassC1txvsAA2T2V_Tg5", ptr @"$s4main7MyClassC1txvMAA2T2V_Tg5", ptr @"$s4main7MyClassC1tACyxGx_tcfCAA2T2V_Tg5" }>
|
||||
// CHECK-IR: @"$s4main7MyClassCyAA2T1VGN" = {{.*}}<{ ptr, ptr, ptr, ptr, ptr, ptr, ptr }> <{ ptr null, ptr @"$s4main7MyClassCfDAA2T1V_Tg5", ptr null, ptr @"$s4main7MyClassC1txvgAA2T1V_Tg5", ptr @"$s4main7MyClassC1txvsAA2T1V_Tg5", ptr @"$s4main7MyClassC1txvMAA2T1V_Tg5", ptr @"$s4main7MyClassC1tACyxGx_tcfCAA2T1V_Tg5" }>
|
||||
// CHECK-IR: @"$e4main7MyClassCyAA2T2VGN" = {{.*}}<{ ptr, ptr, ptr, ptr, ptr, ptr, ptr }> <{ ptr null, ptr @"$e4main7MyClassCfDAA2T2V_Tg5", ptr null, ptr @"$e4main7MyClassC1txvgAA2T2V_Tg5", ptr @"$e4main7MyClassC1txvsAA2T2V_Tg5", ptr @"$e4main7MyClassC1txvMAA2T2V_Tg5", ptr @"$e4main7MyClassC1tACyxGx_tcfCAA2T2V_Tg5" }>
|
||||
// CHECK-IR: @"$e4main7MyClassCyAA2T1VGN" = {{.*}}<{ ptr, ptr, ptr, ptr, ptr, ptr, ptr }> <{ ptr null, ptr @"$e4main7MyClassCfDAA2T1V_Tg5", ptr null, ptr @"$e4main7MyClassC1txvgAA2T1V_Tg5", ptr @"$e4main7MyClassC1txvsAA2T1V_Tg5", ptr @"$e4main7MyClassC1txvMAA2T1V_Tg5", ptr @"$e4main7MyClassC1tACyxGx_tcfCAA2T1V_Tg5" }>
|
||||
|
||||
// CHECK-IR-DAG: define {{.*}}void @"$s4main7MyClassC1txvgAA2T1V_Tg5"(ptr swiftself %0)
|
||||
// CHECK-IR-DAG: define {{.*}}i1 @"$s4main7MyClassC1txvgAA2T2V_Tg5"(ptr swiftself %0)
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$s4main7MyClassC1tACyxGx_tcfCAA2T1V_Tg5"(ptr swiftself %0)
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$s4main7MyClassC1tACyxGx_tcfCAA2T2V_Tg5"(i1 %0, ptr swiftself %1)
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$s4main7MyClassC1tACyxGx_tcfCAA2T1V_Tt0g5"()
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$s4main7MyClassC1tACyxGx_tcfCAA2T2V_Tt0g5"(i1 %0)
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$s4main7MyClassC1tACyxGx_tcfcAA2T1V_Tg5"(ptr swiftself %0)
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$s4main7MyClassC1tACyxGx_tcfcAA2T2V_Tg5"(i1 %0, ptr swiftself %1)
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$s4main7MyClassCfdAA2T1V_Tg5"(ptr swiftself %0)
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$s4main7MyClassCfdAA2T2V_Tg5"(ptr swiftself %0)
|
||||
// CHECK-IR-DAG: define {{.*}}void @"$s4main7MyClassCfDAA2T1V_Tg5"(ptr swiftself %0)
|
||||
// CHECK-IR-DAG: define {{.*}}void @"$s4main7MyClassCfDAA2T2V_Tg5"(ptr swiftself %0)
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$s4main3foo1tAA7MyClassCyAA2T1VGAG_tF"()
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$s4main3bar1tAA7MyClassCyAA2T2VGAG_tF"(i1 %0)
|
||||
// CHECK-IR-DAG: define {{.*}}void @"$e4main7MyClassC1txvgAA2T1V_Tg5"(ptr swiftself %0)
|
||||
// CHECK-IR-DAG: define {{.*}}i1 @"$e4main7MyClassC1txvgAA2T2V_Tg5"(ptr swiftself %0)
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$e4main7MyClassC1tACyxGx_tcfCAA2T1V_Tg5"(ptr swiftself %0)
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$e4main7MyClassC1tACyxGx_tcfCAA2T2V_Tg5"(i1 %0, ptr swiftself %1)
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$e4main7MyClassC1tACyxGx_tcfCAA2T1V_Tt0g5"()
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$e4main7MyClassC1tACyxGx_tcfCAA2T2V_Tt0g5"(i1 %0)
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$e4main7MyClassC1tACyxGx_tcfcAA2T1V_Tg5"(ptr swiftself %0)
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$e4main7MyClassC1tACyxGx_tcfcAA2T2V_Tg5"(i1 %0, ptr swiftself %1)
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$e4main7MyClassCfdAA2T1V_Tg5"(ptr swiftself %0)
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$e4main7MyClassCfdAA2T2V_Tg5"(ptr swiftself %0)
|
||||
// CHECK-IR-DAG: define {{.*}}void @"$e4main7MyClassCfDAA2T1V_Tg5"(ptr swiftself %0)
|
||||
// CHECK-IR-DAG: define {{.*}}void @"$e4main7MyClassCfDAA2T2V_Tg5"(ptr swiftself %0)
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$e4main3foo1tAA7MyClassCyAA2T1VGAG_tF"()
|
||||
// CHECK-IR-DAG: define {{.*}}ptr @"$e4main3bar1tAA7MyClassCyAA2T2VGAG_tF"(i1 %0)
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
// REQUIRES: OS=macosx || OS=linux-gnu
|
||||
// REQUIRES: swift_feature_Embedded
|
||||
|
||||
// CHECK: sil @$s4main1XC3fooxyFSi_Tg5 : $@convention(method) (@guaranteed X<Int>) -> Int {
|
||||
// CHECK: sil @$e4main1XC3fooxyFSi_Tg5 : $@convention(method) (@guaranteed X<Int>) -> Int {
|
||||
|
||||
// CHECK-LABEL: sil_vtable $X<Int>
|
||||
// CHECK: #X.foo: <T> (X<T>) -> () -> T : @$s4main1XC3fooxyFSi_Tg5
|
||||
// CHECK: #X.foo: <T> (X<T>) -> () -> T : @$e4main1XC3fooxyFSi_Tg5
|
||||
// CHECK: }
|
||||
|
||||
open class X<T> {
|
||||
|
||||
@@ -12,10 +12,10 @@ public class MySubClass: MyClass {
|
||||
override func foo() { }
|
||||
}
|
||||
|
||||
// CHECK: @"$s4main7MyClassCN" = {{.*}}<{ ptr, ptr, ptr, ptr, ptr, ptr }> <{ ptr null, ptr @"$s4main7MyClassCfD", ptr null, ptr @"$s4main7MyClassC3fooyyF", ptr @"$s4main7MyClassC3baryyF", ptr @swift_deletedMethodError }>
|
||||
// CHECK: @"$s4main10MySubClassCN" = {{.*}}<{ ptr, ptr, ptr, ptr, ptr, ptr }> <{ ptr @"$s4main7MyClassCN", ptr @"$s4main10MySubClassCfD", ptr null, ptr @"$s4main10MySubClassC3fooyyF", ptr @"$s4main7MyClassC3baryyF", ptr @"$s4main10MySubClassCACycfC" }>
|
||||
// CHECK: @"$e4main7MyClassCN" = {{.*}}<{ ptr, ptr, ptr, ptr, ptr, ptr }> <{ ptr null, ptr @"$e4main7MyClassCfD", ptr null, ptr @"$e4main7MyClassC3fooyyF", ptr @"$e4main7MyClassC3baryyF", ptr @swift_deletedMethodError }>
|
||||
// CHECK: @"$e4main10MySubClassCN" = {{.*}}<{ ptr, ptr, ptr, ptr, ptr, ptr }> <{ ptr @"$e4main7MyClassCN", ptr @"$e4main10MySubClassCfD", ptr null, ptr @"$e4main10MySubClassC3fooyyF", ptr @"$e4main7MyClassC3baryyF", ptr @"$e4main10MySubClassCACycfC" }>
|
||||
|
||||
// CHECK: define {{.*}}void @"$s4main4test1xyAA7MyClassC_tF"(ptr %0)
|
||||
// CHECK: define {{.*}}void @"$e4main4test1xyAA7MyClassC_tF"(ptr %0)
|
||||
public func test(x: MyClass) {
|
||||
|
||||
x.foo() // goes through the vtable
|
||||
@@ -25,15 +25,15 @@ public func test(x: MyClass) {
|
||||
// CHECK: call swiftcc void %3(ptr swiftself %0)
|
||||
|
||||
x.bar() // does not go through the vtable
|
||||
// CHECK: call swiftcc void @"$s4main7MyClassC3baryyF"
|
||||
// CHECK: call swiftcc void @"$e4main7MyClassC3baryyF"
|
||||
|
||||
let y = MySubClass()
|
||||
// CHECK: call swiftcc ptr @"$s4main10MySubClassCACycfC"
|
||||
// CHECK: call swiftcc ptr @"$e4main10MySubClassCACycfC"
|
||||
|
||||
y.foo() // does not go through the vtable
|
||||
// CHECK: call swiftcc void @"$s4main10MySubClassC3fooyyF"
|
||||
// CHECK: call swiftcc void @"$e4main10MySubClassC3fooyyF"
|
||||
|
||||
y.bar() // does not go through the vtable
|
||||
// CHECK: call swiftcc void @"$s4main7MyClassC3baryyF"
|
||||
// CHECK: call swiftcc void @"$e4main7MyClassC3baryyF"
|
||||
|
||||
}
|
||||
|
||||
@@ -5,26 +5,26 @@
|
||||
|
||||
public class MyClass {}
|
||||
|
||||
// CHECK-DAG: @"$s4main7MyClassCN" = {{.*}}<{ ptr, ptr, ptr, ptr }> <{ ptr null, ptr @"$s4main7MyClassCfD", ptr null, ptr @"$s4main7MyClassCACycfC" }>
|
||||
// CHECK-DAG: define {{.*}}ptr @"$s4main7MyClassCfd"
|
||||
// CHECK-DAG: define {{.*}}void @"$s4main7MyClassCfD"
|
||||
// CHECK-DAG: define {{.*}}ptr @"$s4main7MyClassCACycfC"
|
||||
// CHECK-DAG: define {{.*}}ptr @"$s4main7MyClassCACycfc"
|
||||
// CHECK-DAG: @"$e4main7MyClassCN" = {{.*}}<{ ptr, ptr, ptr, ptr }> <{ ptr null, ptr @"$e4main7MyClassCfD", ptr null, ptr @"$e4main7MyClassCACycfC" }>
|
||||
// CHECK-DAG: define {{.*}}ptr @"$e4main7MyClassCfd"
|
||||
// CHECK-DAG: define {{.*}}void @"$e4main7MyClassCfD"
|
||||
// CHECK-DAG: define {{.*}}ptr @"$e4main7MyClassCACycfC"
|
||||
// CHECK-DAG: define {{.*}}ptr @"$e4main7MyClassCACycfc"
|
||||
|
||||
public func foo() -> MyClass {
|
||||
return MyClass()
|
||||
}
|
||||
// CHECK-DAG: define {{.*}}ptr @"$s4main3fooAA7MyClassCyF"
|
||||
// CHECK-DAG: define {{.*}}ptr @"$e4main3fooAA7MyClassCyF"
|
||||
|
||||
public class MySubClass: MyClass {}
|
||||
|
||||
// CHECK-DAG: @"$s4main10MySubClassCN" = {{.*}}<{ ptr, ptr, ptr, ptr }> <{ ptr @"$s4main7MyClassCN", ptr @"$s4main10MySubClassCfD", ptr null, ptr @"$s4main10MySubClassCACycfC" }>
|
||||
// CHECK-DAG: define {{.*}}ptr @"$s4main10MySubClassCACycfC"
|
||||
// CHECK-DAG: define {{.*}}ptr @"$s4main10MySubClassCACycfc"
|
||||
// CHECK-DAG: define {{.*}}ptr @"$s4main10MySubClassCfd"
|
||||
// CHECK-DAG: define {{.*}}void @"$s4main10MySubClassCfD"
|
||||
// CHECK-DAG: @"$e4main10MySubClassCN" = {{.*}}<{ ptr, ptr, ptr, ptr }> <{ ptr @"$e4main7MyClassCN", ptr @"$e4main10MySubClassCfD", ptr null, ptr @"$e4main10MySubClassCACycfC" }>
|
||||
// CHECK-DAG: define {{.*}}ptr @"$e4main10MySubClassCACycfC"
|
||||
// CHECK-DAG: define {{.*}}ptr @"$e4main10MySubClassCACycfc"
|
||||
// CHECK-DAG: define {{.*}}ptr @"$e4main10MySubClassCfd"
|
||||
// CHECK-DAG: define {{.*}}void @"$e4main10MySubClassCfD"
|
||||
|
||||
public func bar() -> MyClass {
|
||||
return MySubClass()
|
||||
}
|
||||
// CHECK-DAG: define {{.*}}ptr @"$s4main3barAA7MyClassCyF"
|
||||
// CHECK-DAG: define {{.*}}ptr @"$e4main3barAA7MyClassCyF"
|
||||
|
||||
@@ -71,9 +71,9 @@ struct Main {
|
||||
|
||||
// Check that stack promotion did really happen
|
||||
|
||||
// CHECK-IR: define {{.*}}@"$s4main8MyStructVyAcA0B10FinalClassCcfC"
|
||||
// CHECK-IR: define {{.*}}@"$e4main8MyStructVyAcA0B10FinalClassCcfC"
|
||||
// CHECK-IR-NEXT: entry:
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$ss5print_10terminatorys12StaticStringV_ADtF"
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$es5print_10terminatorys12StaticStringV_ADtF"
|
||||
// CHECK-IR-NEXT: call {{.*}}@swift_release
|
||||
// CHECK-IR-NEXT: ret void
|
||||
// CHECK-IR-NEXT: }
|
||||
@@ -83,18 +83,18 @@ struct Main {
|
||||
// CHECK-IR-NEXT: alloca %T4main10MySubClassC
|
||||
// CHECK-IR-NEXT: alloca %T4main12MyFinalClassC
|
||||
// CHECK-IR-NEXT: call {{.*}}@swift_initStackObject
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$ss5print_10terminatorys12StaticStringV_ADtF"
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$ss5print_10terminatorys12StaticStringV_ADtF"
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$ss5print_10terminatorys12StaticStringV_ADtF"
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$s4main3bar1oyAA7MyClassC_tF"
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$es5print_10terminatorys12StaticStringV_ADtF"
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$es5print_10terminatorys12StaticStringV_ADtF"
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$es5print_10terminatorys12StaticStringV_ADtF"
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$e4main3bar1oyAA7MyClassC_tF"
|
||||
// CHECK-IR-NEXT: call {{.*}}@swift_setDeallocating
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$ss5print_10terminatorys12StaticStringV_ADtF"
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$ss5print_10terminatorys12StaticStringV_ADtF"
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$es5print_10terminatorys12StaticStringV_ADtF"
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$es5print_10terminatorys12StaticStringV_ADtF"
|
||||
// CHECK-IR-NEXT: call {{.*}}@llvm.lifetime.end.p0
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$ss5print_10terminatorys12StaticStringV_ADtF"
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$es5print_10terminatorys12StaticStringV_ADtF"
|
||||
// CHECK-IR-NEXT: call {{.*}}@swift_initStackObject
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$ss5print_10terminatorys12StaticStringV_ADtF"
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$s4main8MyStructVyAcA0B10FinalClassCcfC"
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$es5print_10terminatorys12StaticStringV_ADtF"
|
||||
// CHECK-IR-NEXT: call {{.*}}@"$e4main8MyStructVyAcA0B10FinalClassCcfC"
|
||||
// CHECK-IR-NEXT: call {{.*}}@llvm.lifetime.end.p0
|
||||
// CHECK-IR-NEXT: ret {{.*}}0
|
||||
// CHECK-IR-NEXT: }
|
||||
|
||||
@@ -13,7 +13,7 @@ public func test() async {
|
||||
}
|
||||
}
|
||||
|
||||
// CHECK: define {{.*}}@"$s4main4testyyYaF"(ptr swiftasync %0)
|
||||
// CHECK: define {{.*}}@"$e4main4testyyYaF"(ptr swiftasync %0)
|
||||
// CHECK: entry:
|
||||
// CHECK: %result_type_info_record = alloca %swift.result_type_info_task_option
|
||||
// CHECK: call {{.*}}@llvm.coro.id.async
|
||||
|
||||
@@ -11,4 +11,4 @@ public func regular() { }
|
||||
#endif
|
||||
|
||||
// CHECK: define {{.*}}void @"$s12conditionals7regularyyF"()
|
||||
// EMBEDDED: define {{.*}}void @"$s12conditionals8embeddedyyF"()
|
||||
// EMBEDDED: define {{.*}}void @"$e12conditionals8embeddedyyF"()
|
||||
|
||||
@@ -13,4 +13,4 @@ public func foo() -> [Int] {
|
||||
return b
|
||||
}
|
||||
|
||||
// CHECK: define {{.*}}@"$s4main3fooSaySiGyF"()
|
||||
// CHECK: define {{.*}}@"$e4main3fooSaySiGyF"()
|
||||
|
||||
@@ -100,19 +100,19 @@ extension MyPublicEnum {
|
||||
public static var static_mypublicstruct_4: MyPublicStruct = MyPublicStruct(x: 0, y: 0)
|
||||
}
|
||||
|
||||
// CHECK-NONOPT: @"$ss12global_int_133_056BEF60D619AD2945081A9CBFC2AAE9LLSivp" = {{.*}}zeroinitializer
|
||||
// CHECK: @"$ss12global_int_2Sivp" = {{.*}}zeroinitializer
|
||||
// CHECK-NONOPT: @"$ss12global_int_333_056BEF60D619AD2945081A9CBFC2AAE9LLSivp" = {{.*}}zeroinitializer
|
||||
// CHECK: @"$ss12global_int_4Sivp" = {{.*}}zeroinitializer
|
||||
// CHECK-NONOPT: @"$ss12MyPublicEnumO12static_int_133_056BEF60D619AD2945081A9CBFC2AAE9LLSivpZ" = {{.*}}zeroinitializer
|
||||
// CHECK: @"$ss12MyPublicEnumO12static_int_2SivpZ" = {{.*}}zeroinitializer
|
||||
// CHECK-NONOPT: @"$ss12MyPublicEnumO12static_int_333_056BEF60D619AD2945081A9CBFC2AAE9LLSivpZ" = {{.*}}zeroinitializer
|
||||
// CHECK: @"$ss12MyPublicEnumO12static_int_4SivpZ" = {{.*}}zeroinitializer
|
||||
// CHECK-NONOPT: @"$ss24global_my_publicstruct_133_056BEF60D619AD2945081A9CBFC2AAE9LLs14MyPublicStructVvp" = {{.*}}zeroinitializer
|
||||
// CHECK: @"$ss24global_my_publicstruct_2s14MyPublicStructVvp" = {{.*}}zeroinitializer
|
||||
// CHECK-NONOPT: @"$ss24global_my_publicstruct_333_056BEF60D619AD2945081A9CBFC2AAE9LLs14MyPublicStructVvp" = {{.*}}zeroinitializer
|
||||
// CHECK: @"$ss24global_my_publicstruct_4s14MyPublicStructVvp" = {{.*}}zeroinitializer
|
||||
// CHECK-NONOPT: @"$es12global_int_133_056BEF60D619AD2945081A9CBFC2AAE9LLSivp" = {{.*}}zeroinitializer
|
||||
// CHECK: @"$es12global_int_2Sivp" = {{.*}}zeroinitializer
|
||||
// CHECK-NONOPT: @"$es12global_int_333_056BEF60D619AD2945081A9CBFC2AAE9LLSivp" = {{.*}}zeroinitializer
|
||||
// CHECK: @"$es12global_int_4Sivp" = {{.*}}zeroinitializer
|
||||
// CHECK-NONOPT: @"$es12MyPublicEnumO12static_int_133_056BEF60D619AD2945081A9CBFC2AAE9LLSivpZ" = {{.*}}zeroinitializer
|
||||
// CHECK: @"$es12MyPublicEnumO12static_int_2SivpZ" = {{.*}}zeroinitializer
|
||||
// CHECK-NONOPT: @"$es12MyPublicEnumO12static_int_333_056BEF60D619AD2945081A9CBFC2AAE9LLSivpZ" = {{.*}}zeroinitializer
|
||||
// CHECK: @"$es12MyPublicEnumO12static_int_4SivpZ" = {{.*}}zeroinitializer
|
||||
// CHECK-NONOPT: @"$es24global_my_publicstruct_133_056BEF60D619AD2945081A9CBFC2AAE9LLs14MyPublicStructVvp" = {{.*}}zeroinitializer
|
||||
// CHECK: @"$es24global_my_publicstruct_2s14MyPublicStructVvp" = {{.*}}zeroinitializer
|
||||
// CHECK-NONOPT: @"$es24global_my_publicstruct_333_056BEF60D619AD2945081A9CBFC2AAE9LLs14MyPublicStructVvp" = {{.*}}zeroinitializer
|
||||
// CHECK: @"$es24global_my_publicstruct_4s14MyPublicStructVvp" = {{.*}}zeroinitializer
|
||||
// CHECK-NOT: static_my_publicstruct_1
|
||||
// CHECK: @"$ss12MyPublicEnumO23static_mypublicstruct_2s0aB6StructVvpZ" = {{.*}}zeroinitializer
|
||||
// CHECK: @"$es12MyPublicEnumO23static_mypublicstruct_2s0aB6StructVvpZ" = {{.*}}zeroinitializer
|
||||
// CHECK-NOT: static_my_publicstruct_3
|
||||
// CHECK: @"$ss12MyPublicEnumO23static_mypublicstruct_4s0aB6StructVvpZ" = {{.*}}zeroinitializer
|
||||
// CHECK: @"$es12MyPublicEnumO23static_mypublicstruct_4s0aB6StructVvpZ" = {{.*}}zeroinitializer
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
// REQUIRES: OS=macosx || OS=linux-gnu
|
||||
// REQUIRES: swift_feature_Embedded
|
||||
|
||||
// CHECK: @"$s4main8MyBufferCN" = {{.*global.*}} <{ ptr @"$ss13ManagedBufferCySis5UInt8VGN", ptr @"$s4main8MyBufferCfD{{[^"]*}}", ptr null, ptr @"$s4main8MyBufferC12_doNotCallMeACyt_tcfC{{[^"]*}}" }>
|
||||
// CHECK: @"$ss13ManagedBufferCySis5UInt8VGN" = {{.*global.*}} <{ ptr null, ptr @"$ss13ManagedBufferCfDSi_s5UInt8VTg5{{[^"]*}}", ptr null, ptr @"$ss13ManagedBufferC12_doNotCallMeAByxq_Gyt_tcfCSi_s5UInt8VTg5{{[^"]*}}" }>
|
||||
// CHECK: @"$e4main8MyBufferCN" = {{.*global.*}} <{ ptr @"$es13ManagedBufferCySis5UInt8VGN", ptr @"$e4main8MyBufferCfD{{[^"]*}}", ptr null, ptr @"$e4main8MyBufferC12_doNotCallMeACyt_tcfC{{[^"]*}}" }>
|
||||
// CHECK: @"$es13ManagedBufferCySis5UInt8VGN" = {{.*global.*}} <{ ptr null, ptr @"$es13ManagedBufferCfDSi_s5UInt8VTg5{{[^"]*}}", ptr null, ptr @"$es13ManagedBufferC12_doNotCallMeAByxq_Gyt_tcfCSi_s5UInt8VTg5{{[^"]*}}" }>
|
||||
final public class MyBuffer: ManagedBuffer<Int, UInt8> {
|
||||
}
|
||||
|
||||
|
||||
@@ -44,4 +44,4 @@ public func main() {
|
||||
MyModuleC.foo()
|
||||
}
|
||||
|
||||
// CHECK: @"$s9MyModuleA6globalSivp" = {{.*}}global %TSi zeroinitializer
|
||||
// CHECK: @"$e9MyModuleA6globalSivp" = {{.*}}global %TSi zeroinitializer
|
||||
|
||||
@@ -31,7 +31,7 @@ public func main() {
|
||||
foo()
|
||||
}
|
||||
|
||||
// CHECK: @"$s4Main022global_in_client_used_c1_D0Sivp" = {{.*}}global %TSi zeroinitializer
|
||||
// CHECK: @"$s4Main024global_in_client_unused_c1_D0Sivp" = {{.*}}global %TSi zeroinitializer
|
||||
// CHECK: @"$s8MyModule022global_in_module_used_d1_E0Sivp" = {{.*}}global %TSi zeroinitializer
|
||||
// CHECK: @"$s8MyModule024global_in_module_unused_d1_E0Sivp" = {{.*}}global %TSi zeroinitializer
|
||||
// CHECK: @"$e4Main022global_in_client_used_c1_D0Sivp" = {{.*}}global %TSi zeroinitializer
|
||||
// CHECK: @"$e4Main024global_in_client_unused_c1_D0Sivp" = {{.*}}global %TSi zeroinitializer
|
||||
// CHECK: @"$e8MyModule022global_in_module_used_d1_E0Sivp" = {{.*}}global %TSi zeroinitializer
|
||||
// CHECK: @"$e8MyModule024global_in_module_unused_d1_E0Sivp" = {{.*}}global %TSi zeroinitializer
|
||||
|
||||
@@ -8,4 +8,4 @@ struct String {}
|
||||
|
||||
public func test() { }
|
||||
|
||||
// CHECK-LABEL: define {{.*}}void @"$ss4testyyF"()
|
||||
// CHECK-LABEL: define {{.*}}void @"$es4testyyF"()
|
||||
|
||||
@@ -26,7 +26,7 @@ public func test2(x: UnsafePointer<MyStruct>) {
|
||||
x.pointee.fptr2()
|
||||
}
|
||||
|
||||
// CHECK: define {{.*}}@"$s4Main5test11xySPySo8MyStructVG_tF"
|
||||
// CHECK: define {{.*}}@"$e4Main5test11xySPySo8MyStructVG_tF"
|
||||
// CHECK: call {{.*}}[ "ptrauth"(i32 0, i64 0) ]
|
||||
// CHECK: define {{.*}}@"$s4Main5test21xySPySo8MyStructVG_tF"
|
||||
// CHECK: define {{.*}}@"$e4Main5test21xySPySo8MyStructVG_tF"
|
||||
// CHECK: call {{.*}}[ "ptrauth"(i32 0, i64 16962) ]
|
||||
|
||||
@@ -37,7 +37,7 @@ public func mainfunc(x: UnsafePointer<MyStruct>) {
|
||||
test2(x: x)
|
||||
}
|
||||
|
||||
// CHECK: define {{.*}}@"$s4Main5test11xySPySo8MyStructVG_tF"
|
||||
// CHECK: define {{.*}}@"$e4Main5test11xySPySo8MyStructVG_tF"
|
||||
// CHECK: call {{.*}}[ "ptrauth"(i32 0, i64 0) ]
|
||||
// CHECK: define {{.*}}@"$s4Main5test21xySPySo8MyStructVG_tF"
|
||||
// CHECK: define {{.*}}@"$e4Main5test21xySPySo8MyStructVG_tF"
|
||||
// CHECK: call {{.*}}[ "ptrauth"(i32 0, i64 16962) ]
|
||||
|
||||
@@ -19,4 +19,4 @@ public func test() {
|
||||
// CHECK: sil hidden [Onone] @$s4main8MyStructV3fooyyF : $@convention(method) <T> (MyStruct<T>) -> () {
|
||||
|
||||
// EMBEDDED: // specialized MyStruct.foo()
|
||||
// EMBEDDED: sil [Onone] @$s4main8MyStructV3fooyyFAA1XV_Tg5 : $@convention(method) (MyStruct<X>) -> () {
|
||||
// EMBEDDED: sil [Onone] @$e4main8MyStructV3fooyyFAA1XV_Tg5 : $@convention(method) (MyStruct<X>) -> () {
|
||||
|
||||
@@ -21,7 +21,7 @@ public func checkPot(i: UInt8, testValue: UInt8) -> ValidState {
|
||||
return pots[Int(i)] < testValue ? .yes : .no
|
||||
}
|
||||
|
||||
// CHECK: @"$s4main4pots_Wz" = {{.*}}global i32 0
|
||||
// CHECK: @"$ss20__StaticArrayStorageCN" = {{.*}}global ptr null
|
||||
// CHECK: @"$s4main4pots_WZTv_r" = {{.*}}constant %Ts23_ContiguousArrayStorageCySiG_tailelems0 {{.*}}@"$ss20__StaticArrayStorageCN"
|
||||
// CHECK: @"$s4main4potsSaySiGvp" = {{.*}}constant %TSa {{.*}}@"$s4main4pots_WZTv_r"
|
||||
// CHECK: @"$e4main4pots_Wz" = {{.*}}global i32 0
|
||||
// CHECK: @"$es20__StaticArrayStorageCN" = {{.*}}global ptr null
|
||||
// CHECK: @"$e4main4pots_WZTv_r" = {{.*}}constant %Ts23_ContiguousArrayStorageCySiG_tailelems0 {{.*}}@"$es20__StaticArrayStorageCN"
|
||||
// CHECK: @"$e4main4potsSaySiGvp" = {{.*}}constant %TSa {{.*}}@"$e4main4pots_WZTv_r"
|
||||
|
||||
@@ -10,15 +10,15 @@
|
||||
|
||||
// Check if the optimizer is able to convert array literals to constant statically initialized arrays.
|
||||
|
||||
// CHECK-DAG: @"$s4test11arrayLookupyS2iFTv_r" = {{.*}} constant {{.*}} @"$ss20__StaticArrayStorageCN", {{.*}} -1
|
||||
// CHECK-DAG: @"$s4test11returnArraySaySiGyFTv_r" = {{.*}} constant {{.*}} @"$ss20__StaticArrayStorageCN", {{.*}} -1
|
||||
// CHECK-DAG: @"$s4test9passArrayyyFTv_r" = {{.*}} constant {{.*}} @"$ss20__StaticArrayStorageCN", {{.*}} -1
|
||||
// CHECK-DAG: @"$s4test9passArrayyyFTv0_r" = {{.*}} constant {{.*}} @"$ss20__StaticArrayStorageCN", {{.*}} -1
|
||||
// CHECK-DAG: @"$s4test10storeArrayyyFTv_r" = {{.*}} constant {{.*}} @"$ss20__StaticArrayStorageCN", {{.*}} -1
|
||||
// CHECK-DAG: @"$s4test3StrV9staticLet_WZTv_r" = {{.*}} constant {{.*}} @"$ss20__StaticArrayStorageCN", {{.*}} -1
|
||||
// CHECK-DAG: @"$s4test3StrV9staticVar_WZTv_r" = {{.*}} constant {{.*}} @"$ss20__StaticArrayStorageCN", {{.*}} -1
|
||||
// CHECK-DAG: @"$s4test3StrV9staticVarSaySiGvpZ" = global {{.*}} ptr @"$s4test3StrV9staticVar_WZTv_r"
|
||||
// CHECK-DAG: @"$s4test3StrV14twoDimensionalSaySaySiGGvpZ" = global {{.*}} ptr @"$s4test3StrV14twoDimensional_WZTv{{[0-9]*}}_r"
|
||||
// CHECK-DAG: @"$e4test11arrayLookupyS2iFTv_r" = {{.*}} constant {{.*}} @"$es20__StaticArrayStorageCN", {{.*}} -1
|
||||
// CHECK-DAG: @"$e4test11returnArraySaySiGyFTv_r" = {{.*}} constant {{.*}} @"$es20__StaticArrayStorageCN", {{.*}} -1
|
||||
// CHECK-DAG: @"$e4test9passArrayyyFTv_r" = {{.*}} constant {{.*}} @"$es20__StaticArrayStorageCN", {{.*}} -1
|
||||
// CHECK-DAG: @"$e4test9passArrayyyFTv0_r" = {{.*}} constant {{.*}} @"$es20__StaticArrayStorageCN", {{.*}} -1
|
||||
// CHECK-DAG: @"$e4test10storeArrayyyFTv_r" = {{.*}} constant {{.*}} @"$es20__StaticArrayStorageCN", {{.*}} -1
|
||||
// CHECK-DAG: @"$e4test3StrV9staticLet_WZTv_r" = {{.*}} constant {{.*}} @"$es20__StaticArrayStorageCN", {{.*}} -1
|
||||
// CHECK-DAG: @"$e4test3StrV9staticVar_WZTv_r" = {{.*}} constant {{.*}} @"$es20__StaticArrayStorageCN", {{.*}} -1
|
||||
// CHECK-DAG: @"$e4test3StrV9staticVarSaySiGvpZ" = global {{.*}} ptr @"$e4test3StrV9staticVar_WZTv_r"
|
||||
// CHECK-DAG: @"$e4test3StrV14twoDimensionalSaySaySiGGvpZ" = global {{.*}} ptr @"$e4test3StrV14twoDimensional_WZTv{{[0-9]*}}_r"
|
||||
|
||||
// Currently, constant static arrays only work on Darwin platforms.
|
||||
// REQUIRES: VENDOR=apple
|
||||
|
||||
@@ -47,9 +47,9 @@ public func checks(n: Int) {
|
||||
}
|
||||
|
||||
// CHECK: define {{.*}}i32 @main(i32 %0, ptr %1)
|
||||
// CHECK: define {{.*}}i1 @"$s4main4boolSbyF"()
|
||||
// CHECK: define {{.*}}{{i32|i64}} @"$s4main3intSiyF"()
|
||||
// CHECK: define {{.*}}ptr @"$s4main3ptr1p1nS2V_SitF"(ptr %0, {{i32|i64}} %1)
|
||||
// CHECK: define {{.*}}{ {{i32|i64}}, i8 } @"$s4main8optionalSiSgyF"()
|
||||
// CHECK: define {{.*}}{ {{i32|i64}}, {{i32|i64}}, i8 } @"$s4main12staticstrings12StaticStringVyF"()
|
||||
// CHECK: define {{.*}}void @"$s4main6checks1nySi_tF"({{i32|i64}} %0)
|
||||
// CHECK: define {{.*}}i1 @"$e4main4boolSbyF"()
|
||||
// CHECK: define {{.*}}{{i32|i64}} @"$e4main3intSiyF"()
|
||||
// CHECK: define {{.*}}ptr @"$e4main3ptr1p1nS2V_SitF"(ptr %0, {{i32|i64}} %1)
|
||||
// CHECK: define {{.*}}{ {{i32|i64}}, i8 } @"$e4main8optionalSiSgyF"()
|
||||
// CHECK: define {{.*}}{ {{i32|i64}}, {{i32|i64}}, i8 } @"$e4main12staticstrings12StaticStringVyF"()
|
||||
// CHECK: define {{.*}}void @"$e4main6checks1nySi_tF"({{i32|i64}} %0)
|
||||
|
||||
@@ -26,7 +26,7 @@ public func catching1() {
|
||||
|
||||
// CHECK-EXISTENTIALS: error: cannot use a value of protocol type 'any Error' in embedded Swift
|
||||
|
||||
// CHECK-TRAPS-SIL: sil @$s4main9throwing1SiyKF : $@convention(thin) () -> (Int, @error any Error) {
|
||||
// CHECK-TRAPS-SIL: sil @$e4main9throwing1SiyKF : $@convention(thin) () -> (Int, @error any Error) {
|
||||
// CHECK-TRAPS-SIL-NEXT: bb0:
|
||||
// CHECK-TRAPS-SIL-NEXT: debug_value
|
||||
// CHECK-TRAPS-SIL-NEXT: %1 = integer_literal $Builtin.Int1, -1
|
||||
@@ -35,9 +35,9 @@ public func catching1() {
|
||||
// CHECK-TRAPS-SIL-NEXT: }
|
||||
|
||||
|
||||
// CHECK-TRAPS-IR: define {{.*}}@"$s4main9throwing1SiyKF"{{.*}}{
|
||||
// CHECK-TRAPS-IR: define {{.*}}@"$e4main9throwing1SiyKF"{{.*}}{
|
||||
// CHECK-TRAPS-IR-NEXT: entry:
|
||||
// CHECK-TRAPS-IR: call void @llvm.trap()
|
||||
// CHECK-TRAPS-IR-NEXT: unreachable
|
||||
// CHECK-TRAPS-IR-NEXT: }
|
||||
// CHECK-TRAPS-IR: define {{.*}}@"$s4main9catching1yyF"{{.*}}{
|
||||
// CHECK-TRAPS-IR: define {{.*}}@"$e4main9catching1yyF"{{.*}}{
|
||||
|
||||
@@ -13,16 +13,16 @@ public func test() {
|
||||
fatalError("task failed successfully")
|
||||
}
|
||||
|
||||
// CHECK-MESSAGE: define {{.*}}void @"$s4main4testyyF"(){{.*}} {
|
||||
// CHECK-MESSAGE: define {{.*}}void @"$e4main4testyyF"(){{.*}} {
|
||||
// CHECK-MESSAGE: entry:
|
||||
// CHECK-MESSAGE: {{.*}}call {{.*}}void @"${{(ss17_assertionFailure__|ss31_embeddedReportFatalErrorInFile)}}
|
||||
// CHECK-MESSAGE: {{.*}}call {{.*}}void @"${{(es17_assertionFailure__|es31_embeddedReportFatalErrorInFile)}}
|
||||
// CHECK-MESSAGE-SAME: Fatal error
|
||||
// CHECK-MESSAGE-SAME: task failed successfully
|
||||
// CHECK-MESSAGE-SAME: traps-fatalerror-ir.swift
|
||||
// CHECK-MESSAGE: unreachable
|
||||
// CHECK-MESSAGE: }
|
||||
|
||||
// CHECK-NOMESSAGE: define {{.*}}void @"$s4main4testyyF"(){{.*}} {
|
||||
// CHECK-NOMESSAGE: define {{.*}}void @"$e4main4testyyF"(){{.*}} {
|
||||
// CHECK-NOMESSAGE-NEXT: entry:
|
||||
// CHECK-NOMESSAGE-NEXT: tail call void asm sideeffect "", "n"(i32 0)
|
||||
// CHECK-NOMESSAGE-NEXT: tail call void @llvm.trap()
|
||||
|
||||
@@ -23,19 +23,19 @@ public func test(i: Int) {
|
||||
}
|
||||
|
||||
// "Non-production builds" - We expect 4 separate _assertionFailure() calls with different values
|
||||
// CHECK-MESSAGE: define {{.*}}void @"$s4main4test1iySi_tF"(i64 %0) {{.*}}{
|
||||
// CHECK-MESSAGE: call {{.*}}@"${{(ss17_assertionFailure__|ss31_embeddedReportFatalErrorInFile)}}
|
||||
// CHECK-MESSAGE: define {{.*}}void @"$e4main4test1iySi_tF"(i64 %0) {{.*}}{
|
||||
// CHECK-MESSAGE: call {{.*}}@"${{(es17_assertionFailure__|es31_embeddedReportFatalErrorInFile)}}
|
||||
// CHECK-MESSAGE: unreachable
|
||||
// CHECK-MESSAGE: call {{.*}}@"${{(ss17_assertionFailure__|ss31_embeddedReportFatalErrorInFile)}}
|
||||
// CHECK-MESSAGE: call {{.*}}@"${{(es17_assertionFailure__|es31_embeddedReportFatalErrorInFile)}}
|
||||
// CHECK-MESSAGE: unreachable
|
||||
// CHECK-MESSAGE: call {{.*}}@"${{(ss17_assertionFailure__|ss31_embeddedReportFatalErrorInFile)}}
|
||||
// CHECK-MESSAGE: call {{.*}}@"${{(es17_assertionFailure__|es31_embeddedReportFatalErrorInFile)}}
|
||||
// CHECK-MESSAGE: unreachable
|
||||
// CHECK-MESSAGE: call {{.*}}@"${{(ss17_assertionFailure__|ss31_embeddedReportFatalErrorInFile)}}
|
||||
// CHECK-MESSAGE: call {{.*}}@"${{(es17_assertionFailure__|es31_embeddedReportFatalErrorInFile)}}
|
||||
// CHECK-MESSAGE: unreachable
|
||||
// CHECK-MESSAGE: }
|
||||
|
||||
// "Production builds" - We expect 4 separate trap blocks in the IR.
|
||||
// CHECK-NOMESSAGE: define {{.*}}void @"$s4main4test1iySi_tF"(i64 %0) {{.*}}{
|
||||
// CHECK-NOMESSAGE: define {{.*}}void @"$e4main4test1iySi_tF"(i64 %0) {{.*}}{
|
||||
// CHECK-NOMESSAGE: tail call void asm sideeffect "", "n"(i32 0) #3
|
||||
// CHECK-NOMESSAGE: tail call void @llvm.trap()
|
||||
// CHECK-NOMESSAGE: unreachable
|
||||
|
||||
@@ -12,7 +12,7 @@ public func foobar(i: Int) {
|
||||
if i == 2 { _assertionFailure("prefix", "message 2", file: "", line: 0, flags: 0) }
|
||||
}
|
||||
|
||||
// CHECK: define {{.*}}@"$s4main6foobar1iySi_tF"{{.*}} {
|
||||
// CHECK: define {{.*}}@"$e4main6foobar1iySi_tF"{{.*}} {
|
||||
// CHECK: entry:
|
||||
// CHECK: switch i64 %0, label %3 [
|
||||
// CHECK: i64 1, label %1
|
||||
@@ -32,4 +32,5 @@ public func foobar(i: Int) {
|
||||
|
||||
// We should not see a call to _asssertionFailure in IR because that means such basic block can be merged with another
|
||||
// and break the expectations that each trap point is unique.
|
||||
// CHECK-NOT: @"$es17_assertionFailure__4file4line5flagss5NeverOs12StaticStringV_A2HSus6UInt32VtF"
|
||||
// CHECK-NOT: @"$ss17_assertionFailure__4file4line5flagss5NeverOs12StaticStringV_A2HSus6UInt32VtF"
|
||||
|
||||
@@ -32,6 +32,6 @@ public func test() {
|
||||
createFoo(x: 1)
|
||||
}
|
||||
|
||||
// CHECK-LABEL: sil @$s8MyModule9createFoo1xyx_ts17FixedWidthIntegerRzlFSi_Ttg5 :
|
||||
// CHECK-LABEL: sil @$e8MyModule9createFoo1xyx_ts17FixedWidthIntegerRzlFSi_Ttg5 :
|
||||
// CHECK-NOT: release
|
||||
// CHECK: } // end sil function '$s8MyModule9createFoo1xyx_ts17FixedWidthIntegerRzlFSi_Ttg5'
|
||||
// CHECK: } // end sil function '$e8MyModule9createFoo1xyx_ts17FixedWidthIntegerRzlFSi_Ttg5'
|
||||
|
||||
@@ -16,7 +16,7 @@ public func test_uint8() -> UInt8 {
|
||||
return p.load()
|
||||
}
|
||||
|
||||
// CHECK: define {{.*}}i8 @"$s4main10test_uint8s5UInt8VyF"()
|
||||
// CHECK: define {{.*}}i8 @"$e4main10test_uint8s5UInt8VyF"()
|
||||
// CHECK: store atomic volatile i8 42, ptr inttoptr (i64 4026579625 to ptr) monotonic, align 1
|
||||
// CHECK: [[RET:%.*]] = load atomic volatile i8, ptr inttoptr (i64 4026579625 to ptr) monotonic, align 1
|
||||
// CHECK: ret i8 [[RET]]
|
||||
@@ -28,7 +28,7 @@ public func test_uint16() -> UInt16 {
|
||||
return p.load()
|
||||
}
|
||||
|
||||
// CHECK: define {{.*}}i16 @"$s4main11test_uint16s6UInt16VyF"()
|
||||
// CHECK: define {{.*}}i16 @"$e4main11test_uint16s6UInt16VyF"()
|
||||
// CHECK: store atomic volatile i16 42, ptr inttoptr (i64 4026579626 to ptr) monotonic, align 2
|
||||
// CHECK: [[RET:%.*]] = load atomic volatile i16, ptr inttoptr (i64 4026579626 to ptr) monotonic, align 2
|
||||
// CHECK: ret i16 [[RET]]
|
||||
@@ -40,7 +40,7 @@ public func test_uint32() -> UInt32 {
|
||||
return p.load()
|
||||
}
|
||||
|
||||
// CHECK: define {{.*}}i32 @"$s4main11test_uint32s6UInt32VyF"()
|
||||
// CHECK: define {{.*}}i32 @"$e4main11test_uint32s6UInt32VyF"()
|
||||
// CHECK: store atomic volatile i32 42, ptr inttoptr (i64 4026579626 to ptr) monotonic, align 4
|
||||
// CHECK: [[RET:%.*]] = load atomic volatile i32, ptr inttoptr (i64 4026579626 to ptr) monotonic, align 4
|
||||
// CHECK: ret i32 [[RET]]
|
||||
@@ -52,7 +52,7 @@ public func test_uint64() -> UInt64 {
|
||||
return p.load()
|
||||
}
|
||||
|
||||
// CHECK: define {{.*}}i64 @"$s4main11test_uint64s6UInt64VyF"()
|
||||
// CHECK: define {{.*}}i64 @"$e4main11test_uint64s6UInt64VyF"()
|
||||
// CHECK: store atomic volatile i64 42, ptr inttoptr (i64 4026579626 to ptr) monotonic, align 8
|
||||
// CHECK: [[RET:%.*]] = load atomic volatile i64, ptr inttoptr (i64 4026579626 to ptr) monotonic, align 8
|
||||
// CHECK: ret i64 [[RET]]
|
||||
|
||||
Reference in New Issue
Block a user