@@ -87,6 +87,17 @@ sil_vtable C2 {}
87
87
// CHECK-32-SAME: <i32 0x0380_0008> }>
88
88
// CHECK-64-SAME: <i32 0x0380_0010> }>
89
89
90
+ // -- %d1: C1.x
91
+ // CHECK: [[KP_D1:@keypath(\..*)?]] = private global <{ {{.*}} }> <{
92
+ // CHECK-SAME: [[WORD]]* @keypath_once
93
+ // CHECK-SAME: @"symbolic
94
+ // CHECK-SAME: @"symbolic
95
+ // -- instantiable in-line, size 4
96
+ // CHECK-SAME: <i32 0x8000_0004>,
97
+ // -- 0x0300_0000 (class) + mutable + offset of C.x
98
+ // CHECK-32-SAME: <i32 0x0380_0008> }>
99
+ // CHECK-64-SAME: <i32 0x0380_0010> }>
100
+
90
101
// -- %e: C.y
91
102
// CHECK: [[KP_E:@keypath(\..*)?]] = private global <{ {{.*}} }> <{
92
103
// CHECK-SAME: [[WORD]]* @keypath_once
@@ -218,9 +229,10 @@ entry:
218
229
%b = keypath $KeyPath<S, String>, (root $S; stored_property #S.y : $String)
219
230
// CHECK: call %swift.refcounted* @swift_getKeyPath(i8* bitcast ({{.*}} [[KP_C]] to i8*), i8* undef)
220
231
%c = keypath $KeyPath<S, C>, (root $S; stored_property #S.z : $C)
221
-
222
232
// CHECK: call %swift.refcounted* @swift_getKeyPath(i8* bitcast ({{.*}} [[KP_D]] to i8*), i8* undef)
223
233
%d = keypath $KeyPath<C, Int>, (root $C; stored_property #C.x : $Int)
234
+ // CHECK: call %swift.refcounted* @swift_getKeyPath(i8* bitcast ({{.*}} [[KP_D1]] to i8*), i8* undef)
235
+ %d1 = keypath $KeyPath<C1, Int>, (root $C1; stored_property #C.x : $Int)
224
236
// CHECK: call %swift.refcounted* @swift_getKeyPath(i8* bitcast ({{.*}} [[KP_E]] to i8*), i8* undef)
225
237
%e = keypath $KeyPath<C, String>, (root $C; stored_property #C.y : $String)
226
238
// CHECK: call %swift.refcounted* @swift_getKeyPath(i8* bitcast ({{.*}} [[KP_F]] to i8*), i8* undef)
0 commit comments