STL_MSFT created this revision. STL_MSFT added reviewers: EricWF, mclow.lists. STL_MSFT added a subscriber: cfe-commits.
[libcxx] [test] Fix MSVC warning C4244 "conversion from 'X' to 'Y', possible loss of data", part 1/7. Given `std::basic_streambuf<CharT>::int_type __c`, `std::basic_string<CharT> str_`, and having checked `__c != std::basic_streambuf<CharT>::traits_type::eof()` (substituting typedefs for clarity), the line `str_.push_back(__c);` is safe according to humans, but truncates according to compilers. `str_.push_back(static_cast<CharT>(__c));` avoids that problem. https://reviews.llvm.org/D27538 Files: test/std/input.output/iostream.format/ext.manip/put_time.pass.cpp test/std/input.output/iostream.format/input.streams/istream.unformatted/get_streambuf.pass.cpp test/std/input.output/iostream.format/input.streams/istream.unformatted/get_streambuf_chart.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/bool.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/double.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/float.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/int.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/long.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/long_double.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/long_long.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/pointer.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/short.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_int.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_long.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_long_long.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_short.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/char.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/char_pointer.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/signed_char.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/signed_char_pointer.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/unsigned_char.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/unsigned_char_pointer.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/basic_ios.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/ios_base.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/ostream.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/streambuf.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.manip/endl.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.manip/ends.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.rvalue/CharT_pointer.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.unformatted/put.pass.cpp test/std/input.output/iostream.format/output.streams/ostream.unformatted/write.pass.cpp
Index: test/std/input.output/iostream.format/output.streams/ostream.unformatted/write.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.unformatted/write.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.unformatted/write.pass.cpp @@ -39,7 +39,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.unformatted/put.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.unformatted/put.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.unformatted/put.pass.cpp @@ -39,7 +39,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.rvalue/CharT_pointer.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.rvalue/CharT_pointer.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.rvalue/CharT_pointer.pass.cpp @@ -43,7 +43,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.manip/ends.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.manip/ends.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.manip/ends.pass.cpp @@ -40,7 +40,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.manip/endl.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.manip/endl.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.manip/endl.pass.cpp @@ -42,7 +42,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/streambuf.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/streambuf.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/streambuf.pass.cpp @@ -46,7 +46,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/ostream.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/ostream.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/ostream.pass.cpp @@ -40,7 +40,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/ios_base.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/ios_base.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/ios_base.pass.cpp @@ -39,7 +39,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/basic_ios.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/basic_ios.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/basic_ios.pass.cpp @@ -40,7 +40,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/unsigned_char_pointer.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/unsigned_char_pointer.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/unsigned_char_pointer.pass.cpp @@ -40,7 +40,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/unsigned_char.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/unsigned_char.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/unsigned_char.pass.cpp @@ -40,7 +40,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/signed_char_pointer.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/signed_char_pointer.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/signed_char_pointer.pass.cpp @@ -40,7 +40,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/signed_char.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/signed_char.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/signed_char.pass.cpp @@ -40,7 +40,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/char_pointer.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/char_pointer.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/char_pointer.pass.cpp @@ -40,7 +40,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/char.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/char.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/char.pass.cpp @@ -40,7 +40,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_short.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_short.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_short.pass.cpp @@ -39,7 +39,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_long_long.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_long_long.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_long_long.pass.cpp @@ -39,7 +39,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_long.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_long.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_long.pass.cpp @@ -39,7 +39,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_int.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_int.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_int.pass.cpp @@ -39,7 +39,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/short.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/short.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/short.pass.cpp @@ -39,7 +39,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/pointer.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/pointer.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/pointer.pass.cpp @@ -39,7 +39,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/long_long.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/long_long.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/long_long.pass.cpp @@ -39,7 +39,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/long_double.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/long_double.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/long_double.pass.cpp @@ -39,7 +39,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/long.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/long.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/long.pass.cpp @@ -39,7 +39,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/int.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/int.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/int.pass.cpp @@ -39,7 +39,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/float.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/float.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/float.pass.cpp @@ -39,7 +39,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/double.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/double.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/double.pass.cpp @@ -39,7 +39,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/bool.pass.cpp =================================================================== --- test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/bool.pass.cpp +++ test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/bool.pass.cpp @@ -39,7 +39,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/input.streams/istream.unformatted/get_streambuf_chart.pass.cpp =================================================================== --- test/std/input.output/iostream.format/input.streams/istream.unformatted/get_streambuf_chart.pass.cpp +++ test/std/input.output/iostream.format/input.streams/istream.unformatted/get_streambuf_chart.pass.cpp @@ -44,7 +44,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/input.streams/istream.unformatted/get_streambuf.pass.cpp =================================================================== --- test/std/input.output/iostream.format/input.streams/istream.unformatted/get_streambuf.pass.cpp +++ test/std/input.output/iostream.format/input.streams/istream.unformatted/get_streambuf.pass.cpp @@ -43,7 +43,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size())); Index: test/std/input.output/iostream.format/ext.manip/put_time.pass.cpp =================================================================== --- test/std/input.output/iostream.format/ext.manip/put_time.pass.cpp +++ test/std/input.output/iostream.format/ext.manip/put_time.pass.cpp @@ -40,7 +40,7 @@ if (__c != base::traits_type::eof()) { int n = static_cast<int>(str_.size()); - str_.push_back(__c); + str_.push_back(static_cast<CharT>(__c)); str_.resize(str_.capacity()); base::setp(const_cast<CharT*>(str_.data()), const_cast<CharT*>(str_.data() + str_.size()));
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits