From a2e70f503da0b5f2b9d75d3c34db1c1c289e9eb3 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 10 Oct 2014 17:14:52 +0100 Subject: [PATCH] re PR libstdc++/49561 ([C++0x] std::list::size complexity) PR libstdc++/49561 * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_CXX11_ABI): Define. * configure.ac: Use GLIBCXX_ENABLE_LIBSTDCXX_CXX11_ABI. * configure: Regenerate. * include/Makefile.am (stamp-cxx11-abi): New target. (c++config.h): Set _GLIBCXX_USE_CXX11_ABI macro. * include/Makefile.in: Regenerate. * include/bits/c++config: Add _GLIBCXX_USE_CXX11_ABI placeholder and define _GLIBCXX_DEFAULT_ABI_TAG. * include/bits/list.tcc (list::emplace(const_iterator, _Args&...)): Increment size. (list::emplace(const_iterator, const value_type&)): Likewise. (list::merge(list&), list::merge(list&, _StrictWeakOrdering)): Adjust list sizes. * include/bits/stl_list.h (_List_base, list): Add ABI tag macro. (_List_base::_M_size): New data member in cxx11 ABI mode. (_List_base::_S_distance(_List_node_base*, _List_node_base*)): New function. (_List_base::_M_get_size(), _List_base::_M_set_size(size_t), _List_base::_M_inc_size(size_t), _List_base::_M_dec_size(size_t), _List_base::_M_distance, _List_base::_M_node_count): New functions for accessing list size correctly for the ABI mode. (_List_base::_List_base(_List_base&&)): Copy size and reset source. (_List_base::_M_init()): Initialize size member. (list::size()): Use _List_base::_M_node_count. (list::swap(list&)): Swap sizes. (list::splice(iterator, list&)): Update sizes. (list::splice(iterator, list&, iterator)): Likewise. (list::insert(iterator, const value_type&)): Update size. (list::insert(iterator, _Args&&...)): Likewise. (list::_M_erase(iterator)): Likewise. * testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Adjust. * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc: Adjust. * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc: Adjust. * testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Adjust. * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust. # End of auto-generated commit message Fix date and whitespace in libstdc++-v3/ChangeLog From-SVN: r216097 --- libstdc++-v3/ChangeLog | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 1171d83eb37..5a18e30bd3e 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,4 +1,4 @@ -2014-10-07 Jonathan Wakely +2014-10-10 Jonathan Wakely PR libstdc++/49561 * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_CXX11_ABI): Define. @@ -58,14 +58,14 @@ PR libstdc++/60132 * include/std/type_traits (is_trivially_copyable, - is_trivially_constructible, is_trivially_default_constructible, - is_trivially_copy_constructible, is_trivially_move_constructible, - is_trivially_assignable, is_trivially_copy_assignable, - is_trivially_move_assignable): New. + is_trivially_constructible, is_trivially_default_constructible, + is_trivially_copy_constructible, is_trivially_move_constructible, + is_trivially_assignable, is_trivially_copy_assignable, + is_trivially_move_assignable): New. * testsuite/20_util/is_trivially_assignable/requirements/ - typedefs.cc: Likewise. + typedefs.cc: Likewise. * testsuite/20_util/is_trivially_assignable/requirements/ - explicit_instantiation.cc: Likewise. + explicit_instantiation.cc: Likewise. * testsuite/20_util/is_trivially_assignable/value.cc: Likewise. * testsuite/20_util/is_trivially_constructible/requirements/ typedefs.cc: Likewise. @@ -88,20 +88,20 @@ explicit_instantiation.cc: Likewise. * testsuite/20_util/is_trivially_copy_constructible/value.cc: Likewise. * testsuite/20_util/is_trivially_default_constructible/requirements/ - typedefs.cc: Likewise. + typedefs.cc: Likewise. * testsuite/20_util/is_trivially_default_constructible/requirements/ - explicit_instantiation.cc: Likewise. + explicit_instantiation.cc: Likewise. * testsuite/20_util/is_trivially_default_constructible/ value.cc: Likewise. * testsuite/20_util/is_trivially_move_assignable/requirements/ - typedefs.cc: Likewise. + typedefs.cc: Likewise. * testsuite/20_util/is_trivially_move_assignable/requirements/ - explicit_instantiation.cc: Likewise. + explicit_instantiation.cc: Likewise. * testsuite/20_util/is_trivially_move_assignable/value.cc: Likewise. * testsuite/20_util/is_trivially_move_constructible/requirements/ - typedefs.cc: Likewise. + typedefs.cc: Likewise. * testsuite/20_util/is_trivially_move_constructible/requirements/ - explicit_instantiation.cc: Likewise. + explicit_instantiation.cc: Likewise. * testsuite/20_util/is_trivially_move_constructible/value.cc: Likewise. * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error -- 2.30.2