// RUN: %target-swift-remoteast-test %s | %FileCheck %s // REQUIRES: swift-remoteast-test // REQUIRES: PTRSIZE=64 @_silgen_name("printTypeMemberOffset") func printTypeMemberOffset(_: Any.Type, _: StaticString) @_silgen_name("printTypeMetadataMemberOffset") func printTypeMetadataMemberOffset(_: Any.Type, _: StaticString) printTypeMemberOffset((Int,Bool,Float,Bool,Int16).self, "0") // CHECK: found offset: 0 printTypeMemberOffset((Int,Bool,Float,Bool,Int16).self, "1") // CHECK-NEXT: found offset: 8 printTypeMemberOffset((Int,Bool,Float,Bool,Int16).self, "2") // CHECK-NEXT: found offset: 12 printTypeMemberOffset((Int,Bool,Float,Bool,Int16).self, "3") // CHECK-NEXT: found offset: 16 printTypeMemberOffset((Int,Bool,Float,Bool,Int16).self, "4") // CHECK-NEXT: found offset: 18 printTypeMemberOffset((Int,Bool,Float,Bool,Int16).self, "5") // CHECK-NEXT: type has no member named '5' struct A { var a: Int var b: Bool var c: Float var d: Bool var e: Int16 } printTypeMemberOffset(A.self, "a") // CHECK-NEXT: found offset: 0 printTypeMemberOffset(A.self, "b") // CHECK-NEXT: found offset: 8 printTypeMemberOffset(A.self, "c") // CHECK-NEXT: found offset: 12 printTypeMemberOffset(A.self, "d") // CHECK-NEXT: found offset: 16 printTypeMemberOffset(A.self, "e") // CHECK-NEXT: found offset: 18 printTypeMemberOffset(A.self, "f") // CHECK-NEXT: type has no member named 'f' struct B { var a: Int var b: Bool var c: T var d: Bool var e: Int16 } printTypeMemberOffset(B.self, "a") // CHECK-NEXT: found offset: 0 printTypeMemberOffset(B.self, "b") // CHECK-NEXT: found offset: 8 printTypeMemberOffset(B.self, "c") // CHECK-NEXT: found offset: 12 printTypeMemberOffset(B.self, "d") // CHECK-NEXT: found offset: 16 printTypeMemberOffset(B.self, "e") // CHECK-NEXT: found offset: 18 printTypeMemberOffset(B.self, "f") // CHECK-NEXT: type has no member named 'f' class C { var a: Int var b: Bool var c: Float var d: Bool var e: Int16 init() { a = 0; b = false; c = 0; d = false; e = 0 } } printTypeMemberOffset(C.self, "a") // CHECK-NEXT: found offset: 16 printTypeMemberOffset(C.self, "b") // CHECK-NEXT: found offset: 24 printTypeMemberOffset(C.self, "c") // CHECK-NEXT: found offset: 28 printTypeMemberOffset(C.self, "d") // CHECK-NEXT: found offset: 32 printTypeMemberOffset(C.self, "e") // CHECK-NEXT: found offset: 34 printTypeMemberOffset(C.self, "f") // CHECK-NEXT: type has no member named 'f' class D { var a: Int var b: Bool var c: T var d: Bool var e: Int16 init(v: T) { a = 0; b = false; c = v; d = false; e = 0 } } printTypeMemberOffset(D.self, "a") // CHECK-NEXT: found offset: 16 printTypeMemberOffset(D.self, "b") // CHECK-NEXT: found offset: 24 printTypeMemberOffset(D.self, "c") // CHECK-NEXT: found offset: 28 printTypeMemberOffset(D.self, "d") // CHECK-NEXT: found offset: 32 printTypeMemberOffset(D.self, "e") // CHECK-NEXT: found offset: 34 printTypeMemberOffset(D.self, "f") // CHECK-NEXT: type has no member named 'f'