X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=libstdc%2B%2B-v3%2FChangeLog;h=7a35a3aa10406b0df22055ff8cd284793985da6e;hp=1d4dff8747caf230fad7dc0b569421e74add8c96;hb=bd7631e474accd9b790554ab18e324204c4e93c9;hpb=7f785f51cfb35d2a2c0cc7abb3b330eb206184e7 diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 1d4dff8747c..7a35a3aa104 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,396 @@ +2011-12-29 Paolo Carlini + + * include/bits/hashtable_policy.h (struct _Ebo_helper<>): Don't use + _N, badname on Solaris; minor stylistic changes. + +2011-12-29 François Dumont + + 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. + +2011-12-29 Jonathan Wakely + + PR libstdc++/51701 + * doc/xml/manual/extensions.xml (Input and Output): Remove reference + to RWLock class. + +2011-12-23 Jonathan Wakely + + * testsuite/tr1/2_general_utilities/shared_ptr/cons/ + weak_ptr_expired.cc: Modify to PASS instead of XFAIL. + +2011-12-23 Kai Tietz + + * config/os/mingw32-w64/os_defines.h (__USE_MINGW_ANSI_STDIO): Define. + +2011-12-23 Jonathan Wakely + + * include/c_global/cinttypes: Update comments that refer to TR1. + +2011-12-23 Jonathan Wakely + + PR libstdc++/49204 + * include/std/future (future_errc): Implement LWG 2056. + +2011-12-23 Jonathan Wakely + + * include/bits/regex.h (match_results::size_type): Use + allocator_traits. + +2011-12-22 Jonathan Wakely + + PR libstdc++/48362 + * testsuite/libstdc++-prettyprinters/48362.cc: New. + +2011-12-22 Jonathan Wakely + + PR libstdc++/48362 + * python/libstdcxx/v6/printers.py (StdTuplePrinter): Handle empty + tuples. + +2011-12-20 Jonathan Wakely + + PR libstdc++/51365 + * include/std/tuple (_Tuple_impl): Check __is_final as well as + is_empty. + * testsuite/20_util/tuple/51365.cc: New. + +2011-12-19 Benjamin Kosnik + + * libsupc++/eh_tm.cc (free_any_cxa_exception): Use + __GCC_ATOMIC_INT_LOCK_FREE, not _GLIBCXX_ATOMIC_BUILTINS_4. + +2011-12-19 Benjamin Kosnik + + * testsuite/performance/25_algorithms/search_n.cc: Disambiguate + local variable. + +2011-12-18 Jonathan Wakely + + * doc/xml/manual/iterators.xml: Replace "sect1" with "section". + * doc/xml/manual/algorithms.xml: Likewise. + * doc/html/manual/iterators.html: Likewise. + * doc/html/manual/algorithms.html: Likewise. + +2011-12-15 Paolo Carlini + Jonathan Wakely + + 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. + +2011-12-15 Benjamin Kosnik + + * testsuite/22_locale/num_put/put/char/9780-2.cc: Add test for "C" + locale, add sanity checks in case of grouping. + +2011-12-15 Jonathan Wakely + + PR libstdc++/51540 + * include/bits/stl_numeric.h (partial_sum): Adjust doxygen comments. + +2011-12-12 Paolo Carlini + + Revert: + 2011-12-12 Kai Tietz + + PR libstdc++/51135 + * libsupc++/cxxabi.h (__cxa_dtor_type): New type. + (__cxa_throw): Use it for destructor-argument. + * libsupc++/eh_throw.cc (__cxa_throw): Likewise. + * libsupc++/unwind-cxx.h (__cxa_exception): Change type of member + exceptionDestructor to __cxa_dtor_type. + * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_THISCALL_ON_DTOR): + Define. + (__cxa_dtor_type): Declare target secific type variant. + * config/os/mingw32/os_defines.h: Likewise. + +2011-12-12 Kai Tietz + + PR libstdc++/51135 + * libsupc++/cxxabi.h (__cxa_dtor_type): New type. + (__cxa_throw): Use it for destructor-argument. + * libsupc++/eh_throw.cc (__cxa_throw): Likewise. + * libsupc++/unwind-cxx.h (__cxa_exception): Change type of member + exceptionDestructor to __cxa_dtor_type. + * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_THISCALL_ON_DTOR): + Define. + (__cxa_dtor_type): Declare target secific type variant. + * config/os/mingw32/os_defines.h: Likewise. + +2011-12-11 Jonathan Wakely + + * doc/xml/manual/abi.xml: Replace gcc-x.y.z with GCC x.y.z or x.y, + remove excessive duplication of version information. + * doc/html/*: Regenerate. + +2011-12-10 Benjamin Kosnik + + * 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. + +2011-12-10 François Dumont + + * include/profile/unordered_set: Minor formatting changes. + (unordered_set<>::_M_profile_destruct, + unordered_multiset<>::_M_profile_destruct): Fix implementation to not + rely on normal implementation details anymore. + (unordered_set<>::_M_profile_resize, + unordered_multiset<>::_M_profile_resize): Implement consistently + accross all unordered containers. + (unordered_set<>::emplace, unordered_set<>::emplace_hint, + unordered_multiset<>::emplace, unordered_multset<>::emplace_hint): Add + to signal rehash to profiling system. + * include/profile/unordered_map: Likewise for unordered_map<> and + unordered_multimap<>. + +2011-12-09 François Dumont + + PR libstdc++/44436 (unordered containers emplace, emplace_hint bits) + * 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. + +2011-12-08 Jonathan Wakely + + * 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 + + 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 + + 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 + Chris Jefferson + + 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 + + * libsupc++/initializer_list: Do not declare anything if + __GXX_EXPERIMENTAL_CXX0X__ is not defined. + +2011-12-04 Jonathan Wakely + + * 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 + Jonathan Wakely + + * 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 + + * 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 + + * doc/xml/manual/utilities.xml: Remove outdated text. + +2011-12-02 Paolo Carlini + + * include/std/iomanip (put_money): Fix thinko, use __err local, + like in, eg, basic_ostream::_M_insert. + +2011-11-30 Benjamin Kosnik + + * 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: Adjust. + * doc/xml/manual/concurrency_extensions.xml: Add note. + + * testsuite/18_support/exception_ptr/lifespan.cc: Tweak. + * testsuite/lib/libstdc++.exp: Same. + +2011-11-29 François Dumont + + * 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 + + * 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 PR libstdc++/51288