Skip to content

Commit 20c7334

Browse files
committed
PrintAsClang: Print Unicode.Scalar as char32_t and Float16 as _Float16
1 parent ed61bcf commit 20c7334

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

lib/PrintAsClang/PrimitiveTypeMapping.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,14 @@ void PrimitiveTypeMapping::initialize(ASTContext &ctx) {
8383
MAP(CBool, "bool", false);
8484

8585
MAP(CChar, "char", false);
86-
MAP(CWideChar, "wchar_t", false);
8786
MAP(CChar8, "char8_t", false);
8887
MAP(CChar16, "char16_t", false);
8988
MAP(CChar32, "char32_t", false);
9089

90+
// Set after CChar32 to prefer char32_t for the shared underlying
91+
// Unicode.Scalar. char32_t is stable across platforms.
92+
MAP(CWideChar, "wchar_t", false);
93+
9194
MAP(CSignedChar, "signed char", false);
9295
MAP(CShort, "short", false);
9396
MAP(CInt, "int", false);
@@ -117,6 +120,8 @@ void PrimitiveTypeMapping::initialize(ASTContext &ctx) {
117120
MAP(Float32, "float", false);
118121
MAP(Float64, "double", false);
119122

123+
MAP(Float16, "_Float16", false);
124+
120125
MAP_CXX(Int, "NSInteger", "ptrdiff_t", "swift::Int", false);
121126
MAP_CXX(UInt, "NSUInteger", "size_t", "swift::UInt", false);
122127
MAP_C(Bool, "BOOL", "bool", false);

test/PrintAsObjC/unicode-scalar-reference.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,12 @@
1111

1212
@_cdecl("referencesScalar")
1313
func referencesScalar() -> Unicode.Scalar { fatalError() }
14-
// CHECK: SWIFT_EXTERN wchar_t referencesScalar(void)
14+
// CHECK: SWIFT_EXTERN char32_t referencesScalar(void)
1515

1616
@_cdecl("referencesRelated")
1717
func x_referencesRelated(a: CChar32, b: CWideChar) { }
1818
// CHECK: SWIFT_EXTERN void referencesRelated(char32_t a, wchar_t b)
19+
20+
@_cdecl("referencesFloat16")
21+
func y_referencesFloat16(a: Float16, b: CFloat16) { }
22+
// CHECK: SWIFT_EXTERN void referencesFloat16(_Float16 a, _Float16 b)

0 commit comments

Comments
 (0)