Jakub Jelinek
ac1384b7c5
re PR libstdc++/51845 (23_containers/unordered_multimap/erase/24061-multimap.cc segfault)
...
PR libstdc++/51845
* include/bits/hashtable.h
(_Hashtable<>::erase(const_iterator, const_iterator)): Also update
_M_buckets[__n_bkt] if __is_bucket_begin.
* testsuite/23_containers/unordered_multimap/erase/51845-multimap.cc:
New test.
From-SVN: r183300
2012-01-19 11:46:31 +01:00
François Dumont
66b432fd29
re PR libstdc++/51866 ([c++0x][4.7 Regression] unordered_multiset compares moved-out values)
...
2012-01-18 François Dumont <fdumont@gcc.gnu.org>
Roman Kononov <roman@binarylife.net>
PR libstdc++/51866
* include/bits/hashtable.h (_Hashtable<>::_M_insert(_Arg, false_type)):
Do not keep a reference to a potentially moved instance.
* testsuite/23_containers/unordered_multiset/insert/51866.cc: New.
* testsuite/23_containers/unordered_multimap/insert/51866.cc: New.
Co-Authored-By: Roman Kononov <roman@binarylife.net>
From-SVN: r183285
2012-01-18 20:17:57 +00:00
François Dumont
f7d6ad0a5c
hashtable_policy.h (_Hashtable_base<>::_M_eq()): protected rather than private, use it...
...
2012-01-05 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable_policy.h (_Hashtable_base<>::_M_eq()):
protected rather than private, use it...
* include/bits/hashtable.h (_Hashtable<>::key_eq()): ... here.
* testsuite/23_containers/unordered_set/observers.cc: New.
* testsuite/23_containers/unordered_multiset/observers.cc: New.
* testsuite/23_containers/unordered_map/observers.cc: New.
* testsuite/23_containers/unordered_multimap/observers.cc: New.
From-SVN: r182928
2012-01-05 20:59:17 +00:00
Paolo Carlini
2b59b5284f
re PR c++/51738 (C++11 initializer list does not work correctly with operator[])
...
/gcc/cp
2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51738
* parser.c (cp_parser_postfix_open_square_expression): Handle
postfix-expression [ braced-init-list ].
/gcc/testsuite
2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51738
* g++.dg/cpp0x/initlist-postfix-open-square.C: New.
/libstdc++-v3
2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51738
* testsuite/23_containers/map/element_access/39901.cc: New.
From-SVN: r182856
2012-01-03 20:25:16 +00:00
François Dumont
a188284c61
re PR libstdc++/51608 ([C++11] Unordered containers end(size_type) isn't constant time)
...
2011-12-29 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/51608
* include/bits/hashtable_policy.h (_Equal_helper<>): New, change the
way the _Equal functor is used depending on whether hash code is
cached or not.
(_Ebo_helper<>): New helper type to introduce EBO when possible.
(_Hash_code_base): Use _Ebo_helper to limit memory footprint. Move
_Equal functor management...
(_Hashtable_base): ...here, new, use _Equal_helper.
(_Local_iterator_base<>, _Locale_iterator<>, _Locale_const_iterator<>):
New, use _Hash_code_base, implementation of...
* include/bits/hashtable.h (_Hashtable<>::local_iterator,
_Hashtable<>::const_local_iterator): ...those. Add static assertions
checking that some functors are empty depending on whether hash code
is cache or not.
(_Hashtable<>::_M_bucket_index): New overloads using current bucket
count, use through out the _Hastable<> implementation.
* include/bits/unordered_set.h (__unordered_set<>,
__unordered_multiset<>): Cache hash code iff hash functor is not
empty and not final.
* include/bits/unordered_map.h (__unordered_map<>,
__unordered_multimap<>): Likewise.
* include/debug/unordered_map
(unordered_map<>::_S_to_local, unordered_multimap<>::_S_to_local):
Adapt to match new local iterator implementation.
* include/debug/unordered_set (unordered_set<>::_S_to_local,
unordered_multiset<>::_S_to_local): Likewise.
* include/profile/unordered_map (unordered_map<>::_M_profile_destruct,
unordered_multimap<>::_M_profile_destruct): Enhance thanks to usage of
local iterators.
* include/profile/unordered_set (unordered_set<>::_M_profile_destruct,
unordered_multiset<>::_M_profile_destruct): Likewise.
* testsuite_files/23_containers/unordered_set/instantiation_neg.cc:
Fix error line.
* testsuite_files/23_containers/unordered_set/final_hash.cc: New.
* testsuite_files/23_containers/unordered_multiset/final_hash.cc: New.
* testsuite_files/23_containers/unordered_map/final_hash.cc: New.
* testsuite_files/23_containers/unordered_multimap/final_hash.cc: New.
From-SVN: r182727
2011-12-29 17:58:51 +00:00
Paolo Carlini
92637e93ed
re PR libstdc++/51558 (Declaration of unspecialized std::hash<_Tp>::operator()(_Tp) turns compile-time errors into link-time errors)
...
2011-12-15 Paolo Carlini <paolo.carlini@oracle.com>
Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/51558
* include/bits/functional_hash.h (struct hash): Add static_assert.
* src/compatibility-c++0x.cc: Adjust compatibility definitions.
* testsuite/23_containers/unordered_map/erase/51142.cc: Adjust.
* testsuite/23_containers/unordered_set/erase/51142.cc: Likewise.
* testsuite/23_containers/unordered_multimap/erase/51142.cc: Likewise.
* testsuite/23_containers/unordered_multiset/erase/51142.cc: Likewise.
Co-Authored-By: Jonathan Wakely <jwakely.gcc@gmail.com>
From-SVN: r182392
2011-12-15 22:15:21 +00:00
Benjamin Kosnik
7897a1c029
user.cfg.in: Add macros, directories.
...
2011-12-10 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in: Add macros, directories.
* include/bits/locale_classes.h: Remove doxygen warnings, fix markup.
* include/bits/locale_classes.tcc: Same.
* include/bits/shared_ptr.h: Same.
* include/bits/stl_algo.h: Same.
* include/bits/stl_list.h: Same.
* include/bits/stl_numeric.h: Same.
* include/debug/safe_base.h: Same.
* include/parallel/equally_split.h: Same.
* include/std/bitset: Same.
* include/std/complex: Same.
* include/std/fstream: Same.
* include/std/istream: Same.
* include/std/ostream: Same.
* include/tr2/dynamic_bitset: Same.
* scripts/run_doxygen: Remove munging for names that no longer exist.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Adjust line numbers.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.
From-SVN: r182189
2011-12-10 15:33:06 +00:00
François Dumont
9b81593bbc
hashtable.h (_Hashtable<>::emplace, [...]): Add.
...
2011-12-09 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable.h (_Hashtable<>::emplace,
_Hashtable<>::emplace_hint): Add.
* include/debug/unordered_set (unordered_set<>::emplace,
unordered_set<>::emplace_hint, unordered_multiset<>::emplace,
unordered_multiset<>::emplace_hint): Add.
* include/profile/unordered_set: Likewise.
* include/debug/unordered_map (unordered_map<>::emplace,
unordered_map<>::emplace_hint, unordered_multimap<>::emplace,
unordered_multimap<>::emplace_hint): Add.
* include/profile/unordered_map: Likewise.
* testsuite/23_containers/unordered_map/modifiers/emplace.cc: New.
* testsuite/23_containers/unordered_multimap/modifiers/emplace.cc:
New.
* testsuite/23_containers/unordered_set/modifiers/emplace.cc: New.
* testsuite/23_containers/unordered_multiset/modifiers/emplace.cc:
New.
* testsuite/util/testsuite_container_traits.h
(traits_base::has_emplace): Add and defined as std::true_type for
unordered containers.
* testsuite/util/exception/safety.h (emplace, emplace_hint): Add and
use them in basic_safety exception test case.
* doc/xml/manual/status_cxx2011.xml: Update unordered containers
status.
From-SVN: r182174
2011-12-09 20:01:04 +00:00
François Dumont
40207762a8
hashtable.h (_Hashtable<>::_M_rehash): Remove code useless now that the hashtable implementation put the hash code in...
...
2011-11-29 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable.h (_Hashtable<>::_M_rehash): Remove code
useless now that the hashtable implementation put the hash code in
cache if the hash functor throws.
* testsuite/23_containers/unordered_set/erase/1.cc: Enhance test by
checking also distance between begin and end iterators to validate
underlying data model.
* testsuite/23_containers/unordered_multiset/erase/1.cc: Likewise.
* testsuire/23_containers/unordered_map/erase/1.cc: Likewise.
* testsuite/23_containers/unordered_multimap/erase/1.cc: Likewise.
* testsuite/23_containers/unordered_multiset/erase/2.cc: New.
* testsuite/23_containers/unordered_multimap/erase/2.cc: New.
From-SVN: r181799
2011-11-29 07:45:58 +00:00
François Dumont
da29608a7a
re PR libstdc++/41975 ([C++0x] [DR579] unordered_set::erase performs worse when nearly empty)
...
2011-11-23 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/41975
* include/bits/hashtable.h (_Hashtable<>): Major data model
modification to limit performance impact of empty buckets in
erase(iterator) implementation.
* include/bits/hashtable_policy.h (_Hashtable_iterator,
_Hashtable_const_iterator): Remove not used anymore.
* include/bits/hashtable_policy.h (_Prime_rehash_policy): Remove
_M_grow_factor, just use natural evolution of prime numbers. Add
_M_prev_size to know when the number of buckets can be reduced.
* include/bits/unordered_set.h (__unordered_set<>,
__unordered_multiset<>), unordered_map.h (__unordered_map<>,
__unordered_multimap<>): Change default value of cache hash code
template parameter, false for integral types with noexcept hash
functor, true otherwise.
* include/debug/unordered_map, unordered_set: Adapt transformation
from iterator/const_iterator to respectively
local_iterator/const_local_iterator.
* testsuite/performance/23_containers/copy_construct/unordered_set.cc:
New.
* testsuite/23_containers/unordered_set/instantiation_neg.cc: New.
* testsuite/23_containers/unordered_set/hash_policy/rehash.cc: New.
* testsuite/23_containers/unordered_multiset/cons/copy.cc: New.
* testsuite/23_containers/unordered_multiset/erase/1.cc,
24061-multiset.cc: Add checks on the number of bucket elements.
* testsuite/23_containers/unordered_multiset/insert/multiset_range.cc,
multiset_single.cc, multiset_single_move.cc: Likewise.
From-SVN: r181677
2011-11-23 20:30:18 +00:00
Paolo Carlini
fc09e5b6bd
bitset (operator[](size_t) const): Declare constexpr.
...
2011-11-19 Paolo Carlini <paolo.carlini@oracle.com>
* include/debug/bitset (operator[](size_t) const): Declare constexpr.
* include/profile/bitset: Likewise.
* testsuite/23_containers/bitset/operations/constexpr.cc: Split out
non portable bits to...
* testsuite/23_containers/bitset/operations/constexpr-2.cc: ... here.
From-SVN: r181506
2011-11-19 11:50:44 +00:00
Paolo Carlini
6dc88283f6
re PR libstdc++/51142 ([C++0x] map::erase(key) doesn't compile with -D_GLIBCXX_DEBUG.)
...
2011-11-15 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/51142
* include/debug/unordered_map (unordered_map<>::erase(iterator),
unordered_multimap<>::erase(iterator)): Add, consistently with
LWG 2059.
* include/debug/unordered_set (unordered_set<>::erase(iterator),
unordered_multiset<>::erase(iterator)): Likewise.
* include/debug/map.h (map<>::erase(iterator)): Likewise.
* include/debug/multimap.h (multimap<>::erase(iterator)): Likewise.
* include/profile/map.h (map<>::erase(iterator)): Likewise.
* include/profile/multimap.h (multimap<>::erase(iterator)): Likewise.
* include/bits/hashtable.h (_Hashtable<>::erase(iterator)): Likewise.
* include/bits/stl_map.h (map<>::erase(iterator)): Likewise.
* include/bits/stl_multimap.h (multimap<>::erase(iterator)): Likewise.
* include/bits/stl_tree.h (_Rb_tree<>::erase(iterator)): Likewise.
* testsuite/23_containers/unordered_map/erase/51142.cc: New.
* testsuite/23_containers/multimap/modifiers/erase/51142.cc: Likewise.
* testsuite/23_containers/set/modifiers/erase/51142.cc: Likewise.
* testsuite/23_containers/unordered_multimap/erase/51142.cc: Likewise.
* testsuite/23_containers/unordered_set/erase/51142.cc: Likewise.
* testsuite/23_containers/multiset/modifiers/erase/51142.cc: Likewise.
* testsuite/23_containers/unordered_multiset/erase/51142.cc: Likewise.
* testsuite/23_containers/map/modifiers/erase/51142.cc: Likewise.
From-SVN: r181394
2011-11-15 23:28:49 +00:00
Jonathan Wakely
5ed56cbbee
allocator.h (__shrink_to_fit_aux::_S_do_it): Create the new object with the same allocator.
...
* include/bits/allocator.h (__shrink_to_fit_aux::_S_do_it): Create
the new object with the same allocator.
* testsuite/23_containers/vector/capacity/shrink_to_fit2.cc: New.
From-SVN: r181235
2011-11-09 21:14:03 +00:00
Jonathan Wakely
425006751b
stl_vector.h (vector::_Alloc_traits): Make private.
...
* include/bits/stl_vector.h (vector::_Alloc_traits): Make private.
* include/debug/vector: Add allocator-extended constructors, ensure
move assignment and swap have same allocator propagation semantics
and exceptions specification as base class.
* include/profile/vector: Likewise.
(vector::push_back(_Tp&&)): Forward argument as rvalue.
* testsuite/23_containers/vector/debug/alloc_prop.cc: New.
* doc/xml/manual/status_cxx2011.xml: Clarify status of container
requirements with respect to allocators.
(status.iso.200x): Add anchor for old ID to preserve existing links.
From-SVN: r181189
2011-11-09 01:26:04 +00:00
Jason Merrill
a7d5d7e221
Makefile.am (install-freestanding-headers): Install c++0x_warning.h.
...
* include/Makefile.am (install-freestanding-headers): Install
c++0x_warning.h.
* libsupc++/initializer_list: Include it.
From-SVN: r180727
2011-11-01 00:02:45 -04:00
Jason Merrill
97e3ad20b1
re PR c++/50920 (add a -std=c++11 option to the driver)
...
PR c++/50920
gcc/c-family
* c-common.h (cxx_dialect): Add cxx11 and cxx03.
* c.opt: Add -std=c++11, -std=gnu++11, -std=gnu++03,
and -Wc++11-compat.
* c-opts.c (set_std_cxx11): Rename from set_std_cxx0x.
gcc/cp
* class.c (check_field_decl): Change c++0x in diags to c++11.
* error.c (maybe_warn_cpp0x): Likewise.
* parser.c (cp_parser_diagnose_invalid_type_name): Likewise.
* pt.c (check_default_tmpl_args): Likewise.
libcpp
* include/cpplib.h (enum c_lang): Rename CLK_CXX0X to CLK_CXX11,
CLK_GNUCXX0X to CLK_GNUCXX11.
libstdc++-v3
* include/bits/c++0x_warning.h: Change -std=c++0x to -std=c++11.
From-SVN: r180707
2011-10-31 15:34:14 -04:00
Paolo Carlini
4a6b297c98
count.cc: New.
...
2011-10-28 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/23_containers/unordered_map/operations/count.cc: New.
* testsuite/23_containers/multimap/operations/count.cc: Likewise.
* testsuite/23_containers/set/operations/count.cc: Likewise.
* testsuite/23_containers/unordered_multimap/operations/count.cc:
Likewise.
* testsuite/23_containers/unordered_set/operations/count.cc: Likewise.
* testsuite/23_containers/multiset/operations/count.cc: Likewise.
* testsuite/23_containers/unordered_multiset/operations/count.cc:
Likewise.
* testsuite/23_containers/map/operations/count.cc: Likewise.
From-SVN: r180612
2011-10-28 11:54:04 +00:00
Paolo Carlini
0e83f45aa6
re PR libstdc++/49561 ([C++0x] std::list::size complexity)
...
2011-10-04 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/49561
* include/bits/stl_list.h (_List_base<>::_List_impl::_M_size):
Add in C++0x mode.
(_List_base<>::_List_impl, _List_base<>::_M_get_node,
_List_base<>::_M_put_node, _List_base<>::_List_base(_List_base&&),
list<>::size, list<>::swap, list<>::splice): Use it.
(operator==(const list<>&, const list<>&)): Rewrite in C++0x mode.
* include/bits/list.tcc (list<>::erase): Likewise.
(list<>::merge): Adjust in C++0x mode.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Likewise.
From-SVN: r179528
2011-10-04 22:19:44 +00:00
Jonathan Wakely
73f0503101
alloc_traits.h (__alloc_traits::max_size): Define.
...
2011-10-04 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/ext/alloc_traits.h (__alloc_traits::max_size): Define.
(__alloc_traits::rebind): Define.
* include/bits/stl_vector.h: Use them.
* testsuite/util/testsuite_allocator.h (SimpleAllocator): Define.
* testsuite/23_containers/vector/allocator/minimal.cc: New.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line numbers.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
From-SVN: r179523
2011-10-04 21:34:54 +01:00
Paolo Carlini
a7cee01d32
re PR libstdc++/50529 ([C++0x] std::vector::erase invokes undefined behavior with empty range)
...
2011-09-26 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/50529
* include/bits/vector.tcc (vector<>::erase(iterator, iterator)):
Fix to do nothing if the range is empty.
* include/bits/stl_bvector.h: Likewise.
* include/bits/deque.tcc: Likewise.
* include/debug/vector: Adjust.
* include/debug/deque: Likewise.
* testsuite/23_containers/vector/modifiers/erase/50529.cc: New.
* testsuite/23_containers/deque/modifiers/erase/50529.cc: Likewise.
* testsuite/23_containers/deque/modifiers/erase/3.cc: Adjust.
From-SVN: r179234
2011-09-27 02:39:34 +00:00
François Dumont
1c56f7cb72
hashtable.h (_Hashtable<>::__rehash_policy(const _RehashPolicy&)): Commit the modification of the policy only if no exception occured.
...
2011-09-17 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable.h (_Hashtable<>::__rehash_policy(const
_RehashPolicy&)): Commit the modification of the policy only if no
exception occured.
* testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
New.
From-SVN: r178927
2011-09-17 09:12:24 +00:00
Paolo Carlini
71743a68ec
less_or_equal.cc: New.
...
2011-09-16 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/23_containers/array/comparison_operators/
less_or_equal.cc: New.
* testsuite/23_containers/array/comparison_operators/
greater_or_equal.cc: Likewise.
* testsuite/23_containers/array/comparison_operators/less.cc: Likewise.
* testsuite/23_containers/array/comparison_operators/equal.cc: Likewise.
* testsuite/23_containers/array/comparison_operators/not_equal.cc:
Likewise.
* testsuite/23_containers/array/comparison_operators/greater.cc:
Likewise.
* testsuite/23_containers/array/iterators/end_is_one_past.cc: Likewise.
* testsuite/23_containers/array/capacity/empty.cc: Likewise.
* testsuite/23_containers/array/capacity/max_size.cc: Likewise.
* testsuite/23_containers/array/capacity/size.cc: Likewise.
* testsuite/23_containers/array/tuple_interface/tuple_element.cc:
Likewise.
* testsuite/23_containers/array/tuple_interface/tuple_size.cc:
Likewise.
* testsuite/23_containers/array/element_access/at_out_of_range.cc:
Likewise.
* testsuite/23_containers/array/element_access/back.cc: Likewise.
* testsuite/23_containers/array/element_access/front.cc: Likewise.
* testsuite/23_containers/array/element_access/data.cc: Likewise.
* testsuite/23_containers/array/cons/aggregate_initialization.cc:
Likewise.
* testsuite/23_containers/array/requirements/zero_sized_arrays.cc:
Likewise.
* testsuite/23_containers/array/requirements/contiguous.cc: Likewise.
* testsuite/23_containers/array/requirements/member_swap.cc: Likewise.
* testsuite/23_containers/array/specialized_algorithms/swap.cc:
Likewise.
* testsuite/23_containers/array/constexpr_get.cc: Move...
* testsuite/23_containers/array/tuple_interface/constexpr_get.cc:
... here.
* testsuite/23_containers/array/requirements/get.cc: Move...
* testsuite/23_containers/array/tuple_interface/get: ... here.
* testsuite/23_containers/array/at_neg.cc: Move...
* testsuite/23_containers/array/element_access: ... here.
* testsuite/23_containers/array/requirements/constexpr_functions.cc:
Move...
* testsuite/23_containers/array/capacity: ... here.
* testsuite/23_containers/array/requirements/
constexpr_element_access.cc: Move...
* testsuite/23_containers/array/element_access: ... here.
* testsuite/20_util/duration/cons/1_neg.cc: Avoid -Wall warnings.
* testsuite/20_util/tuple/creation_functions/constexpr.cc: Likewise.
* testsuite/20_util/pair/make_pair/constexpr.cc: Likewise.
* testsuite/20_util/time_point/nonmember/constexpr.cc: Likewise.
* testsuite/23_containers/bitset/operations/constexpr.cc: Likewise.
* testsuite/20_util/duration/cons/1_neg.cc: Discard bogus warning.
* testsuite/20_util/forward/1_neg.cc: Likewise.
From-SVN: r178911
2011-09-16 16:28:31 +00:00
François Dumont
7e5ac0a4f5
hashtable.h (_Hashtable<>::_M_rehash): Take and restore hash policy _M_prev_resize on exception.
...
2011-09-14 François Dumont <fdumont@gcc.gnu.org>
Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable.h (_Hashtable<>::_M_rehash): Take and restore
hash policy _M_prev_resize on exception.
(_Hashtable<>::_M_insert_bucket): Capture hash policy next resize
before using it and use latter method to have it restored on exception.
(_Hashtable<>::_M_insert(_Arg&& __v, std::false_type): Likewise.
(_Hashtable<>::insert(_InputIterator, _InputIterator): Likewise.
(_Hashtable<>::rehash): Likewise.
* testsuite/23_containers/unordered_set/insert/hash_policy.cc: New.
* testsuite/23_containers/unordered_multiset/insert/hash_policy.cc:
Likewise.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r178861
2011-09-14 19:50:20 +00:00
Daniel Krugler
9480716c80
tuple (_Head_base<>::_M_head, [...]): Change to static constexpr functions; adjust everywhere.
...
2011-09-12 Daniel Krugler <daniel.kruegler@googlemail.com>
Paolo Carlini <paolo.carlini@oracle.com>
* include/std/tuple (_Head_base<>::_M_head, _Head_base<>::_M_tail,
_Tuple_impl<>::_M_head, _Tuple_impl<>::_M_tail): Change to static
constexpr functions; adjust everywhere.
(__get_helper, get): Declare constexpr all three overloads.
(tuple_cat): Declare constexpr; use late return type to improve
error messages.
* include/std/utility (__pair_get<>::__get, __pair_get<>::__move_get,
__pair_get<>::__const_get, get): Declare all constexpr.
* include/std/array (get): Likewise.
* testsuite/20_util/tuple/creation_functions/constexpr.cc: Re-enable
tuple_cat test.
* testsuite/23_containers/array/constexpr_get.cc: New.
* testsuite/20_util/tuple/element_access/constexpr_get.cc: Likewise.
* testsuite/20_util/pair/constexpr_get.cc: Likewise.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error
line number.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r178799
2011-09-13 00:06:25 +00:00
François Dumont
02dce1e99c
at.cc: Revert to...
...
2011-09-07 François Dumont <francois.cppdevs@free.fr>
* testsuite/23_containers/array/at.cc: Revert to...
* testsuite/23_containers/array/at_neg.cc: ...this.
From-SVN: r178670
2011-09-08 01:24:11 +00:00
Benjamin Kosnik
a7d0c94ef1
tuple (_Tuple_impl::_M_head, _M_tail): Mark constexpr.
...
2011-09-06 Benjamin Kosnik <bkoz@redhat.com>
* include/std/tuple (_Tuple_impl::_M_head, _M_tail): Mark constexpr.
(tuple(tuple&&)): Same.
(tuple(const tuple<_UElements...>& __in)): Same.
(tuple(tuple<_UElements...>&& __in)): Same.
(tuple_cat(const tuple<_TElements...>&, const tuple<_UElements...>&)):
Same.
(get): Same.
* include/std/array: Consolidate array::data usage.
* testsuite/23_containers/array/requirements/constexpr_functions.cc:
Remove extra include.
* testsuite/20_util/tuple/creation_functions/constexpr.cc: New.
* testsuite/20_util/tuple/cons/constexpr-2.cc: Add tests.
* testsuite/20_util/tuple/cons/constexpr-3.cc: Same.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust line numbers.
From-SVN: r178620
2011-09-07 00:17:09 +00:00
Paolo Carlini
5da7fa30da
re PR libstdc++/50268 ([C++0x] bitset doesn't sanitize input)
...
2011-09-02 Paolo Carlini <paolo.carlini@oracle.com>
Marc Glisse <marc.glisse@normalesup.org>
PR libstdc++/50268
* include/std/bitset (struct _Sanitize_val): Add.
(bitset<>::bitset(unsigned long long)): Fix.
* testsuite/23_containers/bitset/cons/50268.cc: New.
Co-Authored-By: Marc Glisse <marc.glisse@normalesup.org>
From-SVN: r178463
2011-09-02 10:28:36 +00:00
Paolo Carlini
290df23d48
hashtable.h (_Hashtable<>::_Hashtable(_Hashtable&&)): Remove noexcept, the move constructor allocates memory...
...
2011-09-01 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable.h (_Hashtable<>::_Hashtable(_Hashtable&&)):
Remove noexcept, the move constructor allocates memory; rearrange
the code in the body to consistently update __ht._M_rehash_policy
before using _M_next_bkt on it.
* include/debug/unordered_map: Adjust.
* include/debug/unordered_set: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/unordered_set: Likewise.
* testsuite/23_containers/unordered_map/cons/
noexcept_move_construct.cc: Remove.
* testsuite/23_containers/unordered_set/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/unordered_multimap/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/unordered_multiset/cons/
noexcept_move_construct.cc: Likewise.
From-SVN: r178423
2011-09-01 15:45:20 +00:00
Paolo Carlini
ff15f019e0
re PR libstdc++/50118 (node-based containers cannot use allocators with explicit constructor template)
...
2011-08-29 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/50118
* include/bits/stl_list.h (_List_base<>::
_List_base(const allocator_type&)): Remove.
(_List_base<>::_List_base(const _Node_alloc_type&)): Add.
(list<>:list(const allocator_type&), list(size_type, const
value_type&, const allocator_type&),
list(initializer_list<, const allocator_type&),
list(_InputIterator, _InputIterator, const allocator_type&),
insert(iterator, size_type, const value_type&),
insert(iterator, _InputIterator, _InputIterator)): Adjust.
* include/bits/stl_tree.h (_Rb_tree<>::_Rb_tree(const _Compare&,
const allocator_type&)): Fix.
* include/bits/stl_map.h (map<>::map(const _Compare&,
const allocator_type&), map(initializer_list<>,
const _Compare&, const allocator_type&), map(_InputIterator,
_InputIterator, const _Compare&, const allocator_type&),
get_allocator): Adjust.
* include/bits/stl_set.h (set<>::set(const _Compare&,
const allocator_type&), set(initializer_list<>,
const _Compare&, const allocator_type&), set(_InputIterator,
_InputIterator, const _Compare&, const allocator_type&),
get_allocator): Likewise.
* include/bits/stl_multimap.h (multimap<>::multimap(const _Compare&,
const allocator_type&), multimap(initializer_list<>,
const _Compare&, const allocator_type&), multimap(_InputIterator,
_InputIterator, const _Compare&, const allocator_type&),
get_allocator): Likewise.
* include/bits/stl_multiset.h (multiset<>::multiset(const _Compare&,
const allocator_type&), multiset(initializer_list<>,
const _Compare&, const allocator_type&), multiset(_InputIterator,
_InputIterator, const _Compare&, const allocator_type&),
get_allocator): Likewise.
* include/bits/forward_list.h (_Fwd_list_base<>::
_Fwd_list_base(const _Alloc&), _Fwd_list_base(const _Fwd_list_base&,
const _Alloc&), _Fwd_list_base(_Fwd_list_base&&, const _Alloc&)):
Remove.
(_Fwd_list_base<>::_Fwd_list_base(const _Node_alloc_type&),
_Fwd_list_base(const _Fwd_list_base&,
const _Node_alloc_type&), _Fwd_list_base(_Fwd_list_base&&,
const _Node_alloc_type&)): Add.
(forward_list<>::forward_list(const _Alloc&),
forward_list(const forward_list&, const _Alloc&),
forward_list(forward_list&&, const _Alloc&),
forward_list(size_type, const _Tp&, const _Alloc&),
forward_list(_InputIterator, _InputIterator, const _Alloc&),
forward_list(std::initializer_list<>, const _Alloc&),
get_allocator): Adjust.
* include/bits/forward_list.tcc
* testsuite/util/testsuite_allocator.h (ExplicitConsAlloc): Add.
* testsuite/23_containers/unordered_map/requirements/
explicit_instantiation/5.cc: New.
* testsuite/23_containers/multimap/requirements/
explicit_instantiation/5.cc: Likewise.
* testsuite/23_containers/multimap/requirements/
explicit_instantiation/5_c++0x.cc: Likewise.
* testsuite/23_containers/set/requirements/explicit_instantiation/
5.cc: Likewise.
* testsuite/23_containers/set/requirements/explicit_instantiation/
5_c++0x.cc: Likewise.
* testsuite/23_containers/unordered_multimap/requirements/
explicit_instantiation/5.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/
explicit_instantiation/5.cc: Likewise.
* testsuite/23_containers/unordered_set/requirements/
explicit_instantiation/5.cc: Likewise.
testsuite/23_containers/multiset/requirements/explicit_instantiation/
5.cc: Likewise.
* testsuite/23_containers/multiset/requirements/
explicit_instantiation/5_c++0x.cc: Likewise.
* testsuite/23_containers/list/requirements/explicit_instantiation/
5_c++0x.cc: Likewise.
* testsuite/23_containers/list/requirements/explicit_instantiation/
5.cc: Likewise.
* testsuite/23_containers/unordered_multiset/requirements/
explicit_instantiation/5.cc: Likewise.
* testsuite/23_containers/map/requirements/explicit_instantiation/
5.cc: Likewise.
* testsuite/23_containers/map/requirements/explicit_instantiation/
5_c++0x.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Adjust dg-error line number.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Likewise.
From-SVN: r178230
2011-08-29 13:40:33 +00:00
Benjamin Kosnik
93c66bc68a
user.cfg.in (PDF_HYPERLINKS): To NO.
...
2011-08-06 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in (PDF_HYPERLINKS): To NO.
2011-08-06 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in: Add scoped_allocator.
* include/debug/safe_sequence.h: Fix doxygen markup.
* include/debug/safe_unordered_base.h: Same.
* include/debug/safe_local_iterator.tcc: Same.
* include/debug/safe_unordered_container.h: Same.
* include/std/valarray: Same.
* include/std/iomanip: Same.
* include/std/streambuf: Same.
* include/std/bitset: Same.
* include/std/fstream: Same.
* include/std/functional: Same.
* include/std/istream: Same.
* include/std/ostream: Same.
* include/std/scoped_allocator: Same.
* include/std/sstream: Same.
* include/parallel/multiway_merge.h: Same.
* include/parallel/base.h: Same.
* include/parallel/for_each_selectors.h: Same.
* include/parallel/multiway_mergesort.h: Same.
* include/parallel/search.h: Same.
* include/parallel/partial_sum.h: Same.
* include/parallel/queue.h: Same.
* include/parallel/sort.h: Same.
* include/parallel/random_number.h: Same.
* include/ext/vstring.h: Same.
* include/ext/algorithm: Same.
* include/ext/pb_ds/assoc_container.h: Same.
* include/ext/bitmap_allocator.h: Same.
* include/ext/stdio_filebuf.h: Same.
* include/ext/memory: Same.
* include/ext/functional: Same.
* include/bits/basic_ios.h: Same.
* include/bits/stl_list.h: Same.
* include/bits/stl_map.h: Same.
* include/bits/stl_algobase.h: Same.
* include/bits/stl_queue.h: Same.
* include/bits/gslice.h: Same.
* include/bits/locale_classes.h: Same.
* include/bits/stl_set.h: Same.
* include/bits/locale_facets.h: Same.
* include/bits/stl_stack.h: Same.
* include/bits/stl_heap.h: Same.
* include/bits/forward_list.h: Same.
* include/bits/stream_iterator.h: Same.
* include/bits/basic_string.h: Same.
* include/bits/stl_multimap.h: Same.
* include/bits/stl_pair.h: Same.
* include/bits/ios_base.h: Same.
* include/bits/stl_numeric.h: Same.
* include/bits/stl_vector.h: Same.
* include/bits/stl_deque.h: Same.
* include/bits/codecvt.h: Same.
* include/bits/stl_multiset.h: Same.
* include/bits/stl_uninitialized.h: Same.
* include/bits/ptr_traits.h: Same.
* include/bits/slice_array.h: Same.
* include/bits/stl_iterator_base_funcs.h: Same.
* include/bits/stl_algo.h: Same.
* include/bits/stl_iterator.h: Same.
* include/bits/stl_tempbuf.h: Same.
* include/bits/regex.h: Same.
* include/bits/range_access.h: Same.
* include/bits/random.h: Same.
* include/bits/alloc_traits.h: Same.
* include/bits/regex_error.h: Same.
* include/bits/locale_facets_nonio.h: Same.
* include/bits/stl_relops.h: Same.
* include/backward/auto_ptr.h: Same.
* libsupc++/initializer_list: Same.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Adjust line numbers.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
Same.
* testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
Same.
From-SVN: r177542
2011-08-07 07:27:06 +00:00
Benjamin Kosnik
2c4caf0ab9
tuple: Mark more constructors constexpr.
...
2011-08-03 Benjamin Kosnik <bkoz@redhat.com>
* include/std/tuple: Mark more constructors constexpr.
* testsuite/20_util/tuple/cons/constexpr.cc: Split into and extend as:
* testsuite/20_util/tuple/cons/constexpr-2.cc: ...this.
* testsuite/20_util/tuple/cons/constexpr-3.cc: ... and this.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust line numbers.
2011-08-03 Benjamin Kosnik <bkoz@redhat.com>
François Dumont <francois.cppdevs@free.fr>
* testsuite/23_containers/array/at_neg.cc: Move...
* testsuite/23_containers/array/at.cc: ...here. Remove
-fno-exceptions, call const at member function.
Co-Authored-By: François Dumont <francois.cppdevs@free.fr>
From-SVN: r177299
2011-08-03 21:05:14 +00:00
Benjamin Kosnik
9bc13c238d
array (at): Remove constexpr when -fno-exceptions.
...
2011-07-25 Benjamin Kosnik <bkoz@redhat.com>
* include/std/array (at): Remove constexpr when -fno-exceptions.
* testsuite/23_containers/array/at_neg.cc: Test.
From-SVN: r176780
2011-07-26 04:21:57 +00:00
Paolo Carlini
cc2ba8e30f
re PR libstdc++/49836 ([C++0x] vector<T>::push_back() should not require T to be (move-)assignable)
...
2011-07-25 Paolo Carlini <paolo.carlini@oracle.com>
Nathan Ridge <zeratul976@hotmail.com>
PR libstdc++/49836
* include/bits/stl_vector.h (vector<>::_M_emplace_back_aux):
Declare.
(vector<>::push_back(const value_type&)): Use it.
* include/bits/vector.tcc: Define.
(vector<>::emplace_back(_Args&&...)): Use it.
* testsuite/util/testsuite_tr1.h (CopyConsOnlyType, MoveConsOnlyType):
Add.
* testsuite/23_containers/vector/modifiers/push_back/49836.cc: New.
* testsuite/23_containers/deque/modifiers/push_back/49836.cc:
Likewise.
* testsuite/23_containers/deque/modifiers/push_front/49836.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
Co-Authored-By: Nathan Ridge <zeratul976@hotmail.com>
From-SVN: r176761
2011-07-25 17:08:48 +00:00
François Dumont
4f7b188f20
hashtable_policy.h (_Prime_rehash_policy): Use __builtin_floor rather than __builtin_ceil to compute next resize value.
...
2011-07-24 François Dumont <francois.cppdevs@free.fr>
* include/bits/hashtable_policy.h (_Prime_rehash_policy): Use
__builtin_floor rather than __builtin_ceil to compute next resize
value.
* testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
New.
From-SVN: r176717
2011-07-24 19:20:26 +00:00
Benjamin Kosnik
bfef3a711a
array (array::at, [...]): Mark constexpr.
...
2011-07-20 Benjamin Kosnik <bkoz@redhat.com>
Daniel Krugler <daniel.kruegler@googlemail.com>
* include/std/array (array::at, array::operator[]): Mark constexpr.
* testsuite/23_containers/array/requirements/
constexpr_element_access.cc: Add.
Co-Authored-By: Daniel Krugler <daniel.kruegler@googlemail.com>
From-SVN: r176550
2011-07-21 05:48:03 +00:00
Benjamin Kosnik
07be61200c
bitset (operator[]): Make constexpr.
...
2011-07-20 Benjamin Kosnik <bkoz@redhat.com>
* include/std/bitset (operator[]): Make constexpr.
* testsuite/23_containers/bitset/operations/constexpr.cc: New.
From-SVN: r176519
2011-07-20 15:44:18 +00:00
François Dumont
77e0bf4e07
safe_unordered_base.h, [...]: New, support for unordered sequence safe local iterators.
...
2011-07-19 François Dumont <francois.cppdevs@free.fr>
* include/debug/safe_unordered_base.h, safe_unordered_sequence.h,
safe_unordered_sequence.tcc, safe_local_iterator.h,
safe_local_iterator.tcc: New, support for unordered sequence safe
local iterators.
* include/Makefile.am: Add previous files.
* include/Makefile.in: Regenerate.
* include/debug/unordered_map, unordered_set: Implement
_Safe_unordered_sequence and expose _Safe_local_iterator.
* include/debug/safe_iterator.h, safe_iterator.tcc: Refactor
_Safe_iterator::_M_get_distance static method to expose it as
__get_distance function and use it in _Safe_local_iterator type.
* include/debug/formatter.h: Add __msg_local_iter_compare_bad
_Debug_msg_id enum entry to notify invalid comparison between local
iterators from different buckets. Add _Parameter constructor from
_Safe_local_iterator.
* include/debug/functions.h: Add __valid_range overload for
_Safe_local_iterator.
* src/debug.cc: Add _Safe_unordered_sequence_base and
_Safe_local_iterator_base methods implementations.
* config/abi/pre/gnu.ver: Add export of some
_Safe_unordered_sequence_base and _Safe_local_iterator_base methods.
* testsuite/util/debug/checks.h: Add use_invalid_iterator function to
simulate use of a singular iterator.
* testsuite/util/debug/unordered_checks.h: New, several functions
to simulate classic invalid usage of unordered sequence local
iterators.
* testsuite/23_containers/unordered_map/debug/
use_erased_local_iterator_neg.cc, invalid_local_iterator_range_neg.cc,
use_invalid_local_iterator_neg.cc, use_invalid_iterator_neg.cc,
invalid_local_iterator_compare_neg.cc: New.
* testsuite/23_containers/unordered_multimap/debug/
use_erased_local_iterator_neg.cc, invalid_local_iterator_range_neg.cc,
use_invalid_local_iterator_neg.cc, use_invalid_iterator_neg.cc,
invalid_local_iterator_compare_neg.cc: New.
* testsuite/23_containers/unordered_set/debug/
use_erased_local_iterator_neg.cc, invalid_local_iterator_range_neg.cc,
use_invalid_local_iterator_neg.cc, use_invalid_iterator_neg.cc,
invalid_local_iterator_compare_neg.cc: New.
* testsuite/23_containers/unordered_multiset/debug/
use_erased_local_iterator_neg.cc, invalid_local_iterator_range_neg.cc,
use_invalid_local_iterator_neg.cc, use_invalid_iterator_neg.cc,
invalid_local_iterator_compare_neg.cc: New.
From-SVN: r176487
2011-07-19 19:39:45 +00:00
Jonathan Wakely
bd8485dc9f
stl_vector.h: Use new allocator model in C++0x mode.
...
2011-07-09 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/bits/stl_vector.h: Use new allocator model in C++0x mode.
* include/bits/vector.tcc: Likewise.
* testsuite/util/testsuite_allocator.h (propagating_allocator): Define.
* testsuite/23_containers/vector/allocator/copy_assign.cc: New.
* testsuite/23_containers/vector/allocator/noexcept.cc: New.
* testsuite/23_containers/vector/allocator/copy.cc: New.
* testsuite/23_containers/vector/allocator/swap.cc: New.
* testsuite/23_containers/vector/allocator/move_assign.cc: New.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line numbers.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc:
Likewise.
From-SVN: r176078
2011-07-09 14:06:29 +01:00
François Dumont
8a752dfea6
allocator.h (__shrink_to_fit): Rename to __shrink_to_fit_aux, fix.
...
2011-06-12 François Dumont <francois.cppdevs@free.fr>
Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/allocator.h (__shrink_to_fit): Rename to
__shrink_to_fit_aux, fix.
* include/bits/stl_vector.h (_M_shrink_to_fit): Declare.
(shrink_to_fit): Use the latter.
* include/debug/vector (shrink_to_fit): Likewise.
* include/bits/vector.tcc (_M_shrink_to_fit): Define.
* include/bits/stl_deque.h (_M_shrink_to_fit): Declare.
(shrink_to_fit): Use the latter.
* include/debug/deque (shrink_to_fit): Likewise.
* include/bits/deque.tcc (_M_shrink_to_fit): Define.
* include/bits/vector.tcc (vector<bool>::_M_reallocate): Add.
* include/bits/stl_bvector.h (_M_shrink_to_fit): Declare.
(shrink_to_fit): Use the latter.
(reserve): Use _M_reallocate, move inline.
(_Bvector_base<>::_S_nword): Add, use it throughout.
* include/debug/string (shrink_to_fit): Redo.
* include/ext/vstring.h (shrink_to_fit): Optimize.
* include/bits/basic_string.h (shrink_to_fit): Likewise.
* testsuite/21_strings/debug/shrink_to_fit.cc: New.
* testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
* testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc:
Likewise.
* testsuite/23_containers/vector/bool/capacity/shrink_to_fit.cc:
Likewise.
* testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r174967
2011-06-12 15:51:36 +00:00
Jonathan Wakely
c51b58dc1f
extptr_allocator.h (construct, destroy): Fix for C++0x mode by overloading to take allocator's pointer type.
...
2011-06-11 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/ext/extptr_allocator.h (construct, destroy): Fix for C++0x
mode by overloading to take allocator's pointer type.
* testsuite/23_containers/vector/ext_pointer/types/2.cc: New.
* testsuite/23_containers/vector/ext_pointer/explicit_instantiation/
2.cc: New.
From-SVN: r174958
2011-06-11 17:05:08 +01:00
Jason Merrill
377a536430
prune.exp (libstdc++-dg-prune): Prune notes.
...
* testsuite/lib/prune.exp (libstdc++-dg-prune): Prune notes.
* testsuite/20_util/duration/cons/1_neg.cc: Remove dg-excess-errors.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
* testsuite/20_util/forward/1_neg.cc: Likewise.
* testsuite/20_util/function/cmp/cmp_neg.cc: Likewise.
* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
* testsuite/20_util/reference_wrapper/ref_neg.cc: Likewise.
* testsuite/20_util/tuple/comparison_operators/35480_neg.cc: Likewise.
* testsuite/tr1/6_containers/tuple/comparison_operators/35480_neg.cc: Likewise.
* testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/unique_ptr_neg.cc: Likewise.
* testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc: Likewise.
* testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
* testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Likewise.
* testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
* testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc: Likewise.
* testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
* testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/assign_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/constructor_1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/constructor_2_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/insert_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Likewise.
* testsuite/23_containers/map/operators/1_neg.cc: Likewise.
* testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc: Likewise.
* testsuite/decimal/mixed-mode-arith_neg.cc: Likewise.
* testsuite/decimal/mixed-mode-cmp_neg.cc: Likewise.
* testsuite/decimal/operator_neg.cc: Likewise.
From-SVN: r174884
2011-06-09 23:56:00 -04:00
Paolo Carlini
74a2a1b4f6
move.h (struct __move_if_noexcept_cond): Add.
...
2011-06-07 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/move.h (struct __move_if_noexcept_cond): Add.
(move_if_noexcept): Use the latter.
* include/bits/stl_iterator.h (__make_move_if_noexcept_iterator,
_GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR): Add.
* include/bits/stl_uninitialized.h
(__uninitialized_move_if_noexcept_a): Add.
* include/bits/vector.tcc (vector<>::reserve): Use
_GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR.
(vector<>::_M_insert_aux, _M_fill_insert, _M_default_append,
_M_range_insert): Use __uninitialized_move_if_noexcept_a.
* testsuite/23_containers/vector/modifiers/moveable2.cc: New.
* testsuite/23_containers/vector/capacity/resize/moveable2.cc:
Likewise.
* testsuite/23_containers/vector/capacity/reserve/moveable2.cc:
Likewise.
From-SVN: r174756
2011-06-07 16:11:36 +00:00
Paolo Carlini
6f59ea252b
hashtable.h (_Hashtable<>::_Hashtable(_Hashtable&&)): Use std::move on the allocator, use noexcept.
...
2011-06-01 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable.h (_Hashtable<>::_Hashtable(_Hashtable&&)):
Use std::move on the allocator, use noexcept.
(_Hashtable<>::~_Hashtable): Use noexcept.
* include/bits/stl_list.h: Likewise.
* include/bits/forward_list.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/stl_bvector.h: Likewise.
* include/bits/stl_map.h (map<>::map(map&&)): Use noexcept.
* include/bits/stl_set.h: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/stl_tree.h (_Rb_tree<>::_Rb_tree(_Rb_tree&&)): Use
std::move on the allocator.
(_Rb_tree<>::~_Rb_tree): Use noexcept.
* include/bits/stl_deque.h: Likewise.
* include/bits/basic_string.h (basic_string<>::~basic_string): Use
noexcept.
* include/ext/vstring.h (__versa_string<>::~__versa_string): Likewise.
* include/debug/set.h: Adjust.
* include/debug/unordered_map: Likewise.
* include/debug/multiset.h: Likewise.
* include/debug/forward_list: Likewise.
* include/debug/vector: Likewise.
* include/debug/unordered_set: Likewise.
* include/debug/deque: Likewise.
* include/debug/map.h: Likewise.
* include/debug/string: Likewise.
* include/debug/list: Likewise.
* include/debug/multimap.h: Likewise.
* include/profile/set.h: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/multiset.h: Likewise.
* include/profile/forward_list: Likewise.
* include/profile/unordered_set: Likewise.
* include/profile/vector: Likewise.
* include/profile/deque: Likewise.
* include/profile/map.h: Likewise.
* include/profile/list: Likewise.
* include/profile/multimap.h: Likewise.
* testsuite/21_strings/basic_string/cons/wchar_t/
noexcept_move_construct.cc: New.
* testsuite/21_strings/basic_string/cons/char/
noexcept_move_construct.cc: Likewise.
* testsuite/ext/vstring/cons/noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/unordered_map/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/multimap/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/set/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/unordered_multimap/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/forward_list/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/unordered_set/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/vector/bool/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/vector/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/multiset/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/list/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/unordered_multiset/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/map/cons/noexcept_move_construct.cc
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Adjust dg-error line numbers.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
assign_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
assign_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
assign_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* include/bits/move.h (swap): Use __and_ in the noexcept.
* include/bits/algorithmfwd.h: Adjust.
From-SVN: r174525
2011-06-01 14:16:19 +00:00
Paolo Carlini
18eeaec47b
utility (get(std::pair<>&&)): Add.
...
2011-05-16 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/utility (get(std::pair<>&&)): Add.
* include/bits/stl_pair.h (pair::swap(pair&),
swap(pair<>&, pair<>&)): Use noexcept.
* include/bits/random.h (discard_block_engine<>::base,
independent_bits_engine<>::base, shuffle_order_engine<>::base,
random_device::entropy): Use noexcept.
* include/std/array: Use noexcept where appropriate.
(get(array<>&&)): Add.
* testsuite/23_containers/array/requirements/get.cc: New.
* testsuite/20_util/pair/get.cc: Likewise.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Tweak dg-error
line number.
From-SVN: r173798
2011-05-16 18:09:17 +00:00
Paolo Carlini
a3fa23e44b
47628.cc: Do not test in C++0x mode.
...
2011-02-10 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/23_containers/multimap/modifiers/erase/47628.cc: Do
not test in C++0x mode.
* testsuite/23_containers/map/modifiers/erase/47628.cc: Likewise.
* testsuite/20_util/headers/utility/synopsis.cc: Tweak to work
in C++0x mode too.
From-SVN: r170016
2011-02-10 17:43:51 +00:00
Paolo Carlini
03e38c1a18
re PR libstdc++/47628 (non-compliant C++0x erase methods on STL containers)
...
2011-02-07 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/47628
* include/bits/stl_tree.h (_Rb_tree::erase(iterator), erase(iterator,
iterator)): Add back in C++03 mode.
* testsuite/23_containers/map/modifiers/erase/47628.cc: New.
* testsuite/23_containers/multimap/modifiers/erase/47628.cc: Likewise.
From-SVN: r169899
2011-02-07 20:15:48 +00:00
Benjamin Kosnik
12ffa22844
PR libstdc++/36104 part four
...
2011-01-30 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/36104 part four
* include/bits/c++config (_GLIBCXX_STD): Remove.
(_GLIBCXX_STD_D, _GLIBCXX_PR): Now _GLIBCXX_STD_C.
(_GLIBCXX_P): Now _GLIBCXX_STD_A.
(_GLIBCXX_NAMESPACE_DEBUG, _GLIBCXX_NAMESPACE_PARALLEL,
_GLIBCXX_NAMESPACE_PROFILE, _GLIBCXX_NAMESPACE_VERSION): Remove.
(_GLIBCXX_INLINE_DEBUG, _GLIBCXX_INLINE_PARALLEL,
_GLIBCXX_INLINE_PROFILE): Remove.
(_GLIBCXX_BEGIN_NAMESPACE(X)): Remove.
(_GLIBCXX_END_NAMESPACE): Remove.
(_GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y)): Remove.
(_GLIBCXX_END_NESTED_NAMESPACE): Remove.
(_GLIBCXX_BEGIN_NAMESPACE_ALGO): Add.
(_GLIBCXX_END_NAMESPACE_ALGO): Add.
(_GLIBCXX_BEGIN_NAMESPACE_CONTAINER): Add.
(_GLIBCXX_END_NAMESPACE_CONTAINER): Add.
(_GLIBCXX_BEGIN_NAMESPACE_VERSION): Add.
(_GLIBCXX_END_NAMESPACE_VERSION): Add.
(_GLIBCXX_BEGIN_LDBL_NAMESPACE): To _GLIBCXX_BEGIN_NAMESPACE_LDBL.
(_GLIBCXX_END_LDBL_NAMESPACE): To _GLIBCXX_END_NAMESPACE_LDBL.
(_GLIBCXX_VISIBILITY_ATTR): Revert to _GLIBCXX_VISIBILITY.
* include/*: Use new macros for namespace scope.
* config/*: Same.
* src/*: Same.
* src/Makefile.am (sources): Remove debug_list.cc, add
compatibility-debug_list-2.cc.
(parallel_sources): Remove parallel_list.cc, add
compatibility-parallel_list-2.cc.
(compatibility-parallel_list-2.[o,lo]): New rule.
* src/Makefile.in: Regenerate.
* src/debug_list.cc: Remove.
* src/parallel_list.cc: Remove.
* src/compatibility-list-2.cc: New.
* src/compatibility-debug_list-2.cc: New.
* src/compatibility-parallel_list-2.cc: New.
* doc/doxygen/user.cfg.in: Adjust macros.
* testsuite/20_util/auto_ptr/assign_neg.cc: Adjust line numbers, macros.
* testsuite/20_util/declval/requirements/1_neg.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same.
* testsuite/20_util/forward/c_neg.cc: Same.
* testsuite/20_util/forward/f_neg.cc: Same.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same.
* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Same.
* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Same.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Same.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Same.
* testsuite/23_containers/forward_list/capacity/1.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Same.
* testsuite/23_containers/list/capacity/29134.cc: Same.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.
* testsuite/23_containers/vector/bool/capacity/29134.cc: Same.
* testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Same.
* testsuite/25_algorithms/sort/35588.cc: Same.
* testsuite/27_io/ios_base/cons/assign_neg.cc: Same.
* testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
* testsuite/ext/profile/mutex_extensions_neg.cc: Same.
* testsuite/ext/profile/profiler_algos.cc: Same.
* testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Same.
* testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Same.
* testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Same.
* testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Same.
* testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: Same.
From-SVN: r169421
2011-01-30 22:39:36 +00:00
François Dumont
5b8901caa0
erase_after1_neg.cc: Move to this.
...
2011-01-16 François Dumont <francois.cppdevs@free.fr>
* testsuite/23_containers/forward_list/debug/erase_after1_neg.cc: Move
to this. Use _neg suffix.
* testsuite/23_containers/forward_list/debug/erase_after1.cc: ...from
this.
* testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
Same.
* testsuite/23_containers/forward_list/debug/erase_after2.cc: Same.
* testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
Same.
* testsuite/23_containers/forward_list/debug/erase_after3.cc: Same.
* testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
Same.
* testsuite/23_containers/forward_list/debug/erase_after4.cc: Same.
* testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
Same.
* testsuite/23_containers/forward_list/debug/erase_after5.cc: Same.
* testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
Same.
* testsuite/23_containers/forward_list/debug/erase_after6.cc: Same.
* testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
Same.
* testsuite/23_containers/forward_list/debug/erase_after7.cc: Same.
* testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
Same.
* testsuite/23_containers/forward_list/debug/erase_after8.cc: Same.
* testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
Same.
* testsuite/23_containers/forward_list/debug/erase_after9.cc: Same.
* testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
Same.
* testsuite/23_containers/forward_list/debug/insert_after1.cc: Same.
* testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
Same.
* testsuite/23_containers/forward_list/debug/insert_after2.cc: Same.
* testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
Same.
* testsuite/23_containers/forward_list/debug/insert_after3.cc: Same.
* testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
Same.
* testsuite/23_containers/forward_list/debug/splice_after1.cc: Same.
* testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
Same.
* testsuite/23_containers/forward_list/debug/splice_after2.cc: Same.
* testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
Same.
* testsuite/23_containers/forward_list/debug/splice_after3.cc: Same.
* testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
Same.
* testsuite/23_containers/forward_list/debug/splice_after4.cc: Same.
From-SVN: r168850
2011-01-16 10:35:28 +00:00
François Dumont
8c9f4dfa9a
safe_base.h (_Safe_iterator_base::_M_unlink): New.
...
2011-01-05 François Dumont <francois.cppdevs@free.fr>
* include/debug/safe_base.h (_Safe_iterator_base::_M_unlink): New.
* include/src/debug.cc: Use latter
* include/debug/forward_list (forward_list<>::_M_swap): Fix to
correctly handle before_begin iterators.
* testsuite/23_containers/forward_list/debug/swap.cc: Remove now
useless _GLIBCXX_DEBUG checks.
From-SVN: r168528
2011-01-05 20:52:36 +00:00
Benjamin Kosnik
f910786b98
*: Use headername alias to associate private includes to public includes.
...
2010-11-18 Benjamin Kosnik <bkoz@redhat.com>
* config/*/*: Use headername alias to associate private includes
to public includes.
* include/*/*: Same.
* scripts/run_doxygen: Update for doxygen 1.7.2.
* doc/doxygen/user.cfg.in: Same.
* doc/doxygen/TODO: Remove.
* testsuite/*/std_c++0x_neg.cc: Adjust line number.
From-SVN: r168046
2010-12-19 09:21:16 +00:00