OSDN Git Service

* include/bits/atomic_base.h (__calculate_memory_order): Rename to...
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / ChangeLog
index 5eb3f8d..bf5224e 100644 (file)
@@ -1,3 +1,413 @@
+2011-12-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * include/bits/atomic_base.h (__calculate_memory_order): Rename to...
+       (__cmpexch_failure_order): This, and rewrite as constexpr function.
+       (compare_exchange_strong, compare_exchange_weak): Use it.
+       * include/std/atomic (compare_exchange_strong, compare_exchange_weak):
+       Likewise.
+
+2011-12-07  François Dumont <fdumont@gcc.gnu.org>
+
+       PR libstdc++/51386
+       * include/bits/hashtable_policy.h (_Prime_rehash_policy::_M_next_bkt):
+       Fix computation of _M_prev_resize so that hashtable do not keep on
+       being rehashed when _M_max_load_factor is lower than 1.
+
+2011-12-06  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR libstdc++/51438
+       * libsupc++/nested_exception.h (nested_exception::~nested_exception):
+       Declare noexcept.
+       * libsupc++/nested_exception.cc: Adjust.
+       * testsuite/18_support/nested_exception/51438.cc: New.
+       * testsuite/18_support/nested_exception/throw_with_nested.cc: Adjust.
+       * testsuite/18_support/nested_exception/rethrow_if_nested.cc:
+       Likewise.
+
+       * src/shared_ptr.cc: Use noexcept where appropriate.
+       * include/std/system_error: Likewise.
+       * include/std/functional: Likewise.
+       * include/bits/shared_ptr_base.h: Likewise.
+       * src/stdexcept.cc: Use _GLIBCXX_USE_NOEXCEPT where appropriate.
+       * include/std/stdexcept: Likewise.
+       * libsupc++/bad_cast.cc: Likewise.
+       * libsupc++/bad_typeid.cc: Likewise.
+       * libsupc++/eh_exception.cc: Likewise.
+       * libsupc++/typeinfo: Likewise.
+       * libsupc++/exception: Likewise.
+       * libsupc++/eh_ptr.cc: Likewise.
+       * libsupc++/bad_alloc.cc: Likewise.
+       * libsupc++/exception_ptr.h: Likewise.
+
+       * include/std/chrono: Use noexcept where appropriate.
+       * src/chrono.cc: Likewise.
+
+2011-12-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
+           Chris Jefferson  <chris@bubblescope.net>
+
+       PR libstdc++/51183
+       * include/std/stl_pair.h (pair<>::__cons, pair<>::__do_cons): Remove.
+       (pair<>::pair(piecewise_construct_t, tuple<>, tuple<>): Only declare.
+       (pair<>::pair(tuple<>&, tuple<>&, _Index_tuple<>, _Index_tuple<>)):
+       Declare.
+       * include/std/tuple (pair<>::__cons, pair<>::__do_cons): Remove.
+       (pair<>::pair(tuple<>&, tuple<>&, _Index_tuple<>, _Index_tuple<>)):
+       Define.
+       (pair<>::pair(piecewise_construct_t, tuple<>, tuple<>): Define,
+       delegating to the latter.
+       * testsuite/20_util/pair/piecewise2.cc: New.
+
+2011-12-05  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * libsupc++/initializer_list: Do not declare anything if
+       __GXX_EXPERIMENTAL_CXX0X__ is not defined.
+
+2011-12-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * include/std/type_traits: Doxygen improvements.
+       * include/bits/move.h: Likewise.
+       * include/tr1/type_traits:  Likewise.
+       * include/tr2/type_traits:  Likewise.
+       * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
+       line numbers
+       * testsuite/20_util/forward/c_neg.cc: Likewise.
+       * testsuite/20_util/forward/f_neg.cc: Likewise.
+       * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
+       Likewise.
+       * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
+       Likewise.
+
+2011-12-04  Markus Trippelsdorf <markus@trippelsdorf.de>
+            Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * include/bits/stl_heap.h (pop_heap): Check for non-empty range in
+       overload taking a predicate.
+       * testsuite/25_algorithms/pop_heap/empty2_neg.cc: New.
+
+2011-12-03  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * include/debug/macros.h (__glibcxx_check_non_empty_range): Define.
+       * include/debug/debug.h (__glibcxx_requires_non_empty_range): Define.
+       * include/debug/formatter.h (__msg_non_empty_range): Add.
+       * src/debug.cc: Message text for __msg_non_empty_range.
+       * include/bits/stl_heap.h (pop_heap): Check for non-empty range.
+       * testsuite/25_algorithms/pop_heap/empty_neg.cc: New.
+
+2011-12-03  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * doc/xml/manual/utilities.xml: Remove outdated text.
+
+2011-12-02  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/std/iomanip (put_money): Fix thinko, use __err local,
+       like in, eg, basic_ostream::_M_insert.
+
+2011-11-30  Benjamin Kosnik  <bkoz@redhat.com>
+
+        * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Remove
+        size-specific macros. _GLIBCXX_ATOMIC_BUILTINS_1,
+        _GLIBCXX_ATOMIC_BUILTINS_2, _GLIBCXX_ATOMIC_BUILTINS_4,
+        _GLIBCXX_ATOMIC_BUILTINS_8. Use _GLIBCXX_ATOMIC_BUILTINS to
+        indicate use of C++11 atomic builtins.
+        * config.h.in: Regenerate.
+        * configure: Regenerate.
+        * include/Makefile.am (bits_sup_headers): Add atomic_lockfree_defines.h.
+        * include/Makefile.in: Regenerate.
+        * libsupc++/Makefile.am: Compile C++11 support with -std=gnu++0x.
+        * libsupc++/Makefile.in: Regenerate.
+
+        * include/bits/atomic_base.h: Move lock-free property macros...
+        * libsupc++/atomic_lockfree_defines.h: ...here.
+        * include/std/future: Use C++11 macros.
+        * libsupc++/eh_ptr.cc: Same.
+        * libsupc++/eh_throw.cc: Same.
+        * libsupc++/exception: Same.
+        * libsupc++/exception_ptr.h: Same.
+        * libsupc++/guard.cc: Same.
+        * libsupc++/nested_exception.cc: Same.
+        * libsupc++/nested_exception.h: Same.
+        * src/future.cc: Same.
+
+        * include/ext/atomicity.h: Use _GLIBCXX_ATOMIC_BUILTINS.
+
+        * doc/doxygen/user.cfg.in
+        * doc/xml/manual/concurrency_extensions.xml
+
+        * testsuite/18_support/exception_ptr/lifespan.cc
+        * testsuite/lib/libstdc++.exp
+
+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.
+
+2011-11-28  Andrew MacLeod  <amacleod@redhat.com>
+
+       * include/bits/atomic_base.h (ATOMIC_*_LOCK_FREE): Use new cpp
+       predefined macros.
+       * testsuite/29_atomics/headers/atomic/macros.cc: Add BOOL and POINTER
+       macro checks.  Check for expected compile time values.
+
+2011-11-28  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR libstdc++/51288
+       * include/std/iomanip (get_money, put_money): Use sentry.
+       * testsuite/27_io/manipulators/extended/get_money/char/51288.cc: New.
+       * testsuite/27_io/manipulators/extended/get_money/wchar_t/51288.cc:
+       Likewise.
+       * testsuite/27_io/manipulators/extended/put_money/char/51288.cc:
+       Likewise.
+       * testsuite/27_io/manipulators/extended/put_money/wchar_t/51288.cc:
+       Likewise.
+
+2011-11-27  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/xml/manual/using.xml (Prerequisites): Refer to x86 instead
+       of i386.
+
+2011-11-27  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * scripts/run_doxygen (problematic): Change Linux reference to
+       GNU/Linux.
+
+2011-11-26  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/xml/manual/abi.xml (Prerequisites): Refer to GNU/Linux.
+       Fix reference to GCC.
+
+2011-11-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       PR libstdc++/51296
+       * testsuite/30_threads/thread/native_handle/typesizes.cc: Do not run
+       on alpha*-*-osf*.
+       * testsuite/30_threads/future/cons/constexpr.cc: Disable debug
+       symbols.
+       * testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
+
+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.
+
+2011-11-21  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * include/std/functional (is_placeholder, is_bind_expression): Add
+       partial specializations for cv-qualified types.
+       * include/tr1/functional (is_placeholder, is_bind_expression): Add
+       partial specializations for std::bind and std::placeholders and for
+       cv-qualified types.
+       * testsuite/20_util/bind/cv_quals_3.cc: New.
+       * testsuite/tr1/3_function_objects/bind/cv_quals.cc: New.
+       * testsuite/tr1/3_function_objects/bind/mixed.cc: New.
+
+2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
+
+       * configure: Regenerate.
+
+2011-11-21  Daniel Krugler  <daniel.kruegler@googlemail.com>
+
+       PR libstdc++/51185
+       * include/std/type_traits (__is_base_to_derived_ref,
+       __is_lvalue_to_rvalue_ref): Fix.
+       * testsuite/20_util/is_constructible/51185.cc: New.
+       * testsuite/20_util/is_constructible/value-2.cc: Extend.
+       * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
+       line number.
+       * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
+       Likewise.
+       * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc
+       Likewise.
+
+2011-11-21  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/std/tuple (__conv_types, __one_by_one_convertible,
+       __all_convertible): Remove.
+       (tuple<>::tuple(_UElements&&...),
+       tuple<>::tuple(const tuple<_UElements...>&),
+       tuple<>::tuple(tuple<_UElements...>&&)): Remove wa for c++/48322.
+       * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error
+       line number.
+
+2011-11-20  Jason Merrill  <jason@redhat.com>
+
+       PR c++/48322
+       * include/std/tuple (tuple(_UElements&&...)): Fix SFINAE.
+
+       * testsuite/20_util/bind/ref_neg.cc: Adjust error markings.
+
+2011-11-20  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * include/backward/binders.h: Fix examples in doxygen comments and
+       suggest using std::bind instead.
+
+2011-11-20  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * doc/xml/manual/status_cxx2011.xml: Fix docbook markup.
+
+2011-11-20  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * doc/xml/manual/appendix_contributing.xml: Do not use "here" as link
+       text.
+       * doc/xml/faq.xml: Likewise. Do not request standard library issues
+       to be reported to the libstdc++ mailing list.
+       * doc/xml/manual/status_cxx2011.xml: Document implementation-defined
+       behaviour.
+       * doc/xml/manual/status_cxxtr1.xml: Likewise.
+       * doc/xml/manual/utilities.xml: Fix grammar, probably caused by a
+       global search and replace of "part" by "chapter".
+       * doc/xml/manual/shared_ptr.xml: Remove outdated information.
+       * doc/xml/manual/messages.xml: Be more specific about systems where
+       using 'int' for catalog handle is not a problem, mention LWG issue.
+
+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.
+
+2011-11-18  Harti Brandt  <hartmut.brandt@dlr.de>
+
+       PR libstdc++/51209
+       * include/bits/hashtable.h (_Hashtable<>::_M_find_node): Return
+       nullptr when no node is found.
+       * include/tr1/hashtable.h (_Hashtable<>::_M_find_node): Return
+       zero when no node is found.
+
+2011-11-18  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * src/hash-long-double-aux.cc: Rename to...
+       * src/hash-long-double-tr1-aux.cc: ... this.
+       * src/compatibility-ldbl.cc: Adjust.
+       * src/hash_tr1.cc: Likewise.
+       * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc.
+       * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs
+       for integer types, hash<float>::operator(), hash<double>::operator(),
+       hash<long double>::operator()): Declare noexcept.
+       * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise.
+       * include/debug/vector (hash<__debug::vector>::operator()): Likewise.
+       * include/std/system_error (hash<error_code>::operator()): Likewise.
+       * include/std/thread (hash<thread::id>::operator()): Likewise.
+       * include/std/bitset (hash<bitset>::operator()): Likewise.
+       * include/std/typeindex (hash<type_index>::operator()): Likewise.
+       * include/profile/bitset (hash<__profile::vector>::operator()):
+       Likewise.
+       * include/profile/vector (hash<__profile::vector>::operator()):
+       Likewise.
+       * include/ext/vstring.h (hash<__vstring>::operator(),
+       hash<__wvstring>::operator(), hash<__u16vstring>::operator(),
+       hash<__u32vstring>::operator()): Likewise.
+       * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise.
+       * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()):
+       Likewise.
+       * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise.
+       * include/bits/basic_string.h (hash<string>::operator(),
+       hash<wstring>::operator(), hash<u16string>::operator(),
+       hash<u32string>::operator()): Likewise.
+       * include/bits/vector.tcc (hash<vector>::operator()): Likewise.
+       * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise.
+       * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of
+       throw().
+
+2011-11-17  Richard Henderson  <rth@redhat.com>
+
+       PR libstdc++/51181
+       * libsupc++/eh_tm.cc (free_any_cxa_exception): Protect the use
+       of __sync_sub_and_fetch with _GLIBCXX_ATOMIC_BUILTINS_4.
+
+2011-11-18  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * testsuite/30_threads/thread/native_handle/typesizes.cc: Do not run
+       on darwin.
+
+2011-11-17  Jason Merrill  <jason@redhat.com>
+
+       * testsuite/21_strings/basic_string/cons/char/moveable2.cc
+       (tstring): Add defaulted move assignment.
+       * testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc
+       (tstring): Add defaulted move assignment.
+       * testsuite/util/testsuite_tr1.h (NoexceptMoveConsClass): Add
+       defaulted move assignment operator.
+       (NoexceptMoveAssignClass): Add defaulted move constructor.
+
+2011-11-17  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * doc/xml/manual/status_cxx2011.xml: Status of piecewise construction
+       and ios_base::failure.
+       * doc/xml/manual/backwards_compatibility.xml: List headers in
+       alphabetical order.
+
+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.
+
+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.
+
+2011-11-15  Jason Dick  <dickphd@gmail.com>
+
+       PR libstdc++/51133
+       * include/tr1/poly_hermite.tcc (__poly_hermite_recursion): Fix
+       wrong sign in recursion relation.
+
 2011-11-14  Paolo Carlini  <paolo.carlini@oracle.com>
 
        * include/c_global/cmath (frexp, modf, remquo): Do not mark constexpr,