@@ -92,6 +92,36 @@ public func takeTrivialInout(_ x: inout Trivial) {
92
92
// CHECK: SWIFT_EXTERN void $s8UseCxxTy13retNonTrivialSo2nsO02__b18TemplateInstN2ns18efH4IiEEVyF(SWIFT_INDIRECT_RESULT void * _Nonnull) SWIFT_NOEXCEPT SWIFT_CALL; // retNonTrivial()
93
93
// CHECK: SWIFT_EXTERN struct swift_interop_returnStub_UseCxxTy_uint32_t_0_4 $s8UseCxxTy10retTrivialSo0E0VyF(void) SWIFT_NOEXCEPT SWIFT_CALL; // retTrivial()
94
94
95
+ // CHECK: } // end namespace
96
+ // CHECK-EMPTY:
97
+ // CHECK-NEXT: namespace swift {
98
+ // CHECK-NEXT: namespace _impl {
99
+ // CHECK-EMPTY:
100
+ // CHECK-NEXT: // Type metadata accessor for __CxxTemplateInstN2ns18NonTrivialTemplateIiEE
101
+ // CHECK-NEXT: SWIFT_EXTERN swift::_impl::MetadataResponseTy $sSo2nsO033__CxxTemplateInstN2ns18NonTrivialC4IiEEVMa(swift::_impl::MetadataRequestTy) SWIFT_NOEXCEPT SWIFT_CALL;
102
+ // CHECK-EMPTY:
103
+ // CHECK-EMPTY:
104
+ // CHECK-NEXT: } // namespace _impl
105
+ // CHECK-EMPTY:
106
+ // CHECK-NEXT: #pragma clang diagnostic push
107
+ // CHECK-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
108
+ // CHECK-NEXT: template<>
109
+ // CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<ns::NonTrivialTemplate<int>> = true;
110
+ // CHECK-NEXT: template<>
111
+ // CHECK-NEXT: struct TypeMetadataTrait<ns::NonTrivialTemplate<int>> {
112
+ // CHECK-NEXT: static inline void * _Nonnull getTypeMetadata() {
113
+ // CHECK-NEXT: return _impl::$sSo2nsO033__CxxTemplateInstN2ns18NonTrivialC4IiEEVMa(0)._0;
114
+ // CHECK-NEXT: }
115
+ // CHECK-NEXT: };
116
+ // CHECK-NEXT: namespace _impl{
117
+ // CHECK-NEXT: template<>
118
+ // CHECK-NEXT: static inline const constexpr bool isSwiftBridgedCxxRecord<ns::NonTrivialTemplate<int>> = true;
119
+ // CHECK-NEXT: } // namespace
120
+ // CHECK-NEXT: #pragma clang diagnostic pop
121
+ // CHECK-NEXT: } // namespace swift
122
+ // CHECK-EMPTY:
123
+ // CHECK-NEXT: namespace UseCxxTy {
124
+
95
125
// CHECK: inline ns::NonTrivialTemplate<int> retNonTrivial() noexcept SWIFT_WARN_UNUSED_RESULT {
96
126
// CHECK-NEXT: alignas(alignof(ns::NonTrivialTemplate<int>)) char storage[sizeof(ns::NonTrivialTemplate<int>)];
97
127
// CHECK-NEXT: auto * _Nonnull storageObjectPtr = reinterpret_cast<ns::NonTrivialTemplate<int> *>(storage);
@@ -101,8 +131,37 @@ public func takeTrivialInout(_ x: inout Trivial) {
101
131
// CHECK-NEXT: return result;
102
132
// CHECK-NEXT: }
103
133
// CHECK-EMPTY:
134
+ // CHECK-NEXT: } // end namespace
135
+ // CHECK-EMPTY:
136
+ // CHECK-NEXT: namespace swift {
137
+ // CHECK-NEXT: namespace _impl {
138
+ // CHECK-EMPTY:
139
+ // CHECK-NEXT: // Type metadata accessor for __CxxTemplateInstN2ns18NonTrivialTemplateINS_11TrivialinNSEEE
140
+ // CHECK-NEXT: SWIFT_EXTERN swift::_impl::MetadataResponseTy $sSo2nsO033__CxxTemplateInstN2ns18NonTrivialC20INS_11TrivialinNSEEEVMa(swift::_impl::MetadataRequestTy) SWIFT_NOEXCEPT SWIFT_CALL;
141
+ // CHECK-EMPTY:
142
+ // CHECK-EMPTY:
143
+ // CHECK-NEXT: } // namespace _impl
144
+ // CHECK-EMPTY:
145
+ // CHECK-NEXT: #pragma clang diagnostic push
146
+ // CHECK-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
147
+ // CHECK-NEXT: template<>
148
+ // CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<ns::NonTrivialTemplate<ns::TrivialinNS>> = true;
149
+ // CHECK-NEXT: template<>
150
+ // CHECK-NEXT: struct TypeMetadataTrait<ns::NonTrivialTemplate<ns::TrivialinNS>> {
151
+ // CHECK-NEXT: static inline void * _Nonnull getTypeMetadata() {
152
+ // CHECK-NEXT: return _impl::$sSo2nsO033__CxxTemplateInstN2ns18NonTrivialC20INS_11TrivialinNSEEEVMa(0)._0;
153
+ // CHECK-NEXT: }
154
+ // CHECK-NEXT: };
155
+ // CHECK-NEXT: namespace _impl{
156
+ // CHECK-NEXT: template<>
157
+ // CHECK-NEXT: static inline const constexpr bool isSwiftBridgedCxxRecord<ns::NonTrivialTemplate<ns::TrivialinNS>> = true;
158
+ // CHECK-NEXT: } // namespace
159
+ // CHECK-NEXT: #pragma clang diagnostic pop
160
+ // CHECK-NEXT: } // namespace swift
161
+ // CHECK-EMPTY:
162
+ // CHECK-NEXT: namespace UseCxxTy {
104
163
// CHECK-EMPTY:
105
- // CHECK: inline ns::NonTrivialTemplate<ns::TrivialinNS> retNonTrivial2() noexcept SWIFT_WARN_UNUSED_RESULT {
164
+ // CHECK-NEXT : inline ns::NonTrivialTemplate<ns::TrivialinNS> retNonTrivial2() noexcept SWIFT_WARN_UNUSED_RESULT {
106
165
// CHECK-NEXT: alignas(alignof(ns::NonTrivialTemplate<ns::TrivialinNS>)) char storage[sizeof(ns::NonTrivialTemplate<ns::TrivialinNS>)];
107
166
// CHECK-NEXT: auto * _Nonnull storageObjectPtr = reinterpret_cast<ns::NonTrivialTemplate<ns::TrivialinNS> *>(storage);
108
167
// CHECK-NEXT: _impl::$s8UseCxxTy14retNonTrivial2So2nsO02__b18TemplateInstN2ns18e7TrivialH20INS_11TrivialinNSEEEVyF(storage);
@@ -140,33 +199,3 @@ public func takeTrivialInout(_ x: inout Trivial) {
140
199
// CHECK: inline void takeTrivialInout(Trivial& x) noexcept {
141
200
// CHECK-NEXT: return _impl::$s8UseCxxTy16takeTrivialInoutyySo0E0VzF(swift::_impl::getOpaquePointer(x));
142
201
// CHECK-NEXT: }
143
-
144
- // CHECK: } // end namespace
145
- // CHECK-EMPTY:
146
- // CHECK-NEXT: namespace swift {
147
- // CHECK-NEXT: namespace _impl {
148
- // CHECK-EMPTY:
149
- // CHECK-NEXT: // Type metadata accessor for __CxxTemplateInstN2ns18NonTrivialTemplateIiEE
150
- // CHECK-NEXT: SWIFT_EXTERN swift::_impl::MetadataResponseTy $sSo2nsO033__CxxTemplateInstN2ns18NonTrivialC4IiEEVMa(swift::_impl::MetadataRequestTy) SWIFT_NOEXCEPT SWIFT_CALL;
151
- // CHECK-EMPTY:
152
- // CHECK-EMPTY:
153
- // CHECK-NEXT: } // namespace _impl
154
- // CHECK-EMPTY:
155
- // CHECK-NEXT: #pragma clang diagnostic push
156
- // CHECK-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
157
- // CHECK-NEXT: template<>
158
- // CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<ns::NonTrivialTemplate<int>> = true;
159
- // CHECK-NEXT: template<>
160
- // CHECK-NEXT: struct TypeMetadataTrait<ns::NonTrivialTemplate<int>> {
161
- // CHECK-NEXT: static inline void * _Nonnull getTypeMetadata() {
162
- // CHECK-NEXT: return _impl::$sSo2nsO033__CxxTemplateInstN2ns18NonTrivialC4IiEEVMa(0)._0;
163
- // CHECK-NEXT: }
164
- // CHECK-NEXT: };
165
- // CHECK-NEXT: namespace _impl{
166
- // CHECK-NEXT: template<>
167
- // CHECK-NEXT: static inline const constexpr bool isSwiftBridgedCxxRecord<ns::NonTrivialTemplate<int>> = true;
168
- // CHECK-NEXT: } // namespace
169
- // CHECK-NEXT: #pragma clang diagnostic pop
170
- // CHECK-NEXT: } // namespace swift
171
- // CHECK-EMPTY:
172
- // CHECK-NEXT: namespace UseCxxTy {
0 commit comments