diff --git a/libcxx/include/sstream b/libcxx/include/sstream index b9056d303c747..50c5519abf760 100644 --- a/libcxx/include/sstream +++ b/libcxx/include/sstream @@ -474,7 +474,13 @@ basic_stringbuf<_CharT, _Traits, _Allocator>::str(const string_type& __s) const_cast(__str_.data()) + __str_.size()); if (__mode_ & (ios_base::app | ios_base::ate)) { - this->__pbump(__sz); + while (__sz > INT_MAX) + { + this->pbump(INT_MAX); + __sz -= INT_MAX; + } + if (__sz > 0) + this->pbump(__sz); } } }