@@ -66,7 +66,40 @@ public func inoutSmall(_ en: inout Small, _ x: Int) {
6666
6767// CHECK: SWIFT_EXTERN void $s5Enums10inoutSmallyyAA0C0Oz_SitF(char * _Nonnull en, ptrdiff_t x) SWIFT_NOEXCEPT SWIFT_CALL; // inoutSmall(_:_:)
6868// CHECK: SWIFT_EXTERN void $s5Enums9inoutTinyyyAA0C0Oz_SitF(char * _Nonnull en, ptrdiff_t x) SWIFT_NOEXCEPT SWIFT_CALL; // inoutTiny(_:_:)
69+
70+ // CHECK: struct swift_interop_stub_Enums_Small {
71+ // CHECK-NEXT: uint64_t _1;
72+ // CHECK-NEXT: uint8_t _2;
73+ // CHECK-NEXT: };
74+
75+ // CHECK: static inline void swift_interop_returnDirect_Enums_Small(char * _Nonnull result, struct swift_interop_stub_Enums_Small value) __attribute__((always_inline)) {
76+ // CHECK-NEXT: memcpy(result + 0, &value._1, 8);
77+ // CHECK-NEXT: memcpy(result + 8, &value._2, 1);
78+ // CHECK-NEXT: }
79+
80+ // CHECK: static inline struct swift_interop_stub_Enums_Small swift_interop_passDirect_Enums_Small(const char * _Nonnull value) __attribute__((always_inline)) {
81+ // CHECK-NEXT: struct swift_interop_stub_Enums_Small result;
82+ // CHECK-NEXT: memcpy(&result._1, value + 0, 8);
83+ // CHECK-NEXT: memcpy(&result._2, value + 8, 1);
84+ // CHECK-NEXT: return result;
85+ // CHECK-NEXT: }
86+
6987// CHECK: SWIFT_EXTERN struct swift_interop_stub_Enums_Small $s5Enums9makeSmallyAA0C0OSiF(ptrdiff_t x) SWIFT_NOEXCEPT SWIFT_CALL; // makeSmall(_:)
88+
89+ // CHECK: struct swift_interop_stub_Enums_Tiny {
90+ // CHECK-NEXT: uint8_t _1;
91+ // CHECK-NEXT: };
92+
93+ // CHECK: static inline void swift_interop_returnDirect_Enums_Tiny(char * _Nonnull result, struct swift_interop_stub_Enums_Tiny value) __attribute__((always_inline)) {
94+ // CHECK-NEXT: memcpy(result + 0, &value._1, 1);
95+ // CHECK-NEXT: }
96+
97+ // CHECK: static inline struct swift_interop_stub_Enums_Tiny swift_interop_passDirect_Enums_Tiny(const char * _Nonnull value) __attribute__((always_inline)) {
98+ // CHECK-NEXT: struct swift_interop_stub_Enums_Tiny result;
99+ // CHECK-NEXT: memcpy(&result._1, value + 0, 1);
100+ // CHECK-NEXT: return result;
101+ // CHECK-NEXT: }
102+
70103// CHECK: SWIFT_EXTERN struct swift_interop_stub_Enums_Tiny $s5Enums8makeTinyyAA0C0OSiF(ptrdiff_t x) SWIFT_NOEXCEPT SWIFT_CALL; // makeTiny(_:)
71104// CHECK: SWIFT_EXTERN struct swift_interop_stub_Enums_Small $s5Enums16passThroughSmallyAA0D0OADF(struct swift_interop_stub_Enums_Small en) SWIFT_NOEXCEPT SWIFT_CALL; // passThroughSmall(_:)
72105// CHECK: SWIFT_EXTERN struct swift_interop_stub_Enums_Tiny $s5Enums15passThroughTinyyAA0D0OADF(struct swift_interop_stub_Enums_Tiny en) SWIFT_NOEXCEPT SWIFT_CALL; // passThroughTiny(_:)
0 commit comments