Skip to content

Commit a3a0a70

Browse files
committed
[interop][SwiftToCxx] NFC, add additional test for #67241
1 parent 2565925 commit a3a0a70

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
// RUN: %empty-directory(%t)
2+
// RUN: %target-swift-frontend %s -typecheck -module-name Core -clang-header-expose-decls=all-public -emit-clang-header-path %t/core.h
3+
// RUN: %FileCheck %s < %t/core.h
4+
5+
// RUN: %check-interop-cxx-header-in-clang(%t/core.h)
6+
7+
// REQUIRES: PTRSIZE=64
8+
// REQUIRES: OS=macosx
9+
10+
// CHECK: // type metadata address for Bool.
11+
// CHECK-NEXT: SWIFT_IMPORT_STDLIB_SYMBOL extern size_t $sSbN;
12+
// CHECK-NEXT: // type metadata address for Int8.
13+
// CHECK-NEXT: SWIFT_IMPORT_STDLIB_SYMBOL extern size_t $ss4Int8VN;
14+
// CHECK-NEXT: // type metadata address for UInt8.
15+
// CHECK-NEXT: SWIFT_IMPORT_STDLIB_SYMBOL extern size_t $ss5UInt8VN;
16+
// CHECK-NEXT: // type metadata address for Int16.
17+
// CHECK-NEXT: SWIFT_IMPORT_STDLIB_SYMBOL extern size_t $ss5Int16VN;
18+
// CHECK-NEXT: // type metadata address for UInt16.
19+
// CHECK-NEXT: SWIFT_IMPORT_STDLIB_SYMBOL extern size_t $ss6UInt16VN;
20+
// CHECK-NEXT: // type metadata address for Int32.
21+
// CHECK-NEXT: SWIFT_IMPORT_STDLIB_SYMBOL extern size_t $ss5Int32VN;
22+
// CHECK-NEXT: // type metadata address for UInt32.
23+
// CHECK-NEXT: SWIFT_IMPORT_STDLIB_SYMBOL extern size_t $ss6UInt32VN;
24+
// CHECK-NEXT: // type metadata address for Int64.
25+
// CHECK-NEXT: SWIFT_IMPORT_STDLIB_SYMBOL extern size_t $ss5Int64VN;
26+
// CHECK-NEXT: // type metadata address for UInt64.
27+
// CHECK-NEXT: SWIFT_IMPORT_STDLIB_SYMBOL extern size_t $ss6UInt64VN;
28+
// CHECK-NEXT: // type metadata address for Float.
29+
// CHECK-NEXT: SWIFT_IMPORT_STDLIB_SYMBOL extern size_t $sSfN;
30+
// CHECK-NEXT: // type metadata address for Double.
31+
// CHECK-NEXT: SWIFT_IMPORT_STDLIB_SYMBOL extern size_t $sSdN;
32+
// CHECK-NEXT: // type metadata address for OpaquePointer.
33+
// CHECK-NEXT: SWIFT_IMPORT_STDLIB_SYMBOL extern size_t $ss13OpaquePointerVN;
34+
// CHECK-NEXT: // type metadata address for Int.
35+
// CHECK-NEXT: SWIFT_IMPORT_STDLIB_SYMBOL extern size_t $sSiN;
36+
// CHECK-NEXT: // type metadata address for UInt.
37+
// CHECK-NEXT: SWIFT_IMPORT_STDLIB_SYMBOL extern size_t $sSuN;
38+
// CHECK-EMPTY:
39+
// CHECK-NEXT: #ifdef __cplusplus
40+
// CHECK-NEXT: }
41+
// CHECK-NEXT: #endif
42+
43+
// CHECK: static inline const constexpr bool isUsableInGenericContext<void *> = true;
44+
// CHECK-EMPTY:
45+
// CHECK-NEXT: template<>
46+
// CHECK-NEXT: struct TypeMetadataTrait<void *> {
47+
// CHECK-NEXT: static SWIFT_INLINE_THUNK void * _Nonnull getTypeMetadata() {
48+
// CHECK-NEXT: return &_impl::$ss13OpaquePointerVN;
49+
// CHECK-NEXT: }
50+
// CHECK-NEXT: };
51+
// CHECK-EMPTY:
52+
// CHECK-NEXT: template<>
53+
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<swift::Int> = true;
54+
// CHECK-EMPTY:
55+
// CHECK-NEXT: template<>
56+
// CHECK-NEXT: struct TypeMetadataTrait<swift::Int> {
57+
// CHECK-NEXT: static SWIFT_INLINE_THUNK void * _Nonnull getTypeMetadata() {
58+
// CHECK-NEXT: return &_impl::$sSiN;
59+
// CHECK-NEXT: }
60+
// CHECK-NEXT: };
61+
// CHECK-EMPTY:
62+
// CHECK-NEXT: template<>
63+
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<swift::UInt> = true;
64+
// CHECK-EMPTY:
65+
// CHECK-NEXT: template<>
66+
// CHECK-NEXT: struct TypeMetadataTrait<swift::UInt> {
67+
// CHECK-NEXT: static SWIFT_INLINE_THUNK void * _Nonnull getTypeMetadata() {
68+
// CHECK-NEXT: return &_impl::$sSuN;
69+
// CHECK-NEXT: }
70+
// CHECK-NEXT: };
71+
// CHECK-EMPTY:
72+
// CHECK-NEXT: #pragma clang diagnostic pop
73+
// CHECK-EMPTY:
74+
// CHECK-NEXT: } // namespace swift
75+

0 commit comments

Comments
 (0)