|
| 1 | +// RUN: %target-swift-frontend -enable-experimental-feature SymbolLinkageMarkers -parse-as-library -emit-ir %s -o - | %FileCheck %s |
| 2 | + |
| 3 | +// REQUIRES: swift_in_compiler |
| 4 | + |
| 5 | +struct MyStruct1<T> { |
| 6 | + var a, b: T |
| 7 | +} |
| 8 | +@_section("__TEXT,__mysection") var g_MyStruct1 = MyStruct1<Int>(a: 42, b: 66) |
| 9 | + |
| 10 | +struct MyStruct2<T> { |
| 11 | + var a: T |
| 12 | + var b: (T, T) |
| 13 | +} |
| 14 | +@_section("__TEXT,__mysection") var g_MyStruct2 = MyStruct2<Int>(a: 42, b: (66, 67)) |
| 15 | + |
| 16 | +struct MyStruct3<T> { |
| 17 | + var a, b: T |
| 18 | + public init(a: T, b: T) { |
| 19 | + self.a = a |
| 20 | + self.b = b |
| 21 | + } |
| 22 | +} |
| 23 | +@_section("__TEXT,__mysection") var g_MyStruct3 = MyStruct3<Int>(a: 42, b: 77) |
| 24 | + |
| 25 | +struct MyStruct4<T> { |
| 26 | + var a: T |
| 27 | + var s: MyStruct1<T> |
| 28 | +} |
| 29 | +@_section("__TEXT,__mysection") var g_MyStruct4 = MyStruct4<Int>(a: 42, s: MyStruct1<Int>(a: 43, b: 44)) |
| 30 | + |
| 31 | +struct MyStruct5<T> { |
| 32 | + var q: MyStruct4<T> |
| 33 | + var r: MyStruct4<T> |
| 34 | + public init(q: MyStruct4<T>, r: MyStruct4<T>) { |
| 35 | + self.q = q |
| 36 | + self.r = r |
| 37 | + } |
| 38 | +} |
| 39 | +@_section("__TEXT,__mysection") var g_MyStruct5 = MyStruct5<Int>(q: MyStruct4<Int>(a: 42, s: MyStruct1<Int>(a: 43, b: 44)), r: MyStruct4<Int>(a: 42, s: MyStruct1<Int>(a: 43, b: 44))) |
| 40 | + |
| 41 | +// CHECK: @"{{.*}}g_MyStruct1{{.*}}Gvp" = hidden global {{.*}} <{ %TSi <{ {{(i32|i64)}} 42 }>, %TSi <{ {{(i32|i64)}} 66 }> }> |
| 42 | +// CHECK: @"{{.*}}g_MyStruct2{{.*}}Gvp" = hidden global {{.*}} <{ %TSi <{ {{(i32|i64)}} 42 }>, <{ %TSi, %TSi }> <{ %TSi <{ {{(i32|i64)}} 66 }>, %TSi <{ {{(i32|i64)}} 67 }> }> }> |
| 43 | +// CHECK: @"{{.*}}g_MyStruct3{{.*}}Gvp" = hidden global {{.*}} <{ %TSi <{ {{(i32|i64)}} 42 }>, %TSi <{ {{(i32|i64)}} 77 }> }> |
| 44 | +// CHECK: @"{{.*}}g_MyStruct4{{.*}}Gvp" = hidden global {{.*}} <{ %TSi <{ {{(i32|i64)}} 42 }>, {{.*}} <{ %TSi <{ {{(i32|i64)}} 43 }>, %TSi <{ {{(i32|i64)}} 44 }> }> }> |
| 45 | +// CHECK: @"{{.*}}g_MyStruct5{{.*}}Gvp" = hidden global {{.*}} <{ {{.*}} <{ %TSi <{ {{(i32|i64)}} 42 }>, {{.*}} <{ %TSi <{ {{(i32|i64)}} 43 }>, %TSi <{ {{(i32|i64)}} 44 }> }> }>, {{.*}} <{ %TSi <{ {{(i32|i64)}} 42 }>, {{.*}} <{ %TSi <{ {{(i32|i64)}} 43 }>, %TSi <{ {{(i32|i64)}} 44 }> }> }> }> |
0 commit comments