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); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits