This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libstdc++/49561] [C++0x] std::list::size complexity


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49561

--- Comment #19 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Author: redi
Date: Fri Oct 10 15:33:57 2014
New Revision: 216094

URL: https://gcc.gnu.org/viewcvs?rev=216094&root=gcc&view=rev
Log:
    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.

Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/acinclude.m4
    trunk/libstdc++-v3/configure
    trunk/libstdc++-v3/configure.ac
    trunk/libstdc++-v3/include/Makefile.am
    trunk/libstdc++-v3/include/Makefile.in
    trunk/libstdc++-v3/include/bits/c++config
    trunk/libstdc++-v3/include/bits/list.tcc
    trunk/libstdc++-v3/include/bits/stl_list.h
   
trunk/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc
   
trunk/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc
   
trunk/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc
   
trunk/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc
    trunk/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]