@@ -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
@@ -232,9 +243,10 @@ entry:
232
243
%b = keypath $KeyPath<S, String>, (root $S; stored_property #S.y : $String)
233
244
// CHECK: call %swift.refcounted* @swift_getKeyPath(i8* bitcast ({{.*}} [[KP_C]] to i8*), i8* undef)
234
245
%c = keypath $KeyPath<S, C>, (root $S; stored_property #S.z : $C)
235
-
236
246
// CHECK: call %swift.refcounted* @swift_getKeyPath(i8* bitcast ({{.*}} [[KP_D]] to i8*), i8* undef)
237
247
%d = keypath $KeyPath<C, Int>, (root $C; stored_property #C.x : $Int)
248
+ // CHECK: call %swift.refcounted* @swift_getKeyPath(i8* bitcast ({{.*}} [[KP_D1]] to i8*), i8* undef)
249
+ %d1 = keypath $KeyPath<C1, Int>, (root $C1; stored_property #C.x : $Int)
238
250
// CHECK: call %swift.refcounted* @swift_getKeyPath(i8* bitcast ({{.*}} [[KP_E]] to i8*), i8* undef)
239
251
%e = keypath $KeyPath<C, String>, (root $C; stored_property #C.y : $String)
240
252
// CHECK: call %swift.refcounted* @swift_getKeyPath(i8* bitcast ({{.*}} [[KP_F]] to i8*), i8* undef)
0 commit comments