PR libstdc++/81338 correctly manage string capacity
commit4169c1948b55043f7d25c38075a2e3823d6ef536
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 Jul 2017 17:58:56 +0000 (10 17:58 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 Jul 2017 17:58:56 +0000 (10 17:58 +0000)
tree24778fc62f28419369156b33052d4e8bc55f1add
parent927c0132251f1cd3452b96ebd75f1b06bc53e4ec
PR libstdc++/81338 correctly manage string capacity

PR libstdc++/81338
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
Declare basic_stringbuf to be a friend.
* include/bits/sstream.tcc (basic_stringbuf::overflow)
[_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
* include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
length to buffer length.
* testsuite/27_io/basic_stringstream/assign/81338.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250100 138bc75d-0d04-0410-961f-82ee72b054a4
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/basic_string.h
libstdc++-v3/include/bits/sstream.tcc
libstdc++-v3/include/std/sstream
libstdc++-v3/testsuite/27_io/basic_stringstream/assign/81338.cc [new file with mode: 0644]