[libcxx] r294917 - test: use char32_t rather than wchar_t

Saleem Abdulrasool via cfe-commits cfe-commits at lists.llvm.org
Sun Feb 12 13:42:35 PST 2017


Author: compnerd
Date: Sun Feb 12 15:42:35 2017
New Revision: 294917

URL: http://llvm.org/viewvc/llvm-project?rev=294917&view=rev
Log:
test: use char32_t rather than wchar_t

wchar_t is not as portable as char32_t.  On Windows, wchar_t is
16-bytes and on Linux 32-bits.  The conversion to utf8 causes the
characters to exceed the limits on char16_t, resulting in tautological
comparisons.

Modified:
    libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf16_in.pass.cpp
    libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf8_in.pass.cpp

Modified: libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf16_in.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf16_in.pass.cpp?rev=294917&r1=294916&r2=294917&view=diff
==============================================================================
--- libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf16_in.pass.cpp (original)
+++ libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf16_in.pass.cpp Sun Feb 12 15:42:35 2017
@@ -28,11 +28,11 @@
 int main()
 {
     {
-        typedef std::codecvt_utf16<wchar_t> C;
+        typedef std::codecvt_utf16<char32_t> C;
         C c;
-        wchar_t w = 0;
+        char32_t w = 0;
         char n[4] = {char(0xD8), char(0xC0), char(0xDC), char(0x03)};
-        wchar_t* wp = nullptr;
+        char32_t* wp = nullptr;
         std::mbstate_t m;
         const char* np = nullptr;
         std::codecvt_base::result r = c.in(m, n, n+4, np, &w, &w+1, wp);
@@ -67,11 +67,11 @@ int main()
         assert(w == 0x56);
     }
     {
-        typedef std::codecvt_utf16<wchar_t, 0x1000> C;
+        typedef std::codecvt_utf16<char32_t, 0x1000> C;
         C c;
-        wchar_t w = 0;
+        char32_t w = 0;
         char n[4] = {char(0xD8), char(0xC0), char(0xDC), char(0x03)};
-        wchar_t* wp = nullptr;
+        char32_t* wp = nullptr;
         std::mbstate_t m;
         const char* np = nullptr;
         std::codecvt_base::result r = c.in(m, n, n+4, np, &w, &w+1, wp);
@@ -106,11 +106,11 @@ int main()
         assert(w == 0x56);
     }
     {
-        typedef std::codecvt_utf16<wchar_t, 0x10ffff, std::consume_header> C;
+        typedef std::codecvt_utf16<char32_t, 0x10ffff, std::consume_header> C;
         C c;
-        wchar_t w = 0;
+        char32_t w = 0;
         char n[6] = {char(0xFE), char(0xFF), char(0xD8), char(0xC0), char(0xDC), char(0x03)};
-        wchar_t* wp = nullptr;
+        char32_t* wp = nullptr;
         std::mbstate_t m;
         const char* np = nullptr;
         std::codecvt_base::result r = c.in(m, n, n+6, np, &w, &w+1, wp);
@@ -145,11 +145,11 @@ int main()
         assert(w == 0x56);
     }
     {
-        typedef std::codecvt_utf16<wchar_t, 0x10ffff, std::little_endian> C;
+        typedef std::codecvt_utf16<char32_t, 0x10ffff, std::little_endian> C;
         C c;
-        wchar_t w = 0;
+        char32_t w = 0;
         char n[4] = {char(0xC0), char(0xD8), char(0x03), char(0xDC)};
-        wchar_t* wp = nullptr;
+        char32_t* wp = nullptr;
         std::mbstate_t m;
         const char* np = nullptr;
         std::codecvt_base::result r = c.in(m, n, n+4, np, &w, &w+1, wp);
@@ -184,11 +184,11 @@ int main()
         assert(w == 0x56);
     }
     {
-        typedef std::codecvt_utf16<wchar_t, 0x1000, std::little_endian> C;
+        typedef std::codecvt_utf16<char32_t, 0x1000, std::little_endian> C;
         C c;
-        wchar_t w = 0;
+        char32_t w = 0;
         char n[4] = {char(0xC0), char(0xD8), char(0x03), char(0xDC)};
-        wchar_t* wp = nullptr;
+        char32_t* wp = nullptr;
         std::mbstate_t m;
         const char* np = nullptr;
         std::codecvt_base::result r = c.in(m, n, n+4, np, &w, &w+1, wp);
@@ -223,13 +223,13 @@ int main()
         assert(w == 0x56);
     }
     {
-        typedef std::codecvt_utf16<wchar_t, 0x10ffff, std::codecvt_mode(
-                                                         std::consume_header |
-                                                         std::little_endian)> C;
+        typedef std::codecvt_utf16<char32_t, 0x10ffff,
+                                   std::codecvt_mode(std::consume_header | std::little_endian)> C;
+
         C c;
-        wchar_t w = 0;
+        char32_t w = 0;
         char n[6] = {char(0xFF), char(0xFE), char(0xC0), char(0xD8), char(0x03), char(0xDC)};
-        wchar_t* wp = nullptr;
+        char32_t* wp = nullptr;
         std::mbstate_t m;
         const char* np = nullptr;
         std::codecvt_base::result r = c.in(m, n, n+6, np, &w, &w+1, wp);

Modified: libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf8_in.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf8_in.pass.cpp?rev=294917&r1=294916&r2=294917&view=diff
==============================================================================
--- libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf8_in.pass.cpp (original)
+++ libcxx/trunk/test/std/localization/locale.stdcvt/codecvt_utf8_in.pass.cpp Sun Feb 12 15:42:35 2017
@@ -28,11 +28,11 @@
 int main()
 {
     {
-        typedef std::codecvt_utf8<wchar_t> C;
+        typedef std::codecvt_utf8<char32_t> C;
         C c;
-        wchar_t w = 0;
+        char32_t w = 0;
         char n[4] = {char(0xF1), char(0x80), char(0x80), char(0x83)};
-        wchar_t* wp = nullptr;
+        char32_t* wp = nullptr;
         std::mbstate_t m;
         const char* np = nullptr;
         std::codecvt_base::result r = c.in(m, n, n+4, np, &w, &w+1, wp);
@@ -67,11 +67,11 @@ int main()
         assert(w == 0x56);
     }
     {
-        typedef std::codecvt_utf8<wchar_t, 0x1000> C;
+        typedef std::codecvt_utf8<char32_t, 0x1000> C;
         C c;
-        wchar_t w = 0;
+        char32_t w = 0;
         char n[4] = {char(0xF1), char(0x80), char(0x80), char(0x83)};
-        wchar_t* wp = nullptr;
+        char32_t* wp = nullptr;
         std::mbstate_t m;
         const char* np = nullptr;
         std::codecvt_base::result r = c.in(m, n, n+4, np, &w, &w+1, wp);
@@ -106,11 +106,11 @@ int main()
         assert(w == 0x56);
     }
     {
-        typedef std::codecvt_utf8<wchar_t, 0xFFFFFFFF, std::consume_header> C;
+        typedef std::codecvt_utf8<char32_t, 0xFFFFFFFF, std::consume_header> C;
         C c;
-        wchar_t w = 0;
+        char32_t w = 0;
         char n[7] = {char(0xEF), char(0xBB), char(0xBF), char(0xF1), char(0x80), char(0x80), char(0x83)};
-        wchar_t* wp = nullptr;
+        char32_t* wp = nullptr;
         std::mbstate_t m;
         const char* np = nullptr;
         std::codecvt_base::result r = c.in(m, n, n+7, np, &w, &w+1, wp);




More information about the cfe-commits mailing list