re PR libstdc++/49561 ([C++0x] std::list::size complexity)
authorJonathan Wakely <redi@gcc.gnu.org>
Fri, 10 Oct 2014 16:14:52 +0000 (17:14 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 10 Oct 2014 16:14:52 +0000 (17:14 +0100)
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

index 1171d83eb37ddf2628dbd1f9b952ce4ba02bf6c4..5a18e30bd3e0733cd0d8e03c45b6f1deaa740b13 100644 (file)
@@ -1,4 +1,4 @@
-2014-10-07  Jonathan Wakely  <jwakely@redhat.com>
+2014-10-10  Jonathan Wakely  <jwakely@redhat.com>
 
        PR libstdc++/49561
        * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_CXX11_ABI): Define.
 
        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.
        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