1
1
// RUN: %empty-directory(%t)
2
2
// RUN: %{python} %utils/chex.py < %s > %t/generic_classes.sil
3
- // RUN: %target-swift-frontend %t/generic_classes.sil -emit-ir | %FileCheck %t/generic_classes.sil --check-prefix=CHECK --check-prefix=CHECK-%target-runtime -check-prefix CHECK-%target-import-type
3
+ // RUN: %target-swift-frontend %t/generic_classes.sil -emit-ir -enable-objc-interop | %FileCheck %t/generic_classes.sil --check-prefixes=CHECK,CHECK-objc,CHECK-%target-import-type,CHECK-%target-import-type-objc
4
+ // RUN: %target-swift-frontend %t/generic_classes.sil -emit-ir -disable-objc-interop | %FileCheck %t/generic_classes.sil --check-prefixes=CHECK,CHECK-native,CHECK-%target-import-type
4
5
// RUN: %target-swift-frontend -Osize %t/generic_classes.sil -emit-ir | %FileCheck %t/generic_classes.sil --check-prefix=OSIZE
5
6
6
7
// REQUIRES: CPU=x86_64
@@ -52,21 +53,20 @@ import Swift
52
53
// -- flags
53
54
// CHECK_SAME: i32 3,
54
55
// -- immediate pattern size
55
- // CHECK-SAME: i16 0,
56
+ // CHECK-native-SAME: i16 0,
57
+ // CHECK-objc-SAME: i16 5,
56
58
// -- immediate pattern target offset
57
- // CHECK-SAME: i16 0,
59
+ // CHECK-SAME: i16 0,
58
60
// -- extra data size
59
- // CHECK-SAME- native: i16 0,
60
- // CHECK-SAME- objc: i16 23 ,
61
+ // CHECK-native-SAME : i16 0,
62
+ // CHECK-objc-SAME : i16 14 ,
61
63
// -- class ro-data offset
62
- // CHECK-SAME- native: i16 0,
63
- // CHECK-SAME- objc: i16 5 ,
64
+ // CHECK-native-SAME : i16 0
65
+ // CHECK-objc-SAME : i16 0 ,
64
66
// -- metaclass object offset
65
- // CHECK-SAME-native: i16 0,
66
- // CHECK-SAME-objc: i16 0,
67
+ // CHECK-objc-SAME: i16 0,
67
68
// -- class ro-data offset
68
- // CHECK-SAME-native: i16 0
69
- // CHECK-SAME-objc: i16 14,
69
+ // CHECK-objc-SAME: i16 23
70
70
// CHECK-SAME: }>
71
71
72
72
// -- Check that offset vars are emitted for fixed-layout generics
@@ -91,22 +91,23 @@ import Swift
91
91
// CHECK-SAME: }>
92
92
93
93
// CHECK: @"$s15generic_classes14RootNonGenericCMf" = internal global <{ {{.*}} }> <{
94
- // CHECK-SAME: void (%T15generic_classes14RootNonGenericC*)* @"$s15generic_classes14RootNonGenericCfD",
95
- // CHECK-DIRECT-SAME: i8** @"$sBoWV",
96
- // CHECK-INDIRECT-SAME: i8** null,
97
- // CHECK-SAME-native: i64 0,
98
- // CHECK-SAME-native: %swift.type* null,
99
- // CHECK-SAME-native: %swift.opaque* null,
100
- // CHECK-SAME-objc: i64 ptrtoint (%objc_class* @"$s15generic_classes14RootNonGenericCMm" to i64),
101
- // CHECK-SAME-objc: %objc_class* @"OBJC_CLASS_$_{{(_TtCs12_)?}}SwiftObject",
102
- // CHECK-SAME-objc: %swift.opaque* @_objc_empty_cache,
103
- // CHECK-SAME: %swift.opaque* null,
104
- // CHECK-SAME-native: i64 1,
105
- // CHECK-SAME-objc: @_DATA__TtC15generic_classes14RootNonGeneric
106
- // CHECK-SAME: i32 33,
107
- // CHECK-SAME: i16 7,
108
- // CHECK-SAME: i16 0,
109
- // CHECK-SAME: {{.*}}* @"$s15generic_classes14RootNonGenericCMn"
94
+ // CHECK-SAME: void (%T15generic_classes14RootNonGenericC*)* @"$s15generic_classes14RootNonGenericCfD",
95
+ // CHECK-DIRECT-SAME: i8** @"$sBoWV",
96
+ // CHECK-INDIRECT-SAME: i8** null,
97
+ // CHECK-native-SAME: i64 0,
98
+ // CHECK-native-SAME: %swift.type* null,
99
+ // CHECK-native-SAME: %swift.opaque* null,
100
+ // CHECK-objc-SAME: i64 ptrtoint (%objc_class* @"$s15generic_classes14RootNonGenericCMm" to i64),
101
+ // CHECK-DIRECT-objc-SAME: %objc_class* @"OBJC_CLASS_$_{{(_TtCs12_)?}}SwiftObject",
102
+ // CHECK-INDIRECT-objc-SAME: %swift.type* null,
103
+ // CHECK-objc-SAME: %swift.opaque* @_objc_empty_cache,
104
+ // CHECK-SAME: %swift.opaque* null,
105
+ // CHECK-native-SAME: i64 1,
106
+ // CHECK-objc-SAME: @_DATA__TtC15generic_classes14RootNonGeneric
107
+ // CHECK-SAME: i32 33,
108
+ // CHECK-SAME: i16 7,
109
+ // CHECK-SAME: i16 0,
110
+ // CHECK-SAME: {{.*}}* @"$s15generic_classes14RootNonGenericCMn"
110
111
// CHECK-SAME: }>
111
112
112
113
// CHECK: @"$s15generic_classes015GenericInheritsC0CMn" = hidden constant
@@ -117,29 +118,30 @@ import Swift
117
118
// -- template instantiation function
118
119
// CHECK-SAME: %swift.type* (%swift.type_descriptor*, i8**, i8*)* @"$s15generic_classes015GenericInheritsC0CMi"
119
120
// -- pattern flags (1 == has extra data pattern)
120
- // CHECK-SAME- native: i32 0,
121
- // CHECK-SAME- objc: i32 1,
121
+ // CHECK-native-SAME : i32 0,
122
+ // CHECK-objc-SAME : i32 1,
122
123
// -- heap destructor
123
124
// CHECK-SAME: @"$s15generic_classes015GenericInheritsC0CfD"
124
125
// -- ivar destroyer
125
126
// CHECK-SAME: i32 0,
126
127
// -- class flags
127
128
// CHECK_SAME: i32 3,
128
129
// -- extra data pattern offset
129
- // CHECK-SAME- objc: i16 0 ,
130
+ // CHECK-objc-SAME : i16 5 ,
130
131
// -- extra data pattern size
131
- // CHECK-SAME- objc: i16 23 ,
132
+ // CHECK-objc-SAME : i16 0 ,
132
133
// -- class ro-data offset
133
- // CHECK-SAME- native: i16 0,
134
- // CHECK-SAME- objc: i16 5 ,
134
+ // CHECK-native-SAME : i16 0,
135
+ // CHECK-objc-SAME : i16 14 ,
135
136
// -- metaclass object offset
136
- // CHECK-SAME- native: i16 0,
137
- // CHECK-SAME- objc: i16 0,
137
+ // CHECK-native-SAME : i16 0,
138
+ // CHECK-objc-SAME : i16 0,
138
139
// -- class ro-data offset
139
- // CHECK-SAME- native: i16 0,
140
- // CHECK-SAME- objc: i16 14 ,
140
+ // CHECK-native-SAME : i16 0,
141
+ // CHECK-objc-SAME : i16 0 ,
141
142
// -- reserved
142
- // CHECK-SAME: i16 0
143
+ // CHECK-native-SAME: i16 0
144
+ // CHECK-objc-SAME: i16 23
143
145
// CHECK-SAME: }
144
146
145
147
// CHECK: @"$s15generic_classes018GenericInheritsNonC0CMP"
0 commit comments