[PATCH] D21713: [libcxx] [test] Use L"cat" L"dog" when concatenating string literals.

Stephan T. Lavavej via cfe-commits cfe-commits at lists.llvm.org
Fri Jun 24 18:29:51 PDT 2016


STL_MSFT created this revision.
STL_MSFT added reviewers: EricWF, mclow.lists.
STL_MSFT added a subscriber: cfe-commits.

Use L"cat" L"dog" when concatenating string literals.

MSVC dislikes seeing L"23" "\x65F6". It's actually unclear to me what the Standard says here - I suspect that MSVC is correct. This depends on the phases of translation, and step 5 interprets string literals before step 6 concatenates them. I don't believe that the wideness of the first string literal is allowed to affect the second string literal before step 6 happens.

In any event, we can sidestep this arcane question by marking all of the string literals as wide.

Fixes MSVC "error C2022: '26102': too big for character".

http://reviews.llvm.org/D21713

Files:
  test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp

Index: test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp
===================================================================
--- test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp
+++ test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp
@@ -75,7 +75,7 @@
     }
     {
         const my_facet f(LOCALE_fr_FR_UTF_8, 1);
-        const wchar_t in[] = L"Sam 31 d""\xE9""c 23:55:59 2061";
+        const wchar_t in[] = L"Sam 31 d" L"\xE9" L"c 23:55:59 2061";
         err = std::ios_base::goodbit;
         t = std::tm();
         I i = f.get(I(in), I(in+sizeof(in)/sizeof(in[0])-1), ios, err, &t, 'c');
@@ -105,11 +105,11 @@
     {
         const my_facet f("ru_RU", 1);
         const wchar_t in[] = L"\x441\x443\x431\x431\x43E\x442\x430"
-                          ", 31 "
-                          "\x434\x435\x43A\x430\x431\x440\x44F"
-                          " 2061 "
-                          "\x433"
-                          ". 23:55:59";
+                          L", 31 "
+                          L"\x434\x435\x43A\x430\x431\x440\x44F"
+                          L" 2061 "
+                          L"\x433"
+                          L". 23:55:59";
         err = std::ios_base::goodbit;
         t = std::tm();
         I i = f.get(I(in), I(in+sizeof(in)/sizeof(in[0])-1), ios, err, &t, 'c');
@@ -140,7 +140,7 @@
     {
         const my_facet f("zh_CN", 1);
         const wchar_t in[] = L"\x516D"
-                          " 12/31 23:55:59 2061";
+                          L" 12/31 23:55:59 2061";
         err = std::ios_base::goodbit;
         t = std::tm();
         I i = f.get(I(in), I(in+sizeof(in)/sizeof(in[0])-1), ios, err, &t, 'c');
@@ -157,7 +157,7 @@
 #endif
     {
         const my_facet f(LOCALE_zh_CN_UTF_8, 1);
-        const wchar_t in[] = L"23""\x65F6""55""\x5206""59""\x79D2";
+        const wchar_t in[] = L"23" L"\x65F6" L"55" L"\x5206" L"59" L"\x79D2";
         err = std::ios_base::goodbit;
         t = std::tm();
         I i = f.get(I(in), I(in+sizeof(in)/sizeof(in[0])-1), ios, err, &t, 'X');


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D21713.61871.patch
Type: text/x-patch
Size: 2186 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160625/3c839c1f/attachment.bin>


More information about the cfe-commits mailing list