PR libstdc++/49561
commit60f5701c7d058e2ad67ae9d0ab508c28dedc2308
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 10 Oct 2014 15:33:57 +0000 (10 15:33 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 10 Oct 2014 15:33:57 +0000 (10 15:33 +0000)
treed2daeaf622dee7a1143f7b1ac906eb9065fdf9d9
parentc0688d2b8428a13236e118327abaef82ffd0cded
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216094 138bc75d-0d04-0410-961f-82ee72b054a4
14 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/acinclude.m4
libstdc++-v3/configure
libstdc++-v3/configure.ac
libstdc++-v3/include/Makefile.am
libstdc++-v3/include/Makefile.in
libstdc++-v3/include/bits/c++config
libstdc++-v3/include/bits/list.tcc
libstdc++-v3/include/bits/stl_list.h
libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc
libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc
libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc
libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc
libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc