aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelis van der Weegen <gcc-bugzilla@contacts.eelis.net>2010-05-18 23:58:50 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2010-05-18 23:58:50 +0000
commitddc962a4c1a93ae66618efb1175e9ddd409df143 (patch)
treedb90cf17741834ee9eb20dca499d3fd05964ebee
parent3fcb9d1bfa7a0857d550553fc64c5fd243cbba00 (diff)
downloadgcc-ddc962a4c1a93ae66618efb1175e9ddd409df143.zip
gcc-ddc962a4c1a93ae66618efb1175e9ddd409df143.tar.gz
gcc-ddc962a4c1a93ae66618efb1175e9ddd409df143.tar.bz2
re PR libstdc++/44190 (Debug vector resize does not update capacity)
2010-05-18 Eelis van der Weegen <gcc-bugzilla@contacts.eelis.net> PR libstdc++/44190 * include/debug/vector (vector<>::resize): Call _M_update_guaranteed_capacity. * testsuite/23_containers/vector/capacity/44190.cc: New. From-SVN: r159549
-rw-r--r--libstdc++-v3/ChangeLog7
-rw-r--r--libstdc++-v3/include/debug/vector1
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/capacity/44190.cc38
3 files changed, 46 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index b0782ce..b5ca734 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,10 @@
+2010-05-18 Eelis van der Weegen <gcc-bugzilla@contacts.eelis.net>
+
+ PR libstdc++/44190
+ * include/debug/vector (vector<>::resize): Call
+ _M_update_guaranteed_capacity.
+ * testsuite/23_containers/vector/capacity/44190.cc: New.
+
2010-05-17 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/functional (result_of): Move...
diff --git a/libstdc++-v3/include/debug/vector b/libstdc++-v3/include/debug/vector
index c360197..ea55b08 100644
--- a/libstdc++-v3/include/debug/vector
+++ b/libstdc++-v3/include/debug/vector
@@ -235,6 +235,7 @@ namespace __debug
_Base::resize(__sz, __c);
if (__realloc)
this->_M_invalidate_all();
+ _M_update_guaranteed_capacity();
}
#ifdef __GXX_EXPERIMENTAL_CXX0X__
diff --git a/libstdc++-v3/testsuite/23_containers/vector/capacity/44190.cc b/libstdc++-v3/testsuite/23_containers/vector/capacity/44190.cc
new file mode 100644
index 0000000..737108b
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/vector/capacity/44190.cc
@@ -0,0 +1,38 @@
+// Copyright (C) 2010 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// { dg-options "-D_GLIBCXX_DEBUG_PEDANTIC" }
+
+#include <vector>
+#include <testsuite_hooks.h>
+
+// libstdc++/44190
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ std::vector<int> v;
+ v.resize(10);
+ VERIFY( v.size() <= v.capacity() );
+}
+
+int main()
+{
+
+ test01();
+ return 0;
+}