Andrew MacLeod
3b04e1e4c4
re PR libstdc++/51102 (missing macros in <atomic>)
...
2011-11-16 Andrew MacLeod <amacleod@redhat.com>
PR libstdc++/51102
* include/bits/atomic_base.h (ATOMIC_BOOL_LOCK_FREE,
ATOMIC_POINTER_LOCK_FREE): New. Add missing macros.
From-SVN: r181414
2011-11-16 15:43:15 +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
Andrew MacLeod
d660c35ea2
re PR middle-end/51038 (29_atomics/atomic_flag/clear/1.cc test_and_set/explicit.cc implicit.cc)
...
PR middle-end/51038
libstdc++-v3
* include/bits/atomic_base.h (atomic_thread_fence): Call built-in.
(atomic_signal_fence): Call built-in.
(test_and_set, clear): Call new atomic built-ins.
gcc
* builtins.c (expand_builtin_atomic_clear): New. Expand atomic_clear.
(expand_builtin_atomic_test_and_set): New. Expand atomic test_and_set.
(expand_builtin): Add cases for test_and_set and clear.
* sync-builtins.def (BUILT_IN_ATOMIC_TEST_AND_SET): New.
(BUILT_IN_ATOMIC_CLEAR): New.
testsuite
* gcc.dg/atomic-invalid.c: Add test for invalid __atomic_clear models.
* gcc.dg/atomic-flag.c: New. Test __atomic_test_and_set and
__atomic_clear.
From-SVN: r181271
2011-11-10 20:38:33 +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
Jonathan Wakely
a58a38b32c
shared_ptr_base.h (_Sp_counted_ptr): Make 'final'.
...
* include/bits/shared_ptr_base.h (_Sp_counted_ptr): Make 'final'.
(_Sp_counted_deleter): Make 'final'. Use allocator_traits.
(_Sp_counted_ptr_inplace): Make 'final'. Use allocator_traits.
Derive from _Sp_counted_ptr instead of _Sp_counted_deleter to use EBO
for the allocator.
(__shared_count, __shared_ptr): Use allocator_traits.
* include/std/future (__future_base::_Result_alloc): Make 'final'. Use
allocator traits.
(__future_base::_Task_state): Make 'final'.
(__future_base::_Deferred_state): Likewise.
(__future_base::_Async_state): Likewise.
* testsuite/20_util/shared_ptr/cons/alloc_min.cc: New.
* testsuite/20_util/shared_ptr/creation/alloc_min.cc: New.
* testsuite/20_util/shared_ptr/creation/private.cc: New.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust line numbers.
* testsuite/30_threads/packaged_task/cons/alloc_min.cc: New.
* testsuite/30_threads/promise/cons/alloc_min.cc: New.
From-SVN: r181171
2011-11-08 16:45:54 +00:00
Jonathan Wakely
7579d15b58
ptr_traits.h (__rebind): Replace with...
...
* include/bits/ptr_traits.h (__rebind): Replace with...
(rebind): Implement using alias-declaration.
* include/ext/pointer.h (__rebind): Replace with...
(rebind): Implement using alias-declaration.
* include/bits/alloc_traits.h (__rebind_alloc, __rebind_traits):
Replace with...
(rebind_alloc, rebind_traits): Implement using alias-declaration.
* include/ext/alloc_traits.h (rebind): Use rebind_alloc instead of
__rebind_alloc.
* include/std/scoped_allocator (rebind): Likewise.
From-SVN: r181139
2011-11-08 00:33:45 +00:00
Andrew MacLeod
6577e39c94
atomic_base.h (atomic_thread_fence): Revert.
...
2011-11-07 Andrew MacLeod <amacleod@redhat.com>
* include/bits/atomic_base.h (atomic_thread_fence): Revert.
(atomic_signal_fence): Revert.
From-SVN: r181119
2011-11-07 21:32:52 +00:00
Andrew MacLeod
0669295b1e
atomic_base.h (atomic_thread_fence): Call builtin.
...
2011-11-07 Andrew MacLeod <amacleod@redhat.com>
libstdc++-v3
* include/bits/atomic_base.h (atomic_thread_fence): Call builtin.
(atomic_signal_fence): Call builtin.
(atomic_flag::test_and_set): Call __atomic_exchange when it is lockfree,
otherwise fall back to call __sync_lock_test_and_set.
(atomic_flag::clear): Call __atomic_store when it is lockfree,
otherwise fall back to call __sync_lock_release.
gcc
* doc/extend.texi: Docuemnt behaviour change for __atomic_exchange and
__atomic_store.
* optabs.c (expand_atomic_exchange): Expand to __sync_lock_test_and_set
only when originated from that builtin.
(expand_atomic_store): Expand to __sync_lock_release when originated
from that builtin.
* builtins.c (expand_builtin_sync_lock_test_and_set): Add flag that
expand_atomic_exchange call originated from here.
(expand_builtin_sync_lock_release): Add flag that expand_atomic_store
call originated from here.
(expand_builtin_atomic_exchange): Add origination flag.
(expand_builtin_atomic_store): Add origination flag.
* expr.h (expand_atomic_exchange, expand_atomic_store): Add boolean
parameters to indicate implementation fall back options.
From-SVN: r181111
2011-11-07 20:06:39 +00:00
Jonathan Wakely
f1e09f0d14
basic_string.h (basic_string::at): Move adjacent to other overload.
...
* include/bits/basic_string.h (basic_string::at): Move adjacent to other
overload.
(basic_string::pop_back): Define.
* include/debug/string (__gnu_debug::basic_string::pop_back): Likewise.
* include/ext/vstring.h (__versa_string::pop_back): Likewise.
* config/abi/pre/gnu.ver: Add new symbols.
* testsuite/21_strings/basic_string/modifiers/char/pop_back.cc: New.
* testsuite/21_strings/basic_string/modifiers/wchar_t/pop_back.cc: New.
* testsuite/21_strings/basic_string/range_access.cc: Split to ...
* testsuite/21_strings/basic_string/range_access/char/1.cc: Here and ...
* testsuite/21_strings/basic_string/range_access/wchar_t/1.cc: Here.
* testsuite/ext/vstring/modifiers/char/pop_back.cc: New.
* testsuite/ext/vstring/modifiers/wchar_t/pop_back.cc: New.
From-SVN: r181049
2011-11-07 00:06:23 +00:00
Andrew Macleod
86951993f8
Check in patch/merge from cxx-mem-model Branch
...
From-SVN: r181031
2011-11-06 14:55:48 +00:00
Paolo Carlini
3164517929
re PR libstdc++/50951 (state of subtract_with_carry_engine not saved correctly to output stream)
...
2011-11-02 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/50951
* include/bits/random.tcc (operator<<(basic_ostream<>&,
const mersenne_twister_engine<>&): Output _M_p too.
(operator<<(basic_ostream<>&, const
subtract_with_carry_engine<>&): Likewise.
(operator>>(basic_istream<>&, mersenne_twister_engine<>&):
Reload it.
(operator>>(basic_istream<>&, subtract_with_carry_engine<>&):
Likewise.
* include/bits/random.h (mersenne_twister_engine<>::operator==):
Compare _M_p too.
(subtract_with_carry_engine<>::operator==): Compare _M_carry
and _M_p too.
(shuffle_order_engine<>::operator==): Compare _M_v(s) and _M_y too.
* testsuite/26_numerics/random/independent_bits_engine/
operators/serialize.cc: Extend.
* testsuite/26_numerics/random/subtract_with_carry_engine/
operators/serialize.cc: Likewise.
* testsuite/26_numerics/random/discard_block_engine/
operators/serialize.cc: Likewise.
* testsuite/26_numerics/random/mersenne_twister_engine/
operators/serialize.cc: Likewise.
* testsuite/26_numerics/random/linear_congruential_engine/
operators/serialize.cc: Likewise.
* testsuite/26_numerics/random/shuffle_order_engine/
operators/serialize.cc: Likewise.
From-SVN: r180764
2011-11-02 10:06:08 +00:00
Benjamin Kosnik
08624e906d
c++config: Add tr2 to versioned namespaces.
...
2011-11-02 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/c++config: Add tr2 to versioned namespaces.
* scripts/run_doxygen: Adjust generated man files as well.
* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust line numbers.
From-SVN: r180760
2011-11-02 04:23:33 +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
Jason Merrill
a2e70335e2
re PR c++/50500 ([C++0x] [DR 1082] move constructor should cause copy constructor to be deleted, but still declared)
...
PR c++/50500
DR 1082
* class.c (type_has_user_declared_move_constructor): New.
(type_has_user_declared_move_assign): New.
(add_implicitly_declared_members): Add lazy copy ops
even if there's a move.
* method.c (lazily_declare_fn): Delete implicit copies
if there's a move.
(maybe_explain_implicit_delete): Explain this. Use inform rather
than error.
* cp-tree.h: Declare new fns.
From-SVN: r180159
2011-10-18 13:39:15 -04:00
Jonathan Yong
d7a3ef9794
configure.host: Use config/os/mingw32-w64 instead of config/os/mingw32 if vendor key is "w64".
...
2011-10-14 Jonathan Yong <jon_y@users.sourceforge.net>
* configure.host: Use config/os/mingw32-w64 instead of
config/os/mingw32 if vendor key is "w64".
* config/os/mingw32-w64: Duplicate from config/os/mingw32.
* config/os/mingw32-w64/os_defines.h: Enable
_GLIBCXX_FULLY_DYNAMIC_STRING if undefined.
* acinclude.m4: Set fully-dynamic-string to 1 when enabled,
0 when disabled or undefined if unset by user.
* include/bits/basic_string.h: Check if
_GLIBCXX_FULLY_DYNAMIC_STRING is set to 0 instead of undefined.
include/bits/basic_string.tcc: Likewise.
* configure: Regenerated.
* config.h.in: Likewise.
From-SVN: r179961
2011-10-14 08:57:55 +02:00
Paolo Carlini
b78eebe4f5
re PR libstdc++/50714 (codecvt_byname::codecvt::_M_c_locale_codecvt not initialized by destroyed)
...
2011-10-13 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/50714
* include/bits/codecvt.h (codecvt<>::codecvt(size_t)): Initialize
_M_c_locale_codecvt member.
* testsuite/22_locale/codecvt_byname/50714.cc: New.
From-SVN: r179948
2011-10-14 00:12:40 +00:00
Paolo Carlini
578f023490
re PR c++/50594 (Option -fwhole-program discards replaced new operator for std::string)
...
2011-10-12 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50594
* decl.c (cxx_init_decl_processing): Add
__attribute__((externally_visible)) to operator new and
operator delete library fn.
2011-10-12 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50594
* libsupc++/new (operator new, operator delete): Decorate with
__attribute__((__externally_visible__)).
* include/bits/c++config: Add _GLIBCXX_THROW.
* libsupc++/del_op.cc: Adjust.
* libsupc++/del_opv.cc: Likewise.
* libsupc++/del_opnt.cc: Likewise.
* libsupc++/del_opvnt.cc: Likewise.
* libsupc++/new_op.cc: Likewise.
* libsupc++/new_opv.cc: Likewise.
* libsupc++/new_opnt.cc: Likewise.
* libsupc++/new_opvnt.cc: Likewise.
* testsuite/18_support/50594.cc: New.
* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error
line number.
From-SVN: r179863
2011-10-12 18:40:58 +00:00
Emil Wojak
92b2342a6e
re PR libstdc++/50661 (std::equal should use more efficient version for arrays of pointers)
...
2011-10-11 Emil Wojak <emil@wojak.eu>
PR c++/50661
* include/bits/stl_algobase.h (equal): Compare arrays of pointers
too with memcmp.
From-SVN: r179801
2011-10-11 12:39:18 +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
1c29961267
hashtable.h (_Hashtable<>::insert(value_type&&), [...]): Don't define here...
...
2011-10-03 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable.h (_Hashtable<>::insert(value_type&&),
insert(const_iterator, value_type&&)): Don't define here...
* include/bits/unordered_set.h (__unordered_set<>,
__unordered_multiset<>): ... define here instead.
From-SVN: r179464
2011-10-03 15:28:47 +00:00
Paolo Carlini
b24a983561
hashtable.h (_Hashtable<>::_Hashtable(_Hashtable&&)): Remove noexcept from declaration too.
...
2011-09-29 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable.h (_Hashtable<>::_Hashtable(_Hashtable&&)):
Remove noexcept from declaration too.
From-SVN: r179360
2011-09-29 17:26:32 +00: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
Benjamin Kosnik
2799d97293
re PR libstdc++/48698 (gnu-versioned-namespace problems)
...
2011-09-26 Benjamin Kosnik <bkoz@redhat.com
Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/48698
* acinclude.m4 (GLIBCXX_ENABLE_SYMVERS): Set libtool_VERSION here.
* configure.ac: Move AC_SUBST of libtool_VERSION past call to
GLIBCXX_ENABLE_SYMVERS.
* configure: Regenerate.
* include/bits/c++config: Use __7 as versioned namespace name.
* config/abi/pre/gnu-versioned-namespace.ver: Change mangling as
per above.
* include/c_global/cwchar: Adjust nested namespaces.
* testsuite/20_util/bind/48698.cc: Add test case.
* testsuite/ext/profile/mutex_extensions_neg.cc: Change line number.
From-SVN: r179221
2011-09-27 00:02:54 +00:00
John Salmon
82582df651
re PR libstdc++/50510 ([C++0x] transposed variable names in std::seed_seq::generate)
...
2011-09-24 John Salmon <john.salmon@deshaw.com>
PR libstdc++/50510
* include/bits/random.tcc (seed_seq::generate): Fix computation.
From-SVN: r179149
2011-09-24 22:34:50 +00:00
John Salmon
9d1f3ce6ff
re PR libstdc++/50509 ([C++0x] incorrect code in std::seed_seq::generate)
...
2011-09-24 John Salmon <john.salmon@deshaw.com>
PR libstdc++/50509
* include/bits/random.tcc (seed_seq::generate): Fix computation.
From-SVN: r179144
2011-09-24 18:28:36 +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
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
Paolo Carlini
049d289351
tuple: Use everywhere std::size_t...
...
2011-09-09 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/tuple: Use everywhere std::size_t... instead of int...
* include/std/functional: Likewise.
* include/std/scoped_allocator: Likewise.
* include/bits/stl_pair.h: Likewise.
From-SVN: r178746
2011-09-10 00:47:02 +00:00
Paolo Carlini
ebb6e4af61
re PR libstdc++/50336 (LWG issue 445)
...
2011-09-09 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/50336
* include/bits/streambuf_iterator.h (class istreambuf_iterator):
Implement LWG 445 in C++0x mode.
* testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc:
New.
From-SVN: r178713
2011-09-08 22:42:21 +00:00
François Dumont
e25fc78ff5
hashtable_policy.h (_Prime_rehash_policy:: _M_next_bkt): Cast _M_max_load_factor to long double.
...
2011-09-06 François Dumont <fdumont@gcc.gnu.org>
Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable_policy.h (_Prime_rehash_policy::
_M_next_bkt): Cast _M_max_load_factor to long double.
(_Prime_rehash_policy::_M_bkt_for_elements): Use _M_next_bkt.
(_Prime_rehash_policy::_M_need_rehash): Likewise; cast all
float quantities to long double.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r178615
2011-09-06 22:13:46 +00:00
Paolo Carlini
4cdccf2665
re PR libstdc++/50257 ([C++0x] unordered_map slow initialization due to huge __prime_list)
...
2011-09-06 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/50257
* include/bits/hashtable_policy.h (_Prime_rehash_policy::
_M_next_bkt): Optimize for small argument.
From-SVN: r178581
2011-09-06 10:22:21 +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
b671737962
stl_iterator.h (make_move_iterator): Implement DR2061.
...
2011-08-30 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/stl_iterator.h (make_move_iterator): Implement DR2061.
* testsuite/24_iterators/move_iterator/dr2061.cc: New.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-warning
line numbers.
From-SVN: r178330
2011-08-30 15:34:50 +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
Paolo Carlini
75f5cbb17b
move.h (swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Remove workaround for c++/49045.
...
2011-08-28 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/move.h (swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Remove
workaround for c++/49045.
* include/bits/algorithmfwd.h: Likewise.
From-SVN: r178147
2011-08-28 21:05:48 +00:00
Paolo Carlini
6ba30237b9
re PR libstdc++/50119 ([C++0x] copy_n advances InputIterator one more time than necessary)
...
2011-08-18 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/50119
* include/bits/stl_algo.h (__copy_n(_InputIterator, _Size,
_OutputIterator, input_iterator_tag)): Fix.
* testsuite/25_algorithms/copy_n/50119.cc: New.
From-SVN: r177871
2011-08-18 16:32:23 +00:00
Paolo Carlini
a4eeb82207
future: constexpr functions are implicitly inline.
...
2011-08-11 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/future: constexpr functions are implicitly inline.
* include/std/chrono: Likewise.
* include/std/complex: Likewise.
* include/bits/move.h: Likewise.
* include/bits/stl_pair.h: Likewise.
From-SVN: r177679
2011-08-11 17:53:05 +00:00
Jonathan Wakely
a5db4ced81
alloc_traits.h: Fix doxygen @headername.
...
2011-08-07 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/bits/alloc_traits.h: Fix doxygen @headername.
From-SVN: r177546
2011-08-07 13:25:48 +01: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
Paolo Carlini
bdc05efbc8
atomic.cc: Use noexcept.
...
2011-08-04 Paolo Carlini <paolo.carlini@oracle.com>
* src/atomic.cc: Use noexcept.
* include/std/atomic: Likewise.
* include/bits/atomic_0.h: Likewise.
* include/bits/atomic_2.h: Likewise.
* include/bits/atomic_base.h: Likewise.
From-SVN: r177413
2011-08-04 19:57:48 +00:00
Paolo Carlini
3096f51bf6
re PR libstdc++/49925 ([C++0x] ADL bug mixing boost::shared_ptr and std::make_shared<>)
...
2011-07-31 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/49925
* include/bits/shared_ptr.h (make_shared): Qualify allocate_shared
with std::.
* include/bits/shared_ptr_base.h (__make_shared): Likewise.
From-SVN: r176985
2011-07-31 20:28:45 +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
Paolo Carlini
73645647f9
hashtable_policy.h (_Prime_rehash_policy::_M_next_bkt, [...]): Fix typos in the last commit.
...
2011-07-24 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable_policy.h (_Prime_rehash_policy::_M_next_bkt,
_M_bkt_for_elements, _M_need_rehash): Fix typos in the last commit.
From-SVN: r176718
2011-07-24 19:47:04 +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
9b9e81a0a9
move.h (move, forward): Mark constexpr.
...
2011-07-22 Benjamin Kosnik <bkoz@redhat.com>
Daniel Krugler <daniel.kruegler@googlemail.com>
* include/bits/move.h (move, forward): Mark constexpr.
* include/bits/stl_pair.h (pair): Mark move ctors constexpr.
* testsuite/20_util/pair/make_pair/constexpr.cc: New.
* testsuite/20_util/pair/cons/constexpr.cc: Add tests.
Co-Authored-By: Daniel Krugler <daniel.kruegler@googlemail.com>
From-SVN: r176672
2011-07-23 03:17:11 +00:00
Paolo Carlini
9992d56429
re PR libstdc++/48430 (std::hash partial specialization for std::unique_ptr and std::shared_ptr are using unary_function)
...
2011-07-18 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/48430
* include/bits/shared_ptr.h (struct hash<shared_ptr<>>): Use
__hash_base.
* include/bits/unique_ptr.h (struct hash<unique_ptr<>>): Likewise.
From-SVN: r176405
2011-07-18 16:07:24 +00:00
Paolo Carlini
848ca96f30
re PR libstdc++/49559 ([C++0x] stable_sort calls self-move-assignment operator)
...
2011-07-11 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/49559
* include/bits/stl_algo.h (__move_merge_backward): Remove.
(__move_merge_adaptive, __move_merge_adaptive_backward): New.
(__merge_adaptive): Use the latter two.
(__rotate_adaptive): Avoid self move-assignment.
* include/bits/stl_algobase.h (move_backward): Fix comment.
* testsuite/25_algorithms/stable_sort/49559.cc: New.
* testsuite/25_algorithms/inplace_merge/49559.cc: Likewise.
* testsuite/25_algorithms/inplace_merge/moveable.cc: Extend.
* testsuite/25_algorithms/inplace_merge/moveable2.cc: Likewise.
* testsuite/util/testsuite_rvalref.h (rvalstruct::operator=
(rvalstruct&&)): Check for self move-assignment.
From-SVN: r176174
2011-07-11 18:38:54 +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
Paolo Carlini
bd9db3b8dd
stl_construct.h: Update Copyright years.
...
2011-06-22 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/stl_construct.h: Update Copyright years.
* include/bits/stl_uninitialized.h: Likewise.
From-SVN: r175309
2011-06-22 20:27:21 +00:00
Jonathan Wakely
e8eb60bd92
Makefile.am: Add alloc_traits.h headers.
...
2011-06-22 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/Makefile.am: Add alloc_traits.h headers.
* include/Makefile.in: Regenerate.
* include/std/memory: Include uses_allocator.h explicitly.
* include/bits/allocator.h (allocator_traits): Move to ...
* include/bits/alloc_traits.h: New header.
* include/ext/alloc_traits.h (__alloc_traits): Extension to provide
a common allocator interface for C++98 and C++0x.
* include/bits/stl_construct.h: Use __alloc_traits.
* include/bits/stl_uninitialized.h: Likewise.
From-SVN: r175305
2011-06-22 20:57:12 +01:00
Daniel Krugler
ccb4f5a707
move.h (__is_nothrow_swappable): Add.
...
2011-06-22 Daniel Krugler <daniel.kruegler@googlemail.com>
Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/move.h (__is_nothrow_swappable): Add.
(swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Use noexcept.
* include/bits/algorithmfwd.h: Adjust.
* testsuite/25_algorithms/swap/noexcept.cc: New.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r175277
2011-06-21 23:01:03 +00:00
Jonathan Wakely
d2393b3adb
ptr_traits.h (pointer_traits<T*>::pointer_to): Use noexcept.
...
2011-06-14 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/bits/ptr_traits.h (pointer_traits<T*>::pointer_to): Use
noexcept.
From-SVN: r175057
2011-06-14 23:08:24 +01:00
Paolo Carlini
6a97dbf748
valarray (~valarray): Use noexcept.
...
2011-06-14 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/valarray (~valarray): Use noexcept.
* include/bits/unique_ptr.h (~unique_ptr): Likewise.
* testsuite/26_numerics/valarray/noexcept_move_construct.cc: New.
* testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc:
Likewise.
* testsuite/20_util/unique_ptr/cons/noexcept_move_construct.cc:
Likewise.
* testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc:
Likewise.
From-SVN: r175039
2011-06-14 17:48:29 +00:00
Paolo Carlini
6b14c6d7ff
functional: Use noexcept.
...
2011-06-14 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/functional: Use noexcept.
* include/bits/stl_tempbuf.h: Likewise.
From-SVN: r175026
2011-06-14 15:09:14 +00: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
Paolo Carlini
545dc5e324
extptr_allocator.h: Include <ext/numeric_traits.h> instead of <limits>.
...
2011-06-08 Paolo Carlini <paolo.carlini@oracle.com>
* include/ext/extptr_allocator.h: Include <ext/numeric_traits.h>
instead of <limits>.
* include/bits/allocator.h: Likewise.
* include/std/chrono (duration_values<>::min): Call lowest, not min.
From-SVN: r174805
2011-06-08 12:12:00 +00:00
Paolo Carlini
76aa78e9eb
allocator.h (__shrink_to_fit): Simplify.
...
2011-06-08 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/allocator.h (__shrink_to_fit): Simplify.
* include/bits/stl_vector.h (vector<>::shrink_to_fit): Adjust.
* include/bits/stl_deque.h: Likewise.
* include/bits/stl_bvector.h: Likewise.
From-SVN: r174802
2011-06-08 11:07:24 +00: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
7aca3d94be
move.h (move_if_noexcept): Use __and_ and __not_.
...
2011-06-06 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/move.h (move_if_noexcept): Use __and_ and __not_.
From-SVN: r174708
2011-06-06 16:39:29 +00:00
Jonathan Wakely
428319bb9a
ptr_traits.h (pointer_traits): Fix typos.
...
2011-06-05 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/bits/ptr_traits.h (pointer_traits): Fix typos.
* include/ext/pointer.h (pointer_traits): Add partial specialization
for _Pointer_adapter.
From-SVN: r174661
2011-06-05 21:28:38 +01: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
cea8c6deef
basic_string.h: Use noexcept per the FDIS (minus compare(const string&)...
...
2011-05-31 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/basic_string.h: Use noexcept per the FDIS (minus
compare(const string&), which uses char_traits::compare, which
isn't noexcept; also no noexcept in the move assignment operator
and move assign, see c++std-lib-30855).
* include/bits/basic_string.tcc: Likewise.
* include/ext/vstring.h: Likewise.
* include/ext/vstring.tcc: Likewise.
* include/debug/string: Likewise.
From-SVN: r174479
2011-05-31 12:50:31 +00:00
Paolo Carlini
dd7b175ec3
type_traits (__or_, __and_): Add trivial definitions for a single element.
...
2011-05-30 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/type_traits (__or_, __and_): Add trivial definitions
for a single element.
* include/bits/stl_pair.h: Use __and_ in noexcept specs and
constraints.
(pair<>::pair(pair&&)): Define.
(pair<>::pair(const pair<>&)): Constrain with is_convertible.
(pair<>::pair(pair<>&&)): Likewise, remove noexcept.
* include/std/tuple: Use __and_ in noexcept specs and constraints.
(_Tuple_impl<>::_Tuple_impl(allocator_arg_t, const _Alloc&,
_Tuple_impl&&)): Remove noexcept.
(tuple<>::tuple(_UElements&&...), tuple(const tuple<_UElements...>&),
tuple(tuple<_UElements...>&&), tuple(const pair<_U1, _U2>&),
tuple(pair<_U1, _U2>&&)): Constrain with is_convertible.
* testsuite/20_util/tuple/moveable2.cc: Use = delete.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
Adjust dg-error line numbers.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.
* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.
* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.
From-SVN: r174464
2011-05-31 02:29:22 +00:00
Jonathan Wakely
b821466067
tuple: Implement uses-allocator construction.
...
2011-05-30 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/std/tuple: Implement uses-allocator construction.
* include/bits/allocator.h (uses_allocator): Move to ...
* include/bits/uses_allocator.h: New file.
* include/Makefile.am: Add new header.
* include/Makefile.in: Regenerate.
* testsuite/20_util/uses_allocator/cons_neg.cc: New.
* testsuite/20_util/uses_allocator/construction.cc: New.
* testsuite/20_util/tuple/cons/allocate_noncopyable.cc: New.
* testsuite/20_util/tuple/cons/allocators.cc: New.
From-SVN: r174443
2011-05-30 17:31:17 +01:00
Jonathan Wakely
45ba8f9f8f
Makefile.am: Add new ptr_traits.h header.
...
2011-05-28 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/Makefile.am: Add new ptr_traits.h header.
* include/Makefile.in: Regenerate.
* include/bits/ptr_traits.h (pointer_traits): New.
* include/bits/allocator.h (allocator_traits): Add.
* include/ext/array_allocator.h (construct, destroy): Update C++0x
versions.
* include/ext/bitmap_allocator.h (construct, destroy): Likewise.
* include/ext/extptr_allocator.h (construct, destroy): Likewise.
* include/ext/malloc_allocator.h (construct, destroy): Likewise.
* include/ext/mt_allocator.h (construct, destroy): Likewise.
* include/ext/new_allocator.h (construct, destroy): Likewise.
* include/ext/pool_allocator.h (construct, destroy): Likewise.
* include/ext/throw_allocator.h (construct, destroy): Likewise.
* testsuite/20_util/allocator_traits/requirements/typedefs.cc: New.
* testsuite/20_util/allocator_traits/requirements/
explicit_instantiation.cc: New.
* testsuite/20_util/allocator_traits/members/max_size.cc: New.
* testsuite/20_util/allocator_traits/members/select.cc: New.
* testsuite/20_util/allocator_traits/members/construct.cc: New.
* testsuite/20_util/allocator_traits/members/allocate_hint.cc: New.
* testsuite/20_util/allocator_traits/members/destroy.cc: New.
* testsuite/20_util/pointer_traits/requirements/typedefs.cc: New.
* testsuite/20_util/pointer_traits/requirements/
explicit_instantiation.cc: New.
From-SVN: r174380
2011-05-28 14:27:43 +01:00
Paolo Carlini
d3677132a2
list.cc: Use noexcept per the FDIS.
...
2011-05-26 Paolo Carlini <paolo.carlini@oracle.com>
* src/list.cc: Use noexcept per the FDIS.
* src/compatibility-list-2.cc: Likewise.
* include/debug/set.h: Likewise.
* include/debug/unordered_map: Likewise.
* include/debug/multiset.h: Likewise.
* include/debug/forward_list: Likewise.
* include/debug/unordered_set: Likewise.
* include/debug/vector: Likewise.
* include/debug/map.h: Likewise.
* include/debug/deque: 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/vector: Likewise.
* include/profile/unordered_set: Likewise.
* include/profile/map.h: Likewise.
* include/profile/deque: Likewise.
* include/profile/list: Likewise.
* include/profile/multimap.h: Likewise.
* include/bits/hashtable.h: Likewise.
* include/bits/stl_list.h: Likewise.
* include/bits/stl_map.h: Likewise.
* include/bits/hashtable_policy.h: Likewise.
* include/bits/stl_set.h: Likewise.
* include/bits/forward_list.h: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/stl_deque.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/stl_bvector.h: Likewise.
* include/bits/stl_tree.h: Likewise.
From-SVN: r174295
2011-05-26 15:35:02 +00:00
Paolo Carlini
c688bbdd63
stl_queue.h: Use noexcept per the FDIS.
...
2011-05-25 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/stl_queue.h: Use noexcept per the FDIS.
* include/bits/stl_stack.h: Likewise.
From-SVN: r174254
2011-05-26 00:36:35 +00:00
Paolo Carlini
deaf34a90b
random.h (random_device::min, max): Specify constexpr.
...
2011-05-25 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/random.h (random_device::min, max): Specify constexpr.
From-SVN: r174219
2011-05-25 17:55:40 +00:00
Paolo Carlini
782378a6ae
c++config (_GLIBCXX_NOTHROW): Update for noexcept.
...
2011-05-24 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/c++config (_GLIBCXX_NOTHROW): Update for noexcept.
* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error
line number.
From-SVN: r174107
2011-05-24 10:28:13 +00:00
Paolo Carlini
23e4c4eec2
streambuf_iterator.h: Use noexcept per the FDIS.
...
2011-05-23 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/streambuf_iterator.h: Use noexcept per the FDIS.
(istreambuf_iterator<>::istreambuf_iterator(const
istreambuf_iterator&), ~istreambuf_iterator()): Add defaulted
in C++0x mode.
From-SVN: r174094
2011-05-23 23:03:42 +00:00
Paolo Carlini
525fe1cf88
unique_ptr.h: Use noexcept per the FDIS.
...
2011-05-21 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/unique_ptr.h: Use noexcept per the FDIS.
From-SVN: r174004
2011-05-21 21:50:39 +00:00
Paolo Carlini
2789f415a1
char_traits.h: Use noexcept throughout.
...
2011-05-20 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/char_traits.h: Use noexcept throughout.
* include/std/typeindex: Likewise.
* include/std/tuple (_Tuple_impl<>_Tuple_impl(_Tuple_impl&&)): Use
noexcept; adjust callers.
* include/bits/stl_pair.h (pair<>::pair(pair<>&&)): Use noexcept.
* testsuite/20_util/tuple/cons/noexcept_move_construct.cc: New.
* testsuite/20_util/pair/cons/noexcept_move_construct.cc: Likewise.
* testsuite/20_util/pair/noexcept_swap.cc: Likewise.
* testsuite/20_util/pair/noexcept_move_assign.cc: Likewise.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-warning
line numbers.
From-SVN: r173986
2011-05-21 00:05:03 +00:00
Paolo Carlini
173f26ae56
tuple (tuple<>::operator=(tuple&&)): Specify as noexcept.
...
2011-05-19 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/tuple (tuple<>::operator=(tuple&&)): Specify as
noexcept.
(__get_helper): Likewise.
(_Head_base<>::_M_head, _Tuple_impl<>::_M_head, _M_tail): Likewise.
* include/bits/move.h (swap): Likewise.
* include/bits/algorithmfwd.h (swap): Adjust.
* include/bits/stl_pair.h (pair<>::operator=(pair&&)): Spec noexcept.
* testsuite/util/testsuite_allocator.h (uneq_allocator): In C++0x
mode, prefer delete to access control to make the type not copy
assignable.
* testsuite/util/testsuite_tr1.h: Add test classes.
* testsuite/20_util/tuple/noexcept_swap.cc: New.
* testsuite/20_util/tuple/noexcept_move_assign.cc: Likewise.
* testsuite/25_algorithms/reverse/moveable.cc: Likewise, prefer
delete to access control.
* testsuite/25_algorithms/swap_ranges/moveable.cc: Likewise.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-warning
line numbers.
From-SVN: r173917
2011-05-19 17:20:22 +00:00
Jonathan Wakely
cf70f97b95
shared_ptr_base.h: Use noexcept.
...
2011-05-18 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/bits/shared_ptr_base.h: Use noexcept. Define special member
functions as defaulted/deleted.
* include/bits/shared_ptr.h: Use noexcept.
* 20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error line numbers.
* 20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.
From-SVN: r173882
2011-05-18 23:59:17 +01:00
Paolo Carlini
5d861bf2cb
initializer_list: Use noexcept specifier.
...
2011-05-18 Paolo Carlini <paolo.carlini@oracle.com>
* libsupc++/initializer_list: Use noexcept specifier.
(initializer_list<>::size, begin, end): Qualify as const.
* include/bits/move.h (__addressof, forward, move, addressof): Specify
as noexcept.
* include/std/bitset: Use noexcept specifier throughout.
* include/debug/bitset: Update.
* include/profile/bitset: Likewise.
From-SVN: r173871
2011-05-18 18:05:17 +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
4d4cf1444d
c++config (_GLIBCXX_NOEXCEPT, [...]): Add.
...
2011-05-15 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/c++config (_GLIBCXX_NOEXCEPT, _GLIBCXX_USE_NOEXCEPT):
Add.
* include/std/limits: Use the latter everywhere.
(numeric_limits<char16_t>, numeric_limits<char32_t>): Simplify
macro usages, the specializations exist only in C++0x mode.
* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error
line number.
From-SVN: r173774
2011-05-15 18:21:03 +00:00
Paolo Carlini
1f428429c4
move.h (move_if_noexcept): Add.
...
2011-04-27 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/move.h (move_if_noexcept): Add.
* testsuite/20_util/move_if_noexcept/requirements/
explicit_instantiation.cc: New.
* testsuite/20_util/move_if_noexcept/1.cc: Likewise.
From-SVN: r173044
2011-04-27 18:37:32 +00:00
Daniel Krugler
da8111a024
PR libstdc++/48635 (again)
...
2011-04-17 Daniel Krugler <daniel.kruegler@googlemail.com>
Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/48635 (again)
* include/bits/unique_ptr.h (unique_ptr<>::unique_ptr(unique_ptr<>&&),
unique_ptr<_Tp[]>::unique_ptr(unique_ptr<>&&),
unique_ptr<>::operator=(unique_ptr<>&&),
unique_ptr<_Tp[]>::operator=(unique_ptr<>&&)): Use forward<_Ep>, not
forward<_Dp>, to forward the deleter.
* testsuite/20_util/unique_ptr/assign/48635_neg.cc: New.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r172619
2011-04-17 21:46:11 +00:00
Daniel Krugler
d4610485cc
re PR libstdc++/48631 ([C++0x] default_delete<T[]> accepts pointer conversions in function call operator)
...
2011-04-15 Daniel Krugler <daniel.kruegler@googlemail.com>
Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/48631
* include/bits/unique_ptr.h (default_delete<_Tp[]>): Add deleted
function call operator.
* testsuite/20_util/default_delete/48631_neg.cc: New.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error
line numbers.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r172534
2011-04-16 02:02:29 +00:00
Daniel Krugler
2705a8d66e
re PR libstdc++/48635 ([C++0x] unique_ptr<T, D&> moves the deleter instead of copying it)
...
2011-04-15 Daniel Krugler <daniel.kruegler@googlemail.com>
Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/48635
* include/bits/unique_ptr.h (unique_ptr<>::operator=(unique_ptr&&),
unique_ptr<>::operator=(unique_ptr<>&&),
unique_ptr<_Tp[],>::operator=(unique_ptr&&),
unique_ptr<_Tp[],>::operator=(unique_ptr<>&&)): Forward the deleter
instead of moving it.
* testsuite/20_util/unique_ptr/assign/48635.cc: New.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r172532
2011-04-16 00:55:43 +00:00
Jonathan Wakely
0569d07d16
re PR libstdc++/48398 ([C++0x] std::unique_ptr<T, D> is broken when D::pointer is not T*)
...
2011-04-02 Jonathan Wakely <redi@gcc.gnu.org>
PR libstdc++/48398
* include/bits/unique_ptr.h (__tuple_type): Store pointer type.
* testsuite/20_util/unique_ptr/modifiers/48398.cc: New.
* testsuite/20_util/unique_ptr/requirements/pointer_type.cc: Remove
unused parameter name.
From-SVN: r171894
2011-04-02 20:32:15 +01:00
Paolo Carlini
ff2e697a03
random.h (negative_binomial_distribution<>:: negative_binomial_distribution(_IntType, double), [...]): Tweak construction of _M_gd.
...
2011-03-25 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/random.h (negative_binomial_distribution<>::
negative_binomial_distribution(_IntType, double),
negative_binomial_distribution<>::
negative_binomial_distribution(const param_type&)): Tweak
construction of _M_gd.
* include/bits/random.tcc (negative_binomial_distribution<>::
operator()): Adjust.
From-SVN: r171443
2011-03-25 10:06:33 +00:00
Paolo Carlini
113b21bdaf
random.h (negative_binomial_distribution<>:: negative_binomial_distribution(_IntType, double), [...]): Fix construction of _M_gd.
...
2011-03-24 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/random.h (negative_binomial_distribution<>::
negative_binomial_distribution(_IntType, double),
negative_binomial_distribution<>::
negative_binomial_distribution(const param_type&)): Fix
construction of _M_gd.
* include/bits/random.tcc (negative_binomial_distribution<>::
operator()): Fix computation, per Leger's algorithm.
* testsuite/util/testsuite_random.h (discrete_pdf,
negative_binomial_pdf, poisson_pdf, uniform_int_pdf): New.
(binomial_pdf): Swap last two parameters.
* testsuite/26_numerics/random/discrete_distribution/
operators/values.cc: New.
* testsuite/26_numerics/random/negative_binomial_distribution/
operators/values.cc: Likewise.
* testsuite/26_numerics/random/poisson_distribution/
operators/values.cc: Likewise.
* testsuite/26_numerics/random/uniform_int_distribution/
operators/values.cc: Likewise.
* testsuite/26_numerics/random/binomial_distribution/
operators/values.cc: Adjust.
From-SVN: r171411
2011-03-24 16:49:19 +00:00
Paolo Carlini
355e71b9df
shared_ptr.h (operator>, [...]): Add, per DR 1401.
...
2011-03-22 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/shared_ptr.h (operator>, operator<=, operator>=): Add,
per DR 1401.
(operator==, operator!=, operator<): Fix per the letter of DR 1401.
* include/bits/shared_ptr_base.h: Likewise for __shared_ptr.
* include/bits/unique_ptr.h (operator==, operator!=, operator<,
operator<=, operator>, operator>=): Fix per the letter of DR 1401.
* testsuite/20_util/shared_ptr/comparison/dr1401.cc: New.
* testsuite/20_util/unique_ptr/comparison/dr1401.cc: Likewise.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust.
From-SVN: r171293
2011-03-22 15:15:03 +00:00
Benjamin Kosnik
e5a44bd645
regex_compiler.h: Nest namespace versioning.
...
2011-03-14 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/regex_compiler.h: Nest namespace versioning.
* include/bits/regex_grep_matcher.tcc: Same.
* include/bits/regex_grep_matcher.h: Same.
* include/bits/regex_cursor.h: Same.
* include/bits/regex_nfa.h: Same.
* include/bits/regex_nfa.tcc: Same.
* include/bits/regex_grep_matcher.h: Version forward declarations.
* include/bits/c++config: Add namespace association for __regex.
* include/bits/regex.h: Make sub_match consistent.
From-SVN: r170978
2011-03-15 02:55:19 +00:00
Benjamin Kosnik
e95992339f
Makefile.am: Add functional.cc, shared_ptr.cc.
...
2011-03-14 Benjamin Kosnik <bkoz@redhat.com>
* src/Makefile.am: Add functional.cc, shared_ptr.cc.
* src/Makefile.in: Regenerate.
* libsupc++/Makefile.am: Add nested_exception.cc.
* libsupc++/Makefile.in: Regenerate.
* src/system_error.cc: Add ctor and dtor definitions for error_category.
* src/functional.cc: New. Add dtor definition for bad_function_call.
* src/stdexcept.cc: Add dtor definitions for domain_error,
invalid_argument, length_error, out_of_range, range_error,
overflow_error, underflow_error.
* src/future.cc: Add dtor definition for __future_base::_Result_base.
* src/shared_ptr.cc: New. Add dtor definition for bad_weak_ptr.
* src/thread.cc: Add dtor for thread::_Impl_base.
* include/std/system_error: Adjust.
* include/std/stdexcept: Same.
* include/std/future: Same.
* include/std/functional: Same.
* include/std/thread: Same.
* include/bits/shared_ptr_base.h: Same.
* libsupc++/nested_exception.cc: New. Add dtor for nested_exception.
* libsupc++/nested_exception.h: Adjust.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust line numbers.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Same.
* config/abi/pre/gnu.ver: Add new exports.
* include/bits/regex_compiler.h: Nest namespace versioning.
* include/bits/regex_grep_matcher.tcc: Same.
* include/bits/regex_grep_matcher.h: Same.
* include/bits/regex_cursor.h: Same.
* include/bits/regex_nfa.h: Same.
* include/bits/regex_nfa.tcc: Same.
From-SVN: r170975
2011-03-15 00:24:08 +00:00
Andrey Zholos
d8d4db3345
re PR libstdc++/48114 ([C++0x] binomial_distribution incorrect for p > .5 and geometric_distribution wrongly implements the TR1 definition)
...
2011-03-14 Andrey Zholos <aaz@althenia.net>
PR libstdc++/48114
* include/bits/random.h (geometric_distribution): Correct formula
in comment, per C++0x.
(geometric_distribution<>::param_type::param_type(double)): Fix check.
(geometric_distribution<>::param_type::_M_initialize):
Store log(1 - p).
* include/bits/random.tcc (geometric_distribution<>::operator()):
Fix computation.
(binomial_distribution<>::operator()): Likewise.
From-SVN: r170946
2011-03-14 17:57:48 +00:00
Paolo Carlini
60c5236ed1
[multiple changes]
...
2011-03-09 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/util/testsuite_rvalref.h: Minor tweaks.
2011-03-09 Jonathan Wakely <redi@gcc.gnu.org>
Chris Jefferson <chris@bubblescope.net>
Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/util/testsuite_rvalref.h (rvalstruct_compare_by_value):
New.
* testsuite/25_algorithms/sort_heap/check_compare_by_value.cc:
Likewise.
* testsuite/25_algorithms/partial_sort/check_compare_by_value:
Likewise.
* testsuite/25_algorithms/stable_sort/check_compare_by_value.cc:
Likewise.
* testsuite/25_algorithms/sort/check_compare_by_value: Likewise.
2011-03-09 Chris Jefferson <chris@bubblescope.net>
PR libstdc++/48038
* include/bits/stl_algo.h (__merge_backward): Rename to
__move_merge_backward and change to always move rather than copy.
(__move_merge): New function similar to std::merge except values
are moved instead of copied.
(__merge_adaptive, __merge_sort_loop): Change from using std::merge
and __merge_backward to __move_merge and __move_merge_backward.
From-SVN: r170827
2011-03-09 18:30:11 +00:00
Benjamin Kosnik
ed4f96af59
Makefile.am (inst_sources): Make source instantion files conditional.
...
2011-03-04 Benjamin Kosnik <bkoz@chula>
* src/Makefile.am (inst_sources): Make source instantion files
conditional.
(XTEMPLATE_FLAGS): Make -fno-implicit-templates conditional.
* src/Makefile.in: Regenerate.
* src/valarray-inst.cc: Move to..
* src/valarray.cc: ...this.
* acinclude.m4 (GLIBCXX_ENABLE_EXTERN_TEMPLATE]): Define.
* configure.ac (GLIBCXX_ENABLE_EXTERN_TEMPLATE): Use it.
* configure: Regenerate.
* include/Makefile.am (stamp-extern-template): Add.
* include/Makefile.in: Regenerate.
* doc/xml/manual/configure.xml: Document --enable-extern-template.
* include/bits/locale_classes.tcc: Adjust comment.
* include/bits/locale_facets.tcc: Same.
* include/bits/basic_ios.tcc: Same.
* include/bits/istream.tcc: Same.
* include/bits/codecvt.h: Same.
* include/bits/ostream.tcc: Same.
* include/bits/sstream.tcc: Same.
* include/bits/c++config: Same.
* include/bits/basic_string.tcc: Same.
* include/bits/ostream_insert.h: Same.
* include/bits/locale_facets_nonio.tcc: Same.
* include/bits/streambuf.tcc: Same.
* include/bits/allocator.h: Same.
* include/bits/fstream.tcc: Same.
* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust line numbers.
From-SVN: r170686
2011-03-04 21:51:56 +00:00
Paolo Carlini
1139a7354d
re PR libstdc++/47921 (pbump will overflow when input n is larger than 2G-1)
...
2011-02-28 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/47921
* include/std/streambuf (basic_streambuf<>::__safe_gbump,
__safe_pbump): Add.
* include/bits/streambuf.tcc (basic_streambuf<>::xgetn,
xputn): Use the latter.
* include/bits/streambuf_iterator.h: Likewise.
* src/strstream.cc: Likewise.
* src/streambuf.cc: Likewise.
* src/compatibility.cc: Likewise.
* src/istream.cc: Likewise.
* include/bits/fstream.tcc (basic_filebuf<>::xsgetn): Use setg
instead of gbump.
* include/std/sstream (basic_stringbuf<>::_M_pbump): Add.
* include/bits/sstream.tcc (basic_stringbuf<>::seekoff,
seekpos, _M_sync): Use setg, setp, and _M_pbump.
* config/abi/pre/gnu.ver: Tweak.
From-SVN: r170579
2011-02-28 23:50:57 +00:00
Jonathan Wakely
18b08cb9eb
regex.h (basic_regex::traits_type): Add typedef.
...
2011-02-17 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/bits/regex.h (basic_regex::traits_type): Add typedef.
(basic_regex::basic_regex(basic_regex&&)): Add noexcept.
(basic_regex::operator=(basic_regex&&)): Likewise.
(basic_regex::assign(basic_regex&&)): Likewise.
(operator==(sub_match,...)): Implement DR 1181.
(match_results::match_results(match_results&&)): Define.
(match_results::operator=(const match_results&)): Fix parameter type.
(match_results::operator=(match_results&&)): Define.
From-SVN: r170238
2011-02-17 02:39:16 +00:00
Jonathan Wakely
948ef71060
re PR libstdc++/47724 ([C++0x] Regex string anchors cause segfault)
...
2011-02-17 Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/47724
* include/bits/regex_compiler.h (_Scanner::_M_advance): Do not treat
line anchors as metacharacters.
* testsuite/28_regex/basic_regex/ctors/47724.cc: New.
From-SVN: r170236
2011-02-17 01:47:21 +00:00
Jonathan Wakely
8c53c3ae5a
regex.h (match_results::format): Use char_traits.
...
2011-02-16 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/bits/regex.h (match_results::format): Use char_traits.
From-SVN: r170225
2011-02-16 22:29:15 +00:00
Benjamin Kosnik
036e0d4f8f
atomic: Remove atomic_address, uplift to N3225.
...
2011-02-16 Benjamin Kosnik <bkoz@redhat.com>
* include/std/atomic: Remove atomic_address, uplift to N3225.
* include/bits/atomic_0.h: Same.
* include/bits/atomic_2.h: Same.
* include/bits/atomic_base.h: Same.
* testsuite/29_atomics/atomic_address/*: Delete.
From-SVN: r170217
2011-02-16 19:01:51 +00:00
Jonathan Wakely
bf6319b96a
regex.h (sub_match::sub_match): Add.
...
2011-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/bits/regex.h (sub_match::sub_match): Add.
(match_results::ready): Add.
(match_results::empty): Adjust.
(match_results::length): Add missing dereference.
(match_results::operator[],prefix,suffix): Add debug mode checks.
(match_results::cend): Re-use end().
(match_results::format): Adjust signatures.
(operator==(match_results,match_results)): Implement.
* include/bits/regex_compiler.h (_Scanner_base): Use constexpr.
* include/bits/regex_constants.h (syntax_option_type): Likewise.
* include/bits/regex_grep_matcher.h: Fix comment typo.
(_Specialized_results::_Specialized_results): Simplify.
* include/bits/regex_cursor.h: Fix comment typo.
* include/bits/regex_nfa.h: Likewise.
* testsuite/28_regex/basic_regex/ctors/basic/string_range_01_02_03.cc:
Fix error code, remove xfail.
* testsuite/28_regex/basic_regex/ctors/extended/
string_range_01_02_03.cc: Likewise.
From-SVN: r170158
2011-02-14 23:35:22 +00:00
Jonathan Wakely
75eec5b611
regex_compiler.h: Remove unnecessary bind() calls.
...
2011-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/bits/regex_compiler.h: Remove unnecessary bind() calls.
* include/bits/regex_nfa.h: Remove unnecessary base classes.
From-SVN: r170124
2011-02-14 10:04:04 +00:00