@@ -92,6 +92,36 @@ public func takeTrivialInout(_ x: inout Trivial) {
9292// CHECK: SWIFT_EXTERN void $s8UseCxxTy13retNonTrivialSo2nsO02__b18TemplateInstN2ns18efH4IiEEVyF(SWIFT_INDIRECT_RESULT void * _Nonnull) SWIFT_NOEXCEPT SWIFT_CALL; // retNonTrivial()
9393// CHECK: SWIFT_EXTERN struct swift_interop_returnStub_UseCxxTy_uint32_t_0_4 $s8UseCxxTy10retTrivialSo0E0VyF(void) SWIFT_NOEXCEPT SWIFT_CALL; // retTrivial()
9494
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+
95125// CHECK: inline ns::NonTrivialTemplate<int> retNonTrivial() noexcept SWIFT_WARN_UNUSED_RESULT {
96126// CHECK-NEXT: alignas(alignof(ns::NonTrivialTemplate<int>)) char storage[sizeof(ns::NonTrivialTemplate<int>)];
97127// CHECK-NEXT: auto * _Nonnull storageObjectPtr = reinterpret_cast<ns::NonTrivialTemplate<int> *>(storage);
@@ -101,8 +131,37 @@ public func takeTrivialInout(_ x: inout Trivial) {
101131// CHECK-NEXT: return result;
102132// CHECK-NEXT: }
103133// 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 {
104163// 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 {
106165// CHECK-NEXT: alignas(alignof(ns::NonTrivialTemplate<ns::TrivialinNS>)) char storage[sizeof(ns::NonTrivialTemplate<ns::TrivialinNS>)];
107166// CHECK-NEXT: auto * _Nonnull storageObjectPtr = reinterpret_cast<ns::NonTrivialTemplate<ns::TrivialinNS> *>(storage);
108167// CHECK-NEXT: _impl::$s8UseCxxTy14retNonTrivial2So2nsO02__b18TemplateInstN2ns18e7TrivialH20INS_11TrivialinNSEEEVyF(storage);
@@ -140,33 +199,3 @@ public func takeTrivialInout(_ x: inout Trivial) {
140199// CHECK: inline void takeTrivialInout(Trivial& x) noexcept {
141200// CHECK-NEXT: return _impl::$s8UseCxxTy16takeTrivialInoutyySo0E0VzF(swift::_impl::getOpaquePointer(x));
142201// 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