1
1
// RUN: %empty-directory(%t)
2
- // RUN: %target-swift-frontend -emit-module -o %t/UsingObjCStuff.swiftmodule -module-name UsingObjCStuff -I %t -I %S/Inputs/mixed_mode -swift-version 4 %S/Inputs/mixed_mode/UsingObjCStuff.swift
3
- // RUN: %target-swift-frontend -emit-ir -I %t -I %S/Inputs/mixed_mode -module-name main -swift-version 3 %s | %FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-%target-ptrsize --check-prefix=CHECK-V3 -DWORD=i%target-ptrsize
2
+ // RUN: %target-swift-frontend -emit-module -o %t/UsingObjCStuff.swiftmodule -module-name UsingObjCStuff -I %t -I %S/Inputs/mixed_mode -swift-version 5 %S/Inputs/mixed_mode/UsingObjCStuff.swift
4
3
// RUN: %target-swift-frontend -emit-ir -I %t -I %S/Inputs/mixed_mode -module-name main -swift-version 4 %s | %FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-%target-ptrsize --check-prefix=CHECK-V4 -DWORD=i%target-ptrsize
4
+ // RUN: %target-swift-frontend -emit-ir -I %t -I %S/Inputs/mixed_mode -module-name main -swift-version 5 %s | %FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-%target-ptrsize --check-prefix=CHECK-V5 -DWORD=i%target-ptrsize
5
5
6
6
// REQUIRES: objc_interop
7
7
@@ -23,22 +23,22 @@ public class SubSubButtHolder: SubButtHolder {
23
23
// CHECK-LABEL: define {{(protected )?}}{{(dllexport )?}}swiftcc void @"$S4main17accessFinalFields2ofyp_ypt14UsingObjCStuff10ButtHolderC_tF"
24
24
public func accessFinalFields( of holder: ButtHolder ) -> ( Any , Any ) {
25
25
26
- // ButtHolder.y cannot be imported in Swift 3 mode, so make sure we use field
26
+ // ButtHolder.y cannot be imported in Swift 4 mode, so make sure we use field
27
27
// offset globals here.
28
28
29
- // CHECK-V3 : [[OFFSET:%.*]] = load [[WORD]], [[WORD]]* @"$S14UsingObjCStuff10ButtHolderC1xSivpWvd"
30
- // CHECK-V3 : [[INSTANCE_RAW:%.*]] = bitcast {{.*}} to i8*
31
- // CHECK-V3 : getelementptr inbounds i8, i8* [[INSTANCE_RAW]], [[WORD]] [[OFFSET]]
29
+ // CHECK-V4 : [[OFFSET:%.*]] = load [[WORD]], [[WORD]]* @"$S14UsingObjCStuff10ButtHolderC1xSivpWvd"
30
+ // CHECK-V4 : [[INSTANCE_RAW:%.*]] = bitcast {{.*}} to i8*
31
+ // CHECK-V4 : getelementptr inbounds i8, i8* [[INSTANCE_RAW]], [[WORD]] [[OFFSET]]
32
32
33
- // CHECK-V3 : [[OFFSET:%.*]] = load [[WORD]], [[WORD]]* @"$S14UsingObjCStuff10ButtHolderC1zSSvpWvd"
34
- // CHECK-V3 : [[INSTANCE_RAW:%.*]] = bitcast {{.*}} to i8*
35
- // CHECK-V3 : getelementptr inbounds i8, i8* [[INSTANCE_RAW]], [[WORD]] [[OFFSET]]
33
+ // CHECK-V4 : [[OFFSET:%.*]] = load [[WORD]], [[WORD]]* @"$S14UsingObjCStuff10ButtHolderC1zSSvpWvd"
34
+ // CHECK-V4 : [[INSTANCE_RAW:%.*]] = bitcast {{.*}} to i8*
35
+ // CHECK-V4 : getelementptr inbounds i8, i8* [[INSTANCE_RAW]], [[WORD]] [[OFFSET]]
36
36
37
- // ButtHolder.y is correctly imported in Swift 4 mode, so we can use fixed offsets.
37
+ // ButtHolder.y is correctly imported in Swift 5 mode, so we can use fixed offsets.
38
38
39
- // CHECK-V4 : [[OFFSET:%.*]] = getelementptr inbounds %T14UsingObjCStuff10ButtHolderC, %T14UsingObjCStuff10ButtHolderC* %2, i32 0, i32 1
39
+ // CHECK-V5 : [[OFFSET:%.*]] = getelementptr inbounds %T14UsingObjCStuff10ButtHolderC, %T14UsingObjCStuff10ButtHolderC* %2, i32 0, i32 1
40
40
41
- // CHECK-V4 : [[OFFSET:%.*]] = getelementptr inbounds %T14UsingObjCStuff10ButtHolderC, %T14UsingObjCStuff10ButtHolderC* %2, i32 0, i32 3
41
+ // CHECK-V5 : [[OFFSET:%.*]] = getelementptr inbounds %T14UsingObjCStuff10ButtHolderC, %T14UsingObjCStuff10ButtHolderC* %2, i32 0, i32 3
42
42
43
43
return ( holder. x, holder. z)
44
44
}
@@ -48,31 +48,31 @@ public func accessFinalFields(ofSub holder: SubButtHolder) -> (Any, Any, Any) {
48
48
// We should use the runtime-adjusted ivar offsets since we may not have
49
49
// a full picture of the layout in mixed Swift language version modes.
50
50
51
- // ButtHolder.y cannot be imported in Swift 3 mode, so make sure we use field
51
+ // ButtHolder.y cannot be imported in Swift 4 mode, so make sure we use field
52
52
// offset globals here.
53
53
54
- // CHECK-V3 : [[OFFSET:%.*]] = load [[WORD]], [[WORD]]* @"$S14UsingObjCStuff10ButtHolderC1xSivpWvd"
55
- // CHECK-V3 : [[INSTANCE_RAW:%.*]] = bitcast {{.*}} to i8*
56
- // CHECK-V3 : getelementptr inbounds i8, i8* [[INSTANCE_RAW]], [[WORD]] [[OFFSET]]
54
+ // CHECK-V4 : [[OFFSET:%.*]] = load [[WORD]], [[WORD]]* @"$S14UsingObjCStuff10ButtHolderC1xSivpWvd"
55
+ // CHECK-V4 : [[INSTANCE_RAW:%.*]] = bitcast {{.*}} to i8*
56
+ // CHECK-V4 : getelementptr inbounds i8, i8* [[INSTANCE_RAW]], [[WORD]] [[OFFSET]]
57
57
58
- // CHECK-V3 : [[OFFSET:%.*]] = load [[WORD]], [[WORD]]* @"$S14UsingObjCStuff10ButtHolderC1zSSvpWvd"
59
- // CHECK-V3 : [[INSTANCE_RAW:%.*]] = bitcast {{.*}} to i8*
60
- // CHECK-V3 : getelementptr inbounds i8, i8* [[INSTANCE_RAW]], [[WORD]] [[OFFSET]]
58
+ // CHECK-V4 : [[OFFSET:%.*]] = load [[WORD]], [[WORD]]* @"$S14UsingObjCStuff10ButtHolderC1zSSvpWvd"
59
+ // CHECK-V4 : [[INSTANCE_RAW:%.*]] = bitcast {{.*}} to i8*
60
+ // CHECK-V4 : getelementptr inbounds i8, i8* [[INSTANCE_RAW]], [[WORD]] [[OFFSET]]
61
61
62
- // CHECK-V3 : [[OFFSET:%.*]] = load [[WORD]], [[WORD]]* @"$S4main13SubButtHolderC1wSfvpWvd"
62
+ // CHECK-V4 : [[OFFSET:%.*]] = load [[WORD]], [[WORD]]* @"$S4main13SubButtHolderC1wSfvpWvd"
63
63
64
- // CHECK-V3 : [[INSTANCE_RAW:%.*]] = bitcast {{.*}} to i8*
65
- // CHECK-V3 : getelementptr inbounds i8, i8* [[INSTANCE_RAW]], [[WORD]] [[OFFSET]]
64
+ // CHECK-V4 : [[INSTANCE_RAW:%.*]] = bitcast {{.*}} to i8*
65
+ // CHECK-V4 : getelementptr inbounds i8, i8* [[INSTANCE_RAW]], [[WORD]] [[OFFSET]]
66
66
67
- // ButtHolder.y is correctly imported in Swift 4 mode, so we can use fixed offsets.
67
+ // ButtHolder.y is correctly imported in Swift 5 mode, so we can use fixed offsets.
68
68
69
- // CHECK-V4 : [[SELF:%.*]] = bitcast %T4main13SubButtHolderC* %3 to %T14UsingObjCStuff10ButtHolderC*
70
- // CHECK-V4 : [[OFFSET:%.*]] = getelementptr inbounds %T14UsingObjCStuff10ButtHolderC, %T14UsingObjCStuff10ButtHolderC* [[SELF]], i32 0, i32 1
69
+ // CHECK-V5 : [[SELF:%.*]] = bitcast %T4main13SubButtHolderC* %3 to %T14UsingObjCStuff10ButtHolderC*
70
+ // CHECK-V5 : [[OFFSET:%.*]] = getelementptr inbounds %T14UsingObjCStuff10ButtHolderC, %T14UsingObjCStuff10ButtHolderC* [[SELF]], i32 0, i32 1
71
71
72
- // CHECK-V4 : [[SELF:%.*]] = bitcast %T4main13SubButtHolderC* %3 to %T14UsingObjCStuff10ButtHolderC*
73
- // CHECK-V4 : [[OFFSET:%.*]] = getelementptr inbounds %T14UsingObjCStuff10ButtHolderC, %T14UsingObjCStuff10ButtHolderC* [[SELF]], i32 0, i32 3
72
+ // CHECK-V5 : [[SELF:%.*]] = bitcast %T4main13SubButtHolderC* %3 to %T14UsingObjCStuff10ButtHolderC*
73
+ // CHECK-V5 : [[OFFSET:%.*]] = getelementptr inbounds %T14UsingObjCStuff10ButtHolderC, %T14UsingObjCStuff10ButtHolderC* [[SELF]], i32 0, i32 3
74
74
75
- // CHECK-V4 : [[OFFSET:%.*]] = getelementptr inbounds %T4main13SubButtHolderC, %T4main13SubButtHolderC* %3, i32 0, i32 4
75
+ // CHECK-V5 : [[OFFSET:%.*]] = getelementptr inbounds %T4main13SubButtHolderC, %T4main13SubButtHolderC* %3, i32 0, i32 4
76
76
77
77
return ( holder. x, holder. z, holder. w)
78
78
}
@@ -91,9 +91,9 @@ public func invokeMethod(on holder: SubButtHolder) {
91
91
holder. subVirtual ( )
92
92
}
93
93
94
- // CHECK-V3 -LABEL: define private void @initialize_metadata_SubButtHolder
95
- // CHECK-V3 : call void @swift_initClassMetadata(
94
+ // CHECK-V4 -LABEL: define private void @initialize_metadata_SubButtHolder
95
+ // CHECK-V4 : call void @swift_initClassMetadata(
96
96
97
- // CHECK-V3 -LABEL: define private void @initialize_metadata_SubSubButtHolder
98
- // CHECK-V3 : call void @swift_initClassMetadata(
97
+ // CHECK-V4 -LABEL: define private void @initialize_metadata_SubSubButtHolder
98
+ // CHECK-V4 : call void @swift_initClassMetadata(
99
99
0 commit comments