Skip to content

Commit c3d3c37

Browse files
committed
Adapt tests to have the Swift mangled name as a field in interop types
1 parent 8790a9e commit c3d3c37

7 files changed

+89
-0
lines changed

test/Interop/SwiftToCxx/class/swift-class-in-cxx.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,14 @@ public final class ClassWithIntField {
6363
// CHECK-NEXT: inline ClassWithIntField(void * _Nonnull ptr) noexcept : RefCountedClass(ptr) {}
6464
// CHECK-NEXT: private:
6565
// CHECK-NEXT: friend class _impl::_impl_ClassWithIntField;
66+
// CHECK-NEXT: #pragma clang diagnostic push
67+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
68+
// CHECK-NEXT: #pragma clang diagnostic push
69+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wreserved-identifier"
70+
// CHECK-NEXT: typedef char $s5Class0A12WithIntFieldCD;
71+
// CHECK-NEXT: static inline constexpr $s5Class0A12WithIntFieldCD __swift_mangled_name = 0;
72+
// CHECK-NEXT: #pragma clang diagnostic pop
73+
// CHECK-NEXT: #pragma clang diagnostic pop
6674
// CHECK-NEXT: };
6775
// CHECK-EMPTY:
6876
// CHECK-NEXT:namespace _impl {

test/Interop/SwiftToCxx/class/swift-class-inheritance-in-cxx.swift

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,14 @@ public func useDerivedClass(_ x: DerivedClass) {
6565
// CHECK-NEXT: inline DerivedClass(void * _Nonnull ptr) noexcept : BaseClass(ptr) {}
6666
// CHECK-NEXT: private:
6767
// CHECK-NEXT: friend class _impl::_impl_DerivedClass;
68+
// CHECK-NEXT: #pragma clang diagnostic push
69+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
70+
// CHECK-NEXT: #pragma clang diagnostic push
71+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wreserved-identifier"
72+
// CHECK-NEXT: typedef char $s5Class07DerivedA0CD;
73+
// CHECK-NEXT: static inline constexpr $s5Class07DerivedA0CD __swift_mangled_name = 0;
74+
// CHECK-NEXT: #pragma clang diagnostic pop
75+
// CHECK-NEXT: #pragma clang diagnostic pop
6876
// CHECK-NEXT: };
6977

7078
// CHECK: class SWIFT_SYMBOL("s:5Class07DerivedbA0C") DerivedDerivedClass final : public DerivedClass {
@@ -75,6 +83,14 @@ public func useDerivedClass(_ x: DerivedClass) {
7583
// CHECK-NEXT: inline DerivedDerivedClass(void * _Nonnull ptr) noexcept : DerivedClass(ptr) {}
7684
// CHECK-NEXT: private:
7785
// CHECK-NEXT: friend class _impl::_impl_DerivedDerivedClass;
86+
// CHECK-NEXT: #pragma clang diagnostic push
87+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
88+
// CHECK-NEXT: #pragma clang diagnostic push
89+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wreserved-identifier"
90+
// CHECK-NEXT: typedef char $s5Class07DerivedbA0CD;
91+
// CHECK-NEXT: static inline constexpr $s5Class07DerivedbA0CD __swift_mangled_name = 0;
92+
// CHECK-NEXT: #pragma clang diagnostic pop
93+
// CHECK-NEXT: #pragma clang diagnostic pop
7894
// CHECK-NEXT: };
7995

8096
// Verify base class names are adjusted to avoid conflict with C++ keywords.

test/Interop/SwiftToCxx/generics/generic-struct-in-cxx.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,15 @@ public func inoutConcretePair(_ x: UInt16, _ y: inout GenericPair<UInt16, UInt16
231231

232232
// CHECK: swift::_impl::OpaqueStorage _storage;
233233
// CHECK-NEXT: friend class _impl::_impl_GenericPair<T_0_0, T_0_1>;
234+
// CHECK-NEXT: #pragma clang diagnostic push
235+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
236+
// CHECK-NEXT: #pragma clang diagnostic push
237+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wreserved-identifier"
238+
// CHECK-NEXT: typedef char $s8Generics11GenericPairVyxq_GD;
239+
// CHECK-NEXT: static inline constexpr $s8Generics11GenericPairVyxq_GD __swift_mangled_name = 0;
240+
// CHECK-NEXT: #pragma clang diagnostic pop
241+
// CHECK-NEXT: #pragma clang diagnostic pop
242+
234243
// CHECK-NEXT: }
235244

236245
// CHECK: template<class T_0_0, class T_0_1>

test/Interop/SwiftToCxx/generics/generic-struct-known-layout-direct-in-cxx.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,14 @@
8585

8686
// CHECK: swift::_impl::OpaqueStorage _storage;
8787
// CHECK-NEXT: friend class _impl::_impl_GenericPair<T_0_0, T_0_1>;
88+
// CHECK-NEXT: #pragma clang diagnostic push
89+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
90+
// CHECK-NEXT: #pragma clang diagnostic push
91+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wreserved-identifier"
92+
// CHECK-NEXT: typedef char $s8Generics11GenericPairVyxq_GD;
93+
// CHECK-NEXT: static inline constexpr $s8Generics11GenericPairVyxq_GD __swift_mangled_name = 0;
94+
// CHECK-NEXT: #pragma clang diagnostic pop
95+
// CHECK-NEXT: #pragma clang diagnostic pop
8896
// CHECK-NEXT: }
8997

9098
// CHECK: inline void inoutConcretePair(uint16_t x, GenericPair<uint16_t, uint16_t>& y) noexcept SWIFT_SYMBOL("s:8Generics17inoutConcretePairyys6UInt16V_AA07GenericD0VyA2DGztF") {

test/Interop/SwiftToCxx/structs/resilient-struct-in-cxx.swift

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,14 @@ public struct FirstSmallStruct {
6262
// CHECK-EMPTY:
6363
// CHECK-NEXT: swift::_impl::OpaqueStorage _storage;
6464
// CHECK-NEXT: friend class _impl::_impl_FirstSmallStruct;
65+
// CHECK-NEXT: #pragma clang diagnostic push
66+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
67+
// CHECK-NEXT: #pragma clang diagnostic push
68+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wreserved-identifier"
69+
// CHECK-NEXT: typedef char $s7Structs16FirstSmallStructVD;
70+
// CHECK-NEXT: static inline constexpr $s7Structs16FirstSmallStructVD __swift_mangled_name = 0;
71+
// CHECK-NEXT: #pragma clang diagnostic pop
72+
// CHECK-NEXT: #pragma clang diagnostic pop
6573
// CHECK-NEXT:};
6674

6775
// CHECK: class _impl_FirstSmallStruct {
@@ -100,6 +108,14 @@ public struct FirstSmallStruct {
100108
// CHECK: class SWIFT_SYMBOL("s:7Structs12FrozenStructV") FrozenStruct final {
101109
// CHECK: alignas(4) char _storage[4];
102110
// CHECK-NEXT: friend class _impl::_impl_FrozenStruct;
111+
// CHECK-NEXT: #pragma clang diagnostic push
112+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
113+
// CHECK-NEXT: #pragma clang diagnostic push
114+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wreserved-identifier"
115+
// CHECK-NEXT: typedef char $s7Structs12FrozenStructVD;
116+
// CHECK-NEXT: static inline constexpr $s7Structs12FrozenStructVD __swift_mangled_name = 0;
117+
// CHECK-NEXT: #pragma clang diagnostic pop
118+
// CHECK-NEXT: #pragma clang diagnostic pop
103119
// CHECK-NEXT: };
104120

105121
public struct LargeStruct {
@@ -145,6 +161,14 @@ public struct LargeStruct {
145161
// CHECK-EMPTY:
146162
// CHECK-NEXT: swift::_impl::OpaqueStorage _storage;
147163
// CHECK-NEXT: friend class _impl::_impl_LargeStruct;
164+
// CHECK-NEXT: #pragma clang diagnostic push
165+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
166+
// CHECK-NEXT: #pragma clang diagnostic push
167+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wreserved-identifier"
168+
// CHECK-NEXT: typedef char $s7Structs11LargeStructVD;
169+
// CHECK-NEXT: static inline constexpr $s7Structs11LargeStructVD __swift_mangled_name = 0;
170+
// CHECK-NEXT: #pragma clang diagnostic pop
171+
// CHECK-NEXT: #pragma clang diagnostic pop
148172
// CHECK-NEXT: };
149173

150174
private class RefCountedClass {

test/Interop/SwiftToCxx/structs/small-structs-pass-return-direct-in-cxx.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,14 @@ public func printStructOneI64_resilient(_ x : StructOneI64_resilient) {
5252
// RESILIENT: class SWIFT_SYMBOL({{.*}}) StructOneI64_resilient final {
5353
// RESILIENT: swift::_impl::OpaqueStorage _storage;
5454
// RESILIENT-NEXT: friend class _impl::_impl_StructOneI64_resilient;
55+
// RESILIENT-NEXT: #pragma clang diagnostic push
56+
// RESILIENT-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
57+
// RESILIENT-NEXT: #pragma clang diagnostic push
58+
// RESILIENT-NEXT: #pragma clang diagnostic ignored "-Wreserved-identifier"
59+
// RESILIENT-NEXT: typedef char $s7Structs22StructOneI64_resilientVD;
60+
// RESILIENT-NEXT: static inline constexpr $s7Structs22StructOneI64_resilientVD __swift_mangled_name = 0;
61+
// RESILIENT-NEXT: #pragma clang diagnostic pop
62+
// RESILIENT-NEXT: #pragma clang diagnostic pop
5563
// RESILIENT-NEXT: };
5664
#endif
5765

test/Interop/SwiftToCxx/structs/swift-struct-in-cxx.swift

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,14 @@
4747
// CHECK-EMPTY:
4848
// CHECK-NEXT: alignas(8) char _storage[8];
4949
// CHECK-NEXT: friend class _impl::_impl_StructWithIntField;
50+
// CHECK-NEXT: #pragma clang diagnostic push
51+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
52+
// CHECK-NEXT: #pragma clang diagnostic push
53+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wreserved-identifier"
54+
// CHECK-NEXT: typedef char $s7Structs18StructWithIntFieldVD;
55+
// CHECK-NEXT: static inline constexpr $s7Structs18StructWithIntFieldVD __swift_mangled_name = 0;
56+
// CHECK-NEXT: #pragma clang diagnostic pop
57+
// CHECK-NEXT: #pragma clang diagnostic pop
5058
// CHECK-NEXT: };
5159

5260
// CHECK: namespace _impl {
@@ -105,6 +113,14 @@ public struct StructWithIntField {
105113
// CHECK: class SWIFT_SYMBOL({{.*}}) register_ final {
106114
// CHECK: alignas(8) char _storage[16];
107115
// CHECK-NEXT: friend class
116+
// CHECK-NEXT: #pragma clang diagnostic push
117+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
118+
// CHECK-NEXT: #pragma clang diagnostic push
119+
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wreserved-identifier"
120+
// CHECK-NEXT: typedef char $s7Structs8registerVD;
121+
// CHECK-NEXT: static inline constexpr $s7Structs8registerVD __swift_mangled_name = 0;
122+
// CHECK-NEXT: #pragma clang diagnostic pop
123+
// CHECK-NEXT: #pragma clang diagnostic pop
108124
// CHECK-NEXT: };
109125
public struct register {
110126
let field1: Int64

0 commit comments

Comments
 (0)