[PATCH] D21712: [libcxx] [test] Avoid narrowing conversions in quoted.pass.cpp.

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


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

Avoid narrowing conversions in quoted.pass.cpp.

According to the Standard, when char has a signed range and wchar_t has an unsigned range, brace-init has to reject the potentially narrowing conversion.

Fixes MSVC error C2397 "conversion from 'char' to 'wchar_t' requires a narrowing conversion".

http://reviews.llvm.org/D21712

Files:
  test/std/input.output/iostream.format/quoted.manip/quoted.pass.cpp

Index: test/std/input.output/iostream.format/quoted.manip/quoted.pass.cpp
===================================================================
--- test/std/input.output/iostream.format/quoted.manip/quoted.pass.cpp
+++ test/std/input.output/iostream.format/quoted.manip/quoted.pass.cpp
@@ -65,7 +65,7 @@
 template <class CharT, class Traits = std::char_traits<CharT>>
 void round_trip_d ( const CharT *p, char delim ) {
     std::basic_stringstream<CharT, Traits> ss;
-    CharT d{delim};
+    CharT d(delim);
 
     ss << std::quoted(p, d);
     std::basic_string<CharT, Traits> s;
@@ -76,7 +76,7 @@
 template <class CharT, class Traits = std::char_traits<CharT>>
 void round_trip_e ( const CharT *p, char escape ) {
     std::basic_stringstream<CharT, Traits> ss;
-    CharT e{escape};
+    CharT e(escape);
 
     ss << std::quoted(p, CharT('"'), e );
     std::basic_string<CharT, Traits> s;
@@ -88,8 +88,8 @@
 template <class CharT, class Traits = std::char_traits<CharT>>
 std::basic_string<CharT, Traits> quote ( const CharT *p, char delim='"', char escape='\\' ) {
     std::basic_stringstream<CharT, Traits> ss;
-    CharT d{delim};
-    CharT e{escape};
+    CharT d(delim);
+    CharT e(escape);
     ss << std::quoted(p, d, e);
     std::basic_string<CharT, Traits> s;
     ss >> s;    // no quote
@@ -101,8 +101,8 @@
     std::basic_stringstream<CharT, Traits> ss;
     ss << p;
 
-    CharT d{delim};
-    CharT e{escape};
+    CharT d(delim);
+    CharT e(escape);
     std::basic_string<CharT, Traits> s;
     ss >> std::quoted(s, d, e);
     return s;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D21712.61869.patch
Type: text/x-patch
Size: 1567 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160625/bdae764b/attachment.bin>


More information about the cfe-commits mailing list