aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Ferguson <nferguso@eso.org>2003-12-11 22:29:12 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2003-12-11 22:29:12 +0000
commitcbc679558590aaada586364f6fb99020f777ae35 (patch)
tree4f97d2273a1601123a8a49fc99408c59a7923ffc
parentfe16ab7e3e9a7ee336de14045e9c324d1c18080a (diff)
downloadgcc-cbc679558590aaada586364f6fb99020f777ae35.zip
gcc-cbc679558590aaada586364f6fb99020f777ae35.tar.gz
gcc-cbc679558590aaada586364f6fb99020f777ae35.tar.bz2
basic_string.tcc (reserve): Allow shrink-to-fit.
2003-12-11 Neil Ferguson <nferguso@eso.org> Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.tcc (reserve): Allow shrink-to-fit. * testsuite/21_strings/basic_string/capacity/1.cc: Tweak. * testsuite/21_strings/basic_string/capacity/char/1.cc: Ditto. * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Ditto. Co-Authored-By: Paolo Carlini <pcarlini@suse.de> From-SVN: r74551
-rw-r--r--libstdc++-v3/ChangeLog8
-rw-r--r--libstdc++-v3/include/bits/basic_string.tcc2
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/capacity/1.cc2
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc2
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/1.cc2
5 files changed, 12 insertions, 4 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 39fcdb9..45d7c7e 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,11 @@
+2003-12-11 Neil Ferguson <nferguso@eso.org>
+ Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/basic_string.tcc (reserve): Allow shrink-to-fit.
+ * testsuite/21_strings/basic_string/capacity/1.cc: Tweak.
+ * testsuite/21_strings/basic_string/capacity/char/1.cc: Ditto.
+ * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Ditto.
+
2003-12-10 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/6243
diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc
index 204757b..3a1e846 100644
--- a/libstdc++-v3/include/bits/basic_string.tcc
+++ b/libstdc++-v3/include/bits/basic_string.tcc
@@ -474,7 +474,7 @@ namespace std
void
basic_string<_CharT, _Traits, _Alloc>::reserve(size_type __res)
{
- if (__res > this->capacity() || _M_rep()->_M_is_shared())
+ if (__res != this->capacity() || _M_rep()->_M_is_shared())
{
if (__res > this->max_size())
__throw_length_error("basic_string::reserve");
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/1.cc
index c37e01f..2599d42 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/1.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/1.cc
@@ -140,7 +140,7 @@ void test01()
VERIFY( sz04 >= 100 );
str02.reserve();
sz03 = str02.capacity();
- VERIFY( sz03 > 0 );
+ VERIFY( sz03 >= 0 );
sz03 = str02.size() + 5;
str02.resize(sz03);
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc
index 649c541..9cdc4f0 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc
@@ -37,7 +37,7 @@ void test01()
VERIFY( sz02 >= 100 );
str01.reserve();
sz01 = str01.capacity();
- VERIFY( sz01 > 0 );
+ VERIFY( sz01 >= 0 );
sz01 = str01.size() + 5;
str01.resize(sz01);
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/1.cc
index f10a255..925d812 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/1.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/1.cc
@@ -37,7 +37,7 @@ void test01()
VERIFY( sz02 >= 100 );
str01.reserve();
sz01 = str01.capacity();
- VERIFY( sz01 > 0 );
+ VERIFY( sz01 >= 0 );
sz01 = str01.size() + 5;
str01.resize(sz01);