// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -emit-ir %s | %FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-%target-ptrsize // REQUIRES: objc_interop import Swift import Foundation class C: NSObject { dynamic var x: NSString { get } @sil_stored final var stored: Int override init() } sil_vtable C {} sil @x_get : $@convention(thin) (@in C) -> @out NSString // CHECK: [[KEYPATH_A:@keypath.*]] = private global // -- 0x2000_0002: computed, get-only, indirect identifier // CHECK-SAME: i32 536870914 // CHECK-SAME: i8** @"\01L_selector(x)" // CHECK: [[KEYPATH_B:@keypath.*]] = private global // -- 0x5ffffffd: class stored property with indirect offset // CHECK-SAME: i32 1610612733, // CHECK-SAME: @_T013keypaths_objc1CC6storedSivpWvd // CHECK-LABEL: define swiftcc void @objc_only_property() sil @objc_only_property : $@convention(thin) () -> () { entry: // CHECK: call %swift.refcounted* @swift_getKeyPath({{.*}} [[KEYPATH_A]] %a = keypath $KeyPath, (objc "x"; root $C; gettable_property $NSString, id #C.x!getter.1.foreign, getter @x_get : $@convention(thin) (@in C) -> @out NSString) unreachable } sil hidden @_T013keypaths_objc1CC1xSo8NSStringCvgTo : $@convention(objc_method) (@guaranteed C) -> NSString { entry(%0 : $C): unreachable } sil hidden @_T013keypaths_objc1CCACycfcTo : $@convention(objc_method) (@objc_metatype C.Type) -> @owned C { entry(%0 : $@objc_metatype C.Type): unreachable } sil @objc_stored_property : $@convention(thin) () -> () { entry: // CHECK: call %swift.refcounted* @swift_getKeyPath({{.*}} [[KEYPATH_B]] %b = keypath $KeyPath, (objc "stored"; root $C; stored_property #C.stored : $Int) unreachable }