1*fb8a8121Smrg2019-12-30 Corentin Gay <gay@adacore.com> 2*fb8a8121Smrg 3*fb8a8121Smrg * acinclude.m4 (vxworks*): New entry. Set ac_has_nanosleep=yes. 4*fb8a8121Smrg * configure: Regenerate. 5*fb8a8121Smrg 6*fb8a8121Smrg2019-12-30 Jerome Lambourg <lambourg@adacore.com> 7*fb8a8121Smrg Olivier Hainque <hainque@adacore.com> 8*fb8a8121Smrg 9*fb8a8121Smrg * config/os/vxworks/os_defines.h 10*fb8a8121Smrg (NOMINMAX): Always redefine to 1. 11*fb8a8121Smrg (_NO_CPP_INLINES): Likewise. 12*fb8a8121Smrg (_GLIBCXX_USE_WEAK_REF): Define to 1 for RTP on 13*fb8a8121Smrg VxWorks >= 7, to 0 otherwise. 14*fb8a8121Smrg (_GLIBCXX_HAVE_TLS): Define to 1. 15*fb8a8121Smrg For VxWorks >= 7: 16*fb8a8121Smrg (_GLIBCXX_USE_C99_MATH): Define to 1. 17*fb8a8121Smrg (_GLIBCXX_USE_C99_MATH_FP_MACROS_DYNAMIC): Define to 0. 18*fb8a8121Smrg (_HAS_TR1_DECLARATIONS): Redefine to 0. 19*fb8a8121Smrg For VxWorks < 7, RTP: 20*fb8a8121Smrg (_GLIBCXX_INCLUDE_NEXT_C_HEADERS): Define to 1. 21*fb8a8121Smrg (_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC): Redefine to 1. 22*fb8a8121Smrg (__CORRECT_ISO_CPP11_MATH_H_PROTO_FP): Define. 23*fb8a8121Smrg For VxWorks < 7, kernel: #include <vxWorks.h> 24*fb8a8121Smrg 25*fb8a8121Smrg2019-12-25 Alexandre Oliva <oliva@adacore.com> 26*fb8a8121Smrg 27*fb8a8121Smrg * crossconfig.m4 (GLIBCXX_CROSSCONFIG) [*-vxworks*]: Define 28*fb8a8121Smrg long double functions as available if declared by math.h. 29*fb8a8121Smrg (GLIBCXX_CHECK_MATH_DECL, GLIBCXX_CHECK_MATH_DECLS): New. 30*fb8a8121Smrg * configure: Rebuild. 31*fb8a8121Smrg 32*fb8a8121Smrg2019-12-20 Jonathan Wakely <jwakely@redhat.com> 33*fb8a8121Smrg 34*fb8a8121Smrg PR libstdc++/92927 35*fb8a8121Smrg * include/bits/alloc_traits.h (__alloc_on_copy, __alloc_on_move) 36*fb8a8121Smrg (__alloc_on_swap): Add inline specifier. 37*fb8a8121Smrg 38*fb8a8121Smrg2019-12-20 Jerome Lambourg <lambourg@adacore.com> 39*fb8a8121Smrg 40*fb8a8121Smrg * acinclude.m4 (GLIBCXX_CHECK_SETRLIMIT): Test with AC_LANG_CPLUSPLUS. 41*fb8a8121Smrg * configure: Regenerate. 42*fb8a8121Smrg 43*fb8a8121Smrg2019-12-20 François Dumont <fdumont@gcc.gnu.org> 44*fb8a8121Smrg 45*fb8a8121Smrg * testsuite/23_containers/map/48101_neg.cc: Add versioned namespace 46*fb8a8121Smrg pattern to tested error message. 47*fb8a8121Smrg * testsuite/23_containers/multimap/48101_neg.cc: Likewise. 48*fb8a8121Smrg * testsuite/30_threads/headers/stop_token/synopsis.cc: Add 49*fb8a8121Smrg dg-require-normal-namepace. 50*fb8a8121Smrg 51*fb8a8121Smrg * python/libstdcxx/v6/printers.py (lookup_node_type): Remove redundant 52*fb8a8121Smrg call to lookup_node_type. 53*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/80276.cc: Define 54*fb8a8121Smrg _GLIBCXX_USE_CXX11_ABI to 0. 55*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/91997.cc: Use regexp-test to check 56*fb8a8121Smrg 'a' content. 57*fb8a8121Smrg 58*fb8a8121Smrg2019-12-20 Jerome Lambourg <lambourg@adacore.com> 59*fb8a8121Smrg 60*fb8a8121Smrg * acinclude.m4 (_GLIBCXX_USE_PTHREAD_RWLOCK_T): Checks that _PTHREADS 61*fb8a8121Smrg is defined after including gthr.h. 62*fb8a8121Smrg * configure: Regenerate. 63*fb8a8121Smrg 64*fb8a8121Smrg2019-12-12 Jonathan Wakely <jwakely@redhat.com> 65*fb8a8121Smrg 66*fb8a8121Smrg * libsupc++/compare (common_comparison_category): Define without using 67*fb8a8121Smrg concepts and optimise for compilation time. 68*fb8a8121Smrg (__detail::__cmp_cat_ids): Remove. 69*fb8a8121Smrg (__detail::__common_cmp_cat): Replace class template and 70*fb8a8121Smrg specializations with constexpr function. 71*fb8a8121Smrg 72*fb8a8121Smrg2019-12-12 François Dumont <fdumont@gcc.gnu.org> 73*fb8a8121Smrg 74*fb8a8121Smrg * include/tr1/cctype: Add _GLIBCXX_BEGIN_VERSION_NAMESPACE and 75*fb8a8121Smrg _GLIBCXX_END_VERSION_NAMESPACE. 76*fb8a8121Smrg * include/tr1/cfenv: Likewise. 77*fb8a8121Smrg * include/tr1/cinttypes: Likewise. 78*fb8a8121Smrg * include/tr1/cstdint: Likewise. 79*fb8a8121Smrg * include/tr1/cstdio: Likewise. 80*fb8a8121Smrg * include/tr1/cstdlib: Likewise. 81*fb8a8121Smrg * include/tr1/cwchar: Likewise. 82*fb8a8121Smrg * include/tr1/cwctype: Likewise. 83*fb8a8121Smrg 84*fb8a8121Smrg * src/c++11/random.cc: Include <cctype>. 85*fb8a8121Smrg (random_devise::_M_init_pretr1): Qualify isdigit call. 86*fb8a8121Smrg 87*fb8a8121Smrg2019-12-10 Thomas Rodgers <trodgers@redhat.com> 88*fb8a8121Smrg 89*fb8a8121Smrg * include/pstl/glue_numeric_defs.h: Restore enable_if lost during 90*fb8a8121Smrg original import of pstl. 91*fb8a8121Smrg * include/pstl/glue_numeric_impl.h: Likewise. 92*fb8a8121Smrg 93*fb8a8121Smrg2019-12-10 Jonathan Wakely <jwakely@redhat.com> 94*fb8a8121Smrg 95*fb8a8121Smrg (span(ContiguousIterator, Sentinel)): Add conditional noexcept. 96*fb8a8121Smrg * include/std/span (span(ContiguousIterator, size_type)): Change 97*fb8a8121Smrg noexcept to be unconditionally true. 98*fb8a8121Smrg * testsuite/23_containers/span/nothrow_cons.cc: New test. 99*fb8a8121Smrg 100*fb8a8121Smrg2019-12-10 François Dumont <fdumont@gcc.gnu.org> 101*fb8a8121Smrg 102*fb8a8121Smrg * include/bits/stl_algobase.h 103*fb8a8121Smrg (__copy_move_a1<>(_II, _II, _OI)): New. 104*fb8a8121Smrg (__copy_move_a1<>(_Deque_iterator<>, _Deque_iterator<>, _OI)): New. 105*fb8a8121Smrg (__copy_move_a1<>(_Deque_iterator<>, _Deque_iterator<>, 106*fb8a8121Smrg _Deque_iterator<>)): New. 107*fb8a8121Smrg (__copy_move_a1<>(_II, _II, _Deque_iterator<>)): New. 108*fb8a8121Smrg (__copy_move_a<>(_II, _II, _OI)): Adapt, call __copy_move_a1<>. 109*fb8a8121Smrg (__copy_move_a<>(const _Safe_iterator<>&, const _Safe_iterator<>&, 110*fb8a8121Smrg _OI)): New. 111*fb8a8121Smrg (__copy_move_a<>(const _Safe_iterator<>&, const _Safe_iterator<>&, 112*fb8a8121Smrg const _Safe_iterator<>&)): New. 113*fb8a8121Smrg (__copy_move_a<>(_II, _II, const _Safe_iterator<>&)): New. 114*fb8a8121Smrg (copy, move): Adapt, call __copy_move_a. 115*fb8a8121Smrg (__copy_move_backward_a1<>(_II, _II, _OI)): New, 116*fb8a8121Smrg call __copy_move_backward_a2. 117*fb8a8121Smrg (__copy_move_backward_a1<>(_Deque_iterator<>, _Deque_iterator<>, _OI)): New. 118*fb8a8121Smrg (__copy_move_backward_a1<>(_Deque_iterator<>, _Deque_iterator<>, 119*fb8a8121Smrg _Deque_iterator<>)): New. 120*fb8a8121Smrg (__copy_move_backward_a1<>(_II, _II, _Deque_iterator<>)): New. 121*fb8a8121Smrg (__copy_move_backward_a<>(_II, _II, _OI)): Adapt, call 122*fb8a8121Smrg __copy_move_backward_a1<>. 123*fb8a8121Smrg (__copy_move_backward_a<>(const _Safe_iterator<>&, const _Safe_iterator<>&, 124*fb8a8121Smrg _OI)): New. 125*fb8a8121Smrg (__copy_move_backward_a<>(const _Safe_iterator<>&, const _Safe_iterator<>&, 126*fb8a8121Smrg const _Safe_iterator<>&)): New. 127*fb8a8121Smrg (__copy_move_backward_a<>(_II, _II, const _Safe_iterator<>&)): New. 128*fb8a8121Smrg (copy_backward, move_backward): Adapt, call __copy_move_backward_a<>. 129*fb8a8121Smrg (__fill_a): Rename into... 130*fb8a8121Smrg (__fill_a1): ... this. 131*fb8a8121Smrg (__fill_a1(__normal_iterator<>, __normal_iterator<>, const _Tp&)): New. 132*fb8a8121Smrg (__fill_a1(const _Deque_iterator<>&, const _Deque_iterator<>&, _VTp)): 133*fb8a8121Smrg New. 134*fb8a8121Smrg (__fill_a(_FIte, _FIte, const _Tp&)): New, call __fill_a1. 135*fb8a8121Smrg (__fill_a(const _Safe_iterator<>&, const _Safe_iterator<>&, 136*fb8a8121Smrg const _Tp&)): New. 137*fb8a8121Smrg (fill): Adapt, remove __niter_base usage. 138*fb8a8121Smrg (__fill_n_a): Rename into... 139*fb8a8121Smrg (__fill_n_a1): ...this. 140*fb8a8121Smrg (__fill_n_a(const _Safe_iterator<>&, _Size, const _Tp&, 141*fb8a8121Smrg input_iterator_tag)): New. 142*fb8a8121Smrg (__fill_n_a(_OI, _Size, const _Tp&, output_iterator_tag)): New, call 143*fb8a8121Smrg __fill_n_a1. 144*fb8a8121Smrg (__fill_n_a(_OI, _Size, const _Tp&, random_access_iterator_tag)): New, 145*fb8a8121Smrg call __fill_a. 146*fb8a8121Smrg (__equal_aux): Rename into... 147*fb8a8121Smrg (__equal_aux1): ...this. 148*fb8a8121Smrg (__equal_aux1(_Deque_iterator<>, _Deque_iterator<>, _OI)): New. 149*fb8a8121Smrg (__equal_aux1(_Deque_iterator<>, _Deque_iterator<>, 150*fb8a8121Smrg _Deque_iterator<>)): New. 151*fb8a8121Smrg (__equal_aux1(_II, _II, _Deque_iterator<>)): New. 152*fb8a8121Smrg (__equal_aux(_II1, _II1, _II2)): New, call __equal_aux1. 153*fb8a8121Smrg (__equal_aux(const _Safe_iterator<>&, const _Safe_iterator<>&, 154*fb8a8121Smrg _OI)): New. 155*fb8a8121Smrg (__equal_aux(const _Safe_iterator<>&, const _Safe_iterator<>&, 156*fb8a8121Smrg const _Safe_iterator<>&)): New. 157*fb8a8121Smrg (__equal_aux(_II, _II, const _Safe_iterator<>&)): New. 158*fb8a8121Smrg (equal(_II1, _II1, _II2)): Adapt. 159*fb8a8121Smrg * include/bits/stl_deque.h 160*fb8a8121Smrg (fill, copy, copy_backward, move, move_backward): Remove. 161*fb8a8121Smrg * include/bits/deque.tcc: Include <bits/stl_algobase.h>. 162*fb8a8121Smrg (__fill_a1): New. 163*fb8a8121Smrg (__copy_move_dit): New. 164*fb8a8121Smrg (__copy_move_a1): New, use latter. 165*fb8a8121Smrg (__copy_move_a1(_II, _II, _Deque_iterator<>)): New. 166*fb8a8121Smrg (__copy_move_backward_dit): New. 167*fb8a8121Smrg (__copy_move_backward_a1): New, use latter. 168*fb8a8121Smrg (__copy_move_backward_a1(_II, _II, _Deque_iterator<>)): New. 169*fb8a8121Smrg (__equal_dit): New. 170*fb8a8121Smrg (__equal_aux1): New, use latter. 171*fb8a8121Smrg (__equal_aux1(_II, _II, _Deque_iterator<>)): New. 172*fb8a8121Smrg * include/std/numeric (__is_random_access_iter): Move... 173*fb8a8121Smrg * include/bits/stl_iterator_base_types.h (__is_random_access_iter): ... 174*fb8a8121Smrg here. Provide pre-C++11 definition. 175*fb8a8121Smrg * include/debug/debug.h (_Safe_iterator<>): New declaration. 176*fb8a8121Smrg * include/debug/safe_iterator.h (_Safe_iterator<>::_M_can_advance): Add 177*fb8a8121Smrg __strict parameter. 178*fb8a8121Smrg * include/debug/safe_iterator.tcc: Include <bits/stl_algobase.h>. 179*fb8a8121Smrg (_Safe_iterator<>::_M_can_advance): Adapt. 180*fb8a8121Smrg (std::__copy_move_a, std::__copy_move_backward_a, __fill_a): New. 181*fb8a8121Smrg (__fill_n_a, __equal_aux): New. 182*fb8a8121Smrg * include/debug/stl_iterator.h (__niter_base): Remove. 183*fb8a8121Smrg * include/debug/vector (__niter_base): Remove. 184*fb8a8121Smrg * testsuite/performance/25_algorithms/copy_backward_deque_iterators.cc: 185*fb8a8121Smrg Include <vector> and <list>. Add benches. 186*fb8a8121Smrg * testsuite/performance/25_algorithms/copy_deque_iterators.cc: Likewise. 187*fb8a8121Smrg * testsuite/performance/25_algorithms/equal_deque_iterators.cc: Likewise. 188*fb8a8121Smrg * testsuite/25_algorithms/copy/debug/1_neg.cc: New. 189*fb8a8121Smrg * testsuite/25_algorithms/copy/deque_iterators/2.cc: New. 190*fb8a8121Smrg * testsuite/25_algorithms/copy/deque_iterators/31.cc: New. 191*fb8a8121Smrg * testsuite/25_algorithms/copy/deque_iterators/32.cc: New. 192*fb8a8121Smrg * testsuite/25_algorithms/copy/deque_iterators/33.cc: New. 193*fb8a8121Smrg * testsuite/25_algorithms/copy/deque_iterators/41.cc: New. 194*fb8a8121Smrg * testsuite/25_algorithms/copy/deque_iterators/42.cc: New. 195*fb8a8121Smrg * testsuite/25_algorithms/copy/deque_iterators/43.cc: New. 196*fb8a8121Smrg * testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc (test02): 197*fb8a8121Smrg New. 198*fb8a8121Smrg * testsuite/25_algorithms/copy_backward/deque_iterators/2.cc: New. 199*fb8a8121Smrg * testsuite/25_algorithms/equal/deque_iterators/1.cc: New. 200*fb8a8121Smrg * testsuite/25_algorithms/fill/deque_iterators/1.cc: New. 201*fb8a8121Smrg * testsuite/25_algorithms/move/deque_iterators/2.cc: New. 202*fb8a8121Smrg * testsuite/25_algorithms/move_backward/deque_iterators/2.cc: New. 203*fb8a8121Smrg 204*fb8a8121Smrg2019-12-10 Jonathan Wakely <jwakely@redhat.com> 205*fb8a8121Smrg 206*fb8a8121Smrg PR libstdc++/92886 207*fb8a8121Smrg * include/bits/ios_base.h (std::ios_base::trunc): Fix comment. 208*fb8a8121Smrg 209*fb8a8121Smrg * include/std/complex (__cpp_lib_constexpr_complex): Define. 210*fb8a8121Smrg * include/std/version (__cpp_lib_constexpr_complex): Likewise. 211*fb8a8121Smrg * testsuite/26_numerics/complex/1.cc: New test. 212*fb8a8121Smrg * testsuite/26_numerics/complex/2.cc: New test. 213*fb8a8121Smrg 214*fb8a8121Smrg * include/std/span: Do not include <tuple> and <utility>. 215*fb8a8121Smrg (tuple_size, tuple_element): Declare. 216*fb8a8121Smrg 217*fb8a8121Smrg * include/bits/iterator_concepts.h (indirect_result_t): Do not apply 218*fb8a8121Smrg iter_reference_t to parameter pack. 219*fb8a8121Smrg * testsuite/24_iterators/indirect_callable/projected.cc: New test. 220*fb8a8121Smrg 221*fb8a8121Smrg2019-12-09 Jonathan Wakely <jwakely@redhat.com> 222*fb8a8121Smrg 223*fb8a8121Smrg * include/bits/range_access.h (ranges::enable_safe_range): Define. 224*fb8a8121Smrg (ranges::begin, ranges::end, ranges::rbegin, ranges::rend): Constrain 225*fb8a8121Smrg to only accept types satisfying safe_range and treat argument as an 226*fb8a8121Smrg lvalue when calling a member of performing ADL. 227*fb8a8121Smrg (ranges::__detail::__range_impl, ranges::__detail::__forwarding_range): 228*fb8a8121Smrg Remove. 229*fb8a8121Smrg (ranges::range): Adjust definition. 230*fb8a8121Smrg (ranges::safe_range): Define. 231*fb8a8121Smrg (ranges::iterator_t, ranges::range_difference_t): Reorder definitions 232*fb8a8121Smrg to match the synopsis in the working draft. 233*fb8a8121Smrg (ranges::disable_sized_range): Remove duplicate definition. 234*fb8a8121Smrg * include/experimental/string_view (ranges::enable_safe_range): Add 235*fb8a8121Smrg partial specialization for std::experimental::basic_string_view. 236*fb8a8121Smrg * include/std/ranges (ranges::viewable_range, ranges::subrange) 237*fb8a8121Smrg (ranges::empty_view, ranges::iota_view): Use safe_range. Specialize 238*fb8a8121Smrg enable_safe_range. 239*fb8a8121Smrg (ranges::safe_iterator_t, ranges::safe_subrange_t): Define. 240*fb8a8121Smrg * include/std/span (ranges::enable_safe_range): Add partial 241*fb8a8121Smrg specialization for std::span. 242*fb8a8121Smrg * include/std/string_view (ranges::enable_safe_range): Likewise for 243*fb8a8121Smrg std::basic_string_view. 244*fb8a8121Smrg * testsuite/std/ranges/access/begin.cc: Adjust expected results. 245*fb8a8121Smrg * testsuite/std/ranges/access/cbegin.cc: Likewise. 246*fb8a8121Smrg * testsuite/std/ranges/access/cdata.cc: Likewise. 247*fb8a8121Smrg * testsuite/std/ranges/access/cend.cc: Likewise. 248*fb8a8121Smrg * testsuite/std/ranges/access/crbegin.cc: Likewise. 249*fb8a8121Smrg * testsuite/std/ranges/access/crend.cc: Likewise. 250*fb8a8121Smrg * testsuite/std/ranges/access/data.cc: Likewise. 251*fb8a8121Smrg * testsuite/std/ranges/access/end.cc: Likewise. 252*fb8a8121Smrg * testsuite/std/ranges/access/rbegin.cc: Likewise. 253*fb8a8121Smrg * testsuite/std/ranges/access/rend.cc: Likewise. 254*fb8a8121Smrg * testsuite/std/ranges/empty_view.cc: Test ranges::begin and 255*fb8a8121Smrg ranges::end instead of unqualified calls to begin and end. 256*fb8a8121Smrg * testsuite/std/ranges/safe_range.cc: New test. 257*fb8a8121Smrg * testsuite/std/ranges/safe_range_types.cc: New test. 258*fb8a8121Smrg * testsuite/util/testsuite_iterators.h: Add comment about safe_range. 259*fb8a8121Smrg 260*fb8a8121Smrg * testsuite/27_io/filesystem/path/concat/strings.cc: Test more cases. 261*fb8a8121Smrg 262*fb8a8121Smrg PR libstdc++/92853 263*fb8a8121Smrg * src/c++17/fs_path.cc (filesystem::path::operator+=(const path&)): 264*fb8a8121Smrg Do not process a trailing directory separator twice. 265*fb8a8121Smrg * testsuite/27_io/filesystem/path/concat/92853.cc: New test. 266*fb8a8121Smrg * testsuite/27_io/filesystem/path/concat/path.cc: Test more cases. 267*fb8a8121Smrg 268*fb8a8121Smrg2019-12-09 François Dumont <fdumont@gcc.gnu.org> 269*fb8a8121Smrg 270*fb8a8121Smrg * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: 271*fb8a8121Smrg Fix static_assert line number. 272*fb8a8121Smrg * testsuite/23_containers/array/tuple_interface/ 273*fb8a8121Smrg tuple_element_debug_neg.cc: Likewise. 274*fb8a8121Smrg 275*fb8a8121Smrg2019-12-07 Andrew Pinski <apinski@marvell.com> 276*fb8a8121Smrg 277*fb8a8121Smrg * config/cpu/aarch64/opt/ext/opt_random.h: Wrap around with check 278*fb8a8121Smrg for little-endian like ext/random is done. 279*fb8a8121Smrg 280*fb8a8121Smrg2019-12-05 Jonathan Wakely <jwakely@redhat.com> 281*fb8a8121Smrg 282*fb8a8121Smrg * testsuite/23_containers/span/lwg3255.cc: Fix test. Constructing a 283*fb8a8121Smrg span of non-const elements should not be possible from a const array 284*fb8a8121Smrg or an array of const elements. 285*fb8a8121Smrg 286*fb8a8121Smrg2019-12-05 JeanHeyd "ThePhD" Meneide <phdofthehouse@gmail.com> 287*fb8a8121Smrg 288*fb8a8121Smrg Implement P1872R0 and P1394R0 for std::span 289*fb8a8121Smrg * include/bits/range_access.h (__adl_begin, __adl_end): Remove. 290*fb8a8121Smrg (sentinel_t, range_value_t, range_reference_t) 291*fb8a8121Smrg (range_rvalue_reference_t, __forwarding_range, disable_sized_range) 292*fb8a8121Smrg (output_range, input_range, forward_range, bidirectional_range) 293*fb8a8121Smrg (random_access_range, contiguous_range, common_range): Move here from 294*fb8a8121Smrg <ranges>, to make this the "ranges lite" internal header. 295*fb8a8121Smrg * include/std/ranges: Move basic aliases and concepts to 296*fb8a8121Smrg <bits/range_access.h>. 297*fb8a8121Smrg * include/std/span: Use concepts and ranges:: calls instead of 298*fb8a8121Smrg enable_if and friends. 299*fb8a8121Smrg * include/std/type_traits: Add __is_array_convertible trait. 300*fb8a8121Smrg 301*fb8a8121Smrg2019-12-05 Jonathan Wakely <jwakely@redhat.com> 302*fb8a8121Smrg 303*fb8a8121Smrg * include/bits/stl_algobase.h (lexicographical_compare_three_way): 304*fb8a8121Smrg Define for C++20. 305*fb8a8121Smrg * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc: New 306*fb8a8121Smrg test. 307*fb8a8121Smrg * testsuite/25_algorithms/lexicographical_compare_three_way/ 308*fb8a8121Smrg constexpr.cc: New test. 309*fb8a8121Smrg 310*fb8a8121Smrg * python/libstdcxx/v6/printers.py (StdCmpCatPrinter): New printer. 311*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/cxx20.cc: New test. 312*fb8a8121Smrg 313*fb8a8121Smrg * include/bits/cpp_type_traits.h (__is_byte<char8_t>): Add 314*fb8a8121Smrg specialization. 315*fb8a8121Smrg * include/std/array (operator<=>): Likewise. 316*fb8a8121Smrg * testsuite/23_containers/array/comparison_operators/constexpr.cc: 317*fb8a8121Smrg Test three-way comparisons and arrays of unsigned char. 318*fb8a8121Smrg * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust 319*fb8a8121Smrg dg-error line numbers. 320*fb8a8121Smrg 321*fb8a8121Smrg2019-12-03 Jonathan Wakely <jwakely@redhat.com> 322*fb8a8121Smrg 323*fb8a8121Smrg * include/bits/stl_pair.h [__cpp_lib_three_way_comparison] 324*fb8a8121Smrg (operator<=>): Define for C++20. 325*fb8a8121Smrg * libsupc++/compare (__cmp2way_res_t): Rename to __cmp3way_res_t, 326*fb8a8121Smrg move into __detail namespace. Do not turn argument types into lvalues. 327*fb8a8121Smrg (__cmp3way_helper): Rename to __cmp3way_res_impl, move into __detail 328*fb8a8121Smrg namespace. Constrain with concepts instead of using void_t. 329*fb8a8121Smrg (compare_three_way_result): Adjust name of base class. 330*fb8a8121Smrg (compare_three_way_result_t): Use __cmp3way_res_impl directly. 331*fb8a8121Smrg (__detail::__3way_cmp_with): Add workaround for PR 91073. 332*fb8a8121Smrg (compare_three_way): Use workaround. 333*fb8a8121Smrg (__detail::__synth3way, __detail::__synth3way_t): Define new helpers 334*fb8a8121Smrg implementing synth-three-way and synth-three-way-result semantics. 335*fb8a8121Smrg * testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc: New 336*fb8a8121Smrg test. 337*fb8a8121Smrg 338*fb8a8121Smrg * include/bits/stl_pair.h (pair): Remove stray Doxygen closing marker. 339*fb8a8121Smrg 340*fb8a8121Smrg * testsuite/util/slow_clock.h: Fix copyright date. 341*fb8a8121Smrg 342*fb8a8121Smrg2019-12-02 Mike Crowe <mac@mcrowe.com> 343*fb8a8121Smrg 344*fb8a8121Smrg Fix try_lock_until and try_lock_shared_until on arbitrary clock 345*fb8a8121Smrg * include/std/shared_mutex (shared_timed_mutex::try_lock_until) 346*fb8a8121Smrg (shared_timed_mutex::try_lock_shared_until): Loop until the absolute 347*fb8a8121Smrg timeout time is reached as measured against the appropriate clock. 348*fb8a8121Smrg * testsuite/30_threads/shared_timed_mutex/try_lock_until/1.cc: New 349*fb8a8121Smrg file. Test try_lock_until and try_lock_shared_until timeouts against 350*fb8a8121Smrg various clocks. 351*fb8a8121Smrg * testsuite/30_threads/shared_timed_mutex/try_lock_until/1.cc: New 352*fb8a8121Smrg file. Test try_lock_until and try_lock_shared_until timeouts against 353*fb8a8121Smrg various clocks. 354*fb8a8121Smrg 355*fb8a8121Smrg Add full steady_clock support to shared_timed_mutex 356*fb8a8121Smrg * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_RWLOCK_CLOCKLOCK): Define 357*fb8a8121Smrg to check for the presence of both pthread_rwlock_clockrdlock and 358*fb8a8121Smrg pthread_rwlock_clockwrlock. 359*fb8a8121Smrg * config.h.in: Regenerate. 360*fb8a8121Smrg * configure.ac: Call GLIBCXX_USE_PTHREAD_RWLOCK_CLOCKLOCK. 361*fb8a8121Smrg * configure: Regenerate. 362*fb8a8121Smrg * include/std/shared_mutex (shared_timed_mutex): Define __clock_t as 363*fb8a8121Smrg the best clock to use for relative waits. 364*fb8a8121Smrg (shared_timed_mutex::try_lock_for) Round up wait duration if necessary. 365*fb8a8121Smrg (shared_timed_mutex::try_lock_shared_for): Likewise. 366*fb8a8121Smrg (shared_timed_mutex::try_lock_until): Use existing try_lock_until 367*fb8a8121Smrg implementation for system_clock (which matches __clock_t when 368*fb8a8121Smrg _GLIBCCXX_USE_PTHREAD_RWLOCK_CLOCKLOCK is not defined). Add new 369*fb8a8121Smrg overload for steady_clock that uses pthread_rwlock_clockwrlock if it 370*fb8a8121Smrg is available. Simplify overload for non-standard clock to just call 371*fb8a8121Smrg try_lock_for with a relative timeout. 372*fb8a8121Smrg (shared_timed_mutex::try_lock_shared_until): Likewise. 373*fb8a8121Smrg 374*fb8a8121Smrg PR libstdc++/91906 Fix timed_mutex::try_lock_until on arbitrary clock 375*fb8a8121Smrg * include/std/mutex (__timed_mutex_impl::_M_try_lock_until): Loop 376*fb8a8121Smrg until the absolute timeout time is reached as measured against the 377*fb8a8121Smrg appropriate clock. 378*fb8a8121Smrg * testsuite/util/slow_clock.h: New file. Move implementation of 379*fb8a8121Smrg slow_clock test class. 380*fb8a8121Smrg * testsuite/30_threads/condition_variable/members/2.cc: Include 381*fb8a8121Smrg slow_clock from header. 382*fb8a8121Smrg * testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Convert 383*fb8a8121Smrg existing test to templated function so that it can be called with 384*fb8a8121Smrg both system_clock and steady_clock. 385*fb8a8121Smrg * testsuite/30_threads/timed_mutex/try_lock_until/3.cc: Also run test 386*fb8a8121Smrg using slow_clock to test above fix. 387*fb8a8121Smrg * testsuite/30_threads/recursive_timed_mutex/try_lock_until/3.cc: 388*fb8a8121Smrg Likewise. 389*fb8a8121Smrg * testsuite/30_threads/recursive_timed_mutex/try_lock_until/4.cc: Add 390*fb8a8121Smrg new test that try_lock_until behaves as try_lock if the timeout has 391*fb8a8121Smrg already expired or exactly matches the current time. 392*fb8a8121Smrg 393*fb8a8121Smrg PR libstdc++/78237 Add full steady_clock support to timed_mutex 394*fb8a8121Smrg * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Define to 395*fb8a8121Smrg detect presence of pthread_mutex_clocklock function. 396*fb8a8121Smrg * config.h.in: Regenerate. 397*fb8a8121Smrg * configure: Regenerate. 398*fb8a8121Smrg * configure.ac: Call GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK. 399*fb8a8121Smrg * include/std/mutex (__timed_mutex_impl): Remove unnecessary __clock_t. 400*fb8a8121Smrg (__timed_mutex_impl::_M_try_lock_for): Use best clock to turn relative 401*fb8a8121Smrg timeout into absolute timeout. 402*fb8a8121Smrg (__timed_mutex_impl::_M_try_lock_until): Keep existing implementation 403*fb8a8121Smrg for system_clock. Add new implementation for steady_clock that calls 404*fb8a8121Smrg _M_clocklock. Modify overload for user-defined clock to use a relative 405*fb8a8121Smrg wait so that it automatically uses the best clock. 406*fb8a8121Smrg [_GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK] (timed_mutex::_M_clocklock): 407*fb8a8121Smrg New member function. 408*fb8a8121Smrg (recursive_timed_mutex::_M_clocklock): Likewise. 409*fb8a8121Smrg 410*fb8a8121Smrg * testsuite/30_threads/recursive_timed_mutex/try_lock_until/3.cc: 411*fb8a8121Smrg New test. Ensure that timed_mutex::try_lock_until actually times out 412*fb8a8121Smrg after the specified time when using both system_clock and 413*fb8a8121Smrg steady_clock. 414*fb8a8121Smrg * testsuite/30_threads/timed_mutex/try_lock_until/3.cc: New test. 415*fb8a8121Smrg Likewise but for recursive_timed_mutex. 416*fb8a8121Smrg * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Template 417*fb8a8121Smrg test functions and use them to test both steady_clock and system_clock. 418*fb8a8121Smrg * testsuite/30_threads/unique_lock/locking/4.cc: Likewise. Wrap call 419*fb8a8121Smrg to timed_mutex::try_lock_until in VERIFY macro to check its return 420*fb8a8121Smrg value. 421*fb8a8121Smrg 422*fb8a8121Smrg2019-11-30 Jonathan Wakely <jwakely@redhat.com> 423*fb8a8121Smrg 424*fb8a8121Smrg * acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Enable by default for 425*fb8a8121Smrg mingw targets. 426*fb8a8121Smrg * configure: Regenerate. 427*fb8a8121Smrg 428*fb8a8121Smrg * include/bits/fs_path.h (u8path(InputIterator, InputIterator)) 429*fb8a8121Smrg (u8path(const Source&)) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Simplify 430*fb8a8121Smrg conditions. 431*fb8a8121Smrg * include/experimental/bits/fs_path.h [_GLIBCXX_FILESYSTEM_IS_WINDOWS] 432*fb8a8121Smrg (__u8path(const Source&, char)): Add overloads for std::string and 433*fb8a8121Smrg types convertible to std::string. 434*fb8a8121Smrg (_Cvt::_S_wconvert): Add a new overload for char8_t strings and use 435*fb8a8121Smrg codecvt_utf8_utf16 to do the correct conversion. 436*fb8a8121Smrg 437*fb8a8121Smrg2019-11-29 Jonathan Wakely <jwakely@redhat.com> 438*fb8a8121Smrg 439*fb8a8121Smrg * include/bits/fs_path.h (path::operator/=): Change template-head to 440*fb8a8121Smrg use typename instead of class. 441*fb8a8121Smrg * include/experimental/bits/fs_path.h (path::operator/=): Likewise. 442*fb8a8121Smrg * include/std/ostream (operator<<): Likewise. 443*fb8a8121Smrg 444*fb8a8121Smrg2019-11-29 Tom Honermann <tom@honermann.net> 445*fb8a8121Smrg 446*fb8a8121Smrg New tests 447*fb8a8121Smrg * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc: 448*fb8a8121Smrg New test to validate deleted overloads of character and string 449*fb8a8121Smrg inserters for narrow ostreams. 450*fb8a8121Smrg * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc: 451*fb8a8121Smrg New test to validate deleted overloads of character and string 452*fb8a8121Smrg inserters for wide ostreams. 453*fb8a8121Smrg * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc: New test 454*fb8a8121Smrg to validate u8path invocations with sequences of char8_t. 455*fb8a8121Smrg * testsuite/experimental/filesystem/path/factory/u8path-char8_t.cc: 456*fb8a8121Smrg New test to validate u8path invocations with sequences of char8_t. 457*fb8a8121Smrg 458*fb8a8121Smrg Updates to existing tests 459*fb8a8121Smrg * testsuite/experimental/feat-char8_t.cc: Updated the expected 460*fb8a8121Smrg __cpp_lib_char8_t feature test macro value. 461*fb8a8121Smrg * testsuite/27_io/filesystem/path/factory/u8path.cc: Added testing of 462*fb8a8121Smrg u8path invocation with std::string, std::string_view, and iterators 463*fb8a8121Smrg thereof. 464*fb8a8121Smrg * testsuite/experimental/filesystem/path/factory/u8path.cc: Added 465*fb8a8121Smrg testing of u8path invocation with std::string, std::string_view, and 466*fb8a8121Smrg iterators thereof. 467*fb8a8121Smrg 468*fb8a8121Smrg Update feature test macro, add deleted operators, update u8path 469*fb8a8121Smrg * include/bits/c++config: Bumped the value of the __cpp_lib_char8_t 470*fb8a8121Smrg feature test macro. 471*fb8a8121Smrg * include/bits/fs_path.h (u8path): Modified u8path to accept sequences 472*fb8a8121Smrg of char8_t. 473*fb8a8121Smrg * include/experimental/bits/fs_path.h (u8path): Modified u8path to 474*fb8a8121Smrg accept sequences of char8_t. 475*fb8a8121Smrg * include/std/ostream: Added deleted overloads of wchar_t, char8_t, 476*fb8a8121Smrg char16_t, and char32_t for ordinary and wide formatted character and 477*fb8a8121Smrg string inserters. 478*fb8a8121Smrg 479*fb8a8121Smrg Decouple constraints for u8path from path constructors 480*fb8a8121Smrg * include/bits/fs_path.h: Moved helper utilities out of 481*fb8a8121Smrg std::filesystem::path into a detail namespace to make them 482*fb8a8121Smrg available for use by u8path. 483*fb8a8121Smrg * include/experimental/bits/fs_path.h: Moved helper utilities out 484*fb8a8121Smrg of std::experimental::filesystem::v1::path into a detail 485*fb8a8121Smrg namespace to make them available for use by u8path. 486*fb8a8121Smrg 487*fb8a8121Smrg2019-11-29 Jonathan Wakely <jwakely@redhat.com> 488*fb8a8121Smrg 489*fb8a8121Smrg PR libstdc++/91997 490*fb8a8121Smrg * python/libstdcxx/v6/printers.py (find_type): Fail more gracefully 491*fb8a8121Smrg if we run out of base classes to look at. 492*fb8a8121Smrg (lookup_templ_spec, lookup_node_type): New utilities to find node 493*fb8a8121Smrg types for node-based containers. 494*fb8a8121Smrg (StdListPrinter.children, NodeIteratorPrinter.__init__) 495*fb8a8121Smrg (NodeIteratorPrinter.to_string, StdSlistPrinter.children) 496*fb8a8121Smrg (StdSlistIteratorPrinter.to_string, StdRbtreeIteratorPrinter.__init__) 497*fb8a8121Smrg (StdMapPrinter.children, StdSetPrinter.children) 498*fb8a8121Smrg (StdForwardListPrinter.children): Use lookup_node_type instead of 499*fb8a8121Smrg find_type. 500*fb8a8121Smrg (StdListIteratorPrinter.__init__, StdFwdListIteratorPrinter.__init__): 501*fb8a8121Smrg Pass name of node type to NodeIteratorPrinter constructor. 502*fb8a8121Smrg (Tr1HashtableIterator.__init__): Rename argument. 503*fb8a8121Smrg (StdHashtableIterator.__init__): Likewise. Use lookup_templ_spec 504*fb8a8121Smrg instead of find_type. 505*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/59161.cc: Remove workaround for 506*fb8a8121Smrg _Node typedef not being present in debuginfo. 507*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/91997.cc: New test. 508*fb8a8121Smrg 509*fb8a8121Smrg2019-11-26 François Dumont <fdumont@gcc.gnu.org> 510*fb8a8121Smrg 511*fb8a8121Smrg * include/debug/helper_functions.h (__valid_range_aux): Use C++98 512*fb8a8121Smrg std::input_iterator_tag default constructor invocation. 513*fb8a8121Smrg 514*fb8a8121Smrg * include/debug/array (array<>::fill): Add C++20 constexpr. 515*fb8a8121Smrg (array<>::swap): Likewise. 516*fb8a8121Smrg 517*fb8a8121Smrg * include/debug/safe_iterator.h 518*fb8a8121Smrg [__cpp_lib_concepts](_Safe_iterator<>::iterator_concept): Define for 519*fb8a8121Smrg C++20. 520*fb8a8121Smrg 521*fb8a8121Smrg2019-11-25 Jonathan Wakely <jwakely@redhat.com> 522*fb8a8121Smrg 523*fb8a8121Smrg * include/bits/iterator_concepts.h (ranges::iter_swap): Fix parameter 524*fb8a8121Smrg types of poison pill overload. Use remove_reference_t when checking 525*fb8a8121Smrg constraints. 526*fb8a8121Smrg * include/bits/stl_iterator.h (move_sentinel): Define for C++20. 527*fb8a8121Smrg (move_iterator): Adjust definitions of nested types for C++20. Add 528*fb8a8121Smrg hidden friends for move_sentinel operations, iter_move and iter_swap. 529*fb8a8121Smrg (common_iterator, counted_iterator): Define for C++20. 530*fb8a8121Smrg * testsuite/24_iterators/move_iterator/cust.cc: New test. 531*fb8a8121Smrg * testsuite/24_iterators/move_iterator/sentinel.cc: New test. 532*fb8a8121Smrg * testsuite/24_iterators/common_iterator/1.cc: New test. 533*fb8a8121Smrg * testsuite/24_iterators/counted_iterator/1.cc: New test. 534*fb8a8121Smrg 535*fb8a8121Smrg PR libstdc++/91786 536*fb8a8121Smrg * include/bits/fs_path.h (filesystem_error): Move definition before 537*fb8a8121Smrg the use in u8path. 538*fb8a8121Smrg 539*fb8a8121Smrg2019-11-24 François Dumont <fdumont@gcc.gnu.org> 540*fb8a8121Smrg 541*fb8a8121Smrg * include/debug/functions.h: Remove <bits/move.h> include. 542*fb8a8121Smrg (__check_singular_aux, __check_singular): Move... 543*fb8a8121Smrg * include/debug/helper_functions.h: 544*fb8a8121Smrg (__check_singular_aux, __check_singular): ...here. 545*fb8a8121Smrg (__valid_range_aux): Adapt to use latter. 546*fb8a8121Smrg * testsuite/25_algorithms/copy/debug/2_neg.cc: New. 547*fb8a8121Smrg 548*fb8a8121Smrg2019-11-20 Janne Blomqvist <jb@gcc.gnu.org> 549*fb8a8121Smrg 550*fb8a8121Smrg * doc/html/api.html: Use https for gcc.gnu.org. 551*fb8a8121Smrg * doc/xml/api.xml: Likewise. 552*fb8a8121Smrg 553*fb8a8121Smrg2019-11-19 Jonathan Wakely <jwakely@redhat.com> 554*fb8a8121Smrg 555*fb8a8121Smrg * include/bits/regex.h (ranges::__detail::__enable_view_impl): Fix 556*fb8a8121Smrg declaration. 557*fb8a8121Smrg * include/bits/stl_multiset.h (ranges::__detail::__enable_view_impl): 558*fb8a8121Smrg Likewise. 559*fb8a8121Smrg * include/bits/stl_set.h (ranges::__detail::__enable_view_impl): 560*fb8a8121Smrg Likewise. 561*fb8a8121Smrg * include/bits/unordered_set.h (ranges::__detail::__enable_view_impl): 562*fb8a8121Smrg Likewise. 563*fb8a8121Smrg * include/debug/multiset.h (ranges::__detail::__enable_view_impl): 564*fb8a8121Smrg Likewise. 565*fb8a8121Smrg * include/debug/set.h (ranges::__detail::__enable_view_impl): Likewise. 566*fb8a8121Smrg * include/debug/unordered_set (ranges::__detail::__enable_view_impl): 567*fb8a8121Smrg Likewise. 568*fb8a8121Smrg 569*fb8a8121Smrg2019-11-18 Jonathan Wakely <jwakely@redhat.com> 570*fb8a8121Smrg 571*fb8a8121Smrg * include/std/thread: Reduce header dependencies. 572*fb8a8121Smrg (jthread::get_id()): Add missing return. 573*fb8a8121Smrg (jthread::get_stop_token()): Avoid unnecessary stop_source temporary. 574*fb8a8121Smrg (jthread::_S_create): Check is_invocable using decayed types. Add 575*fb8a8121Smrg static assertion. 576*fb8a8121Smrg * testsuite/30_threads/jthread/1.cc: Add dg-require-gthreads. 577*fb8a8121Smrg * testsuite/30_threads/jthread/2.cc: Likewise. 578*fb8a8121Smrg * testsuite/30_threads/jthread/3.cc: New test. 579*fb8a8121Smrg * testsuite/30_threads/jthread/jthread.cc: Add missing directives for 580*fb8a8121Smrg pthread and gthread support. Use VERIFY instead of assert. 581*fb8a8121Smrg 582*fb8a8121Smrg * include/bits/alloc_traits.h (allocator_traits::construct) 583*fb8a8121Smrg (allocator_traits::destroy, allocator_traits::max_size): Add unused 584*fb8a8121Smrg attributes to parameters that are not used in C++20. 585*fb8a8121Smrg * include/std/bit (__ceil2): Add braces around assertion to avoid 586*fb8a8121Smrg -Wmissing-braces warning. 587*fb8a8121Smrg 588*fb8a8121Smrg2019-11-16 Edward Smith-Rowland <3dw4rd@verizon.net> 589*fb8a8121Smrg 590*fb8a8121Smrg Repair the <tuple> part of C++20 p1032 Misc constexpr bits. 591*fb8a8121Smrg * include/bits/uses_allocator.h (__uses_alloc0::_Sink::operaror=) 592*fb8a8121Smrg (__use_alloc(const _Alloc&)) : Constexpr. 593*fb8a8121Smrg 594*fb8a8121Smrg2019-11-17 Jonathan Wakely <jwakely@redhat.com> 595*fb8a8121Smrg 596*fb8a8121Smrg * include/std/string_view (basic_string_view(It, End)): Add range 597*fb8a8121Smrg constructor and deduction guide from P1391R4. 598*fb8a8121Smrg * testsuite/21_strings/basic_string_view/cons/char/range.cc: New test. 599*fb8a8121Smrg 600*fb8a8121Smrg * include/bits/regex.h (match_results): Specialize __enable_view_impl. 601*fb8a8121Smrg * include/bits/stl_set.h (set): Likewise. 602*fb8a8121Smrg * include/bits/unordered_set.h (unordered_set, unordered_multiset): 603*fb8a8121Smrg Likewise. 604*fb8a8121Smrg * include/debug/multiset.h (__debug::multiset): Likewise. 605*fb8a8121Smrg * include/debug/set.h (__debug::set): Likewise. 606*fb8a8121Smrg * include/debug/unordered_set (__debug::unordered_set) 607*fb8a8121Smrg (__debug::unordered_multiset): Likewise. 608*fb8a8121Smrg * include/std/ranges (ranges::view, ranges::enable_view) 609*fb8a8121Smrg (ranges::view_interface, ranges::subrange, ranges::empty_view) 610*fb8a8121Smrg (ranges::single_view, ranges::views::single, ranges::iota_view) 611*fb8a8121Smrg (ranges::views::iota): Define for C++20. 612*fb8a8121Smrg * testsuite/std/ranges/empty_view.cc: New test. 613*fb8a8121Smrg * testsuite/std/ranges/iota_view.cc: New test. 614*fb8a8121Smrg * testsuite/std/ranges/single_view.cc: New test. 615*fb8a8121Smrg * testsuite/std/ranges/view.cc: New test. 616*fb8a8121Smrg 617*fb8a8121Smrg2019-11-16 Jonathan Wakely <jwakely@redhat.com> 618*fb8a8121Smrg 619*fb8a8121Smrg * include/std/ranges: Revert accidentally committed changes. 620*fb8a8121Smrg 621*fb8a8121Smrg * include/std/thread (jthread::jthread()): Use nostopstate constant. 622*fb8a8121Smrg (jthread::jthread(Callable&&, Args&&...)): Use helper function to 623*fb8a8121Smrg create std::thread instead of indirection through a lambda. Use 624*fb8a8121Smrg remove_cvref_t instead of decay_t. 625*fb8a8121Smrg (jthread::joinable(), jthread::get_id(), jthread::native_handle()) 626*fb8a8121Smrg (jthread::hardware_concurrency()): Add nodiscard attribute. 627*fb8a8121Smrg (swap(jthread&. jthread&)): Define hidden friend. 628*fb8a8121Smrg (jthread::_S_create): New helper function for constructor. 629*fb8a8121Smrg 630*fb8a8121Smrg2019-11-15 Edward Smith-Rowland <3dw4rd@verizon.net> 631*fb8a8121Smrg 632*fb8a8121Smrg Implement the <tuple> part of C++20 p1032 Misc constexpr bits. 633*fb8a8121Smrg * include/std/tuple (_Head_base, _Tuple_impl(allocator_arg_t,...) 634*fb8a8121Smrg (_M_assign, tuple(allocator_arg_t,...), _Inherited, operator=, _M_swap) 635*fb8a8121Smrg (swap, pair(piecewise_construct_t,): Constexpr. 636*fb8a8121Smrg * (__uses_alloc0::_Sink::operator=, __uses_alloc_t): Constexpr. 637*fb8a8121Smrg * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc: New test. 638*fb8a8121Smrg * testsuite/20_util/tuple/constexpr_swap.cc : New test. 639*fb8a8121Smrg * testsuite/20_util/uses_allocator/69293_neg.cc: Extra error for C++20. 640*fb8a8121Smrg * testsuite/20_util/uses_allocator/cons_neg.cc: : Extra error for C++20. 641*fb8a8121Smrg 642*fb8a8121Smrg2019-11-15 Jonathan Wakely <jwakely@redhat.com> 643*fb8a8121Smrg 644*fb8a8121Smrg * include/std/stop_token: Reduce header dependencies by including 645*fb8a8121Smrg internal headers. 646*fb8a8121Smrg (stop_token::swap(stop_token&), swap(stop_token&, stop_token&)): 647*fb8a8121Smrg Define. 648*fb8a8121Smrg (operator!=(const stop_token&, const stop_token&)): Fix return value. 649*fb8a8121Smrg (stop_token::_Stop_cb::_Stop_cb(Cb&&)): Use std::forward instead of 650*fb8a8121Smrg (stop_token::_Stop_state_t) [_GLIBCXX_HAS_GTHREADS]: Use lock_guard 651*fb8a8121Smrg instead of unique_lock. 652*fb8a8121Smrg [!_GLIBCXX_HAS_GTHREADS]: Do not use mutex. 653*fb8a8121Smrg (stop_token::stop_token(_Stop_state)): Change parameter to lvalue 654*fb8a8121Smrg reference. 655*fb8a8121Smrg (stop_source): Remove unnecessary using-declarations for names only 656*fb8a8121Smrg used once. 657*fb8a8121Smrg (swap(stop_source&, stop_source&)): Define. 658*fb8a8121Smrg (stop_callback(const stop_token&, _Cb&&)) 659*fb8a8121Smrg (stop_callback(stop_token&&, _Cb&&)): Replace lambdas with a named 660*fb8a8121Smrg function. Use std::forward instead of std::move. Run callbacks if a 661*fb8a8121Smrg stop request has already been made. 662*fb8a8121Smrg (stop_source::_M_execute()): Remove. 663*fb8a8121Smrg (stop_source::_S_execute(_Stop_cb*)): Define. 664*fb8a8121Smrg * include/std/version (__cpp_lib_jthread): Define conditionally. 665*fb8a8121Smrg * testsuite/30_threads/stop_token/stop_callback.cc: New test. 666*fb8a8121Smrg * testsuite/30_threads/stop_token/stop_source.cc: New test. 667*fb8a8121Smrg * testsuite/30_threads/stop_token/stop_token.cc: Enable test for 668*fb8a8121Smrg immediate execution of callback. 669*fb8a8121Smrg 670*fb8a8121Smrg2019-11-15 Edward Smith-Rowland <3dw4rd@verizon.net> 671*fb8a8121Smrg 672*fb8a8121Smrg Implement the default_searcher part of C++20 p1032 Misc constexpr bits. 673*fb8a8121Smrg * include/std/functional 674*fb8a8121Smrg (default_searcher, default_searcher::operator()): Constexpr. 675*fb8a8121Smrg * testsuite/20_util/function_objects/constexpr_searcher.cc: New. 676*fb8a8121Smrg 677*fb8a8121Smrg2019-11-15 Jonathan Wakely <jwakely@redhat.com> 678*fb8a8121Smrg 679*fb8a8121Smrg * include/bits/iterator_concepts.h (weakly_incrementable): Adjust. 680*fb8a8121Smrg * include/std/concepts (default_constructible): Rename to 681*fb8a8121Smrg default_initializable and require default-list-initialization and 682*fb8a8121Smrg default-initialization to be valid (LWG 3149). 683*fb8a8121Smrg (semiregular): Adjust to new name. 684*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.defaultconstructible/ 685*fb8a8121Smrg 1.cc: Rename directory to concept.defaultinitializable and adjust to 686*fb8a8121Smrg new name. 687*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/ 688*fb8a8121Smrg lwg3149.cc: New test. 689*fb8a8121Smrg * testsuite/util/testsuite_iterators.h (test_range): Adjust. 690*fb8a8121Smrg 691*fb8a8121Smrg * src/c++17/fs_path.cc [_GLIBCXX_FILESYSTEM_IS_WINDOWS] 692*fb8a8121Smrg (is_disk_designator): New helper function. 693*fb8a8121Smrg (path::_Parser::root_path()): Use is_disk_designator. 694*fb8a8121Smrg (path::lexically_relative(const path&)): Implement resolution of 695*fb8a8121Smrg LWG 3070. 696*fb8a8121Smrg * testsuite/27_io/filesystem/path/generation/relative.cc: Check with 697*fb8a8121Smrg path components that look like a root-name. 698*fb8a8121Smrg 699*fb8a8121Smrg * doc/doxygen/user.cfg.in: Add <stop_token>. 700*fb8a8121Smrg * include/precompiled/stdc++.h: Likewise. 701*fb8a8121Smrg * include/std/stop_token: Fix definition of std::nostopstate. 702*fb8a8121Smrg * testsuite/30_threads/headers/stop_token/synopsis.cc: New test. 703*fb8a8121Smrg * testsuite/30_threads/headers/thread/types_std_c++20.cc: New test. 704*fb8a8121Smrg * testsuite/30_threads/stop_token/stop_source.cc: New test. 705*fb8a8121Smrg * testsuite/30_threads/stop_token/stop_token.cc: Remove unnecessary 706*fb8a8121Smrg dg-require directives. Remove I/O and inclusion of <iostream>. 707*fb8a8121Smrg 708*fb8a8121Smrg2019-11-14 Thomas Rodgers <trodgers@redhat.com> 709*fb8a8121Smrg 710*fb8a8121Smrg * include/Makefile.am: Add <stop_token> header. 711*fb8a8121Smrg * include/Makefile.in: Regenerate. 712*fb8a8121Smrg * include/std/condition_variable: Add overloads for stop_token support 713*fb8a8121Smrg to condition_variable_any. 714*fb8a8121Smrg * include/std/stop_token: New file. 715*fb8a8121Smrg * include/std/thread: Add jthread type. 716*fb8a8121Smrg * include/std/version (__cpp_lib_jthread): New value. 717*fb8a8121Smrg * testsuite/30_threads/condition_variable_any/stop_token/1.cc: New test. 718*fb8a8121Smrg * testsuite/30_threads/condition_variable_any/stop_token/2.cc: New test. 719*fb8a8121Smrg * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc: 720*fb8a8121Smrg New test. 721*fb8a8121Smrg * testsuite/30_threads/jthread/1.cc: New test. 722*fb8a8121Smrg * testsuite/30_threads/jthread/2.cc: New test. 723*fb8a8121Smrg * testsuite/30_threads/jthread/jthread.cc: New test. 724*fb8a8121Smrg * testsuite/30_threads/stop_token/1.cc: New test. 725*fb8a8121Smrg * testsuite/30_threads/stop_token/2.cc: New test. 726*fb8a8121Smrg * testsuite/30_threads/stop_token/stop_token.cc: New test. 727*fb8a8121Smrg 728*fb8a8121Smrg2019-11-14 Edward Smith-Rowland <3dw4rd@verizon.net> 729*fb8a8121Smrg 730*fb8a8121Smrg Implement the <array> part of C++20 p1032 Misc constexpr bits. 731*fb8a8121Smrg * include/std/array (fill, swap): Make constexpr. 732*fb8a8121Smrg * testsuite/23_containers/array/requirements/constexpr_fill.cc: New. 733*fb8a8121Smrg * testsuite/23_containers/array/requirements/constexpr_swap.cc: New. 734*fb8a8121Smrg 735*fb8a8121Smrg2019-11-14 Jonathan Wakely <jwakely@redhat.com> 736*fb8a8121Smrg 737*fb8a8121Smrg * include/bits/iterator_concepts.h (__iter_concept_impl): Add 738*fb8a8121Smrg comments. 739*fb8a8121Smrg (indirect_relation): Rename to indirect_binary_predicate and adjust 740*fb8a8121Smrg definition as per P1716R3. 741*fb8a8121Smrg (indirect_equivalence_relation): Define. 742*fb8a8121Smrg (indirectly_comparable): Adjust definition. 743*fb8a8121Smrg * include/std/concepts (equivalence_relation): Define. 744*fb8a8121Smrg * testsuite/std/concepts/concepts.callable/relation.cc: Add tests for 745*fb8a8121Smrg equivalence_relation. 746*fb8a8121Smrg 747*fb8a8121Smrg * include/bits/iterator_concepts.h (disable_sized_sentinel): Rename to 748*fb8a8121Smrg disable_sized_sentinel_for. 749*fb8a8121Smrg * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: Adjust. 750*fb8a8121Smrg 751*fb8a8121Smrg2019-11-13 Jonathan Wakely <jwakely@redhat.com> 752*fb8a8121Smrg 753*fb8a8121Smrg * libsupc++/compare (strong_order, weak_order, partial_order) 754*fb8a8121Smrg (compare_strong_order_fallback, compare_weak_order_fallback) 755*fb8a8121Smrg (compare_partial_order_fallback): Define customization point objects 756*fb8a8121Smrg for C++20. 757*fb8a8121Smrg * testsuite/18_support/comparisons/algorithms/partial_order.cc: New 758*fb8a8121Smrg test. 759*fb8a8121Smrg * testsuite/18_support/comparisons/algorithms/strong_order.cc: New 760*fb8a8121Smrg test. 761*fb8a8121Smrg * testsuite/18_support/comparisons/algorithms/weak_order.cc: New test. 762*fb8a8121Smrg 763*fb8a8121Smrg2019-11-11 Gerald Pfeifer <gerald@pfeifer.com> 764*fb8a8121Smrg 765*fb8a8121Smrg * doc/xml/gnu/gpl-3.0.xml: Adjust link to "Why not LGPL". 766*fb8a8121Smrg 767*fb8a8121Smrg2019-11-10 Gerald Pfeifer <gerald@pfeifer.com> 768*fb8a8121Smrg 769*fb8a8121Smrg * doc/xml/manual/using.xml: Switch www.hboehm.info to https. 770*fb8a8121Smrg 771*fb8a8121Smrg2019-11-07 Jonathan Wakely <jwakely@redhat.com> 772*fb8a8121Smrg 773*fb8a8121Smrg * doc/doxygen/user.cfg.in (INPUT): Add <compare> header. 774*fb8a8121Smrg * include/precompiled/stdc++.h: Include <compare> header. 775*fb8a8121Smrg 776*fb8a8121Smrg * libsupc++/compare (common_comparison_category) 777*fb8a8121Smrg (common_comparison_category_t): Define for C++20. 778*fb8a8121Smrg * testsuite/18_support/comparisons/common/1.cc: New test. 779*fb8a8121Smrg 780*fb8a8121Smrg * include/bits/stl_algo.h (for_each_n): Handle negative count. 781*fb8a8121Smrg * testsuite/25_algorithms/for_each/for_each_n_debug.cc: New test. 782*fb8a8121Smrg 783*fb8a8121Smrg2019-11-07 Jason Merrill <jason@redhat.com> 784*fb8a8121Smrg 785*fb8a8121Smrg * libsupc++/compare: Remove strong_equality and weak_equality. 786*fb8a8121Smrg 787*fb8a8121Smrg2019-11-06 Jonathan Wakely <jwakely@redhat.com> 788*fb8a8121Smrg 789*fb8a8121Smrg * include/Makefile.in: Regenerate. 790*fb8a8121Smrg * libsupc++/Makefile.in: Regenerate. 791*fb8a8121Smrg * libsupc++/compare (__3way_builtin_ptr_cmp): Define helper. 792*fb8a8121Smrg (compare_three_way): Add missing implementation. 793*fb8a8121Smrg 794*fb8a8121Smrg * include/bits/iterator_concepts.h (unreachable_sentinel_t): Remove 795*fb8a8121Smrg redundant equality operators. 796*fb8a8121Smrg * testsuite/util/testsuite_iterators.h (test_range::sentinel): 797*fb8a8121Smrg Likewise. 798*fb8a8121Smrg 799*fb8a8121Smrg2019-11-05 Jonathan Wakely <jwakely@redhat.com> 800*fb8a8121Smrg 801*fb8a8121Smrg * libsupc++/compare: New header. 802*fb8a8121Smrg * libsupc++/Makefile.am (std_HEADERS): Add compare. 803*fb8a8121Smrg * include/std/version: Define __cpp_lib_three_way_comparison. 804*fb8a8121Smrg * include/std/functional: #include <compare>. 805*fb8a8121Smrg 806*fb8a8121Smrg * include/std/version [!_GLIBCXX_HOSTED]: Do not define feature test 807*fb8a8121Smrg macros for features that are only present in hosted builds. 808*fb8a8121Smrg 809*fb8a8121Smrg * include/bits/iterator_concepts.h (__iter_without_nested_types): 810*fb8a8121Smrg Remove incorrect comment. 811*fb8a8121Smrg 812*fb8a8121Smrg2019-10-31 Jonathan Wakely <jwakely@redhat.com> 813*fb8a8121Smrg 814*fb8a8121Smrg * doc/html/*: Regenerate. 815*fb8a8121Smrg 816*fb8a8121Smrg * include/bits/refwrap.h (reference_wrapper, ref, cref): Add constexpr 817*fb8a8121Smrg specifiers for C++20. 818*fb8a8121Smrg * include/std/functional (_Mem_fn, mem_fn, _Bind, _Bind_result, bind) 819*fb8a8121Smrg (bind_front, _Not_fn, not_fn): Likewise. 820*fb8a8121Smrg * testsuite/20_util/bind/constexpr.cc: New test. 821*fb8a8121Smrg * testsuite/20_util/function_objects/bind_front/constexpr.cc: New test. 822*fb8a8121Smrg * testsuite/20_util/function_objects/mem_fn/constexpr.cc: New test. 823*fb8a8121Smrg * testsuite/20_util/function_objects/not_fn/constexpr.cc: New test. 824*fb8a8121Smrg * testsuite/20_util/reference_wrapper/constexpr.cc: New test. 825*fb8a8121Smrg 826*fb8a8121Smrg * doc/doxygen/user.cfg.in: Add new header. 827*fb8a8121Smrg * include/Makefile.am: Add new header. 828*fb8a8121Smrg * include/Makefile.in: Regenerate. 829*fb8a8121Smrg * include/precompiled/stdc++.h: Include new header. 830*fb8a8121Smrg * include/std/ranges: New header. 831*fb8a8121Smrg (ranges::sentinel_t, ranges::range_value_t, ranges::range_reference_t) 832*fb8a8121Smrg (ranges::range_rvalue_reference_t, ranges::sized_range) 833*fb8a8121Smrg (ranges::output_range, ranges::input_ranges, ranges::forward_range) 834*fb8a8121Smrg (ranges::bidirectional_range, ranges::random_access_range) 835*fb8a8121Smrg (ranges::contiguous_range, ranges::common::range): Define. 836*fb8a8121Smrg * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: Check 837*fb8a8121Smrg that disabled_sized_sentinel can be specialized. 838*fb8a8121Smrg * testsuite/std/ranges/access/begin.cc: Include <ranges> instead of 839*fb8a8121Smrg <iterator>. 840*fb8a8121Smrg * testsuite/std/ranges/access/cbegin.cc: Likewise. 841*fb8a8121Smrg * testsuite/std/ranges/access/cdata.cc: Likewise. 842*fb8a8121Smrg * testsuite/std/ranges/access/cend.cc: Likewise. 843*fb8a8121Smrg * testsuite/std/ranges/access/crbegin.cc: Likewise. 844*fb8a8121Smrg * testsuite/std/ranges/access/crend.cc: Likewise. 845*fb8a8121Smrg * testsuite/std/ranges/access/data.cc: Likewise. 846*fb8a8121Smrg * testsuite/std/ranges/access/empty.cc: Likewise. 847*fb8a8121Smrg * testsuite/std/ranges/access/end.cc: Likewise. 848*fb8a8121Smrg * testsuite/std/ranges/access/end_neg.cc: Likewise. 849*fb8a8121Smrg * testsuite/std/ranges/access/rbegin.cc: Likewise. 850*fb8a8121Smrg * testsuite/std/ranges/access/rend.cc: Likewise. 851*fb8a8121Smrg * testsuite/std/ranges/access/size.cc: Likewise. 852*fb8a8121Smrg * testsuite/std/ranges/access/size_neg.cc: Likewise. 853*fb8a8121Smrg * testsuite/std/ranges/headers/ranges/synopsis.cc: New test. 854*fb8a8121Smrg * testsuite/std/ranges/range.cc: New test. 855*fb8a8121Smrg * testsuite/std/ranges/refinements.cc: New test. 856*fb8a8121Smrg * testsuite/std/ranges/sized.cc: New test. 857*fb8a8121Smrg * testsuite/util/testsuite_iterators.h: Add aliases for range types. 858*fb8a8121Smrg (output_iterator_wrapper::WritableObject::operator=): Add const 859*fb8a8121Smrg qualifier so that output_iterator_wrapper satisfies writable. 860*fb8a8121Smrg 861*fb8a8121Smrg * testsuite/20_util/add_pointer/value.cc: Check void types. 862*fb8a8121Smrg 863*fb8a8121Smrg * include/bits/range_access.h (__sizable): Rename to __sentinel_size. 864*fb8a8121Smrg Remove workaround for PR c++/92268 and remove redundant requirements 865*fb8a8121Smrg that are already checked by sized_sentinel_for. 866*fb8a8121Smrg * testsuite/std/ranges/access/cend.cc: Fix failures. 867*fb8a8121Smrg * testsuite/std/ranges/access/end.cc: Likewise. 868*fb8a8121Smrg 869*fb8a8121Smrg * include/bits/range_access.h (ranges::begin): Combine array and 870*fb8a8121Smrg non-array overloads into one function template. Only use ADL for 871*fb8a8121Smrg classes and enums. 872*fb8a8121Smrg (ranges::end, ranges::size): Likewise. Make unbounded arrays 873*fb8a8121Smrg ill-formed. 874*fb8a8121Smrg (ranges::rbegin, ranges::rend): Only use ADL for classes and enums. 875*fb8a8121Smrg Reformat _S_noexcept() functions to mirror operator() structure. 876*fb8a8121Smrg * testsuite/std/ranges/access/begin.cc: Check incomplete array. 877*fb8a8121Smrg * testsuite/std/ranges/access/end_neg.cc: New test. 878*fb8a8121Smrg * testsuite/std/ranges/access/size.cc: Check array of incomplete type. 879*fb8a8121Smrg * testsuite/std/ranges/access/size_neg.cc: New test. 880*fb8a8121Smrg 881*fb8a8121Smrg * testsuite/24_iterators/range_access*.cc: Move to ... 882*fb8a8121Smrg * testsuite/24_iterators/range_access/range_access*.cc: ... here. 883*fb8a8121Smrg * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc: New 884*fb8a8121Smrg test. 885*fb8a8121Smrg 886*fb8a8121Smrg2019-10-30 Jonathan Wakely <jwakely@redhat.com> 887*fb8a8121Smrg 888*fb8a8121Smrg * include/std/concepts (std::ranges::swap): Use a single overload for 889*fb8a8121Smrg the non-array cases, and switch using if-constexpr. 890*fb8a8121Smrg 891*fb8a8121Smrg * include/bits/stl_iterator.h (__normal_iterator::iterator_concept): 892*fb8a8121Smrg Guard with __cpp_lib_concepts macro. 893*fb8a8121Smrg 894*fb8a8121Smrg * include/std/bit (__cpp_lib_bitops): Define. 895*fb8a8121Smrg * include/std/version (__cpp_lib_constexpr): Remove. 896*fb8a8121Smrg (__cpp_lib_bitops, __cpp_lib_constexpr_dynamic_alloc): Define. 897*fb8a8121Smrg * testsuite/26_numerics/bit/header.cc: New test. 898*fb8a8121Smrg * testsuite/26_numerics/bit/header-2.cc: New test. 899*fb8a8121Smrg * testsuite/20_util/allocator_traits/header.cc: New test. 900*fb8a8121Smrg * testsuite/20_util/allocator_traits/header-2.cc: New test. 901*fb8a8121Smrg 902*fb8a8121Smrg * include/bits/stl_iterator.h (namespace __gnu_cxx): Remove 903*fb8a8121Smrg using-declarations for std::iterator and std::iterator_traits. 904*fb8a8121Smrg (__gnu_cxx::__normal_iterator): Qualify iterator_traits. 905*fb8a8121Smrg * include/ext/algorithm (namespace __gnu_cxx): Remove 906*fb8a8121Smrg using-declarations for std names and qualify those names when used. 907*fb8a8121Smrg Also refer to std::min in parentheses to protect against function-like 908*fb8a8121Smrg macros. 909*fb8a8121Smrg * include/ext/rc_string_base.h: Qualify iterator_traits. 910*fb8a8121Smrg * include/ext/sso_string_base.h: Qualify iterator_traits. 911*fb8a8121Smrg 912*fb8a8121Smrg PR libstdc++/92272 913*fb8a8121Smrg * include/bits/stl_bvector.h (_Bit_iterator::pointer) 914*fb8a8121Smrg (_Bit_const_iterator::pointer): Define as void for C++20. 915*fb8a8121Smrg * include/bits/stl_iterator.h (reverse_iterator::operator->()): Add 916*fb8a8121Smrg constraints for C++20. 917*fb8a8121Smrg (__normal_iterator::iterator_concept): Define for C++20. 918*fb8a8121Smrg * include/bits/streambuf_iterator.h (istreambuf_iterator::pointer): 919*fb8a8121Smrg Define as void for C++20. 920*fb8a8121Smrg (ostreambuf_iterator::difference_type): Define as ptrdiff_t for C++20. 921*fb8a8121Smrg (ostreambuf_iterator::ostreambuf_iterator()): Add default constructor 922*fb8a8121Smrg for C++20. 923*fb8a8121Smrg * testsuite/23_containers/vector/bool/iterator_c++20.cc: New test. 924*fb8a8121Smrg * testsuite/24_iterators/bidirectional/concept.cc: New test. 925*fb8a8121Smrg * testsuite/24_iterators/bidirectional/tag.cc: New test. 926*fb8a8121Smrg * testsuite/24_iterators/contiguous/concept.cc: New test. 927*fb8a8121Smrg * testsuite/24_iterators/contiguous/tag.cc: New test. 928*fb8a8121Smrg * testsuite/24_iterators/forward/concept.cc: New test. 929*fb8a8121Smrg * testsuite/24_iterators/forward/tag.cc: New test. 930*fb8a8121Smrg * testsuite/24_iterators/input/concept.cc: New test. 931*fb8a8121Smrg * testsuite/24_iterators/input/tag.cc: New test. 932*fb8a8121Smrg * testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc: 933*fb8a8121Smrg New test. 934*fb8a8121Smrg * testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc: 935*fb8a8121Smrg New test. 936*fb8a8121Smrg * testsuite/24_iterators/output/concept.cc: New test. 937*fb8a8121Smrg * testsuite/24_iterators/output/tag.cc: New test. 938*fb8a8121Smrg * testsuite/24_iterators/random_access/concept.cc: New test. 939*fb8a8121Smrg * testsuite/24_iterators/random_access/tag.cc: New test. 940*fb8a8121Smrg * testsuite/24_iterators/range_operations/advance_debug_neg.cc: New 941*fb8a8121Smrg test. 942*fb8a8121Smrg * testsuite/24_iterators/random_access_iterator/26020.cc: Move to ... 943*fb8a8121Smrg * testsuite/24_iterators/operations/26020.cc: ... here. 944*fb8a8121Smrg * testsuite/24_iterators/random_access_iterator/ 945*fb8a8121Smrg string_vector_iterators.cc: Move to ... 946*fb8a8121Smrg * testsuite/24_iterators/random_access/string_vector_iterators.cc: ... 947*fb8a8121Smrg here. 948*fb8a8121Smrg 949*fb8a8121Smrg * testsuite/util/testsuite_iterators.h: Fix typo in __cplusplus check. 950*fb8a8121Smrg 951*fb8a8121Smrg2019-10-29 Jonathan Wakely <jwakely@redhat.com> 952*fb8a8121Smrg 953*fb8a8121Smrg * include/bits/range_access.h (ranges::disable_sized_range) 954*fb8a8121Smrg (ranges::begin, ranges::end, ranges::cbegin, ranges::cend) 955*fb8a8121Smrg (ranges::rbegin, ranges::rend, ranges::crbegin, ranges::crend) 956*fb8a8121Smrg (ranges::size, ranges::empty, ranges::data, ranges::cdata) 957*fb8a8121Smrg (ranges::range, ranges::sized_range, ranges::advance, ranges::distance) 958*fb8a8121Smrg (ranges::next, ranges::prev): Guard with __cpp_lib_concepts. 959*fb8a8121Smrg * include/bits/stl_iterator.h (disable_sized_sentinel): Likewise. 960*fb8a8121Smrg 961*fb8a8121Smrg * include/bits/alloc_traits.h (__cpp_lib_constexpr_dynamic_alloc): 962*fb8a8121Smrg Define. 963*fb8a8121Smrg (allocator_traits::_S_construct, allocator_traits::_S_destroy) 964*fb8a8121Smrg (__alloc_on_copy, __alloc_on_move, __alloc_on_swap): Use 965*fb8a8121Smrg _GLIBCXX14_CONSTEXPR instead of constexpr. 966*fb8a8121Smrg * include/bits/stl_construct.h (_Destroy): Likewise. 967*fb8a8121Smrg 968*fb8a8121Smrg * include/Makefile.am: Add new header. 969*fb8a8121Smrg * include/Makefile.in: Regenerate. 970*fb8a8121Smrg * include/bits/iterator_concepts.h: New header. 971*fb8a8121Smrg (contiguous_iterator_tag, iter_reference_t, ranges::iter_move) 972*fb8a8121Smrg (iter_rvalue_reference_t, incrementable_traits, iter_difference_t) 973*fb8a8121Smrg (readable_traits, iter_value_t, readable, iter_common_reference_t) 974*fb8a8121Smrg (writable, waekly_incrementable, incrementable) 975*fb8a8121Smrg (input_or_output_iterator, sentinel_for, disable_sized_sentinel) 976*fb8a8121Smrg (sized_sentinel_for, input_iterator, output_iterator) 977*fb8a8121Smrg (forward_iterator, bidirectional_iterator, random_access_iterator) 978*fb8a8121Smrg (contiguous_iterator, indirectly_unary_invocable) 979*fb8a8121Smrg (indirectly_regular_unary_invocable, indirect_unary_predicate) 980*fb8a8121Smrg (indirect_relation, indirect_strict_weak_order, indirect_result_t) 981*fb8a8121Smrg (projected, indirectly_movable, indirectly_movable_storable) 982*fb8a8121Smrg (indirectly_copyable, indirectly_copyable_storable, ranges::iter_swap) 983*fb8a8121Smrg (indirectly_swappable, indirectly_comparable, permutable, mergeable) 984*fb8a8121Smrg (sortable, unreachable_sentinel_t, unreachable_sentinel) 985*fb8a8121Smrg (default_sentinel_t, default_sentinel): Define. 986*fb8a8121Smrg (__detail::__cpp17_iterator, __detail::__cpp17_input_iterator) 987*fb8a8121Smrg (__detail::__cpp17_fwd_iterator, __detail::__cpp17_bidi_iterator) 988*fb8a8121Smrg (__detail::__cpp17_randacc_iterator): Define. 989*fb8a8121Smrg (__iterator_traits): Define constrained specializations. 990*fb8a8121Smrg * include/bits/move.h (move): Only use old concept check for C++98. 991*fb8a8121Smrg * include/bits/range_access.h (ranges::disable_sized_range) 992*fb8a8121Smrg (ranges::begin, ranges::end, ranges::cbegin, ranges::cend) 993*fb8a8121Smrg (ranges::rbegin, ranges::rend, ranges::crbegin, ranges::crend) 994*fb8a8121Smrg (ranges::size, ranges::empty, ranges::data, ranges::cdata): Define 995*fb8a8121Smrg new customization points for C++20. 996*fb8a8121Smrg (ranges::range, ranges::sized_range): Define new concepts for C++20. 997*fb8a8121Smrg (ranges::advance, ranges::distance, ranges::next, ranges::prev): 998*fb8a8121Smrg Define new functions for C++20. 999*fb8a8121Smrg (__adl_end, __adl_cdata, __adl_cbegin, __adl_cend, __adl_rbegin) 1000*fb8a8121Smrg (__adl_rend, __adl_crbegin, __adl_crend, __adl_cdata, __adl_size) 1001*fb8a8121Smrg (__adl_empty): Remove. 1002*fb8a8121Smrg * include/bits/stl_iterator.h (disable_sized_sentinel): Specialize 1003*fb8a8121Smrg for reverse_iterator. 1004*fb8a8121Smrg * include/bits/stl_iterator_base_types.h (contiguous_iterator_tag): 1005*fb8a8121Smrg Define new struct for C++20. 1006*fb8a8121Smrg (iterator_traits<_Tp*>): Constrain partial specialization in C++20. 1007*fb8a8121Smrg * include/std/concepts (__is_class_or_enum): Move to __detail 1008*fb8a8121Smrg namespace. 1009*fb8a8121Smrg * testsuite/20_util/forward/c_neg.cc: Adjust dg-error line number. 1010*fb8a8121Smrg * testsuite/20_util/forward/f_neg.cc: Likewise. 1011*fb8a8121Smrg * testsuite/24_iterators/associated_types/incrementable.traits.cc: New 1012*fb8a8121Smrg test. 1013*fb8a8121Smrg * testsuite/24_iterators/associated_types/readable.traits.cc: New test. 1014*fb8a8121Smrg * testsuite/24_iterators/contiguous/concept.cc: New test. 1015*fb8a8121Smrg * testsuite/24_iterators/contiguous/tag.cc: New test. 1016*fb8a8121Smrg * testsuite/24_iterators/customization_points/iter_move.cc: New test. 1017*fb8a8121Smrg * testsuite/24_iterators/customization_points/iter_swap.cc: New test. 1018*fb8a8121Smrg * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: New test. 1019*fb8a8121Smrg * testsuite/24_iterators/range_operations/advance.cc: New test. 1020*fb8a8121Smrg * testsuite/24_iterators/range_operations/distance.cc: New test. 1021*fb8a8121Smrg * testsuite/24_iterators/range_operations/next.cc: New test. 1022*fb8a8121Smrg * testsuite/24_iterators/range_operations/prev.cc: New test. 1023*fb8a8121Smrg * testsuite/26_numerics/adjacent_difference/requirements/ 1024*fb8a8121Smrg explicit_instantiation/2.cc: Rename types that conflict with C++20 1025*fb8a8121Smrg concepts. 1026*fb8a8121Smrg * testsuite/26_numerics/adjacent_difference/requirements/ 1027*fb8a8121Smrg explicit_instantiation/pod.cc: Likewise. 1028*fb8a8121Smrg * testsuite/26_numerics/partial_sum/requirements/ 1029*fb8a8121Smrg explicit_instantiation/2.cc: Likewise. 1030*fb8a8121Smrg * testsuite/26_numerics/partial_sum/requirements/ 1031*fb8a8121Smrg explicit_instantiation/pod.cc: Likewise. 1032*fb8a8121Smrg * testsuite/experimental/iterator/requirements.cc: Likewise. 1033*fb8a8121Smrg * testsuite/std/ranges/access/begin.cc: New test. 1034*fb8a8121Smrg * testsuite/std/ranges/access/cbegin.cc: New test. 1035*fb8a8121Smrg * testsuite/std/ranges/access/cdata.cc: New test. 1036*fb8a8121Smrg * testsuite/std/ranges/access/cend.cc: New test. 1037*fb8a8121Smrg * testsuite/std/ranges/access/crbegin.cc: New test. 1038*fb8a8121Smrg * testsuite/std/ranges/access/crend.cc: New test. 1039*fb8a8121Smrg * testsuite/std/ranges/access/data.cc: New test. 1040*fb8a8121Smrg * testsuite/std/ranges/access/empty.cc: New test. 1041*fb8a8121Smrg * testsuite/std/ranges/access/end.cc: New test. 1042*fb8a8121Smrg * testsuite/std/ranges/access/rbegin.cc: New test. 1043*fb8a8121Smrg * testsuite/std/ranges/access/rend.cc: New test. 1044*fb8a8121Smrg * testsuite/std/ranges/access/size.cc: New test. 1045*fb8a8121Smrg * testsuite/util/testsuite_iterators.h (contiguous_iterator_wrapper) 1046*fb8a8121Smrg (test_range, test_sized_range): New test utilities. 1047*fb8a8121Smrg 1048*fb8a8121Smrg * testsuite/util/testsuite_iterators.h (BoundsContainer::size()): Add 1049*fb8a8121Smrg new member function. 1050*fb8a8121Smrg (WritableObject::operator=): Constrain with enable_if when available. 1051*fb8a8121Smrg (remove_cv): Use std::remove_if when available. 1052*fb8a8121Smrg (test_container::it(int)): Use size(). 1053*fb8a8121Smrg (test_container::size()): Use BoundsContainer::size(). 1054*fb8a8121Smrg 1055*fb8a8121Smrg PR libstdc++/92267 1056*fb8a8121Smrg * include/bits/stl_deque.h (_Deque_iterator(const _Deque_iterator&)): 1057*fb8a8121Smrg Do not define as defaulted. 1058*fb8a8121Smrg * testsuite/23_containers/deque/types/92267.cc: New test. 1059*fb8a8121Smrg 1060*fb8a8121Smrg2019-10-26 Gerald Pfeifer <gerald@pfeifer.com> 1061*fb8a8121Smrg 1062*fb8a8121Smrg * doc/xml/manual/codecvt.xml: Switch pubs.opengroup.org to https. 1063*fb8a8121Smrg * doc/xml/manual/locale.xml (LC_ALL): Ditto. 1064*fb8a8121Smrg * doc/xml/manual/messages.xml: Ditto. 1065*fb8a8121Smrg 1066*fb8a8121Smrg2019-10-26 John David Anglin <danglin@gcc.gnu.org> 1067*fb8a8121Smrg 1068*fb8a8121Smrg * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update. 1069*fb8a8121Smrg 1070*fb8a8121Smrg2019-10-25 Jonathan Wakely <jwakely@redhat.com> 1071*fb8a8121Smrg 1072*fb8a8121Smrg * testsuite/util/testsuite_iterators.h (output_iterator_wrapper) 1073*fb8a8121Smrg (input_iterator_wrapper, forward_iterator_wrapper) 1074*fb8a8121Smrg bidirectional_iterator_wrapper, random_access_iterator_wrapper): Remove 1075*fb8a8121Smrg user-provided copy constructors and copy assignment operators so they 1076*fb8a8121Smrg are defined implicitly. 1077*fb8a8121Smrg (input_iterator_wrapper): Initialize members in default constructor. 1078*fb8a8121Smrg (forward_iterator_wrapper): Remove assignments to members of base. 1079*fb8a8121Smrg 1080*fb8a8121Smrg * include/bits/allocator.h: Check __cpp_constexpr_dynamic_alloc 1081*fb8a8121Smrg before making the std::allocator destructor constexpr. 1082*fb8a8121Smrg * testsuite/20_util/allocator/requirements/constexpr.cc: New test. 1083*fb8a8121Smrg 1084*fb8a8121Smrg * include/bits/range_cmp.h: Check __cpp_lib_concepts before defining 1085*fb8a8121Smrg concepts. Fix comment. 1086*fb8a8121Smrg * include/bits/allocator.h 1087*fb8a8121Smrg 1088*fb8a8121Smrg2019-10-25 Gerald Pfeifer <gerald@pfeifer.com> 1089*fb8a8121Smrg 1090*fb8a8121Smrg * doc/xml/manual/policy_data_structures_biblio.xml: Switch 1091*fb8a8121Smrg pubs.opengroup.org to https. 1092*fb8a8121Smrg 1093*fb8a8121Smrg2019-10-25 Gerald Pfeifer <gerald@pfeifer.com> 1094*fb8a8121Smrg 1095*fb8a8121Smrg * doc/xml/gnu/gpl-3.0.xml: Switch www.gnu.org to https. 1096*fb8a8121Smrg 1097*fb8a8121Smrg2019-09-09 Edward Smith-Rowland <3dw4rd@verizon.net> 1098*fb8a8121Smrg 1099*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Add rows and update status. 1100*fb8a8121Smrg 1101*fb8a8121Smrg2019-10-24 Jonathan Wakely <jwakely@redhat.com> 1102*fb8a8121Smrg 1103*fb8a8121Smrg * include/bits/allocator.h (allocator<void>): Restore the explicit 1104*fb8a8121Smrg specialization for C++20, but make its API consistent with the primary 1105*fb8a8121Smrg template. 1106*fb8a8121Smrg (allocator::~allocator()): Restore the destructor for C++20, but make 1107*fb8a8121Smrg it constexpr. 1108*fb8a8121Smrg * testsuite/20_util/allocator/rebind_c++20.cc: Check allocator<void>. 1109*fb8a8121Smrg * testsuite/20_util/allocator/requirements/typedefs_c++20.cc: Likewise. 1110*fb8a8121Smrg * testsuite/20_util/allocator/void.cc: Check that constructors and 1111*fb8a8121Smrg destructors are trivial. Check for converting constructor in C++20. 1112*fb8a8121Smrg * testsuite/ext/malloc_allocator/variadic_construct.cc: Simplify 1113*fb8a8121Smrg dejagnu target selector. 1114*fb8a8121Smrg * testsuite/ext/new_allocator/variadic_construct.cc: Likewise. 1115*fb8a8121Smrg 1116*fb8a8121Smrg * include/experimental/executor (__use_future_ct, use_future_t): 1117*fb8a8121Smrg Define partial specializations for std::allocator. 1118*fb8a8121Smrg (__use_future_ch): Overload constructor for completion tokens using 1119*fb8a8121Smrg std::allocator. 1120*fb8a8121Smrg 1121*fb8a8121Smrg PR libstdc++/88338 Implement P0898R3, C++20 concepts library 1122*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Update status. 1123*fb8a8121Smrg * doc/html/*: Regenerate. 1124*fb8a8121Smrg * testsuite/std/concepts/1.cc: New test. 1125*fb8a8121Smrg * testsuite/std/concepts/2.cc: New test. 1126*fb8a8121Smrg 1127*fb8a8121Smrg * include/bits/random.h (uniform_random_bit_generator): Define for 1128*fb8a8121Smrg C++20. 1129*fb8a8121Smrg * testsuite/26_numerics/random/concept.cc: New test. 1130*fb8a8121Smrg * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error line. 1131*fb8a8121Smrg 1132*fb8a8121Smrg2019-10-23 Jonathan Wakely <jwakely@redhat.com> 1133*fb8a8121Smrg 1134*fb8a8121Smrg * include/std/functional (invoke): Add constexpr for C++20. 1135*fb8a8121Smrg * include/std/version (__cpp_lib_constexpr_invoke): Define. 1136*fb8a8121Smrg * testsuite/20_util/function_objects/invoke/constexpr.cc: New test. 1137*fb8a8121Smrg 1138*fb8a8121Smrg PR c++/91369 Implement P0784R7 changes to allocation and construction 1139*fb8a8121Smrg * include/bits/alloc_traits.h: Include <bits/stl_construct.h>. 1140*fb8a8121Smrg (allocator_traits::_S_allocate, allocator_traits::_S_construct) 1141*fb8a8121Smrg (allocator_traits::_S_destroy, allocator_traits::_S_max_size) 1142*fb8a8121Smrg (allocator_traits::_S_select, allocator_traits::allocate) 1143*fb8a8121Smrg (allocator_traits::deallocate, allocator_traits::construct) 1144*fb8a8121Smrg (allocator_traits::destroy, allocator_traits::max_size) 1145*fb8a8121Smrg (allocator_traits::select_on_container_copy_construction) 1146*fb8a8121Smrg (allocator_traits<allocator<T>>): Add constexpr specifier for C++20. 1147*fb8a8121Smrg (allocator_traits<allocator<T>>::construct): Use construct_at. 1148*fb8a8121Smrg (allocator_traits<allocator<T>>::destroy): Use destroy_at. 1149*fb8a8121Smrg (__alloc_on_copy, __alloc_on_move, __alloc_on_swap): Add constexpr 1150*fb8a8121Smrg specifier. 1151*fb8a8121Smrg (_Destroy(ForwardIterator, ForwardIterator, Alloc&)) 1152*fb8a8121Smrg (_Destroy(ForwardIterator, ForwardIterator, allocator<T>&)): Move here 1153*fb8a8121Smrg from <bits/stl_construct.h>. 1154*fb8a8121Smrg * include/bits/allocator.h (allocator::~allocator): Remove for C++20. 1155*fb8a8121Smrg (allocator::allocate, allocate::deallocate): Define for C++20 and up. 1156*fb8a8121Smrg (operator==, operator!=): Add constexpr specifier for C++20. 1157*fb8a8121Smrg * include/bits/stl_construct.h: Don't include <ext/alloc_traits.h>. 1158*fb8a8121Smrg (destroy_at): For C++20 add constexpr specifier and support for 1159*fb8a8121Smrg destroying arrays. 1160*fb8a8121Smrg (construct_at): Define new function for C++20. 1161*fb8a8121Smrg (_Construct): Return result of placement new-expression. For C++11 and 1162*fb8a8121Smrg up add constexpr. For C++20 dispatch to std::construct_at during 1163*fb8a8121Smrg constant evaluation. 1164*fb8a8121Smrg (_Destroy(pointer)): Add constexpr specifier. For C++20 dispatch to 1165*fb8a8121Smrg std::destroy_at during constant evaluation. 1166*fb8a8121Smrg (_Destroy_aux::__destroy, _Destroy_n_aux::__destroy_n): Add constexpr 1167*fb8a8121Smrg specifier for C++20. 1168*fb8a8121Smrg (_Destroy(ForwardIterator, ForwardIterator)) 1169*fb8a8121Smrg (_Destroy(ForwardIterator, Size)): Likewise. Do not elide trivial 1170*fb8a8121Smrg destructors during constant evaluation. 1171*fb8a8121Smrg (destroy, destroy_n): Add constexpr specifier for C++20. 1172*fb8a8121Smrg (_Destroy(ForwardIterator, ForwardIterator, Alloc&)) 1173*fb8a8121Smrg (_Destroy(ForwardIterator, ForwardIterator, allocator<T>&)): Move to 1174*fb8a8121Smrg <bits/alloc_traits.h>, to remove dependency on allocators. 1175*fb8a8121Smrg * include/bits/stl_uninitialized.h: Include <ext/alloc_traits.h>. 1176*fb8a8121Smrg Include <bits/stl_pair.h> instead of <utility>. 1177*fb8a8121Smrg * include/ext/alloc_traits.h: Always include <bits/alloc_traits.h>. 1178*fb8a8121Smrg (__alloc_traits::construct, __alloc_traits::destroy) 1179*fb8a8121Smrg (__alloc_traits::_S_select_on_copy, __alloc_traits::_S_on_swap): Add 1180*fb8a8121Smrg constexpr specifier. 1181*fb8a8121Smrg * include/ext/malloc_allocator.h (operator==, operator!=): Add 1182*fb8a8121Smrg constexpr specifier for C++20. 1183*fb8a8121Smrg * include/ext/new_allocator.h (operator==, operator!=): Likewise. 1184*fb8a8121Smrg * testsuite/20_util/headers/memory/synopsis.cc: Add constexpr. 1185*fb8a8121Smrg * testsuite/20_util/scoped_allocator/69293_neg.cc: Ignore additional 1186*fb8a8121Smrg errors due to constexpr function called after failed static_assert. 1187*fb8a8121Smrg * testsuite/20_util/specialized_algorithms/construct_at/1.cc: New test. 1188*fb8a8121Smrg * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: 1189*fb8a8121Smrg Ignore additional errors due to constexpr function called after failed 1190*fb8a8121Smrg static_assert. 1191*fb8a8121Smrg * testsuite/23_containers/vector/cons/destructible_neg.cc: Likewise. 1192*fb8a8121Smrg 1193*fb8a8121Smrg * testsuite/20_util/bind/91371.cc: Fix test to compile as C++11. 1194*fb8a8121Smrg 1195*fb8a8121Smrg * include/debug/helper_functions.h (__valid_range): Change 1196*fb8a8121Smrg _GLIBCXX_CONSTEXPR to _GLIBCXX14_CONSTEXPR. 1197*fb8a8121Smrg 1198*fb8a8121Smrg * include/ext/throw_allocator.h (throw_allocator_base): Qualify 1199*fb8a8121Smrg size_t and ptrdiff_t. 1200*fb8a8121Smrg 1201*fb8a8121Smrg * include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp: 1202*fb8a8121Smrg Use detail::rebind_traits. 1203*fb8a8121Smrg * include/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp: 1204*fb8a8121Smrg Likewise. 1205*fb8a8121Smrg * include/ext/pb_ds/detail/bin_search_tree_/traits.hpp: Likewise. 1206*fb8a8121Smrg * include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp: Likewise. 1207*fb8a8121Smrg * include/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp: Likewise. 1208*fb8a8121Smrg * include/ext/pb_ds/detail/binary_heap_/entry_pred.hpp: Likewise. 1209*fb8a8121Smrg * include/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp: 1210*fb8a8121Smrg Likewise. 1211*fb8a8121Smrg * include/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp: 1212*fb8a8121Smrg Likewise. 1213*fb8a8121Smrg * include/ext/pb_ds/detail/branch_policy/branch_policy.hpp: Likewise. 1214*fb8a8121Smrg * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp: Likewise. 1215*fb8a8121Smrg * include/ext/pb_ds/detail/cond_dealtor.hpp: Likewise. 1216*fb8a8121Smrg * include/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp (has_eq_fn): Likewise. 1217*fb8a8121Smrg * include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp: Likewise. 1218*fb8a8121Smrg * include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp: Likewise. 1219*fb8a8121Smrg * include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp: Likewise. 1220*fb8a8121Smrg * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ 1221*fb8a8121Smrg left_child_next_sibling_heap_.hpp: Likewise. 1222*fb8a8121Smrg * include/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp: 1223*fb8a8121Smrg Likewise. 1224*fb8a8121Smrg * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ 1225*fb8a8121Smrg point_const_iterator.hpp: Likewise. 1226*fb8a8121Smrg * include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp: Likewise. 1227*fb8a8121Smrg * include/ext/pb_ds/detail/ov_tree_map_/ 1228*fb8a8121Smrg constructors_destructor_fn_imps.hpp: Likewise. 1229*fb8a8121Smrg * include/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp: Likewise. 1230*fb8a8121Smrg * include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp: Likewise. 1231*fb8a8121Smrg * include/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp: Likewise. 1232*fb8a8121Smrg * include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp: Likewise. 1233*fb8a8121Smrg * include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp: Likewise. 1234*fb8a8121Smrg * include/ext/pb_ds/detail/rb_tree_map_/node.hpp: Likewise. 1235*fb8a8121Smrg * include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp: Likewise. 1236*fb8a8121Smrg * include/ext/pb_ds/detail/splay_tree_/node.hpp: Likewise. 1237*fb8a8121Smrg * include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp: Likewise. 1238*fb8a8121Smrg * include/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp: 1239*fb8a8121Smrg Likewise. 1240*fb8a8121Smrg * include/ext/pb_ds/detail/type_utils.hpp: Fix typo in comment. 1241*fb8a8121Smrg * include/ext/pb_ds/detail/types_traits.hpp (stored_value): Add 1242*fb8a8121Smrg bool parameter to control whether the hash value is stored. 1243*fb8a8121Smrg (select_base_type): New class template and partial specialization. 1244*fb8a8121Smrg (maybe_null_type): Likewise. 1245*fb8a8121Smrg (rebind_traits): New class template. 1246*fb8a8121Smrg (type_base): Remove four nearly identical specializations. 1247*fb8a8121Smrg (type_dispatch): Remove. 1248*fb8a8121Smrg (type_traits): Use select_base_type and maybe_null_type instead of 1249*fb8a8121Smrg type_base to control differences between specializations. 1250*fb8a8121Smrg * include/ext/pb_ds/list_update_policy.hpp: Use detail::rebind_traits. 1251*fb8a8121Smrg * include/ext/pb_ds/priority_queue.hpp: Likewise. 1252*fb8a8121Smrg * include/ext/pb_ds/tree_policy.hpp: Likewise. 1253*fb8a8121Smrg * include/ext/pb_ds/trie_policy.hpp: Likewise. 1254*fb8a8121Smrg 1255*fb8a8121Smrg * include/backward/hash_set (hash_set): Use __alloc_traits. 1256*fb8a8121Smrg * include/backward/hashtable.h (_Hashtable): Likewise. 1257*fb8a8121Smrg * include/ext/alloc_traits.h (__alloc_traits::allocate): Add overload 1258*fb8a8121Smrg taking a hint. 1259*fb8a8121Smrg * include/ext/extptr_allocator.h (_ExtPtr_allocator::allocate): Ignore 1260*fb8a8121Smrg hint. 1261*fb8a8121Smrg * include/ext/slist (_Slist_base): Use __alloc_traits. 1262*fb8a8121Smrg * include/tr1/hashtable.h (_Hashtable): Likewise. 1263*fb8a8121Smrg * include/tr1/regex (match_results): Use vector::const_reference 1264*fb8a8121Smrg instead of assuming the allocator defines it. 1265*fb8a8121Smrg * testsuite/backward/hash_map/23528.cc: Use allocator_traits in C++11. 1266*fb8a8121Smrg * testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc: Use 1267*fb8a8121Smrg __gnu_test::max_size. 1268*fb8a8121Smrg * testsuite/tr1/6_containers/unordered_multimap/capacity/ 1269*fb8a8121Smrg 29134-multimap.cc: Likewise. 1270*fb8a8121Smrg * testsuite/tr1/6_containers/unordered_multiset/capacity/ 1271*fb8a8121Smrg 29134-multiset.cc: Likewise. 1272*fb8a8121Smrg * testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc: 1273*fb8a8121Smrg Likewise. 1274*fb8a8121Smrg 1275*fb8a8121Smrg2019-10-22 Jonathan Wakely <jwakely@redhat.com> 1276*fb8a8121Smrg 1277*fb8a8121Smrg * testsuite/util/testsuite_abi.h: Restore use of tr1/unordered_map 1278*fb8a8121Smrg when compiled as C++98. 1279*fb8a8121Smrg 1280*fb8a8121Smrg * include/bits/memoryfwd.h (uses_allocator): Do not declare for C++98. 1281*fb8a8121Smrg * testsuite/17_intro/names.cc: Check uses_allocator in C++98. 1282*fb8a8121Smrg 1283*fb8a8121Smrg * include/bits/alloc_traits.h 1284*fb8a8121Smrg (allocator_traits<allocator<T>>::allocate): Ignore hint for C++20. 1285*fb8a8121Smrg (allocator_traits<allocator<T>>::construct): Perform placement new 1286*fb8a8121Smrg directly for C++20, instead of calling allocator<T>::construct. 1287*fb8a8121Smrg (allocator_traits<allocator<T>>::destroy): Call destructor directly 1288*fb8a8121Smrg for C++20, instead of calling allocator<T>::destroy. 1289*fb8a8121Smrg (allocator_traits<allocator<T>>::max_size): Return value directly 1290*fb8a8121Smrg for C++20, instead of calling std::allocator<T>::max_size(). 1291*fb8a8121Smrg (__do_alloc_on_copy, __do_alloc_on_move, __do_alloc_on_swap): Do not 1292*fb8a8121Smrg define for C++17 and up. 1293*fb8a8121Smrg (__alloc_on_copy, __alloc_on_move, __alloc_on_swap): Use if-constexpr 1294*fb8a8121Smrg for C++17 and up, instead of tag dispatching. 1295*fb8a8121Smrg * include/bits/allocator.h (allocator<void>): Remove for C++20. 1296*fb8a8121Smrg (allocator::pointer, allocator::const_pointer, allocator::reference) 1297*fb8a8121Smrg (allocator::const_reference, allocator::rebind): Remove for C++20. 1298*fb8a8121Smrg * include/bits/basic_string.h (basic_string): Use __alloc_traits to 1299*fb8a8121Smrg rebind allocator. 1300*fb8a8121Smrg * include/bits/memoryfwd.h (allocator<void>): Remove for C++20. 1301*fb8a8121Smrg * include/ext/debug_allocator.h: Use __alloc_traits for rebinding. 1302*fb8a8121Smrg * include/ext/malloc_allocator.h (malloc_allocator::~malloc_allocator) 1303*fb8a8121Smrg (malloc_allocator::pointer, malloc_allocator::const_pointer) 1304*fb8a8121Smrg (malloc_allocator::reference, malloc_allocator::const_reference) 1305*fb8a8121Smrg (malloc_allocator::rebind, malloc_allocator::max_size) 1306*fb8a8121Smrg (malloc_allocator::construct, malloc_allocator::destroy): Do not 1307*fb8a8121Smrg define for C++20. 1308*fb8a8121Smrg (malloc_allocator::_M_max_size): Define new function. 1309*fb8a8121Smrg * include/ext/new_allocator.h (new_allocator::~new_allocator) 1310*fb8a8121Smrg (new_allocator::pointer, new_allocator::const_pointer) 1311*fb8a8121Smrg (new_allocator::reference, new_allocator::const_reference) 1312*fb8a8121Smrg (new_allocator::rebind, new_allocator::max_size) 1313*fb8a8121Smrg (new_allocator::construct, new_allocator::destroy): Do not 1314*fb8a8121Smrg define for C++20. 1315*fb8a8121Smrg (new_allocator::_M_max_size): Define new function. 1316*fb8a8121Smrg * include/ext/rc_string_base.h (__rc_string_base::_Rep): Use 1317*fb8a8121Smrg __alloc_traits to rebind allocator. 1318*fb8a8121Smrg * include/ext/rope (_Rope_rep_base, _Rope_base): Likewise. 1319*fb8a8121Smrg (rope::rope(CharT, const allocator_type&)): Use __alloc_traits 1320*fb8a8121Smrg to construct character. 1321*fb8a8121Smrg * include/ext/slist (_Slist_base): Use __alloc_traits to rebind 1322*fb8a8121Smrg allocator. 1323*fb8a8121Smrg * include/ext/sso_string_base.h (__sso_string_base::_M_max_size): 1324*fb8a8121Smrg Use __alloc_traits. 1325*fb8a8121Smrg * include/ext/throw_allocator.h (throw_allocator): Do not use optional 1326*fb8a8121Smrg members of std::allocator, use __alloc_traits members instead. 1327*fb8a8121Smrg * include/ext/vstring.h (__versa_string): Use __alloc_traits. 1328*fb8a8121Smrg * include/ext/vstring_util.h (__vstring_utility): Likewise. 1329*fb8a8121Smrg * include/std/memory: Include <bits/alloc_traits.h>. 1330*fb8a8121Smrg * testsuite/20_util/allocator/8230.cc: Use __gnu_test::max_size. 1331*fb8a8121Smrg * testsuite/20_util/allocator/rebind_c++20.cc: New test. 1332*fb8a8121Smrg * testsuite/20_util/allocator/requirements/typedefs.cc: Do not check 1333*fb8a8121Smrg for pointer, const_pointer, reference, const_reference or rebind in 1334*fb8a8121Smrg C++20. 1335*fb8a8121Smrg * testsuite/20_util/allocator/requirements/typedefs_c++20.cc: New test. 1336*fb8a8121Smrg * testsuite/23_containers/deque/capacity/29134.cc: Use 1337*fb8a8121Smrg __gnu_test::max_size. 1338*fb8a8121Smrg * testsuite/23_containers/forward_list/capacity/1.cc: Likewise. 1339*fb8a8121Smrg * testsuite/23_containers/list/capacity/29134.cc: Likewise. 1340*fb8a8121Smrg * testsuite/23_containers/map/capacity/29134.cc: Likewise. 1341*fb8a8121Smrg * testsuite/23_containers/multimap/capacity/29134.cc: Likewise. 1342*fb8a8121Smrg * testsuite/23_containers/multiset/capacity/29134.cc: Likewise. 1343*fb8a8121Smrg * testsuite/23_containers/set/capacity/29134.cc: Likewise. 1344*fb8a8121Smrg * testsuite/23_containers/vector/capacity/29134.cc: Likewise. 1345*fb8a8121Smrg * testsuite/ext/malloc_allocator/variadic_construct.cc: Do not run 1346*fb8a8121Smrg test for C++20. 1347*fb8a8121Smrg * testsuite/ext/new_allocator/variadic_construct.cc: Likewise. 1348*fb8a8121Smrg * testsuite/ext/vstring/capacity/29134.cc: Use __gnu_test::max_size. 1349*fb8a8121Smrg * testsuite/util/replacement_memory_operators.h: Do not assume 1350*fb8a8121Smrg Alloc::pointer exists. 1351*fb8a8121Smrg * testsuite/util/testsuite_allocator.h (__gnu_test::max_size): Define 1352*fb8a8121Smrg helper to call max_size for any allocator. 1353*fb8a8121Smrg 1354*fb8a8121Smrg2019-10-22 Andreas Schwab <schwab@suse.de> 1355*fb8a8121Smrg 1356*fb8a8121Smrg * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. 1357*fb8a8121Smrg 1358*fb8a8121Smrg2019-10-18 Jonathan Wakely <jwakely@redhat.com> 1359*fb8a8121Smrg 1360*fb8a8121Smrg PR libstdc++/92143 1361*fb8a8121Smrg * libsupc++/new_opa.cc (operator new) [__APPLE__]: Increase alignment 1362*fb8a8121Smrg to at least sizeof(void*). 1363*fb8a8121Smrg 1364*fb8a8121Smrg * include/bits/range_cmp.h (ranges::less::operator()): Inline the 1365*fb8a8121Smrg logic from std::less::operator() to remove the dependency on it. 1366*fb8a8121Smrg 1367*fb8a8121Smrg2019-10-17 Jonathan Wakely <jwakely@redhat.com> 1368*fb8a8121Smrg 1369*fb8a8121Smrg * doc/doxygen/user.cfg.in (INPUT): Add new C++17 and C++20 headers. 1370*fb8a8121Smrg 1371*fb8a8121Smrg * include/Makefile.am: Add new header. 1372*fb8a8121Smrg * include/Makefile.in: Regenerate. 1373*fb8a8121Smrg * include/bits/range_cmp.h: New header for C++20 function objects. 1374*fb8a8121Smrg * include/std/functional: Include new header. 1375*fb8a8121Smrg * testsuite/20_util/function_objects/identity/1.cc: New test. 1376*fb8a8121Smrg * testsuite/20_util/function_objects/range.cmp/equal_to.cc: New test. 1377*fb8a8121Smrg * testsuite/20_util/function_objects/range.cmp/greater.cc: New test. 1378*fb8a8121Smrg * testsuite/20_util/function_objects/range.cmp/greater_equal.cc: New 1379*fb8a8121Smrg test. 1380*fb8a8121Smrg * testsuite/20_util/function_objects/range.cmp/less.cc: New test. 1381*fb8a8121Smrg * testsuite/20_util/function_objects/range.cmp/less_equal.cc: New test. 1382*fb8a8121Smrg * testsuite/20_util/function_objects/range.cmp/not_equal_to.cc: New 1383*fb8a8121Smrg test. 1384*fb8a8121Smrg 1385*fb8a8121Smrg PR libstdc++/92124 1386*fb8a8121Smrg * include/bits/forward_list.h 1387*fb8a8121Smrg (_M_move_assign(forward_list&&, false_type)): Do not use 1388*fb8a8121Smrg __make_move_if_noexcept, instead move unconditionally. 1389*fb8a8121Smrg * include/bits/stl_deque.h (_M_move_assign2(deque&&, false_type)): 1390*fb8a8121Smrg Likewise. 1391*fb8a8121Smrg * include/bits/stl_list.h (_M_move_assign(list&&, false_type)): 1392*fb8a8121Smrg Likewise. 1393*fb8a8121Smrg * include/bits/stl_vector.h (_M_move_assign(vector&&, false_type)): 1394*fb8a8121Smrg Likewise. 1395*fb8a8121Smrg * testsuite/23_containers/vector/92124.cc: New test. 1396*fb8a8121Smrg 1397*fb8a8121Smrg2019-10-16 Jonathan Wakely <jwakely@redhat.com> 1398*fb8a8121Smrg 1399*fb8a8121Smrg * include/bits/c++config (_GLIBCXX_BUILTIN_IS_SAME_AS): Define to 1400*fb8a8121Smrg one of __is_same_as or __is_same when available. 1401*fb8a8121Smrg * include/std/concepts (__detail::__same_as): Use std::is_same_v. 1402*fb8a8121Smrg * include/std/type_traits (is_same) [_GLIBCXX_BUILTIN_IS_SAME_AS]: 1403*fb8a8121Smrg Use new macro instead of __is_same_as. 1404*fb8a8121Smrg (is_same) [!_GLIBCXX_BUILTIN_IS_SAME_AS]: Restore partial 1405*fb8a8121Smrg specialization. 1406*fb8a8121Smrg (is_same_v) [_GLIBCXX_BUILTIN_IS_SAME_AS]: Use new macro. 1407*fb8a8121Smrg (is_same_v) [!_GLIBCXX_BUILTIN_IS_SAME_AS]: Use std::is_same. 1408*fb8a8121Smrg 1409*fb8a8121Smrg2019-10-16 François Dumont <fdumont@gcc.gnu.org> 1410*fb8a8121Smrg 1411*fb8a8121Smrg * src/c++11/debug.cc (print_field): Replace constness_names <unknown> 1412*fb8a8121Smrg entry with <unknown constness>. Replace state_names <unknown> entry with 1413*fb8a8121Smrg <unknown state>. 1414*fb8a8121Smrg 1415*fb8a8121Smrg2019-10-11 Jonathan Wakely <jwakely@redhat.com> 1416*fb8a8121Smrg 1417*fb8a8121Smrg * include/Makefile.am: Add new header. 1418*fb8a8121Smrg * include/Makefile.in: Regenerate. 1419*fb8a8121Smrg * include/precompiled/stdc++.h: Include <concepts>. 1420*fb8a8121Smrg * include/std/concepts: New header for C++20. 1421*fb8a8121Smrg * include/std/version (__cpp_lib_concepts): Define. 1422*fb8a8121Smrg * scripts/create_testsuite_files: Look for test files in new std 1423*fb8a8121Smrg directory. 1424*fb8a8121Smrg * testsuite/libstdc++-dg/conformance.exp: Likewise. 1425*fb8a8121Smrg * testsuite/std/concepts/concepts.callable/invocable.cc: New test. 1426*fb8a8121Smrg * testsuite/std/concepts/concepts.callable/regular_invocable.cc: New 1427*fb8a8121Smrg test. 1428*fb8a8121Smrg * testsuite/std/concepts/concepts.callable/relation.cc: New test. 1429*fb8a8121Smrg * testsuite/std/concepts/concepts.callable/strictweakorder.cc: New 1430*fb8a8121Smrg test. 1431*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.arithmetic/ 1432*fb8a8121Smrg floating_point.cc: New test. 1433*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc: 1434*fb8a8121Smrg New test. 1435*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.arithmetic/ 1436*fb8a8121Smrg signed_integral.cc: New test. 1437*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.arithmetic/ 1438*fb8a8121Smrg unsigned_integral.cc: New test. 1439*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.assignable/1.cc: New 1440*fb8a8121Smrg test. 1441*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.common/1.cc: New test. 1442*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.commonref/1.cc: New 1443*fb8a8121Smrg test. 1444*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.constructible/1.cc: 1445*fb8a8121Smrg New test. 1446*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.convertible/1.cc: 1447*fb8a8121Smrg New test. 1448*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc: 1449*fb8a8121Smrg New test. 1450*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.defaultconstructible/ 1451*fb8a8121Smrg 1.cc: New test. 1452*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.derived/1.cc: 1453*fb8a8121Smrg New test. 1454*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.destructible/1.cc: 1455*fb8a8121Smrg New test. 1456*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc: 1457*fb8a8121Smrg New test. 1458*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.same/1.cc: 1459*fb8a8121Smrg New test. 1460*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc: 1461*fb8a8121Smrg New test. 1462*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc: 1463*fb8a8121Smrg New test. 1464*fb8a8121Smrg * testsuite/std/concepts/concepts.lang/concept.swappable/ 1465*fb8a8121Smrg swappable_with.cc: New test. 1466*fb8a8121Smrg * testsuite/std/concepts/concepts.object/copyable.cc: New test. 1467*fb8a8121Smrg * testsuite/std/concepts/concepts.object/movable.cc: New test. 1468*fb8a8121Smrg * testsuite/std/concepts/concepts.object/regular.cc: New test. 1469*fb8a8121Smrg * testsuite/std/concepts/concepts.object/semiregular.cc: New test. 1470*fb8a8121Smrg 1471*fb8a8121Smrg * include/std/type_traits (is_same): Replace partial specialization 1472*fb8a8121Smrg by using __is_same_as built-in in primary template. 1473*fb8a8121Smrg (is_same_v): Use __is_same_as built-in instead of instantiating the 1474*fb8a8121Smrg is_same trait. 1475*fb8a8121Smrg 1476*fb8a8121Smrg PR libstdc++/92059 1477*fb8a8121Smrg * include/tr2/dynamic_bitset (__dynamic_bitset_base): Define all 1478*fb8a8121Smrg special member functions as defaulted. Add noexcept to most members. 1479*fb8a8121Smrg (__dynamic_bitset_base(size_t, unsigned long long, const _Alloc&)): 1480*fb8a8121Smrg Mask off unwanted bits in the __val parameter. Avoid undefined left 1481*fb8a8121Smrg shifts. 1482*fb8a8121Smrg (__dynamic_bitset_base::_M_assign): Remove. 1483*fb8a8121Smrg (__dynamic_bitset_base::_M_do_reset): Use std::fill. 1484*fb8a8121Smrg (__dynamic_bitset_base::_M_are_all_aux): Avoid integer promotion when 1485*fb8a8121Smrg block_type has lower rank than int. 1486*fb8a8121Smrg (dynamic_bitset): Add noexcept to most members. Use injected-class-name 1487*fb8a8121Smrg in return types and parameter types. 1488*fb8a8121Smrg (dynamic_bitset::_M_Nb): Add default member initializer. 1489*fb8a8121Smrg (dynamic_bitset(), dynamic_bitset(const dynamic_bitset&)): Define as 1490*fb8a8121Smrg defaulted. 1491*fb8a8121Smrg (dynamic_bitset(dynamic_bitset&&)): Clear source object after move. 1492*fb8a8121Smrg (dynamic_bitset::operator=(const dynamic_bitset&)): Define as 1493*fb8a8121Smrg defaulted. 1494*fb8a8121Smrg (dynamic_bitset::operator=(dynamic_bitset&&)): Add noexcept-specifier. 1495*fb8a8121Smrg Define without using swap, to propagate allocator correctly. 1496*fb8a8121Smrg (dynamic_bitset(const char*, const _Alloc&)): Use strlen. 1497*fb8a8121Smrg (dynamic_bitset::_M_do_sanitize, dynamic_bitset::_M_do_fill): Use 1498*fb8a8121Smrg casts to avoid unwanted integer promotions. 1499*fb8a8121Smrg (dynamic_bitset::_M_copy_from_ptr): Rearrange template parameters and 1500*fb8a8121Smrg add default template arguments and default argument to simplify usage. 1501*fb8a8121Smrg (dynamic_bitset::_M_copy_from_string): Adjust call to _M_copy_from_ptr. 1502*fb8a8121Smrg (operator==(const dynamic_bitset&, const dynamic_bitset&)) 1503*fb8a8121Smrg (operator<(const dynamic_bitset&, const dynamic_bitset&)): Use _M_Nb. 1504*fb8a8121Smrg * include/tr2/dynamic_bitset.tcc (dynamic_bitset::_M_copy_from_ptr): 1505*fb8a8121Smrg Adjust template parameters to match declaration. 1506*fb8a8121Smrg * testsuite/tr2/dynamic_bitset/cmp.cc: New test. 1507*fb8a8121Smrg * testsuite/tr2/dynamic_bitset/cons.cc: New test. 1508*fb8a8121Smrg * testsuite/tr2/dynamic_bitset/copy.cc: New test. 1509*fb8a8121Smrg * testsuite/tr2/dynamic_bitset/move.cc: New test. 1510*fb8a8121Smrg * testsuite/tr2/dynamic_bitset/pr92059.cc: New test. 1511*fb8a8121Smrg 1512*fb8a8121Smrg * include/bits/charconv.h (__to_chars_len): Avoid -Wsign-compare 1513*fb8a8121Smrg warnings. 1514*fb8a8121Smrg 1515*fb8a8121Smrg2019-10-10 Jonathan Wakely <jwakely@redhat.com> 1516*fb8a8121Smrg 1517*fb8a8121Smrg PR libstdc++/91057 1518*fb8a8121Smrg * src/c++98/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT] 1519*fb8a8121Smrg (find_ldbl_sync_facet): Fix parameter type and missing return. 1520*fb8a8121Smrg 1521*fb8a8121Smrg2019-10-09 Marek Polacek <polacek@redhat.com> 1522*fb8a8121Smrg 1523*fb8a8121Smrg PR c++/91364 - P0388R4: Permit conversions to arrays of unknown bound. 1524*fb8a8121Smrg PR c++/69531 - DR 1307: Differently bounded array parameters. 1525*fb8a8121Smrg PR c++/88128 - DR 330: Qual convs and pointers to arrays of pointers. 1526*fb8a8121Smrg * testsuite/23_containers/span/lwg3255.cc: Adjust test to match the 1527*fb8a8121Smrg post-P0388R4 behavior. 1528*fb8a8121Smrg 1529*fb8a8121Smrg2019-10-09 Jonathan Wakely <jwakely@redhat.com> 1530*fb8a8121Smrg 1531*fb8a8121Smrg PR libstdc++/91057 1532*fb8a8121Smrg * src/c++98/locale.cc (locale::id::_M_id()) [__GTHREADS]: Use atomic 1533*fb8a8121Smrg compare-exchange or double-checked lock to ensure only one thread sets 1534*fb8a8121Smrg the _M_index variable. 1535*fb8a8121Smrg [_GLIBCXX_LONG_DOUBLE_COMPAT]: Call find_ldbl_sync_facet to detect 1536*fb8a8121Smrg facets that share another facet's ID. 1537*fb8a8121Smrg [_GLIBCXX_LONG_DOUBLE_COMPAT] (find_ldbl_sync_facet): New function. 1538*fb8a8121Smrg 1539*fb8a8121Smrg PR libstdc++/78552 1540*fb8a8121Smrg * src/c++98/locale_init.cc (locale::classic()): Do not construct a new 1541*fb8a8121Smrg locale object for every call. 1542*fb8a8121Smrg (locale::_S_initialize_once()): Construct C locale here. 1543*fb8a8121Smrg 1544*fb8a8121Smrg2019-10-08 Jonathan Wakely <jwakely@redhat.com> 1545*fb8a8121Smrg 1546*fb8a8121Smrg * doc/Makefile.am (doc-html-docbook-regenerate): New target. 1547*fb8a8121Smrg (${docbook_outdir}/html): Do not create unused 'html/ext' directory. 1548*fb8a8121Smrg * doc/Makefile.in: Regenerate. 1549*fb8a8121Smrg * doc/xml/manual/documentation_hacking.xml: Document new target. 1550*fb8a8121Smrg * doc/html/*: Regenerate. 1551*fb8a8121Smrg 1552*fb8a8121Smrg * doc/xml/manual/allocator.xml: Use archived copy of CUJ article. 1553*fb8a8121Smrg * doc/html/*: Regenerate. 1554*fb8a8121Smrg 1555*fb8a8121Smrg2019-10-06 François Dumont <fdumont@gcc.gnu.org> 1556*fb8a8121Smrg 1557*fb8a8121Smrg * include/bits/stl_algo.h 1558*fb8a8121Smrg (__copy_n_a(_IIte, _Size, _OIte)): New. 1559*fb8a8121Smrg (__copy_n_a(istreambuf_iterator<>, _Size, _CharT*)): New declaration. 1560*fb8a8121Smrg (__copy_n(_IIte, _Size, _OIte, input_iterator_tag)): Adapt to use 1561*fb8a8121Smrg latter. 1562*fb8a8121Smrg * include/bits/streambuf_iterator.h (istreambuf_iterator<>): Declare 1563*fb8a8121Smrg std::__copy_n_a friend. 1564*fb8a8121Smrg (__copy_n_a(istreambuf_iterator<>, _Size, _CharT*)): New. 1565*fb8a8121Smrg * testsuite/25_algorithms/copy_n/istreambuf_iterator/1.cc: New. 1566*fb8a8121Smrg * testsuite/25_algorithms/copy_n/istreambuf_iterator/1_neg.cc: New. 1567*fb8a8121Smrg * testsuite/25_algorithms/copy_n/istreambuf_iterator/2_neg.cc: New. 1568*fb8a8121Smrg 1569*fb8a8121Smrg * include/bits/stl_iterator_base_types.h (__iterator_category_t): Define 1570*fb8a8121Smrg for C++11. 1571*fb8a8121Smrg (_RequireInputIte): Likewise and use __enable_if_t. 1572*fb8a8121Smrg * include/std/numeric 1573*fb8a8121Smrg (__is_random_access_iter): Use __iterator_category_t. 1574*fb8a8121Smrg 1575*fb8a8121Smrg * include/bits/stl_algo.h (copy_n): Add __glibcxx_requires_can_increment 1576*fb8a8121Smrg debug checks. 1577*fb8a8121Smrg * testsuite/25_algorithms/copy_n/debug/1_neg.cc: New. 1578*fb8a8121Smrg * testsuite/25_algorithms/copy_n/debug/2_neg.cc: New. 1579*fb8a8121Smrg 1580*fb8a8121Smrg2019-10-04 François Dumont <fdumont@gcc.gnu.org> 1581*fb8a8121Smrg 1582*fb8a8121Smrg * include/debug/forward_list 1583*fb8a8121Smrg (_Sequence_traits<__debug::forward_list<>>::_S_size): Returns __dp_sign 1584*fb8a8121Smrg distance when not empty. 1585*fb8a8121Smrg * include/debug/list (_Sequence_traits<__debug::list<>>::_S_size): 1586*fb8a8121Smrg Likewise. 1587*fb8a8121Smrg * include/debug/helper_functions.h (__dp_sign_max_size): New 1588*fb8a8121Smrg _Distance_precision enum entry. 1589*fb8a8121Smrg (__valid_range_aux(_IIte, _IIte, _Distance_traits<>::__type, 1590*fb8a8121Smrg __false_type)): Adapt. 1591*fb8a8121Smrg * include/debug/safe_iterator.tcc 1592*fb8a8121Smrg (_Safe_iterator<>::_M_get_distance_to(const _Safe_iterator&)): Review 1593*fb8a8121Smrg distance computation. 1594*fb8a8121Smrg 1595*fb8a8121Smrg2019-10-04 Jonathan Wakely <jwakely@redhat.com> 1596*fb8a8121Smrg 1597*fb8a8121Smrg PR libstdc++/81091 1598*fb8a8121Smrg PR libstdc++/91947 1599*fb8a8121Smrg * configure.ac: Use AC_SYS_LARGEFILE to enable 64-bit file APIs. 1600*fb8a8121Smrg * config.h.in: Regenerate: 1601*fb8a8121Smrg * configure: Regenerate: 1602*fb8a8121Smrg * include/Makefile.am (${host_builddir}/largefile-config.h): New 1603*fb8a8121Smrg target to generate config header for filesystem library. 1604*fb8a8121Smrg (${host_builddir}/c++config.h): Rename macros for large file support. 1605*fb8a8121Smrg * include/Makefile.in: Regenerate. 1606*fb8a8121Smrg * src/c++17/fs_dir.cc: Include new config header. 1607*fb8a8121Smrg * src/c++17/fs_ops.cc: Likewise. 1608*fb8a8121Smrg (filesystem::file_size): Use uintmax_t for size. 1609*fb8a8121Smrg * src/filesystem/dir.cc: Include new config header. 1610*fb8a8121Smrg * src/filesystem/ops.cc: Likewise. 1611*fb8a8121Smrg (experimental::filesystem::file_size): Use uintmax_t for size. 1612*fb8a8121Smrg 1613*fb8a8121Smrg * testsuite/util/testsuite_abi.h: Use std::unordered_map instead of 1614*fb8a8121Smrg std::tr1::unordered_map. 1615*fb8a8121Smrg * testsuite/util/testsuite_allocator.h: Likewise. 1616*fb8a8121Smrg 1617*fb8a8121Smrg * include/tr1/hashtable.h: Add header for __gnu_cxx::__alloc_traits. 1618*fb8a8121Smrg 1619*fb8a8121Smrg * include/tr1/hashtable.h (tr1::_Hashtable::_M_allocate_node): Use 1620*fb8a8121Smrg __gnu_cxx::__alloc_traits for allocator construct function. 1621*fb8a8121Smrg (tr1::_Hashtable::_M_deallocate_node): Likewise for destroy function. 1622*fb8a8121Smrg 1623*fb8a8121Smrg * include/precompiled/stdc++.h: Include <span> for C++20. 1624*fb8a8121Smrg * testsuite/17_intro/names.cc: Do not define 'e' for C++20. 1625*fb8a8121Smrg 1626*fb8a8121Smrg2019-10-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1627*fb8a8121Smrg 1628*fb8a8121Smrg * include/parallel/multiway_merge.h (_RAIter3): Replace _C by _Cp. 1629*fb8a8121Smrg 1630*fb8a8121Smrg2019-10-02 Jonathan Wakely <jwakely@redhat.com> 1631*fb8a8121Smrg 1632*fb8a8121Smrg * config/abi/pre/gnu.ver: Tighten up greedy wildcards. 1633*fb8a8121Smrg 1634*fb8a8121Smrg * doc/xml/manual/parallel_mode.xml: Add caveat about support for 1635*fb8a8121Smrg recent standards. 1636*fb8a8121Smrg * doc/html/*: Regenerate. 1637*fb8a8121Smrg 1638*fb8a8121Smrg2019-10-01 Jonathan Wakely <jwakely@redhat.com> 1639*fb8a8121Smrg 1640*fb8a8121Smrg * include/experimental/algorithm (experimental::sample): Qualify call 1641*fb8a8121Smrg to __sample correctly. 1642*fb8a8121Smrg * include/parallel/algo.h (sample, for_each_n): Add using-declarations 1643*fb8a8121Smrg for algorithms that don't have parallel implementations. 1644*fb8a8121Smrg 1645*fb8a8121Smrg * include/parallel/algobase.h (equal, lexicographical_compare): Add 1646*fb8a8121Smrg _GLIBCXX20_CONSTEXPR and dispatch to sequential algorithm when being 1647*fb8a8121Smrg constant evaluated. 1648*fb8a8121Smrg * include/parallel/algorithmfwd.h (equal, lexicographical_compare): 1649*fb8a8121Smrg Add _GLIBCXX20_CONSTEXPR. 1650*fb8a8121Smrg 1651*fb8a8121Smrg * testsuite/17_intro/using_namespace_std_tr1_neg.cc: Skip test for 1652*fb8a8121Smrg parallel mode. 1653*fb8a8121Smrg * testsuite/20_util/hash/84998.cc: Likewise. 1654*fb8a8121Smrg * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: Likewise. 1655*fb8a8121Smrg * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: Likewise. 1656*fb8a8121Smrg * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise. 1657*fb8a8121Smrg * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise. 1658*fb8a8121Smrg * testsuite/23_containers/multimap/pmr_typedefs_debug.cc: Likewise. 1659*fb8a8121Smrg * testsuite/23_containers/multiset/pmr_typedefs_debug.cc: Likewise. 1660*fb8a8121Smrg * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise. 1661*fb8a8121Smrg * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc: 1662*fb8a8121Smrg Likewise. 1663*fb8a8121Smrg * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc: 1664*fb8a8121Smrg Likewise. 1665*fb8a8121Smrg * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc: 1666*fb8a8121Smrg Likewise. 1667*fb8a8121Smrg * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc: 1668*fb8a8121Smrg Likewise. 1669*fb8a8121Smrg * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: 1670*fb8a8121Smrg Likewise. 1671*fb8a8121Smrg * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: Likewise. 1672*fb8a8121Smrg * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise. 1673*fb8a8121Smrg * testsuite/25_algorithms/copy/86658.cc: Likewise. 1674*fb8a8121Smrg * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise. 1675*fb8a8121Smrg * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise. 1676*fb8a8121Smrg * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise. 1677*fb8a8121Smrg * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise. 1678*fb8a8121Smrg 1679*fb8a8121Smrg * include/parallel/algo.h: Replace non-reserved names. 1680*fb8a8121Smrg * include/parallel/multiway_merge.h: Likewise. 1681*fb8a8121Smrg * include/parallel/multiway_mergesort.h: Likewise. 1682*fb8a8121Smrg * include/parallel/numericfwd.h: Likewise. 1683*fb8a8121Smrg * testsuite/17_intro/names.cc: Add RAI to test macros. 1684*fb8a8121Smrg 1685*fb8a8121Smrg2019-09-30 François Dumont <fdumont@gcc.gnu.org> 1686*fb8a8121Smrg 1687*fb8a8121Smrg * include/debug/array: Add C++20 constexpr to comparison operators. 1688*fb8a8121Smrg * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adapt 1689*fb8a8121Smrg dg-error line numbers. 1690*fb8a8121Smrg * testsuite/23_containers/array/tuple_interface/ 1691*fb8a8121Smrg tuple_element_debug_neg.cc: Likewise. 1692*fb8a8121Smrg 1693*fb8a8121Smrg2019-09-30 Andreas Tobler <andreast@gcc.gnu.org> 1694*fb8a8121Smrg 1695*fb8a8121Smrg * include/experimental/internet: Include netinet/in.h if we have 1696*fb8a8121Smrg _GLIBCXX_HAVE_NETINET_IN_H defined. 1697*fb8a8121Smrg 1698*fb8a8121Smrg * testsuite/ext/special_functions/airy_ai/check_nan.cc: Ignore the 1699*fb8a8121Smrg FreeBSD warning about lower advertised precision of tgammal. 1700*fb8a8121Smrg * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise. 1701*fb8a8121Smrg * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise. 1702*fb8a8121Smrg * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise. 1703*fb8a8121Smrg * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise. 1704*fb8a8121Smrg * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise. 1705*fb8a8121Smrg * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise. 1706*fb8a8121Smrg * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise. 1707*fb8a8121Smrg * testsuite/tr1/5_numerical_facilities/special_functions/ 1708*fb8a8121Smrg 08_cyl_bessel_i/check_nan.cc: Likewise. 1709*fb8a8121Smrg * testsuite/tr1/5_numerical_facilities/special_functions/ 1710*fb8a8121Smrg 09_cyl_bessel_j/check_nan.cc: Likewise. 1711*fb8a8121Smrg * testuite/tr1/5_numerical_facilities/special_functions/ 1712*fb8a8121Smrg 10_cyl_bessel_k/check_nan.cc: Likewise. 1713*fb8a8121Smrg * testsuite/tr1/5_numerical_facilities/special_functions/ 1714*fb8a8121Smrg 11_cyl_neumann/check_nan.cc: Likewise. 1715*fb8a8121Smrg * testsuite/tr1/5_numerical_facilities/special_functions/ 1716*fb8a8121Smrg 21_sph_bessel/check_nan.cc: Likewise. 1717*fb8a8121Smrg * testsuite/tr1/5_numerical_facilities/special_functions/ 1718*fb8a8121Smrg 23_sph_neumann/check_nan.cc: Likewise. 1719*fb8a8121Smrg 1720*fb8a8121Smrg2019-09-30 Jonathan Wakely <jwakely@redhat.com> 1721*fb8a8121Smrg 1722*fb8a8121Smrg * include/std/span (span(element_type(&)[N])) 1723*fb8a8121Smrg (span(array<value_type, N>&), span(const array<value_type, N>&)): 1724*fb8a8121Smrg Deduce array element type to allow safe const conversions (LWG 3255). 1725*fb8a8121Smrg [!_GLIBCXX_P1394] (span(Container&), span(const Container&)): Use 1726*fb8a8121Smrg remove_cv_t on arguments to __is_std_span and __is_std_array. 1727*fb8a8121Smrg * testsuite/23_containers/span/lwg3255.cc: New test. 1728*fb8a8121Smrg 1729*fb8a8121Smrg PR libstdc++/77936 1730*fb8a8121Smrg * include/parallel/checkers.h (__is_sorted): Remove unused variable. 1731*fb8a8121Smrg 1732*fb8a8121Smrg2019-09-28 François Dumont <fdumont@gcc.gnu.org> 1733*fb8a8121Smrg 1734*fb8a8121Smrg * include/bits/stl_algo.h (merge): Fix documentation. 1735*fb8a8121Smrg * include/debug/functions.h (__check_sorted_aux): Add C++20 constexpr. 1736*fb8a8121Smrg (__check_sorted): Likewise and remove nested irreflexive check. 1737*fb8a8121Smrg (__check_sorted_set_aux, __check_sorted_set): Add C++20 constexpr. 1738*fb8a8121Smrg (__check_partitioned_lower, __check_partitioned_upper): Likewise. 1739*fb8a8121Smrg (_Irreflexive_checker::_S_is_valid): Likewise. 1740*fb8a8121Smrg (__is_irreflexive, __is_irreflexive_pred): Likewise. 1741*fb8a8121Smrg * include/debug/helper_functions.h (__get_distance): Add constexpr. 1742*fb8a8121Smrg (__valid_range_aux): Add C++20 constexpr. 1743*fb8a8121Smrg (__valid_range(_Iter, _Iter, _Distance_traits<_Iter>::__type&)): 1744*fb8a8121Smrg Likewise and add std::is_constant_evaluated check. 1745*fb8a8121Smrg (__valid_range_aux(_Iter, _Iter, std::input_iterator_tag)): New. 1746*fb8a8121Smrg (__valid_range_aux(_Iter, _Iter, std::random_accss_iterator_tag)): New. 1747*fb8a8121Smrg (__valid_range_aux(_Integral, _Integral, std::__true_type)): New, 1748*fb8a8121Smrg use latter. 1749*fb8a8121Smrg (__valid_range(_Iter, _Iter)): Adapt to use latter, add constexpr and 1750*fb8a8121Smrg __builtin_is_contant_evaludated check.. 1751*fb8a8121Smrg (__can_advance, __base): Add constexpr. 1752*fb8a8121Smrg * include/debug/macros.h [_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED] 1753*fb8a8121Smrg (_GLIBCXX_DEBUG_VERIFY_COND_AT): New. 1754*fb8a8121Smrg (__glibcxx_check_sorted): Use __glibcxx_check_irreflexive. 1755*fb8a8121Smrg (__glibcxx_check_sorted_pred): Use __glibcxx_check_irreflexive_pred. 1756*fb8a8121Smrg * testsuite/25_algorithms/binary_search/constexpr.cc: Use irreflexive 1757*fb8a8121Smrg std::less. 1758*fb8a8121Smrg * testsuite/25_algorithms/is_sorted/constexpr.cc: Likewise. 1759*fb8a8121Smrg * testsuite/25_algorithms/merge/constexpr.cc: Fix order in camm. Fix 1760*fb8a8121Smrg lambda to be irreflexive. 1761*fb8a8121Smrg 1762*fb8a8121Smrg2019-09-27 Maciej W. Rozycki <macro@wdc.com> 1763*fb8a8121Smrg 1764*fb8a8121Smrg * configure: Regenerate. 1765*fb8a8121Smrg 1766*fb8a8121Smrg2019-09-27 Jonathan Wakely <jwakely@redhat.com> 1767*fb8a8121Smrg 1768*fb8a8121Smrg PR libstdc++/91910 1769*fb8a8121Smrg * src/c++11/debug.cc (_Safe_iterator_base::_M_detach()): Load pointer 1770*fb8a8121Smrg atomically and lock the mutex before accessing the sequence. 1771*fb8a8121Smrg (_Safe_local_iterator_base::_M_detach()): Likewise. 1772*fb8a8121Smrg (_Safe_iterator_base::_M_reset()): Clear _M_sequence atomically. 1773*fb8a8121Smrg 1774*fb8a8121Smrg2019-09-26 Jonathan Wakely <jwakely@redhat.com> 1775*fb8a8121Smrg 1776*fb8a8121Smrg * include/debug/array (to_array): Define for debug mode. 1777*fb8a8121Smrg 1778*fb8a8121Smrg * include/bits/stl_pair.h (pair): Add _GLIBCXX20_CONSTEXPR to 1779*fb8a8121Smrg piecewise construction constructor, assignment operators, and swap. 1780*fb8a8121Smrg * include/std/tuple (pair::pair(piecewise_construct_t, tuple, tuple)): 1781*fb8a8121Smrg Add _GLIBCXX20_CONSTEXPR. 1782*fb8a8121Smrg (pair::pair(tuple, tuple, _Index_tuple, _Index_tuple)): Likewise. 1783*fb8a8121Smrg * testsuite/20_util/pair/constexpr_assign.cc: New test. 1784*fb8a8121Smrg * testsuite/20_util/pair/constexpr_swap.cc: New test. 1785*fb8a8121Smrg 1786*fb8a8121Smrg * include/experimental/internet (operator==, operator<): Fix loop 1787*fb8a8121Smrg condition to avoid reading past the end of the array. 1788*fb8a8121Smrg 1789*fb8a8121Smrg * include/std/array: Remove references to profile mode. 1790*fb8a8121Smrg * include/std/bitset: Likewise. 1791*fb8a8121Smrg * include/std/deque: Likewise. 1792*fb8a8121Smrg * include/std/forward_list: Likewise. 1793*fb8a8121Smrg * include/std/list: Likewise. 1794*fb8a8121Smrg * include/std/map: Likewise. 1795*fb8a8121Smrg * include/std/set: Likewise. 1796*fb8a8121Smrg * include/std/unordered_map: Likewise. 1797*fb8a8121Smrg * include/std/unordered_set: Likewise. 1798*fb8a8121Smrg * include/std/vector: Likewise. 1799*fb8a8121Smrg * testsuite/17_intro/headers/c++1998/profile_mode.cc: New test. 1800*fb8a8121Smrg * testsuite/17_intro/headers/c++2011/profile_mode.cc: New test. 1801*fb8a8121Smrg 1802*fb8a8121Smrg2019-09-25 Jonathan Wakely <jwakely@redhat.com> 1803*fb8a8121Smrg 1804*fb8a8121Smrg * include/bits/regex.h 1805*fb8a8121Smrg (basic_regex::assign(const C*, size_t, flag_type)): Add default 1806*fb8a8121Smrg argument (LWG 3296). 1807*fb8a8121Smrg * testsuite/28_regex/basic_regex/assign/char/lwg3296.cc: New test. 1808*fb8a8121Smrg * testsuite/28_regex/basic_regex/assign/wchar_t/lwg3296.cc: New test. 1809*fb8a8121Smrg 1810*fb8a8121Smrg2019-09-24 Jonathan Wakely <jwakely@redhat.com> 1811*fb8a8121Smrg 1812*fb8a8121Smrg * include/std/variant (variant::index()): Remove impossible case. 1813*fb8a8121Smrg 1814*fb8a8121Smrg PR libstdc++/91871 1815*fb8a8121Smrg * testsuite/util/testsuite_hooks.h 1816*fb8a8121Smrg (conversion::iterator_to_const_iterator()): Do not return an invalid 1817*fb8a8121Smrg iterator. Test direct-initialization and direct-list-initialization 1818*fb8a8121Smrg as well as implicit conversion. 1819*fb8a8121Smrg 1820*fb8a8121Smrg2019-09-23 Jonathan Wakely <jwakely@redhat.com> 1821*fb8a8121Smrg 1822*fb8a8121Smrg PR libstdc++/91788 (partial) 1823*fb8a8121Smrg * include/std/variant (variant::index()): Improve codegen for cases 1824*fb8a8121Smrg where conversion to size_t already works correctly. 1825*fb8a8121Smrg 1826*fb8a8121Smrg2019-09-23 Andreas Schwab <schwab@suse.de> 1827*fb8a8121Smrg 1828*fb8a8121Smrg * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update. 1829*fb8a8121Smrg 1830*fb8a8121Smrg2019-09-12 Jonathan Wakely <jwakely@redhat.com> 1831*fb8a8121Smrg 1832*fb8a8121Smrg PR libstdc++/91748 1833*fb8a8121Smrg * include/bits/stl_algo.h (for_each_n): Fix random access iterator 1834*fb8a8121Smrg case. 1835*fb8a8121Smrg * testsuite/25_algorithms/for_each/for_each_n.cc: Test with random 1836*fb8a8121Smrg access iterators. 1837*fb8a8121Smrg 1838*fb8a8121Smrg2019-09-11 Jonathan Wakely <jwakely@redhat.com> 1839*fb8a8121Smrg 1840*fb8a8121Smrg * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker.__call__): 1841*fb8a8121Smrg Fix syntax error. 1842*fb8a8121Smrg 1843*fb8a8121Smrg * testsuite/20_util/result_of/sfinae_friendly_1.cc: Add -Wno-volatile 1844*fb8a8121Smrg for C++2a and up. Define HAS_52748_FIXED and fix incorrect tests. 1845*fb8a8121Smrg * testsuite/tr1/3_function_objects/result_of.cc: Add -Wno-volatile 1846*fb8a8121Smrg for C++2a and up. 1847*fb8a8121Smrg 1848*fb8a8121Smrg2019-09-10 Jonathan Wakely <jwakely@redhat.com> 1849*fb8a8121Smrg 1850*fb8a8121Smrg * include/std/type_traits (__do_common_type_impl): Implement 1851*fb8a8121Smrg additional COND-RES(CREF(D1), CRED(D2)) condition for C++20. 1852*fb8a8121Smrg (basic_common_reference, common_reference, common_reference_t): Define 1853*fb8a8121Smrg for C++20. 1854*fb8a8121Smrg * testsuite/20_util/common_reference/requirements/alias_decl.cc: New 1855*fb8a8121Smrg test. 1856*fb8a8121Smrg * testsuite/20_util/common_reference/requirements/ 1857*fb8a8121Smrg explicit_instantiation.cc: New test. 1858*fb8a8121Smrg * testsuite/20_util/common_reference/requirements/typedefs.cc: New 1859*fb8a8121Smrg test. 1860*fb8a8121Smrg 1861*fb8a8121Smrg * include/std/charconv (to_chars): Rename to __to_chars_i. Define 1862*fb8a8121Smrg non-template overloads for each signed and unsigned integer type and 1863*fb8a8121Smrg char. Define deleted overload for bool (LWG 3266). 1864*fb8a8121Smrg * testsuite/20_util/to_chars/1_neg.cc: Remove. 1865*fb8a8121Smrg * testsuite/20_util/to_chars/3.cc: New test. 1866*fb8a8121Smrg * testsuite/20_util/to_chars/lwg3266.cc: New test. 1867*fb8a8121Smrg 1868*fb8a8121Smrg2019-09-10 Christophe Lyon <christophe.lyon@st.com> 1869*fb8a8121Smrg 1870*fb8a8121Smrg * acinclude.m4: Handle uclinux*. 1871*fb8a8121Smrg * configure: Regenerate. 1872*fb8a8121Smrg * configure.host: Handle uclinux* 1873*fb8a8121Smrg 1874*fb8a8121Smrg2019-09-10 Christophe Lyon <christophe.lyon@st.com> 1875*fb8a8121Smrg Mickaël Guêné <mickael.guene@st.com> 1876*fb8a8121Smrg 1877*fb8a8121Smrg * libsupc++/eh_personality.cc (get_ttype_entry): Add FDPIC 1878*fb8a8121Smrg support. 1879*fb8a8121Smrg 1880*fb8a8121Smrg2019-09-10 Jonathan Wakely <jwakely@redhat.com> 1881*fb8a8121Smrg 1882*fb8a8121Smrg PR libstdc++/91711 1883*fb8a8121Smrg * testsuite/23_containers/span/get_neg.cc: Avoid ambiguity due to 1884*fb8a8121Smrg 0ul being a valid null pointer constant. 1885*fb8a8121Smrg 1886*fb8a8121Smrg * include/std/type_traits (__remove_cv_t): New alias template. 1887*fb8a8121Smrg (is_void, is_integral, is_floating_point, is_pointer) 1888*fb8a8121Smrg (is_member_object_pointer, is_member_function_pointer, is_null_pointer) 1889*fb8a8121Smrg (is_member_point), __is_signed_integer, __is_unsigned_integer) 1890*fb8a8121Smrg (__make_unsigned_selector, __make_signed_selector, remove_pointer) 1891*fb8a8121Smrg (__decay_selector): Use __remove_cv_t. 1892*fb8a8121Smrg (remove_cv): Add partial specializations for cv-qualified types. 1893*fb8a8121Smrg (__decay_t): New alias template. 1894*fb8a8121Smrg (__decay_and_strip, __common_type_impl, __result_of_impl): Use 1895*fb8a8121Smrg __decay_t. 1896*fb8a8121Smrg (__enable_if_t): Move earlier in the file. 1897*fb8a8121Smrg (_Require): Use __enable_if_t. 1898*fb8a8121Smrg (swap(T&, T&)): Use _Require. 1899*fb8a8121Smrg (swap(T(&)[N])): Use __enable_if_t. 1900*fb8a8121Smrg 1901*fb8a8121Smrg2019-09-09 Edward Smith-Rowland <3dw4rd@verizon.net> 1902*fb8a8121Smrg 1903*fb8a8121Smrg Implement C++20 p1424 - 'constexpr' feature macro concerns, 1904*fb8a8121Smrg Issue 3256 - Feature testing macro for constexpr algorithms, 1905*fb8a8121Smrg and Issue 3257 - Missing feature testing macro update from P0858. 1906*fb8a8121Smrg * include/std/version (__cpp_lib_constexpr_algorithms): Bump value. 1907*fb8a8121Smrg * include/bits/algorithmfwd.h: Ditto. 1908*fb8a8121Smrg * include/std/utility: Ditto. 1909*fb8a8121Smrg * testsuite/25_algorithms/constexpr_macro.cc: Ditto. 1910*fb8a8121Smrg * testsuite/25_algorithms/cpp_lib_constexpr.cc: New check for 1911*fb8a8121Smrg __cpp_lib_constexpr macro in <algorith>. 1912*fb8a8121Smrg * testsuite/20_util/exchange/constexpr.cc: Add check for 1913*fb8a8121Smrg __cpp_lib_constexpr macro in <utility>. 1914*fb8a8121Smrg * testsuite/25_algorithms/adjacent_find/constexpr.cc: Remove check for 1915*fb8a8121Smrg __cpp_lib_constexpr_algorithms. 1916*fb8a8121Smrg * testsuite/25_algorithms/all_of/constexpr.cc: Ditto. 1917*fb8a8121Smrg * testsuite/25_algorithms/any_of/constexpr.cc: Ditto. 1918*fb8a8121Smrg * testsuite/25_algorithms/binary_search/constexpr.cc: Ditto. 1919*fb8a8121Smrg * testsuite/25_algorithms/copy/constexpr.cc: Ditto. 1920*fb8a8121Smrg * testsuite/25_algorithms/copy_backward/constexpr.cc: Ditto. 1921*fb8a8121Smrg * testsuite/25_algorithms/copy_if/constexpr.cc: Ditto. 1922*fb8a8121Smrg * testsuite/25_algorithms/copy_n/constexpr.cc: Ditto. 1923*fb8a8121Smrg * testsuite/25_algorithms/count/constexpr.cc: Ditto. 1924*fb8a8121Smrg * testsuite/25_algorithms/count_if/constexpr.cc: Ditto. 1925*fb8a8121Smrg * testsuite/25_algorithms/equal/constexpr.cc: Ditto. 1926*fb8a8121Smrg * testsuite/25_algorithms/equal_range/constexpr.cc: Ditto. 1927*fb8a8121Smrg * testsuite/25_algorithms/fill/constexpr.cc: Ditto. 1928*fb8a8121Smrg * testsuite/25_algorithms/fill_n/constexpr.cc: Ditto. 1929*fb8a8121Smrg * testsuite/25_algorithms/find/constexpr.cc: Ditto. 1930*fb8a8121Smrg * testsuite/25_algorithms/find_end/constexpr.cc: Ditto. 1931*fb8a8121Smrg * testsuite/25_algorithms/find_first_of/constexpr.cc: Ditto. 1932*fb8a8121Smrg * testsuite/25_algorithms/find_if/constexpr.cc: Ditto. 1933*fb8a8121Smrg * testsuite/25_algorithms/find_if_not/constexpr.cc: Ditto. 1934*fb8a8121Smrg * testsuite/25_algorithms/for_each/constexpr.cc: Ditto. 1935*fb8a8121Smrg * testsuite/25_algorithms/generate/constexpr.cc: Ditto. 1936*fb8a8121Smrg * testsuite/25_algorithms/generate_n/constexpr.cc: Ditto. 1937*fb8a8121Smrg * testsuite/25_algorithms/is_heap/constexpr.cc: Ditto. 1938*fb8a8121Smrg * testsuite/25_algorithms/is_heap_until/constexpr.cc: Ditto. 1939*fb8a8121Smrg * testsuite/25_algorithms/is_partitioned/constexpr.cc: Ditto. 1940*fb8a8121Smrg * testsuite/25_algorithms/is_permutation/constexpr.cc: Ditto. 1941*fb8a8121Smrg * testsuite/25_algorithms/is_sorted/constexpr.cc: Ditto. 1942*fb8a8121Smrg * testsuite/25_algorithms/is_sorted_until/constexpr.cc: Ditto. 1943*fb8a8121Smrg * testsuite/25_algorithms/lexicographical_compare/constexpr.cc: Ditto. 1944*fb8a8121Smrg * testsuite/25_algorithms/lower_bound/constexpr.cc: Ditto. 1945*fb8a8121Smrg * testsuite/25_algorithms/merge/constexpr.cc: Ditto. 1946*fb8a8121Smrg * testsuite/25_algorithms/mismatch/constexpr.cc: Ditto. 1947*fb8a8121Smrg * testsuite/25_algorithms/none_of/constexpr.cc: Ditto. 1948*fb8a8121Smrg * testsuite/25_algorithms/partition_copy/constexpr.cc: Ditto. 1949*fb8a8121Smrg * testsuite/25_algorithms/partition_point/constexpr.cc: Ditto. 1950*fb8a8121Smrg * testsuite/25_algorithms/remove/constexpr.cc: Ditto. 1951*fb8a8121Smrg * testsuite/25_algorithms/remove_copy/constexpr.cc: Ditto. 1952*fb8a8121Smrg * testsuite/25_algorithms/remove_copy_if/constexpr.cc: Ditto. 1953*fb8a8121Smrg * testsuite/25_algorithms/remove_if/constexpr.cc: Ditto. 1954*fb8a8121Smrg * testsuite/25_algorithms/replace_copy/constexpr.cc: Ditto. 1955*fb8a8121Smrg * testsuite/25_algorithms/replace_copy_if/constexpr.cc: Ditto. 1956*fb8a8121Smrg * testsuite/25_algorithms/replace_if/constexpr.cc: Ditto. 1957*fb8a8121Smrg * testsuite/25_algorithms/reverse_copy/constexpr.cc: Ditto. 1958*fb8a8121Smrg * testsuite/25_algorithms/rotate_copy/constexpr.cc: Ditto. 1959*fb8a8121Smrg * testsuite/25_algorithms/search/constexpr.cc: Ditto. 1960*fb8a8121Smrg * testsuite/25_algorithms/search_n/constexpr.cc: Ditto. 1961*fb8a8121Smrg * testsuite/25_algorithms/set_difference/constexpr.cc: Ditto. 1962*fb8a8121Smrg * testsuite/25_algorithms/set_intersection/constexpr.cc: Ditto. 1963*fb8a8121Smrg * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc: Ditto. 1964*fb8a8121Smrg * testsuite/25_algorithms/set_union/constexpr.cc: Ditto. 1965*fb8a8121Smrg * testsuite/25_algorithms/transform/constexpr.cc: Ditto. 1966*fb8a8121Smrg * testsuite/25_algorithms/unique/constexpr.cc: Ditto. 1967*fb8a8121Smrg * testsuite/25_algorithms/unique_copy/constexpr.cc: Ditto. 1968*fb8a8121Smrg * testsuite/25_algorithms/upper_bound/constexpr.cc: Ditto. 1969*fb8a8121Smrg 1970*fb8a8121Smrg2019-09-09 Edward Smith-Rowland <3dw4rd@verizon.net> 1971*fb8a8121Smrg 1972*fb8a8121Smrg Update docs for recent <span> and constexpr lib changes. 1973*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Update p0202r3, p0858r0, p0879r0, 1974*fb8a8121Smrg p1023r0, p1085r2 status. 1975*fb8a8121Smrg * doc/html/manual/status.html: Regenerate. 1976*fb8a8121Smrg 1977*fb8a8121Smrg2019-09-09 Antony Polukhin <antoshkka@gmail.com> 1978*fb8a8121Smrg 1979*fb8a8121Smrg * include/bits/charconv.h (__detail::__to_chars_10_impl): Replace 1980*fb8a8121Smrg final offsets with constants. 1981*fb8a8121Smrg 1982*fb8a8121Smrg2019-09-09 Jonathan Wakely <jwakely@redhat.com> 1983*fb8a8121Smrg 1984*fb8a8121Smrg * include/bits/range_access.h (__adl_to_address): Remove. 1985*fb8a8121Smrg * include/std/span (__is_base_derived_safe_convertible_v): Replace 1986*fb8a8121Smrg with span::__is_compatible. 1987*fb8a8121Smrg (__is_std_array_v): Replace with __is_std_array class template and 1988*fb8a8121Smrg partial specializations. 1989*fb8a8121Smrg (__is_std_array, __is_std_span): New class templates and partial 1990*fb8a8121Smrg specializations. 1991*fb8a8121Smrg (span::__is_compatible): New alias template for SFINAE constraints. 1992*fb8a8121Smrg (span::span(element_type (&)[N])): Remove redundant constraints. Do 1993*fb8a8121Smrg not use __adl_data to obtain a pointer. 1994*fb8a8121Smrg (span::span(array<value_type, N>&)): Likewise. 1995*fb8a8121Smrg (span::span(const array<value_type, N>&)): Likewise. 1996*fb8a8121Smrg [_GLIBCXX_P1394] (span::iter_reference_t, span::iterator_t) 1997*fb8a8121Smrg (span::iter_value_t, span::derived_from): New alias templates for 1998*fb8a8121Smrg SFINAE constraints, until the equivalents are supported in <concepts> 1999*fb8a8121Smrg and <iterator>. 2000*fb8a8121Smrg [_GLIBCXX_P1394] (span::__is_compatible_iterator): New alias template 2001*fb8a8121Smrg for SFINAE constraints. 2002*fb8a8121Smrg [_GLIBCXX_P1394] (span::is_compatible_range): New class template for 2003*fb8a8121Smrg SFINAE constraints. 2004*fb8a8121Smrg [_GLIBCXX_P1394] (span::span(Range&&)): Improve constraints. 2005*fb8a8121Smrg [_GLIBCXX_P1394] (span::span(ContiguousIterator, Sentinel)): Likewise. 2006*fb8a8121Smrg Use std::to_address instead of __adl_to_address. 2007*fb8a8121Smrg [_GLIBCXX_P1394] (span::span(ContiguousIterator, size_type)): Likewise. 2008*fb8a8121Smrg [!_GLIBCXX_P1394] (span::__is_compatible_container): New alias 2009*fb8a8121Smrg template for SFINAE constraints. 2010*fb8a8121Smrg [!_GLIBCXX_P1394] (span::span(Container&)) 2011*fb8a8121Smrg (span::span(const Container&)): Improve constraints. 2012*fb8a8121Smrg [!_GLIBCXX_P1394] (span::span(pointer, size_type)) 2013*fb8a8121Smrg (span::span(pointer, pointer)): Remove redundant cast of pointer. 2014*fb8a8121Smrg (span(const span<OType, OExtent>&)): New constructor. 2015*fb8a8121Smrg 2016*fb8a8121Smrg2019-09-06 Jonathan Wakely <jwakely@redhat.com> 2017*fb8a8121Smrg 2018*fb8a8121Smrg * include/bits/range_access.h (ssize): Define for C++20. 2019*fb8a8121Smrg * testsuite/24_iterators/range_access_cpp20.cc: New test. 2020*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Update P1227R2 status. 2021*fb8a8121Smrg * doc/html/*: Regenerate. 2022*fb8a8121Smrg 2023*fb8a8121Smrg2019-09-06 Florian Weimer <fweimer@redhat.com> 2024*fb8a8121Smrg 2025*fb8a8121Smrg * configure: Regenerate. 2026*fb8a8121Smrg 2027*fb8a8121Smrg2019-09-05 Jonathan Wakely <jwakely@redhat.com> 2028*fb8a8121Smrg 2029*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Update status for P0122R7 and 2030*fb8a8121Smrg P1024R3. Remove entry for P0920R2. 2031*fb8a8121Smrg * include/std/span (__cpp_lib_span): Change value. 2032*fb8a8121Smrg (__extent_storage, __extent_storage<dynamic_extent>): Remove default 2033*fb8a8121Smrg constructor. 2034*fb8a8121Smrg (span): Replace __extent_storage base class with data member. 2035*fb8a8121Smrg (span::_S_subspan_extent): New function. 2036*fb8a8121Smrg (span::empty()): Add nodiscard attribute. 2037*fb8a8121Smrg (span::front, span::back, span::operator[]): Check preconditions. 2038*fb8a8121Smrg (span::first, span::last, span::subspan): Add noexcept. Improve 2039*fb8a8121Smrg precondition checks (LWG 3103). 2040*fb8a8121Smrg (get): Remove redundant condition from static_assert. 2041*fb8a8121Smrg (tuple_element<I, span<T, E>>): Fix static_assert message and simplify. 2042*fb8a8121Smrg (as_writable_bytes): Add inline specifier. 2043*fb8a8121Smrg * include/std/version (__cpp_lib_span): Change value. 2044*fb8a8121Smrg * testsuite/23_containers/span/back_neg.cc: Remove stray semi-colon. 2045*fb8a8121Smrg * testsuite/23_containers/span/front_neg.cc: Likewise. 2046*fb8a8121Smrg * testsuite/23_containers/span/index_op_neg.cc: Likewise. 2047*fb8a8121Smrg * testsuite/23_containers/span/last_neg.cc: Improve test. 2048*fb8a8121Smrg * testsuite/23_containers/span/subspan_neg.cc: Likewise. 2049*fb8a8121Smrg * testsuite/23_containers/span/1.cc: New test. 2050*fb8a8121Smrg * testsuite/23_containers/span/2.cc: New test. 2051*fb8a8121Smrg * testsuite/23_containers/span/back_assert_neg.cc: New test. 2052*fb8a8121Smrg * testsuite/23_containers/span/first_2_assert_neg.cc: New test. 2053*fb8a8121Smrg * testsuite/23_containers/span/first_assert_neg.cc: New test. 2054*fb8a8121Smrg * testsuite/23_containers/span/first_neg.cc: New test. 2055*fb8a8121Smrg * testsuite/23_containers/span/front_assert_neg.cc: New test. 2056*fb8a8121Smrg * testsuite/23_containers/span/index_op_assert_neg.cc: New test. 2057*fb8a8121Smrg * testsuite/23_containers/span/last_2_assert_neg.cc: New test. 2058*fb8a8121Smrg * testsuite/23_containers/span/last_assert_neg.cc: New test. 2059*fb8a8121Smrg * testsuite/23_containers/span/subspan_2_assert_neg.cc: New test. 2060*fb8a8121Smrg * testsuite/23_containers/span/subspan_3_assert_neg.cc: New test. 2061*fb8a8121Smrg * testsuite/23_containers/span/subspan_4_assert_neg.cc: New test. 2062*fb8a8121Smrg * testsuite/23_containers/span/subspan_5_assert_neg.cc: New test. 2063*fb8a8121Smrg * testsuite/23_containers/span/subspan_6_assert_neg.cc: New test. 2064*fb8a8121Smrg * testsuite/23_containers/span/subspan_assert_neg.cc: New test. 2065*fb8a8121Smrg 2066*fb8a8121Smrg2019-09-05 JeanHeyd Meneide <phdofthehouse@gmail.com> 2067*fb8a8121Smrg 2068*fb8a8121Smrg * include/Makefile.am: Add <span> header. 2069*fb8a8121Smrg * include/Makefile.in: Regenerate. 2070*fb8a8121Smrg * include/bits/range_access.h (__adl_begin, __adl_end, __adl_cbegin) 2071*fb8a8121Smrg (__adl_cend, __adl_rbegin, __adl_rend, __adl_crbegin, __adl_crend) 2072*fb8a8121Smrg (__adl_data, __adl_cdata, __adl_size, __adl_empty, __adl_to_address): 2073*fb8a8121Smrg New functions for performing argument-dependent lookup of range 2074*fb8a8121Smrg customization points. 2075*fb8a8121Smrg * include/bits/stl_iterator.h (__normal_iterator): Add 2076*fb8a8121Smrg _GLIBCXX20_CONSTEXPR to all functions. 2077*fb8a8121Smrg * include/std/span: New header. 2078*fb8a8121Smrg * include/std/version (__cpp_lib_span): Define feature test macro. 2079*fb8a8121Smrg * testsuite/23_containers/span/contiguous_range_neg.cc: New test. 2080*fb8a8121Smrg * testsuite/23_containers/span/everything.cc: New test. 2081*fb8a8121Smrg * testsuite/23_containers/span/get_neg.cc: New test. 2082*fb8a8121Smrg * testsuite/23_containers/span/last_neg.cc: New test. 2083*fb8a8121Smrg * testsuite/23_containers/span/subspan_neg.cc: New test. 2084*fb8a8121Smrg * testsuite/23_containers/span/tuple_element_dynamic_neg.cc: New test. 2085*fb8a8121Smrg * testsuite/23_containers/span/tuple_element_oob_neg.cc: New test. 2086*fb8a8121Smrg * testsuite/23_containers/span/tuple_size_neg.cc: New test. 2087*fb8a8121Smrg 2088*fb8a8121Smrg2019-09-05 Jonathan Wakely <jwakely@redhat.com> 2089*fb8a8121Smrg 2090*fb8a8121Smrg * doc/xml/manual/allocator.xml: Remove URL for bibliography entry. 2091*fb8a8121Smrg * doc/html/*: Regenerate. 2092*fb8a8121Smrg 2093*fb8a8121Smrg2019-09-04 Mike Crowe <mac@mcrowe.com> 2094*fb8a8121Smrg 2095*fb8a8121Smrg PR libstdc++/41861 2096*fb8a8121Smrg * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_COND_CLOCKWAIT): Check for new 2097*fb8a8121Smrg pthread_cond_clockwait function. 2098*fb8a8121Smrg * configure.ac: Use GLIBCXX_CHECK_PTHREAD_COND_CLOCKWAIT. 2099*fb8a8121Smrg * configure: Regenerate. 2100*fb8a8121Smrg * config.h.in: Regenerate. 2101*fb8a8121Smrg * include/std/condition_variable: (condition_variable): Rename 2102*fb8a8121Smrg __steady_clock_t typedef and add system_clock. Change __clock_t to be 2103*fb8a8121Smrg a typedef for the preferred clock to convert arbitrary other clocks to. 2104*fb8a8121Smrg [_GLIBCXX_USE_PTHREAD_COND_CLOCKWAIT] (wait_until): Add a steady_clock 2105*fb8a8121Smrg overload. 2106*fb8a8121Smrg (wait_until): Change __clock_t overload to use system_clock. 2107*fb8a8121Smrg [_GLIBCXX_USE_PTHREAD_COND_CLOCKWAIT] (__wait_until_impl): Add 2108*fb8a8121Smrg steady_clock overload that calls pthread_cond_clockwait. 2109*fb8a8121Smrg (__wait_until_impl): Change __clock_t overload to use system_clock. 2110*fb8a8121Smrg (condition_variable_any) [_GLIBCXX_USE_PTHREAD_COND_CLOCKWAIT]: Use 2111*fb8a8121Smrg steady_clock for __clock_t if pthread_cond_clockwait is available. 2112*fb8a8121Smrg 2113*fb8a8121Smrg2019-09-04 Mike Crowe <mac@mcrowe.com> 2114*fb8a8121Smrg 2115*fb8a8121Smrg * testsuite/30_threads/condition_variable/members/2.cc (test01): 2116*fb8a8121Smrg Parameterise so that test can be run against an arbitrary clock. 2117*fb8a8121Smrg (main): Test using std::chrono::steady_clock and a user-defined 2118*fb8a8121Smrg clock in addition to the previous std::chrono::system_clock. 2119*fb8a8121Smrg * testsuite/30_threads/condition_variable_any/members/2.cc: Likewise. 2120*fb8a8121Smrg 2121*fb8a8121Smrg2019-09-03 Ulrich Weigand <uweigand@de.ibm.com> 2122*fb8a8121Smrg 2123*fb8a8121Smrg * crossconfig.m4: Remove references to spu. 2124*fb8a8121Smrg * configure: Regenerate. 2125*fb8a8121Smrg * doc/xml/manual/appendix_contributing.xml: Remove references 2126*fb8a8121Smrg to __ea as "badword" for spu. 2127*fb8a8121Smrg * doc/html/manual/source_code_style.html: Regenerate. 2128*fb8a8121Smrg * include/tr1/ell_integral.tcc (__ellint_rd): Do not attempt 2129*fb8a8121Smrg to avoid __ea (as "badword" for spu). 2130*fb8a8121Smrg (__ellint_rj): Likewise. 2131*fb8a8121Smrg 2132*fb8a8121Smrg2019-09-03 Chung-Lin Tang <cltang@codesourcery.com> 2133*fb8a8121Smrg 2134*fb8a8121Smrg PR other/79543 2135*fb8a8121Smrg * acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Fix GNU ld --version 2136*fb8a8121Smrg scanning to conform to the GNU Coding Standards. 2137*fb8a8121Smrg * configure: Regenerate. 2138*fb8a8121Smrg 2139*fb8a8121Smrg2019-09-02 Jonathan Wakely <jwakely@redhat.com> 2140*fb8a8121Smrg 2141*fb8a8121Smrg * src/c++17/memory_resource.cc: Use __constinit keyword. 2142*fb8a8121Smrg 2143*fb8a8121Smrg2019-09-02 Jonathan Wakely <jwakely@redhat.com> 2144*fb8a8121Smrg 2145*fb8a8121Smrg * doc/xml/manual/abi.xml: Document 9.x library versions. 2146*fb8a8121Smrg * doc/html/*: Regenerate. 2147*fb8a8121Smrg 2148*fb8a8121Smrg2019-09-02 Jonathan Wakely <jwakely@redhat.com> 2149*fb8a8121Smrg 2150*fb8a8121Smrg * include/std/charconv (__detail::__to_chars_2_len): Use std::log2p1. 2151*fb8a8121Smrg (__detail::__to_chars_8_len): Remove. 2152*fb8a8121Smrg (__detail::__to_chars_8): Inline length calculation here. 2153*fb8a8121Smrg (__detail::__from_chars_binary): Use numeric_limits instead of 2154*fb8a8121Smrg CHAR_BIT. 2155*fb8a8121Smrg 2156*fb8a8121Smrg2019-09-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2157*fb8a8121Smrg 2158*fb8a8121Smrg * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate. 2159*fb8a8121Smrg * config/abi/post/i386-solaris/amd64/baseline_symbols.txt: Likewise. 2160*fb8a8121Smrg * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise. 2161*fb8a8121Smrg * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt: 2162*fb8a8121Smrg Likewise. 2163*fb8a8121Smrg 2164*fb8a8121Smrg2019-09-01 François Dumont <fdumont@gcc.gnu.org> 2165*fb8a8121Smrg 2166*fb8a8121Smrg * testsuite_files/util/testsuite_performance.h 2167*fb8a8121Smrg (resource_counter::start): Ignore unused malloc(0) result. 2168*fb8a8121Smrg 2169*fb8a8121Smrg2019-09-01 Gerald Pfeifer <gerald@pfeifer.com> 2170*fb8a8121Smrg 2171*fb8a8121Smrg * doc/xml/manual/policy_data_structures_biblio.xml (COM: Component 2172*fb8a8121Smrg Model Object Technologies): Adjust name and link. 2173*fb8a8121Smrg 2174*fb8a8121Smrg2019-08-30 Antony Polukhin <antoshkka@gmail.com> 2175*fb8a8121Smrg 2176*fb8a8121Smrg * include/std/charconv (__detail::__to_chars_8) 2177*fb8a8121Smrg __detail::__to_chars_16): Replace array of precomputed digits with 2178*fb8a8121Smrg arithmetic operations to avoid CPU cache misses. Remove zero 2179*fb8a8121Smrg termination from array of digits to allow symbol merge with generic 2180*fb8a8121Smrg implementation of __detail::__to_chars. Replace final offsets with 2181*fb8a8121Smrg constants. Use __detail::__to_chars_len_2 instead of a generic 2182*fb8a8121Smrg __detail::__to_chars_len. 2183*fb8a8121Smrg (__detail::__to_chars): Remove zero termination from array of digits. 2184*fb8a8121Smrg (__detail::__to_chars_2): Leading digit is always '1'. 2185*fb8a8121Smrg 2186*fb8a8121Smrg2019-08-30 Jonathan Wakely <jwakely@redhat.com> 2187*fb8a8121Smrg 2188*fb8a8121Smrg * testsuite/23_containers/vector/cons/89164_c++17.cc: Fix errors. 2189*fb8a8121Smrg 2190*fb8a8121Smrg2019-08-30 Uros Bizjak <ubizjak@gmail.com> 2191*fb8a8121Smrg 2192*fb8a8121Smrg * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update. 2193*fb8a8121Smrg 2194*fb8a8121Smrg2019-08-30 Jonathan Wakely <jwakely@redhat.com> 2195*fb8a8121Smrg 2196*fb8a8121Smrg PR libstdc++/89164 2197*fb8a8121Smrg * include/bits/stl_algobase.h (__copy_move): Give descriptive names 2198*fb8a8121Smrg to template parameters. 2199*fb8a8121Smrg * include/bits/stl_uninitialized.h (uninitialized_copy) 2200*fb8a8121Smrg (uninitialized_fill, uninitialized_fill_n): Add static assertions to 2201*fb8a8121Smrg diagnose invalid uses. 2202*fb8a8121Smrg * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc: 2203*fb8a8121Smrg Adjust expected error. 2204*fb8a8121Smrg * testsuite/20_util/specialized_algorithms/uninitialized_copy/89164.cc: 2205*fb8a8121Smrg New test. 2206*fb8a8121Smrg * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/ 2207*fb8a8121Smrg 89164.cc: New test. 2208*fb8a8121Smrg * testsuite/20_util/specialized_algorithms/uninitialized_fill/89164.cc: 2209*fb8a8121Smrg New test. 2210*fb8a8121Smrg * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/ 2211*fb8a8121Smrg 89164.cc: New test. 2212*fb8a8121Smrg * testsuite/23_containers/vector/cons/89164.cc: New test. 2213*fb8a8121Smrg * testsuite/23_containers/vector/cons/89164_c++17.cc: New test. 2214*fb8a8121Smrg 2215*fb8a8121Smrg2019-08-29 Jonathan Wakely <jwakely@redhat.com> 2216*fb8a8121Smrg 2217*fb8a8121Smrg PR libstdc++/91067 2218*fb8a8121Smrg * acinclude.m4 (libtool_VERSION): Bump to 6:28:0. 2219*fb8a8121Smrg * configure: Regenerate. 2220*fb8a8121Smrg * config/abi/pre/gnu.ver (GLIBCXX_3.4.28): Add new version. Export 2221*fb8a8121Smrg missing symbols. 2222*fb8a8121Smrg * testsuite/27_io/filesystem/iterators/91067.cc: Test move 2223*fb8a8121Smrg constructors. 2224*fb8a8121Smrg * testsuite/util/testsuite_abi.cc: Add new symbol version. 2225*fb8a8121Smrg 2226*fb8a8121Smrg2019-08-29 Jakub Jelinek <jakub@redhat.com> 2227*fb8a8121Smrg 2228*fb8a8121Smrg * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. 2229*fb8a8121Smrg * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. 2230*fb8a8121Smrg 2231*fb8a8121Smrg2019-08-28 Jonathan Wakely <jwakely@redhat.com> 2232*fb8a8121Smrg 2233*fb8a8121Smrg * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update. 2234*fb8a8121Smrg * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. 2235*fb8a8121Smrg * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update. 2236*fb8a8121Smrg * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update. 2237*fb8a8121Smrg * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. 2238*fb8a8121Smrg * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. 2239*fb8a8121Smrg * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. 2240*fb8a8121Smrg 2241*fb8a8121Smrg2019-08-23 Joseph Myers <joseph@codesourcery.com> 2242*fb8a8121Smrg 2243*fb8a8121Smrg * src/filesystem/ops-common.h [_GLIBCXX_FILESYSTEM_IS_WINDOWS] 2244*fb8a8121Smrg (std::filesystem::__gnu_posix::lstat): Add return type. 2245*fb8a8121Smrg 2246*fb8a8121Smrg2019-08-20 Jonathan Wakely <jwakely@redhat.com> 2247*fb8a8121Smrg 2248*fb8a8121Smrg * doc/doxygen/user.cfg.in (INPUT): Remove profile mode headers. 2249*fb8a8121Smrg 2250*fb8a8121Smrg * include/std/numeric (reduce): Fix Doxygen markup. 2251*fb8a8121Smrg 2252*fb8a8121Smrg PR libstdc++/91371 2253*fb8a8121Smrg * include/std/type_traits (is_function): Simplify definition. Remove 2254*fb8a8121Smrg partial specializations for function types. 2255*fb8a8121Smrg (__is_referenceable): Simplify definition. 2256*fb8a8121Smrg * testsuite/20_util/bind/91371.cc: New test. 2257*fb8a8121Smrg * testsuite/20_util/is_function/91371.cc: New test. 2258*fb8a8121Smrg * testsuite/20_util/is_function/value.cc: Check more pointer types. 2259*fb8a8121Smrg * testsuite/20_util/is_member_function_pointer/91371.cc: New test. 2260*fb8a8121Smrg * testsuite/20_util/is_object/91371.cc: New test. 2261*fb8a8121Smrg 2262*fb8a8121Smrg2019-08-16 Uros Bizjak <ubizjak@gmail.com> 2263*fb8a8121Smrg 2264*fb8a8121Smrg * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update. 2265*fb8a8121Smrg 2266*fb8a8121Smrg2019-08-15 Jonathan Wakely <jwakely@redhat.com> 2267*fb8a8121Smrg 2268*fb8a8121Smrg PR libstdc++/91456 2269*fb8a8121Smrg * include/bits/std_function.h (__check_func_return_type): Remove. 2270*fb8a8121Smrg (function::_Callable): Use std::__is_invocable_impl instead of 2271*fb8a8121Smrg __check_func_return_type. 2272*fb8a8121Smrg * include/std/type_traits (__is_invocable_impl): Add another defaulted 2273*fb8a8121Smrg template parameter. Define a separate partial specialization for 2274*fb8a8121Smrg INVOKE and INVOKE<void>. For INVOKE<R> replace is_convertible check 2275*fb8a8121Smrg with a check that models delayed temporary materialization. 2276*fb8a8121Smrg * testsuite/20_util/function/91456.cc: New test. 2277*fb8a8121Smrg * testsuite/20_util/is_invocable/91456.cc: New test. 2278*fb8a8121Smrg 2279*fb8a8121Smrg2019-08-14 Jonathan Wakely <jwakely@redhat.com> 2280*fb8a8121Smrg 2281*fb8a8121Smrg * include/std/type_traits (__is_nullptr_t): Add deprecated attribute. 2282*fb8a8121Smrg 2283*fb8a8121Smrg2019-08-14 Edward Smith-Rowland <3dw4rd@verizon.net> 2284*fb8a8121Smrg 2285*fb8a8121Smrg Implement C++20 p0879 - Constexpr for swap and swap related functions. 2286*fb8a8121Smrg * include/std/version (__cpp_lib_constexpr_swap_algorithms): New macro. 2287*fb8a8121Smrg * include/bits/algorithmfwd.h (__cpp_lib_constexpr_swap_algorithms): 2288*fb8a8121Smrg New macro. 2289*fb8a8121Smrg (iter_swap, make_heap, next_permutation, partial_sort_copy, pop_heap) 2290*fb8a8121Smrg (prev_permutation, push_heap, reverse, rotate, sort_heap, swap) 2291*fb8a8121Smrg (swap_ranges, nth_element, partial_sort, sort): Add constexpr. 2292*fb8a8121Smrg * include/bits/move.h (swap): Add constexpr. 2293*fb8a8121Smrg * include/bits/stl_algo.h (__move_median_to_first, __reverse, reverse) 2294*fb8a8121Smrg (__gcd, __rotate, rotate, __partition, __heap_select) 2295*fb8a8121Smrg (__partial_sort_copy, partial_sort_copy, __unguarded_partition) 2296*fb8a8121Smrg (__unguarded_partition_pivot, __partial_sort, __introsort_loop, __sort) 2297*fb8a8121Smrg (__introselect, __chunk_insertion_sort, next_permutation) 2298*fb8a8121Smrg (prev_permutation, partition, partial_sort, nth_element, sort) 2299*fb8a8121Smrg (__iter_swap::iter_swap, iter_swap, swap_ranges): Add constexpr. 2300*fb8a8121Smrg * include/bits/stl_algobase.h (__iter_swap::iter_swap, iter_swap) 2301*fb8a8121Smrg (swap_ranges): Add constexpr. 2302*fb8a8121Smrg * include/bits/stl_heap.h (__push_heap, push_heap, __adjust_heap, 2303*fb8a8121Smrg __pop_heap, pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): 2304*fb8a8121Smrg Add constexpr. 2305*fb8a8121Smrg * include/std/type_traits (swap): Add constexpr. 2306*fb8a8121Smrg * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Add constexpr. 2307*fb8a8121Smrg * testsuite/25_algorithms/iter_swap/constexpr.cc: New test. 2308*fb8a8121Smrg * testsuite/25_algorithms/make_heap/constexpr.cc: New test. 2309*fb8a8121Smrg * testsuite/25_algorithms/next_permutation/constexpr.cc: New test. 2310*fb8a8121Smrg * testsuite/25_algorithms/nth_element/constexpr.cc: New test. 2311*fb8a8121Smrg * testsuite/25_algorithms/partial_sort/constexpr.cc: New test. 2312*fb8a8121Smrg * testsuite/25_algorithms/partial_sort_copy/constexpr.cc: New test. 2313*fb8a8121Smrg * testsuite/25_algorithms/partition/constexpr.cc: New test. 2314*fb8a8121Smrg * testsuite/25_algorithms/pop_heap/constexpr.cc: New test. 2315*fb8a8121Smrg * testsuite/25_algorithms/prev_permutation/constexpr.cc: New test. 2316*fb8a8121Smrg * testsuite/25_algorithms/push_heap/constexpr.cc: New test. 2317*fb8a8121Smrg * testsuite/25_algorithms/reverse/constexpr.cc: New test. 2318*fb8a8121Smrg * testsuite/25_algorithms/rotate/constexpr.cc: New test. 2319*fb8a8121Smrg * testsuite/25_algorithms/sort/constexpr.cc: New test. 2320*fb8a8121Smrg * testsuite/25_algorithms/sort_heap/constexpr.cc: New test. 2321*fb8a8121Smrg * testsuite/25_algorithms/swap/constexpr.cc: New test. 2322*fb8a8121Smrg * testsuite/25_algorithms/swap_ranges/constexpr.cc: New test. 2323*fb8a8121Smrg 2324*fb8a8121Smrg2019-08-12 Jonathan Wakely <jwakely@redhat.com> 2325*fb8a8121Smrg 2326*fb8a8121Smrg PR libstdc++/90361 2327*fb8a8121Smrg * src/c++17/string-inst.cc: Use _GLIBCXX_USE_CXX11_ABI=1 by default. 2328*fb8a8121Smrg 2329*fb8a8121Smrg * include/std/tuple (__unpack_std_tuple): New variable template and 2330*fb8a8121Smrg partial specializations. 2331*fb8a8121Smrg (apply, make_from_tuple): Add noexcept-specifier. 2332*fb8a8121Smrg * testsuite/20_util/tuple/apply/2.cc: New test. 2333*fb8a8121Smrg * testsuite/20_util/tuple/make_from_tuple/2.cc: New test. 2334*fb8a8121Smrg 2335*fb8a8121Smrg2019-08-09 Corentin Gay <gay@adacore.com> 2336*fb8a8121Smrg 2337*fb8a8121Smrg * testsuite/ext/random/beta_distribution/operators/serialize.cc, 2338*fb8a8121Smrg testsuite/ext/random/hypergeometric_distribution/operators/serialize.cc, 2339*fb8a8121Smrg testsuite/ext/random/normal_mv_distribution/operators/serialize.cc, 2340*fb8a8121Smrg testsuite/ext/random/triangular_distribution/operators/serialize.cc, 2341*fb8a8121Smrg testsuite/ext/random/von_mises_distribution/operators/serialize.cc: 2342*fb8a8121Smrg Add call to `VERIFY`. 2343*fb8a8121Smrg 2344*fb8a8121Smrg2019-08-09 Alexandre Oliva <oliva@adacore.com> 2345*fb8a8121Smrg 2346*fb8a8121Smrg * include/ext/random 2347*fb8a8121Smrg (normal_mv_distribution::param_type::param_type): New private 2348*fb8a8121Smrg ctor taking a decomposed varcov matrix, for use by... 2349*fb8a8121Smrg (operator>>): ... this, befriended. 2350*fb8a8121Smrg * include/ext/random.tcc (operator>>): Use it. 2351*fb8a8121Smrg (normal_mv_distribution::param_type::_M_init_lower): Adjust 2352*fb8a8121Smrg member function name in exception message. 2353*fb8a8121Smrg 2354*fb8a8121Smrg2019-08-08 Jonathan Wakely <jwakely@redhat.com> 2355*fb8a8121Smrg 2356*fb8a8121Smrg P0325R4 to_array from LFTS with updates 2357*fb8a8121Smrg * include/experimental/array (to_array): Qualify call to __to_array. 2358*fb8a8121Smrg * include/std/array (__cpp_lib_to_array, to_array): Define for C++20. 2359*fb8a8121Smrg * include/std/version (__cpp_lib_to_array): Likewise. 2360*fb8a8121Smrg * testsuite/23_containers/array/creation/1.cc: New test. 2361*fb8a8121Smrg * testsuite/23_containers/array/creation/2.cc: New test. 2362*fb8a8121Smrg * testsuite/23_containers/array/creation/3_neg.cc: New test. 2363*fb8a8121Smrg * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc: 2364*fb8a8121Smrg Use zero for dg-error line number. 2365*fb8a8121Smrg 2366*fb8a8121Smrg2019-08-06 Jonathan Wakely <jwakely@redhat.com> 2367*fb8a8121Smrg 2368*fb8a8121Smrg P1651R0 bind_front should not unwrap reference_wrapper 2369*fb8a8121Smrg * include/std/functional (bind_front): Don't unwrap reference_wrapper. 2370*fb8a8121Smrg * include/std/version (__cpp_lib_bind_front): Update value. 2371*fb8a8121Smrg * testsuite/20_util/function_objects/bind_front/1.cc: Fix test for 2372*fb8a8121Smrg feature test macro. 2373*fb8a8121Smrg * testsuite/20_util/function_objects/bind_front/2.cc: New test. 2374*fb8a8121Smrg 2375*fb8a8121Smrg * include/std/numbers [!__STRICT_ANSI__ && _GLIBCXX_USE_FLOAT128] 2376*fb8a8121Smrg (e_v, log2e_v, log10e_v, pi_v, inv_pi_v, inv_sqrtpi_v, ln2_v, ln10_v) 2377*fb8a8121Smrg (sqrt2_v, sqrt3_v, inv_sqrt3, egamma_v, phi_v): Add explicit 2378*fb8a8121Smrg specializations for __float128. 2379*fb8a8121Smrg * testsuite/26_numerics/numbers/float128.cc: New test. 2380*fb8a8121Smrg 2381*fb8a8121Smrg2019-08-04 Gerald Pfeifer <gerald@pfeifer.com> 2382*fb8a8121Smrg 2383*fb8a8121Smrg * doc/xml/manual/documentation_hacking.xml: doxygen.org is now 2384*fb8a8121Smrg doxygen.nl. 2385*fb8a8121Smrg 2386*fb8a8121Smrg2019-08-01 Edward Smith-Rowland <3dw4rd@verizon.net> 2387*fb8a8121Smrg 2388*fb8a8121Smrg Implement C++20 p0202 - Add Constexpr Modifiers to Functions 2389*fb8a8121Smrg in <algorithm> and <utility> Headers. 2390*fb8a8121Smrg Implement C++20 p1023 - constexpr comparison operators for std::array. 2391*fb8a8121Smrg * include/bits/algorithmfwd.h (all_of, any_of, binary_search, copy, 2392*fb8a8121Smrg copy_backward, copy_if, copy_n, equal_range, fill, find_end, 2393*fb8a8121Smrg find_if_not, includes, is_heap, is_heap_until, is_partitioned, 2394*fb8a8121Smrg is_permutation, is_sorted, is_sorted_until, iter_swap, lower_bound, 2395*fb8a8121Smrg none_of, partition_copy, partition_point, remove, remove_if, 2396*fb8a8121Smrg remove_copy, remove_copy_if, replace_copy, replace_copy_if, 2397*fb8a8121Smrg reverse_copy, rotate_copy, uunique, upper_bound, adjacent_find, count, 2398*fb8a8121Smrg count_if, equal, find, find_first_of, find_if, for_each, generate, 2399*fb8a8121Smrg generate_n, lexicographical_compare, merge, mismatch, replace, 2400*fb8a8121Smrg replace_if, search, search_n, set_difference, set_intersection, 2401*fb8a8121Smrg set_symmetric_difference, set_union, transform, unique_copy): 2402*fb8a8121Smrg Mark constexpr. 2403*fb8a8121Smrg * include/bits/cpp_type_traits.h (__miter_base): Mark constexpr. 2404*fb8a8121Smrg * include/bits/predefined_ops.h (_Iter_less_val::operator(), 2405*fb8a8121Smrg _Val_less_iter::operator(), _Iter_equal_to_iter::operator(), 2406*fb8a8121Smrg _Iter_equal_to_val::operator(), _Iter_equals_val::operator()): 2407*fb8a8121Smrg Use const ref instead of ref arg; 2408*fb8a8121Smrg (_Iter_less_val, __iter_less_val, _Val_less_iter, __val_less_iter, 2409*fb8a8121Smrg __iter_equal_to_iter, __iter_equal_to_val, __iter_comp_val, 2410*fb8a8121Smrg _Iter_comp_val, _Val_comp_iter, __val_comp_iter, __iter_equals_val, 2411*fb8a8121Smrg _Iter_equals_iter, __iter_comp_iter, _Iter_pred, __pred_iter, 2412*fb8a8121Smrg _Iter_comp_to_val, __iter_comp_val, _Iter_comp_to_iter, 2413*fb8a8121Smrg __iter_comp_iter): Mark constexpr. 2414*fb8a8121Smrg * include/bits/stl_algo.h (__find_if, __find_if_not, __find_if_not_n, 2415*fb8a8121Smrg __search, __search_n_aux, __search_n, __find_end, find_end, all_of, 2416*fb8a8121Smrg none_of, any_of, find_if_not, is_partitioned, partition_point, 2417*fb8a8121Smrg __remove_copy_if, remove_copy, remove_copy_if, copy_if, __copy_n, 2418*fb8a8121Smrg copy_n, partition_copy, __remove_if, remove, remove_if, __adjacent_find, 2419*fb8a8121Smrg __unique, unique, __unique_copy, reverse_copy, rotate_copy, 2420*fb8a8121Smrg __unguarded_linear_insert, __insertion_sort, __unguarded_insertion_sort, 2421*fb8a8121Smrg __final_insertion_sort, lower_bound, __upper_bound, upper_bound, 2422*fb8a8121Smrg __equal_range, equal_range, binary_search, __includes, includes, 2423*fb8a8121Smrg __next_permutation, __prev_permutation, __replace_copy_if, replace_copy, 2424*fb8a8121Smrg replace_copy_if, __count_if, is_sorted, __is_sorted_until, 2425*fb8a8121Smrg is_sorted_until, __is_permutation, is_permutation, for_each, find, 2426*fb8a8121Smrg find_if, find_first_of, adjacent_find, count, count_if, search, 2427*fb8a8121Smrg search_n, transform, replace, replace_if, generate, generate_n, 2428*fb8a8121Smrg unique_copy, __merge, merge, __set_union, set_union, __set_intersection, 2429*fb8a8121Smrg set_intersection, __set_difference, set_difference, 2430*fb8a8121Smrg __set_symmetric_difference, set_symmetric_difference): Mark constexpr. 2431*fb8a8121Smrg * include/bits/stl_algobase.h (__memmove, __memcmp): New maybe constexpr 2432*fb8a8121Smrg wrappers around __builtin_memmove and __builtin_memcmp 2433*fb8a8121Smrg respectively; 2434*fb8a8121Smrg (__niter_base, __niter_wrap, __copy_m, __copy_move_a, __copy_move_a2, 2435*fb8a8121Smrg copy, move, __copy_move_b, __copy_move_backward_a, 2436*fb8a8121Smrg __copy_move_backward_a2, copy_backward, move_backward, __fill_a, fill, 2437*fb8a8121Smrg __fill_n_a, fill_n, equal, __lc_rai::__newlast1, __lc_rai::__cnd2, 2438*fb8a8121Smrg __lexicographical_compare_impl, __lexicographical_compare, 2439*fb8a8121Smrg __lexicographical_compare<true>::__lc, __lexicographical_compare_aux, 2440*fb8a8121Smrg __lower_bound, lower_bound, equal, __equal4, lexicographical_compare, 2441*fb8a8121Smrg __mismatch, mismatch, __is_heap_until, __is_heap, is_heap_until, 2442*fb8a8121Smrg is_heap): Mark constexpr. 2443*fb8a8121Smrg * include/bits/stl_heap.h (__is_heap_until, __is_heap, is_heap_until, 2444*fb8a8121Smrg is_heap): Mark constexpr. 2445*fb8a8121Smrg * include/bits/stl_iterator.h (__niter_base, __miter_base): Mark constexpr. 2446*fb8a8121Smrg * include/std/array: Make comparison ops constexpr. 2447*fb8a8121Smrg * include/std/utility: Make exchange constexpr. 2448*fb8a8121Smrg * include/std/version (__cpp_lib_constexpr_algorithms): New macro. 2449*fb8a8121Smrg * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust. 2450*fb8a8121Smrg * testsuite/23_containers/array/tuple_interface/ 2451*fb8a8121Smrg tuple_element_neg.cc: Adjust. 2452*fb8a8121Smrg * testsuite/20_util/exchange/constexpr.cc: New. 2453*fb8a8121Smrg * testsuite/23_containers/array/comparison_operators/constexpr.cc: New. 2454*fb8a8121Smrg * testsuite/25_algorithms/constexpr_macro.cc: New. 2455*fb8a8121Smrg * testsuite/25_algorithms/adjacent_find/constexpr.cc: New. 2456*fb8a8121Smrg * testsuite/25_algorithms/all_of/constexpr.cc: New. 2457*fb8a8121Smrg * testsuite/25_algorithms/any_of/constexpr.cc: New. 2458*fb8a8121Smrg * testsuite/25_algorithms/binary_search/constexpr.cc: New. 2459*fb8a8121Smrg * testsuite/25_algorithms/copy/constexpr.cc: New. 2460*fb8a8121Smrg * testsuite/25_algorithms/copy_backward/constexpr.cc: New. 2461*fb8a8121Smrg * testsuite/25_algorithms/copy_if/constexpr.cc: New. 2462*fb8a8121Smrg * testsuite/25_algorithms/copy_n/constexpr.cc: New. 2463*fb8a8121Smrg * testsuite/25_algorithms/count/constexpr.cc: New. 2464*fb8a8121Smrg * testsuite/25_algorithms/count_if/constexpr.cc: New. 2465*fb8a8121Smrg * testsuite/25_algorithms/equal/constexpr.cc: New. 2466*fb8a8121Smrg * testsuite/25_algorithms/equal_range/constexpr.cc: New. 2467*fb8a8121Smrg * testsuite/25_algorithms/fill/constexpr.cc: New. 2468*fb8a8121Smrg * testsuite/25_algorithms/fill_n/constexpr.cc: New. 2469*fb8a8121Smrg * testsuite/25_algorithms/find/constexpr.cc: New. 2470*fb8a8121Smrg * testsuite/25_algorithms/find_end/constexpr.cc: New. 2471*fb8a8121Smrg * testsuite/25_algorithms/find_first_of/constexpr.cc: New. 2472*fb8a8121Smrg * testsuite/25_algorithms/find_if/constexpr.cc: New. 2473*fb8a8121Smrg * testsuite/25_algorithms/find_if_not/constexpr.cc: New. 2474*fb8a8121Smrg * testsuite/25_algorithms/for_each/constexpr.cc: New. 2475*fb8a8121Smrg * testsuite/25_algorithms/generate/constexpr.cc: New. 2476*fb8a8121Smrg * testsuite/25_algorithms/generate_n/constexpr.cc: New. 2477*fb8a8121Smrg * testsuite/25_algorithms/is_heap/constexpr.cc: New. 2478*fb8a8121Smrg * testsuite/25_algorithms/is_heap_until/constexpr.cc: New. 2479*fb8a8121Smrg * testsuite/25_algorithms/is_partitioned/constexpr.cc: New. 2480*fb8a8121Smrg * testsuite/25_algorithms/is_permutation/constexpr.cc: New. 2481*fb8a8121Smrg * testsuite/25_algorithms/is_sorted/constexpr.cc: New. 2482*fb8a8121Smrg * testsuite/25_algorithms/is_sorted_until/constexpr.cc: New. 2483*fb8a8121Smrg * testsuite/25_algorithms/lexicographical_compare/constexpr.cc: New. 2484*fb8a8121Smrg * testsuite/25_algorithms/lower_bound/constexpr.cc: New. 2485*fb8a8121Smrg * testsuite/25_algorithms/merge/constexpr.cc: New. 2486*fb8a8121Smrg * testsuite/25_algorithms/mismatch/constexpr.cc: New. 2487*fb8a8121Smrg * testsuite/25_algorithms/none_of/constexpr.cc: New. 2488*fb8a8121Smrg * testsuite/25_algorithms/partition_copy/constexpr.cc: New. 2489*fb8a8121Smrg * testsuite/25_algorithms/partition_point/constexpr.cc: New. 2490*fb8a8121Smrg * testsuite/25_algorithms/remove/constexpr.cc: New. 2491*fb8a8121Smrg * testsuite/25_algorithms/remove_copy/constexpr.cc: New. 2492*fb8a8121Smrg * testsuite/25_algorithms/remove_copy_if/constexpr.cc: New. 2493*fb8a8121Smrg * testsuite/25_algorithms/remove_if/constexpr.cc: New. 2494*fb8a8121Smrg * testsuite/25_algorithms/replace_copy/constexpr.cc: New. 2495*fb8a8121Smrg * testsuite/25_algorithms/replace_copy_if/constexpr.cc: New. 2496*fb8a8121Smrg * testsuite/25_algorithms/replace_if/constexpr.cc: New. 2497*fb8a8121Smrg * testsuite/25_algorithms/reverse_copy/constexpr.cc: New. 2498*fb8a8121Smrg * testsuite/25_algorithms/rotate_copy/constexpr.cc: New. 2499*fb8a8121Smrg * testsuite/25_algorithms/search/constexpr.cc: New. 2500*fb8a8121Smrg * testsuite/25_algorithms/search_n/constexpr.cc: New. 2501*fb8a8121Smrg * testsuite/25_algorithms/set_difference/constexpr.cc: New. 2502*fb8a8121Smrg * testsuite/25_algorithms/set_intersection/constexpr.cc: New. 2503*fb8a8121Smrg * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc: New. 2504*fb8a8121Smrg * testsuite/25_algorithms/set_union/constexpr.cc: New. 2505*fb8a8121Smrg * testsuite/25_algorithms/transform/constexpr.cc: New. 2506*fb8a8121Smrg * testsuite/25_algorithms/unique/constexpr.cc: New. 2507*fb8a8121Smrg * testsuite/25_algorithms/unique_copy/constexpr.cc: New. 2508*fb8a8121Smrg * testsuite/25_algorithms/upper_bound/constexpr.cc: New. 2509*fb8a8121Smrg 2510*fb8a8121Smrg2019-07-31 Jonathan Wakely <jwakely@redhat.com> 2511*fb8a8121Smrg 2512*fb8a8121Smrg * include/std/memory (make_obj_using_allocator): Qualify call to 2513*fb8a8121Smrg uses_allocator_construction_args. 2514*fb8a8121Smrg 2515*fb8a8121Smrg P0631R4 Math Constants 2516*fb8a8121Smrg * include/Makefile.am: Add new header. 2517*fb8a8121Smrg * include/Makefile.in: Regenerate. 2518*fb8a8121Smrg * include/precompiled/stdc++.h: Include new header. 2519*fb8a8121Smrg * include/std/numbers: New header. 2520*fb8a8121Smrg * include/std/version (__cpp_lib_math_constants): Define. 2521*fb8a8121Smrg * testsuite/26_numerics/numbers/1.cc: New test. 2522*fb8a8121Smrg * testsuite/26_numerics/numbers/2.cc: New test. 2523*fb8a8121Smrg * testsuite/26_numerics/numbers/3.cc: New test. 2524*fb8a8121Smrg * testsuite/26_numerics/numbers/nonfloat_neg.cc: New test. 2525*fb8a8121Smrg 2526*fb8a8121Smrg * include/std/bit: Add Doxygen comments. 2527*fb8a8121Smrg 2528*fb8a8121Smrg PR libstdc++/91308 2529*fb8a8121Smrg * include/bits/unique_ptr.h (unique_ptr::__safe_conversion_up): Remove 2530*fb8a8121Smrg constraints on deleter that should only apply to the constructor. 2531*fb8a8121Smrg (unique_ptr<T[], D>::__safe_conversion_up): Likewise. 2532*fb8a8121Smrg (unique_ptr<T[], D>::unique_ptr(unique_ptr<U, D>&&)): Restore 2533*fb8a8121Smrg constraints on deleter here. 2534*fb8a8121Smrg * testsuite/20_util/unique_ptr/assign/91308.cc: New test. 2535*fb8a8121Smrg 2536*fb8a8121Smrg2019-07-29 Jonathan Wakely <jwakely@redhat.com> 2537*fb8a8121Smrg 2538*fb8a8121Smrg PR libstdc++/51333 2539*fb8a8121Smrg * libsupc++/cxxabi.h (__gnu_cxx::recursive_init_error): Do not define 2540*fb8a8121Smrg constructor inline. 2541*fb8a8121Smrg * libsupc++/guard_error.cc (__gnu_cxx::recursive_init_error): Define 2542*fb8a8121Smrg constructor. 2543*fb8a8121Smrg * testsuite/18_support/51333.cc: New test. 2544*fb8a8121Smrg 2545*fb8a8121Smrg2019-07-28 Gerald Pfeifer <gerald@pfeifer.com> 2546*fb8a8121Smrg 2547*fb8a8121Smrg * doc/xml/manual/documentation_hacking.xml: Fix broken reference 2548*fb8a8121Smrg to the Doxygen manual. Avoid a "here" link on the way. 2549*fb8a8121Smrg Fix another broken link to Doxygen docblocks. 2550*fb8a8121Smrg 2551*fb8a8121Smrg2019-07-26 Jonathan Wakely <jwakely@redhat.com> 2552*fb8a8121Smrg 2553*fb8a8121Smrg * include/std/bit (__cpp_lib_endian): Define. 2554*fb8a8121Smrg * include/std/version (__cpp_lib_endian): Define. 2555*fb8a8121Smrg * testsuite/26_numerics/endian/2.cc: New. 2556*fb8a8121Smrg * testsuite/26_numerics/endian/3.cc: New. 2557*fb8a8121Smrg * testsuite/26_numerics/endian/4.cc: New. 2558*fb8a8121Smrg 2559*fb8a8121Smrg2019-07-26 François Dumont <fdumont@gcc.gnu.org> 2560*fb8a8121Smrg 2561*fb8a8121Smrg * testsuite/util/testsuite_iterators.h 2562*fb8a8121Smrg (bidirectional_iterator_wrapper): Fix type comment. 2563*fb8a8121Smrg (random_access_iterator_wrapper): Likewise. 2564*fb8a8121Smrg 2565*fb8a8121Smrg2019-07-25 Jonathan Wakely <jwakely@redhat.com> 2566*fb8a8121Smrg 2567*fb8a8121Smrg * include/std/bit (endian): Move definition here as per P1612R1. 2568*fb8a8121Smrg * include/std/type_traits (endian): Remove definition from here. 2569*fb8a8121Smrg * testsuite/20_util/endian/1.cc: Rename to ... 2570*fb8a8121Smrg * testsuite/26_numerics/endian/1.cc: ... here. Adjust header. 2571*fb8a8121Smrg 2572*fb8a8121Smrg2019-07-25 Martin Liska <mliska@suse.cz> 2573*fb8a8121Smrg Dominik Infuhr <dominik.infuehr@theobroma-systems.com> 2574*fb8a8121Smrg 2575*fb8a8121Smrg PR c++/23383 2576*fb8a8121Smrg * testsuite/ext/bitmap_allocator/check_delete.cc: Add 2577*fb8a8121Smrg -fno-allocation-dce. 2578*fb8a8121Smrg * testsuite/ext/bitmap_allocator/check_new.cc: Likewise. 2579*fb8a8121Smrg * testsuite/ext/new_allocator/check_delete.cc: Likewise. 2580*fb8a8121Smrg * testsuite/ext/new_allocator/check_new.cc: Likewise. 2581*fb8a8121Smrg 2582*fb8a8121Smrg2019-07-22 Jonathan Wakely <jwakely@redhat.com> 2583*fb8a8121Smrg 2584*fb8a8121Smrg * testsuite/26_numerics/bit/bitops.count/*: Rename to ... 2585*fb8a8121Smrg * testsuite/26_numerics/bit/bit.count/*: Here. 2586*fb8a8121Smrg 2587*fb8a8121Smrg * include/std/bit (__rotl, __rotr): Change second parameter from 2588*fb8a8121Smrg unsigned int to int and handle negative values. 2589*fb8a8121Smrg (rotl, rotr): Remove check for __STRICT_ANSI__. Change second 2590*fb8a8121Smrg parameter from unsigned int to int. Add nodiscard attribute. 2591*fb8a8121Smrg * testsuite/26_numerics/bit/bitops.rot/rotl.cc: Rename to ... 2592*fb8a8121Smrg * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Here. Test negative 2593*fb8a8121Smrg shifts. 2594*fb8a8121Smrg * testsuite/26_numerics/bit/bitops.rot/rotr.cc: Rename to ... 2595*fb8a8121Smrg * testsuite/26_numerics/bit/bit.rotate/rotr.cc: Here. Test negative 2596*fb8a8121Smrg shifts. 2597*fb8a8121Smrg 2598*fb8a8121Smrg * include/std/bit (__ceil2): Make unrepresentable results undefined, 2599*fb8a8121Smrg as per P1355R2. Add debug assertion. Perform one left shift, not two, 2600*fb8a8121Smrg so that out of range values cause undefined behaviour. Ensure that 2601*fb8a8121Smrg shift will still be undefined if left operand is promoted. 2602*fb8a8121Smrg * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Replace checks for 2603*fb8a8121Smrg unrepresentable values with checks that they are not core constant 2604*fb8a8121Smrg expressions. 2605*fb8a8121Smrg * testsuite/26_numerics/bit/bit.pow.two/ceil2_neg.cc: New test. 2606*fb8a8121Smrg 2607*fb8a8121Smrg2019-07-19 François Dumont <fdumont@gcc.gnu.org> 2608*fb8a8121Smrg 2609*fb8a8121Smrg * include/bits/stl_tempbuf.h (__detail::__return_temporary_buffer): Fix 2610*fb8a8121Smrg sized deallocation size computation. 2611*fb8a8121Smrg 2612*fb8a8121Smrg2019-07-19 Andreas Schwab <schwab@linux-m68k.org> 2613*fb8a8121Smrg 2614*fb8a8121Smrg * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update. 2615*fb8a8121Smrg 2616*fb8a8121Smrg2019-07-18 François Dumont <fdumont@gcc.gnu.org> 2617*fb8a8121Smrg 2618*fb8a8121Smrg * include/bits/stl_tempbuf.h (__detail::__return_temporary_buffer): New. 2619*fb8a8121Smrg (~_Temporary_buffer()): Use latter. 2620*fb8a8121Smrg (_Temporary_buffer(_FIterator, size_type)): Likewise. 2621*fb8a8121Smrg 2622*fb8a8121Smrg2019-07-17 Andreas Schwab <schwab@suse.de> 2623*fb8a8121Smrg 2624*fb8a8121Smrg * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update. 2625*fb8a8121Smrg 2626*fb8a8121Smrg2019-07-16 Jason Merrill <jason@redhat.com> 2627*fb8a8121Smrg 2628*fb8a8121Smrg * include/std/memory (uses_allocator_construction_args): Add parens 2629*fb8a8121Smrg around constraint. 2630*fb8a8121Smrg 2631*fb8a8121Smrg2019-07-12 Jonathan Wakely <jwakely@redhat.com> 2632*fb8a8121Smrg 2633*fb8a8121Smrg * testsuite/29_atomics/atomic_float/1.cc: Fix comment. 2634*fb8a8121Smrg 2635*fb8a8121Smrg * include/experimental/string_view (__detail::__idt): Remove. 2636*fb8a8121Smrg (operator==, operator!=, operator<, operator>, operator<=, operator>=): 2637*fb8a8121Smrg Use __type_identity_t instead of __detail::__idt; 2638*fb8a8121Smrg * include/std/string_view (__detail::__idt): Remove. 2639*fb8a8121Smrg (operator==, operator!=, operator<, operator>, operator<=, operator>=): 2640*fb8a8121Smrg Use __type_identity_t instead of __detail::__idt; 2641*fb8a8121Smrg * include/std/type_traits (__type_identity_t): New alias template. 2642*fb8a8121Smrg 2643*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Update status for atomic_ref 2644*fb8a8121Smrg and floating point atomics. 2645*fb8a8121Smrg 2646*fb8a8121Smrg2019-07-11 Jonathan Wakely <jwakely@redhat.com> 2647*fb8a8121Smrg 2648*fb8a8121Smrg * doc/xml/manual/configure.xml: Improve documentation of 2649*fb8a8121Smrg --enable-libstdcxx-time option. 2650*fb8a8121Smrg 2651*fb8a8121Smrg * include/bits/atomic_base.h (__atomic_impl): New namespace for 2652*fb8a8121Smrg wrappers around atomic built-ins. 2653*fb8a8121Smrg (__atomic_float, __atomic_ref): New class templates for use as base 2654*fb8a8121Smrg classes. 2655*fb8a8121Smrg * include/std/atomic (atomic<float>, atomic<double>) 2656*fb8a8121Smrg (atomic<long double>): New explicit specializations. 2657*fb8a8121Smrg (atomic_ref): New class template. 2658*fb8a8121Smrg (__cpp_lib_atomic_ref): Define. 2659*fb8a8121Smrg * include/std/version (__cpp_lib_atomic_ref): Define. 2660*fb8a8121Smrg * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error. 2661*fb8a8121Smrg * testsuite/29_atomics/atomic_float/1.cc: New test. 2662*fb8a8121Smrg * testsuite/29_atomics/atomic_float/requirements.cc: New test. 2663*fb8a8121Smrg * testsuite/29_atomics/atomic_ref/deduction.cc: New test. 2664*fb8a8121Smrg * testsuite/29_atomics/atomic_ref/float.cc: New test. 2665*fb8a8121Smrg * testsuite/29_atomics/atomic_ref/generic.cc: New test. 2666*fb8a8121Smrg * testsuite/29_atomics/atomic_ref/integral.cc: New test. 2667*fb8a8121Smrg * testsuite/29_atomics/atomic_ref/pointer.cc: New test. 2668*fb8a8121Smrg * testsuite/29_atomics/atomic_ref/requirements.cc: New test. 2669*fb8a8121Smrg 2670*fb8a8121Smrg2019-07-06 Jonathan Wakely <jwakely@redhat.com> 2671*fb8a8121Smrg 2672*fb8a8121Smrg * include/ext/atomicity.h (__exchange_and_add, __atomic_add): Replace 2673*fb8a8121Smrg throw() with _GLIBCXX_NOTHROW. 2674*fb8a8121Smrg (__atomic_add_dispatch): Return after performing atomic increment. 2675*fb8a8121Smrg 2676*fb8a8121Smrg2019-07-05 Jonathan Wakely <jwakely@redhat.com> 2677*fb8a8121Smrg 2678*fb8a8121Smrg * include/ext/atomicity.h [_GLIBCXX_ATOMIC_BUILTINS] (__atomic_add) 2679*fb8a8121Smrg (__exchange_and_add): Replace static specifier with always_inline 2680*fb8a8121Smrg attribute. 2681*fb8a8121Smrg (__exchange_and_add_single, __atomic_add_single): Likewise. 2682*fb8a8121Smrg (__exchange_and_add_dispatch, __atomic_add_dispatch): Likewise. Also 2683*fb8a8121Smrg combine !__gthread_active_p() and !__GTHREADS branches. 2684*fb8a8121Smrg 2685*fb8a8121Smrg2019-07-03 Jonathan Wakely <jwakely@redhat.com> 2686*fb8a8121Smrg 2687*fb8a8121Smrg PR libstdc++/91067 2688*fb8a8121Smrg * acinclude.m4 (libtool_VERSION): Bump to 6:27:0. 2689*fb8a8121Smrg * configure: Regenerate. 2690*fb8a8121Smrg * config/abi/pre/gnu.ver (GLIBCXX_3.4.27): Add new version. Export 2691*fb8a8121Smrg missing symbols. 2692*fb8a8121Smrg * testsuite/27_io/filesystem/iterators/91067.cc: New test. 2693*fb8a8121Smrg * testsuite/util/testsuite_abi.cc: Add new symbol version. 2694*fb8a8121Smrg 2695*fb8a8121Smrg2019-07-02 Jonathan Wakely <jwakely@redhat.com> 2696*fb8a8121Smrg 2697*fb8a8121Smrg * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_LAUNDER) 2698*fb8a8121Smrg (_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED): Use __has_builtin 2699*fb8a8121Smrg instead of __is_identifier to detect Clang support. 2700*fb8a8121Smrg 2701*fb8a8121Smrg2019-07-02 Jim Wilson <jimw@sifive.com> 2702*fb8a8121Smrg 2703*fb8a8121Smrg * configure.ac (BUILD_PDF): Also test for doxygen, dot, xsltproc, 2704*fb8a8121Smrg and xmllint. 2705*fb8a8121Smrg * configure: Regenerate. 2706*fb8a8121Smrg 2707*fb8a8121Smrg2019-06-27 Jonathan Wakely <jwakely@redhat.com> 2708*fb8a8121Smrg 2709*fb8a8121Smrg PR libstdc++/91012 2710*fb8a8121Smrg * src/c++17/fs_path.cc (filesystem_error::_Impl): Use a string_view 2711*fb8a8121Smrg for the what_arg parameters. 2712*fb8a8121Smrg (filesystem_error::filesystem_error): Pass system_error::what() to 2713*fb8a8121Smrg the _Impl constructor. 2714*fb8a8121Smrg * testsuite/27_io/filesystem/filesystem_error/cons.cc: Ensure that 2715*fb8a8121Smrg filesystem_error::what() contains system_error::what(). 2716*fb8a8121Smrg 2717*fb8a8121Smrg2019-06-26 Jonathan Wakely <jwakely@redhat.com> 2718*fb8a8121Smrg 2719*fb8a8121Smrg * include/std/charconv (chars_format): Define bitmask type. 2720*fb8a8121Smrg * testsuite/20_util/to_chars/chars_format.cc: New test. 2721*fb8a8121Smrg 2722*fb8a8121Smrg * include/bits/fs_path.h (path::__is_encoded_char): Use __is_one_of. 2723*fb8a8121Smrg * include/std/bit (_If_is_unsigned_integer_type): Remove. 2724*fb8a8121Smrg (_If_is_unsigned_integer): Use __is_unsigned_integer. 2725*fb8a8121Smrg (rotl(byte, unsigned), rotr(byte, unsigned), countl_zero(byte)) 2726*fb8a8121Smrg (countl_one(byte), countr_zero(byte), countr_one(byte)) 2727*fb8a8121Smrg (popcount(byte), ispow2(byte), ceil2(byte), floor2(byte)) 2728*fb8a8121Smrg (log2p1(byte)): Remove. 2729*fb8a8121Smrg * include/std/charconv (__detail::__is_one_of): Move to <type_traits>. 2730*fb8a8121Smrg (__detail::__is_int_to_chars_type): Remove. 2731*fb8a8121Smrg (__detail::__integer_to_chars_result_type): Use __is_signed_integer 2732*fb8a8121Smrg and __is_unsigned_integer. 2733*fb8a8121Smrg * include/std/type_traits (__is_one_of): Move here from <charconv>. 2734*fb8a8121Smrg (__is_signed_integer, __is_unsigned_integer): New helpers. 2735*fb8a8121Smrg * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Remove test for 2736*fb8a8121Smrg std::byte overload. 2737*fb8a8121Smrg * testsuite/26_numerics/bit/bit.pow.two/floor2.cc: Likewise. 2738*fb8a8121Smrg * testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: Likewise. 2739*fb8a8121Smrg * testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: Likewise. 2740*fb8a8121Smrg * testsuite/26_numerics/bit/bitops.count/countl_one.cc: Likewise. 2741*fb8a8121Smrg * testsuite/26_numerics/bit/bitops.count/countl_zero.cc: Likewise. 2742*fb8a8121Smrg * testsuite/26_numerics/bit/bitops.count/countr_one.cc: Likewise. 2743*fb8a8121Smrg * testsuite/26_numerics/bit/bitops.count/countr_zero.cc: Likewise. 2744*fb8a8121Smrg * testsuite/26_numerics/bit/bitops.count/popcount.cc: Likewise. 2745*fb8a8121Smrg * testsuite/26_numerics/bit/bitops.rot/rotl.cc: Likewise. 2746*fb8a8121Smrg * testsuite/26_numerics/bit/bitops.rot/rotr.cc: Likewise. 2747*fb8a8121Smrg 2748*fb8a8121Smrg2019-06-25 Jonathan Wakely <jwakely@redhat.com> 2749*fb8a8121Smrg 2750*fb8a8121Smrg * include/std/numeric (midpoint(T, T)): Avoid std::abs in constexpr 2751*fb8a8121Smrg function. 2752*fb8a8121Smrg 2753*fb8a8121Smrg2019-06-25 Jakub Jelinek <jakub@redhat.com> 2754*fb8a8121Smrg 2755*fb8a8121Smrg * include/pstl/pstl_config.h (_PSTL_PRAGMA_SIMD_SCAN, 2756*fb8a8121Smrg _PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN, _PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN): 2757*fb8a8121Smrg Define to OpenMP 5.0 pragmas even for GCC 10.0+. 2758*fb8a8121Smrg (_PSTL_UDS_PRESENT): Define to 1 for GCC 10.0+. 2759*fb8a8121Smrg 2760*fb8a8121Smrg2019-06-24 Jonathan Wakely <jwakely@redhat.com> 2761*fb8a8121Smrg 2762*fb8a8121Smrg * include/std/numeric (midpoint(T, T)): Change implementation for 2763*fb8a8121Smrg floating-point types to avoid incorrect rounding of denormals. 2764*fb8a8121Smrg * testsuite/26_numerics/midpoint/floating.cc: Add check for correct 2765*fb8a8121Smrg rounding with denormals. 2766*fb8a8121Smrg * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line numbers. 2767*fb8a8121Smrg * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise. 2768*fb8a8121Smrg 2769*fb8a8121Smrg * testsuite/18_support/headers/cfloat/values_c++17.cc: New test. 2770*fb8a8121Smrg 2771*fb8a8121Smrg2019-06-20 Jonathan Wakely <jwakely@redhat.com> 2772*fb8a8121Smrg 2773*fb8a8121Smrg * acinclude.m4 (GLIBCXX_ENABLE_DEBUG): Only do debug build for final 2774*fb8a8121Smrg stage of bootstrap. 2775*fb8a8121Smrg * configure: Regenerate. 2776*fb8a8121Smrg 2777*fb8a8121Smrg * include/std/variant (_Variant_storage, _Extra_visit_slot_needed): 2778*fb8a8121Smrg Qualify calls to __never_valueless. 2779*fb8a8121Smrg 2780*fb8a8121Smrg * doc/xml/manual/status_cxx2017.xml: Fix outdated reference to 2781*fb8a8121Smrg C++17 working draft. 2782*fb8a8121Smrg 2783*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/simple.cc: Use non-palindromic 2784*fb8a8121Smrg vector<bool> for test. 2785*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. 2786*fb8a8121Smrg 2787*fb8a8121Smrg2019-06-19 Jonathan Wakely <jwakely@redhat.com> 2788*fb8a8121Smrg 2789*fb8a8121Smrg * include/bits/stream_iterator.h (istream_iterator::_M_equal()): Make 2790*fb8a8121Smrg private. 2791*fb8a8121Smrg (istream_iterator::_M_read()): Do not check stream state before 2792*fb8a8121Smrg attempting extraction. Set stream pointer to null when extraction 2793*fb8a8121Smrg fails (P0738R2). 2794*fb8a8121Smrg (operator==(const istream_iterator&, const istream_iterator&)): Change 2795*fb8a8121Smrg to be a hidden friend of istream_iterator. 2796*fb8a8121Smrg (operator!=(const istream_iterator&, const istream_iterator&)): 2797*fb8a8121Smrg Likewise. 2798*fb8a8121Smrg (ostream_iterator::ostream_iterator()): Add default constructor. 2799*fb8a8121Smrg (ostream_iterator::ostream_iterator(ostream_type*, const C*)): Use 2800*fb8a8121Smrg addressof. 2801*fb8a8121Smrg * testsuite/24_iterators/istream_iterator/1.cc: New test. 2802*fb8a8121Smrg * testsuite/24_iterators/ostream_iterator/1.cc: New test. 2803*fb8a8121Smrg * testsuite/24_iterators/ostream_iterator/70766.cc: Also check 2804*fb8a8121Smrg constructor taking a string. 2805*fb8a8121Smrg * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc: 2806*fb8a8121Smrg New test. 2807*fb8a8121Smrg 2808*fb8a8121Smrg2019-06-19 Michael Weghorn <m.weghorn@posteo.de> 2809*fb8a8121Smrg Jonathan Wakely <jwakely@redhat.com> 2810*fb8a8121Smrg 2811*fb8a8121Smrg PR libstdc++/90945 2812*fb8a8121Smrg * python/libstdcxx/v6/printers.py (StdVectorPrinter._iterator): Use 2813*fb8a8121Smrg values of type bool for vector<bool> elements. 2814*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/simple.cc: Test vector<bool>. 2815*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. 2816*fb8a8121Smrg 2817*fb8a8121Smrg2019-06-19 Jonathan Wakely <jwakely@redhat.com> 2818*fb8a8121Smrg 2819*fb8a8121Smrg PR libstdc++/90920 partially revert r263433 2820*fb8a8121Smrg * include/bits/stl_algo.h (__rotate): Restore checks for empty ranges. 2821*fb8a8121Smrg (rotate): Remove checks. 2822*fb8a8121Smrg * testsuite/25_algorithms/rotate/90920.cc: New test. 2823*fb8a8121Smrg 2824*fb8a8121Smrg * include/std/numeric (reduce(Iter, Iter, T, BinOp)): Fix value 2825*fb8a8121Smrg category used in invocable check. 2826*fb8a8121Smrg (reduce(Iter, Iter, T)): Pass initial value as rvalue. 2827*fb8a8121Smrg * testsuite/26_numerics/reduce/2.cc: New test. 2828*fb8a8121Smrg 2829*fb8a8121Smrg2019-06-18 Jonathan Wakely <jwakely@redhat.com> 2830*fb8a8121Smrg 2831*fb8a8121Smrg * include/bits/algorithmfwd.h: Change title of doc group. 2832*fb8a8121Smrg * include/bits/stl_algo.h (for_each_n): Add new C++17 algorithm from 2833*fb8a8121Smrg P0024R2. 2834*fb8a8121Smrg * include/bits/stl_numeric.h: Define doc group and add algos to it. 2835*fb8a8121Smrg * include/std/numeric (__is_random_access_iter): New internal trait. 2836*fb8a8121Smrg (reduce, transform_reduce, exclusive_scan, inclusive_scan) 2837*fb8a8121Smrg (transform_exclusive_scan, transform_inclusive_scan): Likewise. 2838*fb8a8121Smrg * testsuite/25_algorithms/for_each/for_each_n.cc: New test. 2839*fb8a8121Smrg * testsuite/26_numerics/exclusive_scan/1.cc: New test. 2840*fb8a8121Smrg * testsuite/26_numerics/inclusive_scan/1.cc: New test. 2841*fb8a8121Smrg * testsuite/26_numerics/reduce/1.cc: New test. 2842*fb8a8121Smrg * testsuite/26_numerics/transform_exclusive_scan/1.cc: New test. 2843*fb8a8121Smrg * testsuite/26_numerics/transform_inclusive_scan/1.cc: New test. 2844*fb8a8121Smrg * testsuite/26_numerics/transform_reduce/1.cc: New test. 2845*fb8a8121Smrg * testsuite/util/testsuite_iterators.h (test_container::size()): New 2846*fb8a8121Smrg member function. 2847*fb8a8121Smrg 2848*fb8a8121Smrg * include/c_global/cstddef (std::byte): Perform arithmetic operations 2849*fb8a8121Smrg in unsigned int to avoid promotion (LWG 2950). 2850*fb8a8121Smrg 2851*fb8a8121Smrg2019-06-17 Jonathan Wakely <jwakely@redhat.com> 2852*fb8a8121Smrg 2853*fb8a8121Smrg * testsuite/20_util/allocator/1.cc: Add sized delete, which fixes a 2854*fb8a8121Smrg failure on AIX. 2855*fb8a8121Smrg 2856*fb8a8121Smrg * include/c_global/cmath (__lerp, lerp): Add noexcept (LWG 3201). 2857*fb8a8121Smrg 2858*fb8a8121Smrg PR libstdc++/90281 Fix string conversions for filesystem::path 2859*fb8a8121Smrg * include/bits/fs_path.h (u8path) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: 2860*fb8a8121Smrg Use codecvt_utf8_utf16 instead of codecvt_utf8. Use 2861*fb8a8121Smrg __str_codecvt_in_all to fail for partial conversions and throw on 2862*fb8a8121Smrg error. 2863*fb8a8121Smrg [!_GLIBCXX_FILESYSTEM_IS_WINDOWS && _GLIBCXX_USE_CHAR8_T] 2864*fb8a8121Smrg (path::_Cvt<char8_t>): Add explicit specialization. 2865*fb8a8121Smrg [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::_Cvt::_S_wconvert): Remove 2866*fb8a8121Smrg overloads. 2867*fb8a8121Smrg [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::_Cvt::_S_convert): Use 2868*fb8a8121Smrg if-constexpr instead of dispatching to _S_wconvert. Use codecvt 2869*fb8a8121Smrg instead of codecvt_utf8. Use __str_codecvt_in_all and 2870*fb8a8121Smrg __str_codecvt_out_all. 2871*fb8a8121Smrg [!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::_Cvt::_S_convert): Use 2872*fb8a8121Smrg codecvt instead of codecvt_utf8. Use __str_codecvt_out_all. 2873*fb8a8121Smrg (path::_S_str_convert) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use 2874*fb8a8121Smrg codecvt_utf8_utf16 instead of codecvt_utf8. Construct return values 2875*fb8a8121Smrg with allocator. Use __str_codecvt_out_all. Fallthrough to POSIX code 2876*fb8a8121Smrg after converting to UTF-8. 2877*fb8a8121Smrg (path::_S_str_convert): Use codecvt instead of codecvt_utf8. Use 2878*fb8a8121Smrg __str_codecvt_in_all. 2879*fb8a8121Smrg (path::string): Fix initialization of string types with different 2880*fb8a8121Smrg allocators. 2881*fb8a8121Smrg (path::u8string) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use 2882*fb8a8121Smrg codecvt_utf8_utf16 instead of codecvt_utf8. Use __str_codecvt_out_all. 2883*fb8a8121Smrg * include/bits/locale_conv.h (__do_str_codecvt): Reorder static and 2884*fb8a8121Smrg runtime conditions. 2885*fb8a8121Smrg (__str_codecvt_out_all, __str_codecvt_in_all): New functions that 2886*fb8a8121Smrg return false for partial conversions. 2887*fb8a8121Smrg * include/experimental/bits/fs_path.h (u8path): 2888*fb8a8121Smrg [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Implement correctly for mingw. 2889*fb8a8121Smrg [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::_Cvt::_S_wconvert): Add 2890*fb8a8121Smrg missing handling for char8_t. Use codecvt and codecvt_utf8_utf16 2891*fb8a8121Smrg instead of codecvt_utf8. Use __str_codecvt_in_all and 2892*fb8a8121Smrg __str_codecvt_out_all. 2893*fb8a8121Smrg [!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::_Cvt::_S_convert): Use 2894*fb8a8121Smrg codecvt instead of codecvt_utf8. Use __str_codecvt_out_all. 2895*fb8a8121Smrg (path::string) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use 2896*fb8a8121Smrg codecvt_utf8_utf16 instead of codecvt_utf8. Construct return values 2897*fb8a8121Smrg with allocator. Use __str_codecvt_out_all and __str_codecvt_in_all. 2898*fb8a8121Smrg (path::string) [!_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use 2899*fb8a8121Smrg __str_codecvt_in_all. 2900*fb8a8121Smrg (path::u8string) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use 2901*fb8a8121Smrg codecvt_utf8_utf16 instead of codecvt_utf8. Use __str_codecvt_out_all. 2902*fb8a8121Smrg * src/c++17/fs_path.cc (path::_S_convert_loc): Use 2903*fb8a8121Smrg __str_codecvt_in_all. 2904*fb8a8121Smrg * src/filesystem/path.cc (path::_S_convert_loc): Likewise. 2905*fb8a8121Smrg * testsuite/27_io/filesystem/path/construct/90281.cc: New test. 2906*fb8a8121Smrg * testsuite/27_io/filesystem/path/factory/u8path.cc: New test. 2907*fb8a8121Smrg * testsuite/27_io/filesystem/path/native/string.cc: Test with empty 2908*fb8a8121Smrg strings and with Unicode characters outside the basic multilingual 2909*fb8a8121Smrg plane. 2910*fb8a8121Smrg * testsuite/27_io/filesystem/path/native/alloc.cc: New test. 2911*fb8a8121Smrg * testsuite/experimental/filesystem/path/construct/90281.cc: New test. 2912*fb8a8121Smrg * testsuite/experimental/filesystem/path/factory/u8path.cc: New test. 2913*fb8a8121Smrg * testsuite/experimental/filesystem/path/native/alloc.cc: New test. 2914*fb8a8121Smrg * testsuite/experimental/filesystem/path/native/string.cc: Test with 2915*fb8a8121Smrg empty strings and with Unicode characters outside the basic 2916*fb8a8121Smrg multilingual plane. 2917*fb8a8121Smrg 2918*fb8a8121Smrg2019-06-17 François Dumont <fdumont@gcc.gnu.org> 2919*fb8a8121Smrg Jonathan Wakely <jwakely@redhat.com> 2920*fb8a8121Smrg 2921*fb8a8121Smrg * include/bits/hashtable.h (struct _Hashtable::_Scoped_node): New type. 2922*fb8a8121Smrg (_Hashtable::_M_insert_unique_node): Add key_type parameter. Don't 2923*fb8a8121Smrg deallocate node if insertion fails. 2924*fb8a8121Smrg (_Hashtable::_M_insert_multi_node): Likewise. 2925*fb8a8121Smrg (_Hashtable::_M_reinsert_node): Pass additional key argument. 2926*fb8a8121Smrg (_Hashtable::_M_reinsert_node_multi): Likewise. Remove FIXME. 2927*fb8a8121Smrg (_Hashtable::_M_extract_node(size_t, __node_base*)): New function. 2928*fb8a8121Smrg (_Hashtable::extract(const_iterator)): Use _M_extract_node. 2929*fb8a8121Smrg (_Hashtable::extract(const _Key&)): Likewise. 2930*fb8a8121Smrg (_Hashtable::_M_merge_unique): Pass additional key argument. 2931*fb8a8121Smrg (_Hashtable::_M_emplace<Args>(true_type, Args&&...)): Likewise. Use 2932*fb8a8121Smrg _Scoped_node. 2933*fb8a8121Smrg (_Hashtable::_M_insert): Likewise. 2934*fb8a8121Smrg * include/bits/hashtable_policy.h (_Map_base::operator[]): Likewise. 2935*fb8a8121Smrg (_Hashtable_alloc): Add comments to functions with misleading names. 2936*fb8a8121Smrg 2937*fb8a8121Smrg2019-06-17 Jonathan Wakely <jwakely@redhat.com> 2938*fb8a8121Smrg 2939*fb8a8121Smrg * testsuite/20_util/bad_function_call/what.cc: Include <string> header 2940*fb8a8121Smrg for std::string. 2941*fb8a8121Smrg * testsuite/20_util/shared_ptr/cons/weak_ptr_expired.cc: Likewise. 2942*fb8a8121Smrg * testsuite/20_util/tuple/cons/allocator_with_any.cc: Include <memory> 2943*fb8a8121Smrg header for std::allocator. 2944*fb8a8121Smrg * testsuite/23_containers/array/tuple_interface/tuple_element.cc: Add 2945*fb8a8121Smrg using-declaration for std::size_t. 2946*fb8a8121Smrg * testsuite/23_containers/array/tuple_interface/tuple_size.cc: 2947*fb8a8121Smrg Likewise. 2948*fb8a8121Smrg * testsuite/23_containers/deque/cons/55977.cc: Include <istream> for 2949*fb8a8121Smrg std::istream. 2950*fb8a8121Smrg * testsuite/23_containers/vector/cons/55977.cc: Likewise. 2951*fb8a8121Smrg * testsuite/experimental/map/erasure.cc: Include <string> for 2952*fb8a8121Smrg std::string. 2953*fb8a8121Smrg * testsuite/experimental/unordered_map/erasure.cc: Likewise. 2954*fb8a8121Smrg 2955*fb8a8121Smrg2019-06-14 Jonathan Wakely <jwakely@redhat.com> 2956*fb8a8121Smrg 2957*fb8a8121Smrg * include/experimental/type_traits (experimental::nonesuch): Use 2958*fb8a8121Smrg pragma to disable -Wctor-dtor-privacy warnings. 2959*fb8a8121Smrg * include/std/type_traits (__is_convertible_helper<From, To, false>) 2960*fb8a8121Smrg (__is_nt_convertible_helper<From, To, false>, __nonesuch): Likewise. 2961*fb8a8121Smrg 2962*fb8a8121Smrg * include/std/version (__cpp_lib_bind_front): Add missing macro. 2963*fb8a8121Smrg 2964*fb8a8121Smrg2019-06-12 Jonathan Wakely <jwakely@redhat.com> 2965*fb8a8121Smrg 2966*fb8a8121Smrg * include/std/algorithm (__cpp_lib_parallel_algorithm): Fix value. 2967*fb8a8121Smrg * include/std/memory (__cpp_lib_parallel_algorithm): Likewise. 2968*fb8a8121Smrg * include/std/numeric (__cpp_lib_parallel_algorithm): Likewise. 2969*fb8a8121Smrg * testsuite/25_algorithms/pstl/feature_test.cc: New test. 2970*fb8a8121Smrg 2971*fb8a8121Smrg * include/std/variant (get<T>, get<N>, get_if<N>, get_if<T>) 2972*fb8a8121Smrg (variant::emplace): Change static_assert messages from "should be" 2973*fb8a8121Smrg to "must be". 2974*fb8a8121Smrg (hash<monostate>::operator()): Remove name of unused parameter. 2975*fb8a8121Smrg 2976*fb8a8121Smrg * include/std/mutex (scoped_lock::~scoped_lock()): Use fold 2977*fb8a8121Smrg expression. 2978*fb8a8121Smrg 2979*fb8a8121Smrg * include/Makefile.am: Add new <bits/charconv.h> header. 2980*fb8a8121Smrg * include/Makefile.in: Regenerate. 2981*fb8a8121Smrg * include/bits/basic_string.h (to_string(int), to_string(unsigned)) 2982*fb8a8121Smrg (to_string(long), to_string(unsigned long), to_string(long long)) 2983*fb8a8121Smrg (to_string(unsigned long long)): Rewrite to use __to_chars_10_impl. 2984*fb8a8121Smrg * include/bits/charconv.h: New header. 2985*fb8a8121Smrg (__detail::__to_chars_len): Move here from <charconv>. 2986*fb8a8121Smrg (__detail::__to_chars_10_impl): New function extracted from 2987*fb8a8121Smrg __detail::__to_chars_10. 2988*fb8a8121Smrg * include/std/charconv (__cpp_lib_to_chars): Add, but comment out. 2989*fb8a8121Smrg (__to_chars_unsigned_type): New class template that reuses 2990*fb8a8121Smrg __make_unsigned_selector_base::__select to pick a type. 2991*fb8a8121Smrg (__unsigned_least_t): Redefine as __to_chars_unsigned_type<T>::type. 2992*fb8a8121Smrg (__detail::__to_chars_len): Move to new header. 2993*fb8a8121Smrg (__detail::__to_chars_10): Add inline specifier. Move code doing the 2994*fb8a8121Smrg output to __detail::__to_chars_10_impl and call that. 2995*fb8a8121Smrg * include/std/version (__cpp_lib_to_chars): Add, but comment out. 2996*fb8a8121Smrg * testsuite/21_strings/basic_string/numeric_conversions/char/ 2997*fb8a8121Smrg to_string.cc: Fix reference in comment. Remove unused variable. 2998*fb8a8121Smrg * testsuite/21_strings/basic_string/numeric_conversions/char/ 2999*fb8a8121Smrg to_string_int.cc: New test. 3000*fb8a8121Smrg 3001*fb8a8121Smrg2019-06-09 Edward Smith-Rowland <3dw4rd@verizon.net> 3002*fb8a8121Smrg 3003*fb8a8121Smrg Fix ConstexprIterator requirements tests - No constexpr algorithms! 3004*fb8a8121Smrg * testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc: 3005*fb8a8121Smrg Replace copy with hand-rolled loop. 3006*fb8a8121Smrg * testsuite/23_containers/array/requirements/constexpr_iter.cc: 3007*fb8a8121Smrg Ditto. 3008*fb8a8121Smrg 3009*fb8a8121Smrg2019-06-08 Edward Smith-Rowland <3dw4rd@verizon.net> 3010*fb8a8121Smrg 3011*fb8a8121Smrg Test for C++20 p0858 - ConstexprIterator requirements. 3012*fb8a8121Smrg * testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc: 3013*fb8a8121Smrg New test. 3014*fb8a8121Smrg * testsuite/23_containers/array/requirements/constexpr_iter.cc: 3015*fb8a8121Smrg New test. 3016*fb8a8121Smrg 3017*fb8a8121Smrg2019-06-07 Thomas Rodgers <trodgers@redhat.com> 3018*fb8a8121Smrg 3019*fb8a8121Smrg Rename PSTL macro's consistent with libstdc++ (and llvm upstream 3020*fb8a8121Smrg project) standards. 3021*fb8a8121Smrg * include/bits/c++config: Rename all macros of the form __PSTL* to 3022*fb8a8121Smrg _PSTL*. 3023*fb8a8121Smrg * include/std/algorithm: Likewise. 3024*fb8a8121Smrg * include/std/execution: Likewise. 3025*fb8a8121Smrg * include/std/numeric: Likewise. 3026*fb8a8121Smrg * include/std/memory: Likewise. 3027*fb8a8121Smrg * include/pstl/glue_memory_impl.h: Likewise. 3028*fb8a8121Smrg * include/pstl/numeric_impl.h: Likewise. 3029*fb8a8121Smrg * include/pstl/glue_memory_defs.h: Likewise. 3030*fb8a8121Smrg * include/pstl/execution_defs.h: Likewise. 3031*fb8a8121Smrg * include/pstl/utils.h: Likewise. 3032*fb8a8121Smrg * include/pstl/algorithm_fwd.h: Likewise. 3033*fb8a8121Smrg * include/pstl/unseq_backend_simd.h: Likewise. 3034*fb8a8121Smrg * include/pstl/glue_execution_defs.h: Likewise. 3035*fb8a8121Smrg * include/pstl/algorithm_impl.h: Likewise. 3036*fb8a8121Smrg * include/pstl/parallel_impl.h: Likewise. 3037*fb8a8121Smrg * include/pstl/memory_impl.h: Likewise. 3038*fb8a8121Smrg * include/pstl/glue_numeric_defs.h: Likewise. 3039*fb8a8121Smrg * include/pstl/parallel_backend_utils.h: Likewise. 3040*fb8a8121Smrg * include/pstl/glue_algorithm_defs.h: Likewise. 3041*fb8a8121Smrg * include/pstl/parallel_backend.h: Likewise. 3042*fb8a8121Smrg * include/pstl/glue_numeric_impl.h: Likewise. 3043*fb8a8121Smrg * include/pstl/parallel_backend_tbb.h: Likewise. 3044*fb8a8121Smrg * include/pstl/numeric_fwd.h: Likewise. 3045*fb8a8121Smrg * include/pstl/glue_algorithm_impl.h: Likewise. 3046*fb8a8121Smrg * include/pstl/execution_impl.h: Likewise. 3047*fb8a8121Smrg * include/pstl/pstl_config.h: Likewise. 3048*fb8a8121Smrg * testsuite/util/pstl/pstl_test_config.h: Likewise. 3049*fb8a8121Smrg * testsuite/util/pstl/test_utils.h: Likewise. 3050*fb8a8121Smrg * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc: 3051*fb8a8121Smrg Likewise. 3052*fb8a8121Smrg * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: 3053*fb8a8121Smrg Likewise. 3054*fb8a8121Smrg * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc: 3055*fb8a8121Smrg Likewise. 3056*fb8a8121Smrg * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise. 3057*fb8a8121Smrg * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: Likewise. 3058*fb8a8121Smrg * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise. 3059*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: Likewise. 3060*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc: 3061*fb8a8121Smrg Likewise. 3062*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: Likewise. 3063*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: Likewise. 3064*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: Likewise. 3065*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: Likewise. 3066*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc: 3067*fb8a8121Smrg Likewise. 3068*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: Likewise. 3069*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: Likewise. 3070*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: Likewise. 3071*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: Likewise. 3072*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc: 3073*fb8a8121Smrg Likewise. 3074*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise. 3075*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: Likewise. 3076*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc: 3077*fb8a8121Smrg Likewise. 3078*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: 3079*fb8a8121Smrg Likewise. 3080*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Likewise. 3081*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise. 3082*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: 3083*fb8a8121Smrg Likewise. 3084*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc: 3085*fb8a8121Smrg Likewise. 3086*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: 3087*fb8a8121Smrg Likewise. 3088*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: 3089*fb8a8121Smrg Likewise. 3090*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: 3091*fb8a8121Smrg Likewise. 3092*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: 3093*fb8a8121Smrg Likewise. 3094*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: 3095*fb8a8121Smrg Likewise. 3096*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: 3097*fb8a8121Smrg Likewise. 3098*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: 3099*fb8a8121Smrg Likewise. 3100*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: 3101*fb8a8121Smrg Likewise. 3102*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: 3103*fb8a8121Smrg Likewise. 3104*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: Likewise. 3105*fb8a8121Smrg 3106*fb8a8121Smrg Rename header guards to be consistent with upstream project's 3107*fb8a8121Smrg conventions. 3108*fb8a8121Smrg * include/pstl/glue_memory_impl.h: Rename all macros of the form 3109*fb8a8121Smrg _PSTL_(.*)_H to _PSTL_\U\1_H. 3110*fb8a8121Smrg * include/pstl/numeric_impl.h: Likewise. 3111*fb8a8121Smrg * include/pstl/glue_memory_defs.h: Likewise. 3112*fb8a8121Smrg * include/pstl/execution_defs.h: Likewise. 3113*fb8a8121Smrg * include/pstl/utils.h: Likewise. 3114*fb8a8121Smrg * include/pstl/algorithm_fwd.h: Likewise. 3115*fb8a8121Smrg * include/pstl/unseq_backend_simd.h: Likewise. 3116*fb8a8121Smrg * include/pstl/glue_execution_defs.h: Likewise. 3117*fb8a8121Smrg * include/pstl/algorithm_impl.h: Likewise. 3118*fb8a8121Smrg * include/pstl/parallel_impl.h: Likewise. 3119*fb8a8121Smrg * include/pstl/memory_impl.h: Likewise. 3120*fb8a8121Smrg * include/pstl/glue_numeric_defs.h: Likewise. 3121*fb8a8121Smrg * include/pstl/parallel_backend_utils.h: Likewise. 3122*fb8a8121Smrg * include/pstl/glue_algorithm_defs.h: Likewise. 3123*fb8a8121Smrg * include/pstl/parallel_backend.h: Likewise. 3124*fb8a8121Smrg * include/pstl/glue_numeric_impl.h: Likewise. 3125*fb8a8121Smrg * include/pstl/parallel_backend_tbb.h: Likewise. 3126*fb8a8121Smrg * include/pstl/numeric_fwd.h: Likewise. 3127*fb8a8121Smrg * include/pstl/glue_algorithm_impl.h: Likewise. 3128*fb8a8121Smrg * include/pstl/execution_impl.h: Likewise. 3129*fb8a8121Smrg * include/pstl/pstl_config.h: Likewise. 3130*fb8a8121Smrg * testsuite/util/pstl/pstl_test_config.h: Likewise. 3131*fb8a8121Smrg 3132*fb8a8121Smrg Synchronize libstdc++ parallel algorithms with upstream 3133*fb8a8121Smrg project. 3134*fb8a8121Smrg * include/pstl/algorithm_fwd.h: Synchronize with 3135*fb8a8121Smrg upstream PSTL project. 3136*fb8a8121Smrg * include/pstl/algorithm_impl.h: Likewise. 3137*fb8a8121Smrg * include/pstl/execution_defs.h: Likewise. 3138*fb8a8121Smrg * include/pstl/execution_impl.h: Likewise. 3139*fb8a8121Smrg * include/pstl/glue_algorithm_impl.h: Likewise. 3140*fb8a8121Smrg * include/pstl/glue_execution_defs.h: Likewise. 3141*fb8a8121Smrg * include/pstl/numeric_fwd.h: Likewise. 3142*fb8a8121Smrg * include/pstl/numeric_impl.h: Likewise. 3143*fb8a8121Smrg * include/pstl/parallel_backend.h: Likewise. 3144*fb8a8121Smrg * include/pstl/pstl_config.h: Likewise. 3145*fb8a8121Smrg * include/pstl/unseq_backend_simd.h: Likewise. 3146*fb8a8121Smrg * include/pstl/parallel_backend_serial.h: New file. 3147*fb8a8121Smrg * include/Makefile.am (pstl_headers): Add 3148*fb8a8121Smrg parallel_backend_serial.h. 3149*fb8a8121Smrg * include/Makefile.in: Regenerate. 3150*fb8a8121Smrg 3151*fb8a8121Smrg Clean up non-conforming names 3152*fb8a8121Smrg * include/pstl/algorithm_impl.h (__parallel_set_union_op): 3153*fb8a8121Smrg Uglfiy copy_range1 and copy_range2 3154*fb8a8121Smrg (__pattern_walk2_n): Rename local n to __n 3155*fb8a8121Smrg * include/pstl/parallel_backend_tbb.h (struct __binary_no_op): 3156*fb8a8121Smrg Rename parameter _T to _Tp. 3157*fb8a8121Smrg 3158*fb8a8121Smrg Integrate non-TBB serial backend support 3159*fb8a8121Smrg * include/bits/c++config: Adjust TBB detection logic to select serial 3160*fb8a8121Smrg PSTL backend if no TBB present. 3161*fb8a8121Smrg * testsuite/utils/pstl/test_utils.h: Remove check for 3162*fb8a8121Smrg _PSTL_USE_PAR_POLICIES 3163*fb8a8121Smrg 3164*fb8a8121Smrg2019-06-07 Jonathan Wakely <jwakely@redhat.com> 3165*fb8a8121Smrg 3166*fb8a8121Smrg * testsuite/24_iterators/container_access.cc: Move dg-options before 3167*fb8a8121Smrg dg-do directive so the target check uses the -std option. 3168*fb8a8121Smrg 3169*fb8a8121Smrg PR libstdc++/90770 3170*fb8a8121Smrg * configure: Regenerate. 3171*fb8a8121Smrg * src/Makefile.am (stamp-debug): Also test for missing makefile. 3172*fb8a8121Smrg * src/Makefile.in: Regenerate. 3173*fb8a8121Smrg 3174*fb8a8121Smrg2019-06-06 Jonathan Wakely <jwakely@redhat.com> 3175*fb8a8121Smrg 3176*fb8a8121Smrg * include/std/array: Do not include <stdexcept>. 3177*fb8a8121Smrg * include/std/optional: Include <exception> and 3178*fb8a8121Smrg <bits/exception_defines.h> instead of <stdexcept>. 3179*fb8a8121Smrg * testsuite/20_util/function_objects/searchers.cc: Include <cctype> 3180*fb8a8121Smrg for std::isalnum. 3181*fb8a8121Smrg * testsuite/20_util/tuple/cons/deduction.cc: Include <memory> for 3182*fb8a8121Smrg std::allocator. 3183*fb8a8121Smrg * testsuite/23_containers/map/erasure.cc: Include <string>. 3184*fb8a8121Smrg * testsuite/23_containers/unordered_map/erasure.cc: Likewise. 3185*fb8a8121Smrg 3186*fb8a8121Smrg * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Add 3187*fb8a8121Smrg dg-prune-output for different C++98 diagnostic. 3188*fb8a8121Smrg * testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc: 3189*fb8a8121Smrg Likewise. 3190*fb8a8121Smrg * testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc: 3191*fb8a8121Smrg Likewise. 3192*fb8a8121Smrg * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: 3193*fb8a8121Smrg Likewise. 3194*fb8a8121Smrg * testsuite/23_containers/list/requirements/dr438/assign_neg.cc: 3195*fb8a8121Smrg Likewise. 3196*fb8a8121Smrg * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc: 3197*fb8a8121Smrg Likewise. 3198*fb8a8121Smrg * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc: 3199*fb8a8121Smrg Likewise. 3200*fb8a8121Smrg * testsuite/23_containers/list/requirements/dr438/insert_neg.cc: 3201*fb8a8121Smrg Likewise. 3202*fb8a8121Smrg * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: 3203*fb8a8121Smrg Likewise. 3204*fb8a8121Smrg * testsuite/23_containers/vector/requirements/dr438/ 3205*fb8a8121Smrg constructor_1_neg.cc: Likewise. 3206*fb8a8121Smrg * testsuite/23_containers/vector/requirements/dr438/ 3207*fb8a8121Smrg constructor_2_neg.cc: Likewise. 3208*fb8a8121Smrg * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: 3209*fb8a8121Smrg Likewise. 3210*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/compat.cc: Do not run for C++98. 3211*fb8a8121Smrg 3212*fb8a8121Smrg * testsuite/23_containers/unordered_map/requirements/debug_container.cc: 3213*fb8a8121Smrg Do not test allocator rebinding extension for C++2a. 3214*fb8a8121Smrg * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Change 3215*fb8a8121Smrg dg-do directive for C++17 and C++2a. 3216*fb8a8121Smrg 3217*fb8a8121Smrg * testsuite/23_containers/deque/requirements/explicit_instantiation/ 3218*fb8a8121Smrg 1_c++0x.cc: Remove redundant test. 3219*fb8a8121Smrg * testsuite/23_containers/deque/requirements/explicit_instantiation/ 3220*fb8a8121Smrg 2.cc: Use target selector instead of preprocessor condition. 3221*fb8a8121Smrg * testsuite/23_containers/deque/requirements/explicit_instantiation/ 3222*fb8a8121Smrg 3.cc: Do not run test for C++2a. 3223*fb8a8121Smrg * testsuite/23_containers/forward_list/requirements/ 3224*fb8a8121Smrg explicit_instantiation/3.cc: Likewise. 3225*fb8a8121Smrg * testsuite/23_containers/forward_list/requirements/ 3226*fb8a8121Smrg explicit_instantiation/5.cc: Do not test allocator rebinding extension 3227*fb8a8121Smrg for C++2a. 3228*fb8a8121Smrg * testsuite/23_containers/list/requirements/explicit_instantiation/ 3229*fb8a8121Smrg 1_c++0x.cc: Remove redundant test. 3230*fb8a8121Smrg * testsuite/23_containers/list/requirements/explicit_instantiation/ 3231*fb8a8121Smrg 2.cc: Use target selector instead of preprocessor condition. 3232*fb8a8121Smrg * testsuite/23_containers/list/requirements/explicit_instantiation/ 3233*fb8a8121Smrg 3.cc: Do not run test for C++2a. 3234*fb8a8121Smrg * testsuite/23_containers/list/requirements/explicit_instantiation/ 3235*fb8a8121Smrg 5.cc: Do not test allocator rebinding extension for C++2a. 3236*fb8a8121Smrg * testsuite/23_containers/map/requirements/explicit_instantiation/ 3237*fb8a8121Smrg 1_c++0x.cc: Remove redundant test. 3238*fb8a8121Smrg * testsuite/23_containers/map/requirements/explicit_instantiation/ 3239*fb8a8121Smrg 2.cc: Adjust comment. 3240*fb8a8121Smrg * testsuite/23_containers/map/requirements/explicit_instantiation/ 3241*fb8a8121Smrg 3.cc: Do not run test for C++2a. 3242*fb8a8121Smrg * testsuite/23_containers/map/requirements/explicit_instantiation/ 3243*fb8a8121Smrg 5.cc: Do not test allocator rebinding extension for C++2a. 3244*fb8a8121Smrg * testsuite/23_containers/multimap/requirements/explicit_instantiation/ 3245*fb8a8121Smrg 1_c++0x.cc: Remove redundant test. 3246*fb8a8121Smrg * testsuite/23_containers/multimap/requirements/explicit_instantiation/ 3247*fb8a8121Smrg 3.cc: Do not run test for C++2a. 3248*fb8a8121Smrg * testsuite/23_containers/multimap/requirements/explicit_instantiation/ 3249*fb8a8121Smrg 5.cc: Do not test allocator rebinding extension for C++2a. 3250*fb8a8121Smrg * testsuite/23_containers/multiset/requirements/explicit_instantiation/ 3251*fb8a8121Smrg 3.cc: Do not run test for C++2a. 3252*fb8a8121Smrg * testsuite/23_containers/multiset/requirements/explicit_instantiation/ 3253*fb8a8121Smrg 5.cc: Do not test allocator rebinding extension for C++2a. 3254*fb8a8121Smrg * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc: 3255*fb8a8121Smrg Do not run test for C++2a. 3256*fb8a8121Smrg * testsuite/23_containers/set/requirements/explicit_instantiation/ 3257*fb8a8121Smrg 1_c++0x.cc: Remove redundant test. 3258*fb8a8121Smrg * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc: 3259*fb8a8121Smrg Do not test allocator rebinding extension for C++2a. 3260*fb8a8121Smrg * testsuite/23_containers/unordered_map/requirements/ 3261*fb8a8121Smrg explicit_instantiation/3.cc: Likewise. 3262*fb8a8121Smrg * testsuite/23_containers/unordered_map/requirements/ 3263*fb8a8121Smrg explicit_instantiation/5.cc: Do not test allocator rebinding extension 3264*fb8a8121Smrg for C++2a. 3265*fb8a8121Smrg * testsuite/23_containers/unordered_multimap/requirements/ 3266*fb8a8121Smrg explicit_instantiation/3.cc: Do not run test for C++2a. 3267*fb8a8121Smrg * testsuite/23_containers/unordered_multimap/requirements/ 3268*fb8a8121Smrg explicit_instantiation/5.cc: Do not test allocator rebinding extension 3269*fb8a8121Smrg for C++2a. 3270*fb8a8121Smrg * testsuite/23_containers/unordered_multiset/requirements/ 3271*fb8a8121Smrg explicit_instantiation/3.cc: Do not run test for C++2a. 3272*fb8a8121Smrg * testsuite/23_containers/unordered_multiset/requirements/ 3273*fb8a8121Smrg explicit_instantiation/5.cc: Do not test allocator rebinding extension 3274*fb8a8121Smrg for C++2a. 3275*fb8a8121Smrg * testsuite/23_containers/unordered_set/requirements/ 3276*fb8a8121Smrg explicit_instantiation/3.cc: Do not run test for C++2a. 3277*fb8a8121Smrg * testsuite/23_containers/unordered_set/requirements/ 3278*fb8a8121Smrg explicit_instantiation/5.cc: Do not test allocator rebinding extension 3279*fb8a8121Smrg for C++2a. 3280*fb8a8121Smrg * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/ 3281*fb8a8121Smrg 2.cc: Remove redundant test. 3282*fb8a8121Smrg * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/ 3283*fb8a8121Smrg 3.cc: Do not run test for C++2a. 3284*fb8a8121Smrg * testsuite/23_containers/vector/requirements/explicit_instantiation/ 3285*fb8a8121Smrg 3.cc: Likewise. 3286*fb8a8121Smrg 3287*fb8a8121Smrg * include/std/type_traits (is_empty, is_polymorphic, is_final) 3288*fb8a8121Smrg (is_abstract, is_aggregate): Remove static_assert. 3289*fb8a8121Smrg * testsuite/20_util/is_abstract/incomplete_neg.cc: Check for error 3290*fb8a8121Smrg from builtin only. 3291*fb8a8121Smrg * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise. Add 3292*fb8a8121Smrg missing -std=gnu++17 option. 3293*fb8a8121Smrg * testsuite/20_util/is_empty/incomplete_neg.cc: New test. 3294*fb8a8121Smrg * testsuite/20_util/is_final/incomplete_neg.cc: New test. 3295*fb8a8121Smrg * testsuite/20_util/is_polymorphic/incomplete_neg.cc: Check for error 3296*fb8a8121Smrg from builtin only. 3297*fb8a8121Smrg 3298*fb8a8121Smrg * testsuite/18_support/set_terminate.cc: Do not run for C++98 mode. 3299*fb8a8121Smrg * testsuite/18_support/set_unexpected.cc: Likewise. 3300*fb8a8121Smrg * testsuite/20_util/is_nothrow_invocable/value.cc: Test converting to 3301*fb8a8121Smrg void. 3302*fb8a8121Smrg * testsuite/20_util/is_nothrow_invocable/value_ext.cc: Fix constexpr 3303*fb8a8121Smrg function to be valid in C++11. 3304*fb8a8121Smrg * testsuite/26_numerics/complex/proj.cc: Do not run for C++98 mode. 3305*fb8a8121Smrg * testsuite/experimental/names.cc: Do not run for C++98 mode. Do not 3306*fb8a8121Smrg include Library Fundamentals or Networking headers in C++11 mode. 3307*fb8a8121Smrg * testsuite/ext/char8_t/atomic-1.cc: Do not run for C++98 mode. 3308*fb8a8121Smrg 3309*fb8a8121Smrg * include/std/tuple (_TC): Replace with _TupleConstraints. 3310*fb8a8121Smrg (_TupleConstraints): New helper for SFINAE constraints, with more 3311*fb8a8121Smrg expressive member functions to reduce duplication when used. 3312*fb8a8121Smrg (tuple::_TC2, tuple::_TMC, tuple::_TNTC): Remove. 3313*fb8a8121Smrg (tuple::_TCC): Replace dummy type parameter with bool non-type 3314*fb8a8121Smrg parameter that can be used to check the pack size. 3315*fb8a8121Smrg (tuple::_ImplicitDefaultCtor, tuple::_ExplicitDefaultCtor) 3316*fb8a8121Smrg (tuple::_ImplicitCtor, tuple::_ExplicitCtor): New alias templates for 3317*fb8a8121Smrg checking constraints in constructors. 3318*fb8a8121Smrg (tuple::__valid_args, tuple::_UseOtherCtor, tuple::__use_other_ctor): 3319*fb8a8121Smrg New SFINAE helpers. 3320*fb8a8121Smrg (tuple::tuple): Use new helpers to reduce repitition in constraints. 3321*fb8a8121Smrg (tuple::tuple(allocator_arg_t, const Alloc&)): Constrain. 3322*fb8a8121Smrg (tuple<T1, T2>::_TCC, tuple<T1, T2>::_ImplicitDefaultCtor) 3323*fb8a8121Smrg (tuple<T1, T2>::_ExplicitDefaultCtor, tuple<T1, T2>::_ImplicitCtor) 3324*fb8a8121Smrg (tuple<T1, T2>::_ExplicitCtor): New alias templates for checking 3325*fb8a8121Smrg constraints in constructors. 3326*fb8a8121Smrg (tuple::__is_alloc_arg()): New SFINAE helpers. 3327*fb8a8121Smrg (tuple<T1, T2>::tuple): Use new helpers to reduce repitition in 3328*fb8a8121Smrg constraints. 3329*fb8a8121Smrg (tuple<T1, T2>::tuple(allocator_arg_t, const Alloc&)): Constrain. 3330*fb8a8121Smrg * testsuite/20_util/tuple/cons/90700.cc: New test. 3331*fb8a8121Smrg * testsuite/20_util/tuple/cons/allocators.cc: Add default constructor 3332*fb8a8121Smrg to meet new constraint on allocator-extended default constructor. 3333*fb8a8121Smrg 3334*fb8a8121Smrg2019-06-03 Jonathan Wakely <jwakely@redhat.com> 3335*fb8a8121Smrg 3336*fb8a8121Smrg * include/bits/stl_map.h (map): Disable static assert for C++98 mode. 3337*fb8a8121Smrg * include/bits/stl_multimap.h (multimap): Likewise. 3338*fb8a8121Smrg 3339*fb8a8121Smrg2019-06-03 François Dumont <fdumont@gcc.gnu.org> 3340*fb8a8121Smrg 3341*fb8a8121Smrg Rename variables and cleanup comments. 3342*fb8a8121Smrg * include/bits/hashtable_policy.h 3343*fb8a8121Smrg * include/bits/hashtable.h 3344*fb8a8121Smrg 3345*fb8a8121Smrg2019-06-03 Jonathan Wakely <jwakely@redhat.com> 3346*fb8a8121Smrg 3347*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Add missing row for P0920R2. 3348*fb8a8121Smrg Fix bgcolor for P0340R3. 3349*fb8a8121Smrg * doc/html/*: Regenerate. 3350*fb8a8121Smrg 3351*fb8a8121Smrg PR libstdc++/90686 3352*fb8a8121Smrg * doc/xml/manual/status_cxx2014.xml: Document what's missing from 3353*fb8a8121Smrg <experimental/memory_resource>. 3354*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Document status of P1285R0, 3355*fb8a8121Smrg P0339R6, P0340R3, P1164R1 and P1357R1. 3356*fb8a8121Smrg * doc/html/*: Regenerate. 3357*fb8a8121Smrg 3358*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Document P1463R1 status. 3359*fb8a8121Smrg * include/bits/forward_list.h [__cplusplus > 201703]: Enable 3360*fb8a8121Smrg allocator::value_type assertion for C++2a. 3361*fb8a8121Smrg * include/bits/hashtable.h: Likewise. 3362*fb8a8121Smrg * include/bits/stl_deque.h: Likewise. 3363*fb8a8121Smrg * include/bits/stl_list.h: Likewise. 3364*fb8a8121Smrg * include/bits/stl_map.h: Likewise. 3365*fb8a8121Smrg * include/bits/stl_multimap.h: Likewise. 3366*fb8a8121Smrg * include/bits/stl_multiset.h: Likewise. 3367*fb8a8121Smrg * include/bits/stl_set.h: Likewise. 3368*fb8a8121Smrg * include/bits/stl_vector.h: Likewise. 3369*fb8a8121Smrg * testsuite/23_containers/deque/48101-3_neg.cc: New test. 3370*fb8a8121Smrg * testsuite/23_containers/forward_list/48101-3_neg.cc: New test. 3371*fb8a8121Smrg * testsuite/23_containers/list/48101-3_neg.cc: New test. 3372*fb8a8121Smrg * testsuite/23_containers/map/48101-3_neg.cc: New test. 3373*fb8a8121Smrg * testsuite/23_containers/multimap/48101-3_neg.cc: New test. 3374*fb8a8121Smrg * testsuite/23_containers/multiset/48101-3_neg.cc: New test. 3375*fb8a8121Smrg * testsuite/23_containers/set/48101-3_neg.cc: New test. 3376*fb8a8121Smrg * testsuite/23_containers/unordered_map/48101-3_neg.cc: New test. 3377*fb8a8121Smrg * testsuite/23_containers/unordered_multimap/48101-3_neg.cc: New test. 3378*fb8a8121Smrg * testsuite/23_containers/unordered_multiset/48101-3_neg.cc: New test. 3379*fb8a8121Smrg * testsuite/23_containers/unordered_set/48101-3_neg.cc: New test. 3380*fb8a8121Smrg * testsuite/23_containers/vector/48101-3_neg.cc: New test. 3381*fb8a8121Smrg 3382*fb8a8121Smrg2019-05-31 Gerald Pfeifer <gerald@pfeifer.com> 3383*fb8a8121Smrg 3384*fb8a8121Smrg * doc/xml/manual/allocator.xml: Move hoard.org back to http. 3385*fb8a8121Smrg 3386*fb8a8121Smrg2019-05-31 Jonathan Wakely <jwakely@redhat.com> 3387*fb8a8121Smrg 3388*fb8a8121Smrg * include/std/tuple (tuple<>): Add noexcept to allocator-extended 3389*fb8a8121Smrg constructors. 3390*fb8a8121Smrg (tuple<T1, T2>::__nothrow_default_constructible()): New helper 3391*fb8a8121Smrg function. 3392*fb8a8121Smrg (tuple<T1, T2>::tuple(), explicit tuple<T1, T2>::tuple()): Use helper. 3393*fb8a8121Smrg 3394*fb8a8121Smrg2019-05-31 Jonathan Wakely <jwakely@redhat.com> 3395*fb8a8121Smrg 3396*fb8a8121Smrg * src/c++98/bitmap_allocator.cc: Add using-declaration for size_t. 3397*fb8a8121Smrg 3398*fb8a8121Smrg PR libstdc++/90682 3399*fb8a8121Smrg * libsupc++/eh_term_handler.cc: Include eh_term_handler.h to get 3400*fb8a8121Smrg definition of _GLIBCXX_DEFAULT_TERM_HANDLER. 3401*fb8a8121Smrg * libsupc++/eh_term_handler.h: New header defining 3402*fb8a8121Smrg _GLIBCXX_DEFAULT_TERM_HANDLER. 3403*fb8a8121Smrg * libsupc++/eh_terminate.cc: Include eh_term_handler.h. 3404*fb8a8121Smrg (set_terminate): Restore default handler when argument is null. 3405*fb8a8121Smrg (set_unexpected): Likewise. 3406*fb8a8121Smrg * testsuite/18_support/set_terminate.cc: New test. 3407*fb8a8121Smrg * testsuite/18_support/set_unexpected.cc: New test. 3408*fb8a8121Smrg 3409*fb8a8121Smrg * include/backward/hashtable.h (size_t, ptrdiff_t) 3410*fb8a8121Smrg (forward_iterator_tag, input_iterator_tag, _Construct, _Destroy) 3411*fb8a8121Smrg (distance, vector, pair, __iterator_category): Remove 3412*fb8a8121Smrg using-declarations that add these names to namespace __gnu_cxx. 3413*fb8a8121Smrg * include/ext/bitmap_allocator.h (size_t, ptrdiff_t): Likewise. 3414*fb8a8121Smrg * include/ext/debug_allocator.h (size_t): Likewise. 3415*fb8a8121Smrg * include/ext/functional (size_t, unary_function, binary_function) 3416*fb8a8121Smrg (mem_fun1_t, const_mem_fun1_t, mem_fun1_ref_t, const_mem_fun1_ref_t): 3417*fb8a8121Smrg Likewise. 3418*fb8a8121Smrg * include/ext/malloc_allocator.h (size_t, ptrdiff_t): Likewise. 3419*fb8a8121Smrg * include/ext/memory (ptrdiff_t, pair, __iterator_category): Likewise. 3420*fb8a8121Smrg * include/ext/mt_allocator.h (size_t, ptrdiff_t): Likewise. 3421*fb8a8121Smrg * include/ext/new_allocator.h (size_t, ptrdiff_t): Likewise. 3422*fb8a8121Smrg * include/ext/numeric (iota): Fix outdated comment. 3423*fb8a8121Smrg * include/ext/pool_allocator.h (size_t, ptrdiff_t): Likewise. 3424*fb8a8121Smrg * include/ext/rb_tree (_Rb_tree, allocator): Likewise. 3425*fb8a8121Smrg * include/ext/rope (size_t, ptrdiff_t, allocator, _Destroy): Likewise. 3426*fb8a8121Smrg * include/ext/ropeimpl.h (size_t, printf, basic_ostream) 3427*fb8a8121Smrg (__throw_length_error, _Destroy, std::__uninitialized_fill_n_a): 3428*fb8a8121Smrg Likewise. 3429*fb8a8121Smrg * include/ext/slist (size_t, ptrdiff_t, _Construct, _Destroy) 3430*fb8a8121Smrg (allocator, __true_type, __false_type): Likewise. 3431*fb8a8121Smrg 3432*fb8a8121Smrg2019-05-31 Antony Polukhin <antoshkka@gmail.com> 3433*fb8a8121Smrg 3434*fb8a8121Smrg PR libstdc++/71579 3435*fb8a8121Smrg * include/std/type_traits __type_identity, __is_complete_or_unbounded): 3436*fb8a8121Smrg New helpers for checking preconditions in traits. 3437*fb8a8121Smrg (is_trivial, is_trivially_copyable, is_standard_layout, is_pod) 3438*fb8a8121Smrg (is_literal_type, is_empty, is_polymorphic, is_final, is_abstract) 3439*fb8a8121Smrg (is_destructible, is_nothrow_destructible, is_constructible) 3440*fb8a8121Smrg (is_default_constructible, is_copy_constructible) 3441*fb8a8121Smrg (is_move_constructible, is_nothrow_default_constructible) 3442*fb8a8121Smrg (is_nothrow_constructible, is_nothrow_copy_constructible) 3443*fb8a8121Smrg (is_nothrow_move_constructible, is_copy_assignable, is_move_assignable) 3444*fb8a8121Smrg (is_nothrow_assignable, is_nothrow_copy_assignable) 3445*fb8a8121Smrg (is_nothrow_move_assignable, is_trivially_constructible) 3446*fb8a8121Smrg (is_trivially_copy_constructible, is_trivially_move_constructible) 3447*fb8a8121Smrg is_trivially_assignable, is_trivially_copy_assignable) 3448*fb8a8121Smrg (is_trivially_move_assignable, is_trivially_destructible) 3449*fb8a8121Smrg (alignment_of, is_swappable, is_nothrow_swappable, is_invocable) 3450*fb8a8121Smrg (is_invocable_r, is_nothrow_invocable) 3451*fb8a8121Smrg (has_unique_object_representations, is_aggregate): Add static_asserts 3452*fb8a8121Smrg to make sure that type traits are not misused with incomplete types. 3453*fb8a8121Smrg (__is_constructible_impl, __is_nothrow_default_constructible_impl) 3454*fb8a8121Smrg (__is_nothrow_constructible_impl, __is_nothrow_assignable_impl): New 3455*fb8a8121Smrg base characteristics without assertions that can be reused in other 3456*fb8a8121Smrg traits. 3457*fb8a8121Smrg * testsuite/20_util/is_complete_or_unbounded/memoization.cc: New test. 3458*fb8a8121Smrg * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc: New 3459*fb8a8121Smrg test. 3460*fb8a8121Smrg * testsuite/20_util/is_complete_or_unbounded/value.cc: New test. 3461*fb8a8121Smrg * testsuite/20_util/is_abstract/incomplete_neg.cc: New test. 3462*fb8a8121Smrg * testsuite/20_util/is_aggregate/incomplete_neg.cc: New test. 3463*fb8a8121Smrg * testsuite/20_util/is_class/value.cc: Check incomplete type. 3464*fb8a8121Smrg * testsuite/20_util/is_function/value.cc: Likewise. 3465*fb8a8121Smrg * testsuite/20_util/is_move_constructible/incomplete_neg.cc: New test. 3466*fb8a8121Smrg * testsuite/20_util/is_nothrow_move_assignable/incomplete_neg.cc: New 3467*fb8a8121Smrg test. 3468*fb8a8121Smrg * testsuite/20_util/is_polymorphic/incomplete_neg.cc: New test. 3469*fb8a8121Smrg * testsuite/20_util/is_reference/value.cc: Check incomplete types. 3470*fb8a8121Smrg * testsuite/20_util/is_unbounded_array/value.cc: Likewise. 3471*fb8a8121Smrg * testsuite/20_util/is_union/value.cc: Likewise. 3472*fb8a8121Smrg * testsuite/20_util/is_void/value.cc: Likewise. 3473*fb8a8121Smrg * testsuite/util/testsuite_tr1.h: Add incomplete union type. 3474*fb8a8121Smrg 3475*fb8a8121Smrg2019-05-31 Jonathan Wakely <jwakely@redhat.com> 3476*fb8a8121Smrg 3477*fb8a8121Smrg * include/bits/random.h (random_device::_M_init(const char*, size_t)): 3478*fb8a8121Smrg Add new private member function. 3479*fb8a8121Smrg * src/c++11/cow-string-inst.cc (random_device::_M_init(const string&)) 3480*fb8a8121Smrg (random_device::_M_init_pretr1(const string&)): Call new private 3481*fb8a8121Smrg member with string data. 3482*fb8a8121Smrg * src/c++11/random.cc (random_device::_M_init(const char*, size_t)): 3483*fb8a8121Smrg Define. 3484*fb8a8121Smrg * testsuite/26_numerics/random/random_device/cons/default-cow.cc: New 3485*fb8a8121Smrg test using COW strings. 3486*fb8a8121Smrg * testsuite/26_numerics/random/random_device/cons/default.cc: Generate 3487*fb8a8121Smrg a value from the device. 3488*fb8a8121Smrg * testsuite/26_numerics/random/random_device/cons/token.cc: Likewise. 3489*fb8a8121Smrg Fix typo in token string. 3490*fb8a8121Smrg 3491*fb8a8121Smrg2019-05-30 Nina Dinka Ranns <dinka.ranns@gmail.com> 3492*fb8a8121Smrg 3493*fb8a8121Smrg LWG2788 basic_string spurious use of a default constructible allocator 3494*fb8a8121Smrg * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] 3495*fb8a8121Smrg (basic_string::_M_replace_dispatch): Construct temporary string with 3496*fb8a8121Smrg the current allocator. 3497*fb8a8121Smrg * testsuite/21_strings/basic_string/allocator/char/lwg2788.cc: New. 3498*fb8a8121Smrg * testsuite/21_strings/basic_string/allocator/wchar_t/lwg2788.cc: New. 3499*fb8a8121Smrg 3500*fb8a8121Smrg2019-05-30 Jonathan Wakely <jwakely@redhat.com> 3501*fb8a8121Smrg 3502*fb8a8121Smrg * doc/xml/manual/diagnostics.xml: Update list of headers that define 3503*fb8a8121Smrg exception classes. 3504*fb8a8121Smrg * doc/xml/manual/support.xml: Rewrite advice around NULL. Rewrite 3505*fb8a8121Smrg section about new/delete overloads. Improve section on verbose 3506*fb8a8121Smrg terminate handler. 3507*fb8a8121Smrg * doc/html/*: Regenerate. 3508*fb8a8121Smrg 3509*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Add feature-test macro for 3510*fb8a8121Smrg P0811R3. Change status of P1353R0. 3511*fb8a8121Smrg * doc/html/*: Regenerate. 3512*fb8a8121Smrg 3513*fb8a8121Smrg * doc/xml/manual/status_cxx2011.xml: Use <variablelist> for 3514*fb8a8121Smrg documentation of implementation-defined types for [thread.req.native]. 3515*fb8a8121Smrg * doc/xml/manual/status_cxx2017.xml: Update documentation of 3516*fb8a8121Smrg implementation-defined strings for [variant.bad.access]. Fix typo in 3517*fb8a8121Smrg documentation of implementation-defined support for [fs.conform.9945]. 3518*fb8a8121Smrg * doc/html/*: Regenerate. 3519*fb8a8121Smrg 3520*fb8a8121Smrg2019-05-29 Jonathan Wakely <jwakely@redhat.com> 3521*fb8a8121Smrg 3522*fb8a8121Smrg PR libstdc++/85494 3523*fb8a8121Smrg * testsuite/26_numerics/random/random_device/cons/token.cc: Fix test 3524*fb8a8121Smrg that fails on mingw-w64. 3525*fb8a8121Smrg 3526*fb8a8121Smrg PR libstdc++/88881 3527*fb8a8121Smrg * src/c++17/fs_ops.cc [_GLIBCXX_FILESYSTEM_IS_WINDOWS] 3528*fb8a8121Smrg (status(const path&, error_code&)): Use parent_path() to remove 3529*fb8a8121Smrg trailing slash. 3530*fb8a8121Smrg (symlink_status(const path&, error_code&)): Duplicate workaround for 3531*fb8a8121Smrg bug in _wstat for paths with trailing slash. 3532*fb8a8121Smrg * testsuite/27_io/filesystem/operations/remove_all.cc: Check path 3533*fb8a8121Smrg with trailing slash. 3534*fb8a8121Smrg * testsuite/27_io/filesystem/operations/status.cc: Likewise. 3535*fb8a8121Smrg * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise. 3536*fb8a8121Smrg 3537*fb8a8121Smrg * src/c++17/fs_path.cc (path::parent_path()): Create whole path at 3538*fb8a8121Smrg once instead of building it iteratively. 3539*fb8a8121Smrg 3540*fb8a8121Smrg * testsuite/util/testsuite_api.h: Remove names of unused parameters. 3541*fb8a8121Smrg 3542*fb8a8121Smrg PR libstdc++/85494 use rdseed and rand_s in std::random_device 3543*fb8a8121Smrg * acinclude.m4 (GLIBCXX_CHECK_X86_RDSEED): Define macro to check if 3544*fb8a8121Smrg the assembler supports rdseed. 3545*fb8a8121Smrg * config.h.in: Regenerate. 3546*fb8a8121Smrg * configure: Regenerate. 3547*fb8a8121Smrg * configure.ac: Use GLIBCXX_CHECK_X86_RDSEED. 3548*fb8a8121Smrg * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_CRT_RAND_S): Define. 3549*fb8a8121Smrg * doc/html/*: Regenerate. 3550*fb8a8121Smrg * doc/xml/manual/status_cxx2011.xml: Document new tokens. 3551*fb8a8121Smrg * include/bits/random.h (random_device::random_device()): Always call 3552*fb8a8121Smrg _M_init rather than _M_init_pretr1. 3553*fb8a8121Smrg (random_device::random_device(const string&)): Likewise. 3554*fb8a8121Smrg (random_device::operator()()): Always call _M_getval(). 3555*fb8a8121Smrg (random_device::_M_file): Replace first member of union with an 3556*fb8a8121Smrg anonymous struct, with _M_file as its first member. 3557*fb8a8121Smrg * src/c++11/random.cc [_GLIBCXX_X86_RDRAND] (USE_RDRAND): Define. 3558*fb8a8121Smrg [_GLIBCXX_X86_RDSEED] (USE_RDSEED): Define. 3559*fb8a8121Smrg (USE_MT19937): Define if none of the above are defined. 3560*fb8a8121Smrg (USE_POSIX_FILE_IO): Define. 3561*fb8a8121Smrg (_M_strtoul): Remove. 3562*fb8a8121Smrg [USE_RDSEED] (__x86_rdseed): Define new function. 3563*fb8a8121Smrg [_GLIBCXX_USE_CRT_RAND_S] (__winxp_rand_s): Define new function. 3564*fb8a8121Smrg (random_device::_M_init(const string&)): Initialize new union members. 3565*fb8a8121Smrg Add support for "rdseed" and "rand_s" tokens. Decide what the 3566*fb8a8121Smrg "default" token does according to which USE_* macros are defined. 3567*fb8a8121Smrg [USE_POSIX_FILE_IO]: Store a file descriptor. 3568*fb8a8121Smrg [USE_MT19937]: Forward to _M_init_pretr1 instead. 3569*fb8a8121Smrg (random_device::_M_init_pretr1(const string&)) [USE_MT19937]: Inline 3570*fb8a8121Smrg code from _M_strtoul. 3571*fb8a8121Smrg [!USE_MT19937]: Call _M_init, transforming the old default token or 3572*fb8a8121Smrg numeric tokens to "default". 3573*fb8a8121Smrg (random_device::_M_fini()) [USE_POSIX_FILE_IO]: Use close not fclose. 3574*fb8a8121Smrg (random_device::_M_getval()): Use new union members to obtain a 3575*fb8a8121Smrg random number from the stored function pointer or file descriptor. 3576*fb8a8121Smrg [USE_MT19937]: Obtain a value from the mt19937 engine. 3577*fb8a8121Smrg (random_device::_M_getval_pretr1()): Call _M_getval(). 3578*fb8a8121Smrg (random_device::_M_getentropy()) [USE_POSIX_FILE_IO]: Use _M_fd 3579*fb8a8121Smrg instead of fileno. 3580*fb8a8121Smrg [!USE_MT19937] (mersenne_twister): Do not instantiate when not needed. 3581*fb8a8121Smrg * testsuite/26_numerics/random/random_device/85494.cc: New test. 3582*fb8a8121Smrg 3583*fb8a8121Smrg2019-05-28 Jonathan Wakely <jwakely@redhat.com> 3584*fb8a8121Smrg 3585*fb8a8121Smrg PR libstdc++/90634 3586*fb8a8121Smrg * include/experimental/bits/fs_path.h (path::path(path&&)): Only call 3587*fb8a8121Smrg _M_split_cmpts() for a path with multiple components. 3588*fb8a8121Smrg (path::_S_is_dir_sep()): Add missing 'static' keyword to function. 3589*fb8a8121Smrg * src/filesystem/path.cc (path::_M_split_cmpts()): Count number of 3590*fb8a8121Smrg components and reserve space in vector. Return early when there is 3591*fb8a8121Smrg only one component. 3592*fb8a8121Smrg * testsuite/27_io/filesystem/path/construct/90634.cc: New test. 3593*fb8a8121Smrg * testsuite/experimental/filesystem/path/construct/90634.cc: New test. 3594*fb8a8121Smrg 3595*fb8a8121Smrg * testsuite/util/testsuite_fs.h (compare_paths): Use three-argument 3596*fb8a8121Smrg form of std::equals for C++11 compatibility. 3597*fb8a8121Smrg 3598*fb8a8121Smrg2019-05-26 Gerald Pfeifer <gerald@pfeifer.com> 3599*fb8a8121Smrg 3600*fb8a8121Smrg * doc/xml/manual/appendix_contributing.xml: Update pointer to 3601*fb8a8121Smrg C++ standard at ansi.org. 3602*fb8a8121Smrg 3603*fb8a8121Smrg2019-05-24 Jonathan Wakely <jwakely@redhat.com> 3604*fb8a8121Smrg 3605*fb8a8121Smrg * include/std/numeric (midpoint(T*, T*)): Fix incorrect result. 3606*fb8a8121Smrg * testsuite/26_numerics/midpoint/pointer.cc: Change "compile" test 3607*fb8a8121Smrg to "run". 3608*fb8a8121Smrg 3609*fb8a8121Smrg * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Fix test. 3610*fb8a8121Smrg * testsuite/20_util/shared_ptr/cons/alias.cc: Remove unused function. 3611*fb8a8121Smrg 3612*fb8a8121Smrg2019-05-23 Jonathan Wakely <jwakely@redhat.com> 3613*fb8a8121Smrg 3614*fb8a8121Smrg * testsuite/20_util/function_objects/invoke/1.cc: Move C++17-specific 3615*fb8a8121Smrg tests to ... 3616*fb8a8121Smrg * testsuite/20_util/function_objects/invoke/3.cc: New test. 3617*fb8a8121Smrg * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Change 3618*fb8a8121Smrg "compile" test to "run". 3619*fb8a8121Smrg 3620*fb8a8121Smrg * doc/xml/manual/intro.xml: Document LWG DR 2996 change. 3621*fb8a8121Smrg * doc/html/*: Regenerate. 3622*fb8a8121Smrg * include/bits/shared_ptr.h (shared_ptr(shared_ptr&&, T*)): Add 3623*fb8a8121Smrg rvalue aliasing constructor. 3624*fb8a8121Smrg (static_pointer_cast, const_pointer, dynamic_pointer_cast) 3625*fb8a8121Smrg (reinterpret_pointer_cast): Add overloads taking rvalues. 3626*fb8a8121Smrg * include/bits/shared_ptr_base.h (__shared_ptr(__shared_ptr&&, T*)): 3627*fb8a8121Smrg Add rvalue aliasing constructor. 3628*fb8a8121Smrg * testsuite/20_util/shared_ptr/casts/1.cc: Change "compile" test to 3629*fb8a8121Smrg "run" and check return values as well as types. 3630*fb8a8121Smrg * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise. 3631*fb8a8121Smrg * testsuite/20_util/shared_ptr/casts/rval.cc: New test. 3632*fb8a8121Smrg * testsuite/20_util/shared_ptr/cons/alias-rval.cc: New test. 3633*fb8a8121Smrg * testsuite/20_util/shared_ptr/cons/alias.cc: Remove unused return 3634*fb8a8121Smrg values. 3635*fb8a8121Smrg 3636*fb8a8121Smrg * doc/xml/manual/evolution.xml: Document LWG DR 2921 change. 3637*fb8a8121Smrg * doc/xml/manual/intro.xml: Likewise. 3638*fb8a8121Smrg * include/std/future (__create_task_state): Add default arguments 3639*fb8a8121Smrg to make providing an allocator optional. 3640*fb8a8121Smrg (packaged_task::packaged_task(F&&)): Call __create_task_state directly 3641*fb8a8121Smrg instead of delegating to another constructor. 3642*fb8a8121Smrg (packaged_task::packaged_task(allocator_arg_t, const A&, ...)): Do not 3643*fb8a8121Smrg define allocator-extended constructors for C++17 and later. 3644*fb8a8121Smrg * testsuite/30_threads/packaged_task/cons/alloc.cc: Only run test for 3645*fb8a8121Smrg C++11 and C++14. 3646*fb8a8121Smrg * testsuite/30_threads/packaged_task/cons/alloc2.cc: Likewise. 3647*fb8a8121Smrg * testsuite/30_threads/packaged_task/cons/alloc_min.cc: Likewise. 3648*fb8a8121Smrg * testsuite/30_threads/packaged_task/uses_allocator.cc: Likewise. 3649*fb8a8121Smrg 3650*fb8a8121Smrg2019-05-23 Hans-Peter Nilsson <hp@axis.com> 3651*fb8a8121Smrg 3652*fb8a8121Smrg * testsuite/26_numerics/random/poisson_distribution/operators/values.cc: 3653*fb8a8121Smrg Don't run the libstdc++/83237 part on simulator targets. 3654*fb8a8121Smrg 3655*fb8a8121Smrg2019-05-23 Jonathan Wakely <jwakely@redhat.com> 3656*fb8a8121Smrg 3657*fb8a8121Smrg * doc/xml/manual/status_cxx2017.xml: Add feature test macro for 3658*fb8a8121Smrg P0040R3. 3659*fb8a8121Smrg * doc/html/*: Regenerate. 3660*fb8a8121Smrg 3661*fb8a8121Smrg * include/experimental/any (__any_caster): Use RTTI if comparing 3662*fb8a8121Smrg addresses fails, to support non-unique addresses in shared libraries. 3663*fb8a8121Smrg * include/std/any (__any_caster): Likewise. 3664*fb8a8121Smrg 3665*fb8a8121Smrg PR libstdc++/90220 3666*fb8a8121Smrg * include/experimental/any (__any_caster): Constrain to only be 3667*fb8a8121Smrg callable for object types. Use remove_cv_t instead of decay_t. 3668*fb8a8121Smrg If the type decays or isn't copy constructible, compare the manager 3669*fb8a8121Smrg function to a dummy specialization. 3670*fb8a8121Smrg (__any_caster): Add overload constrained for non-object types. 3671*fb8a8121Smrg (any::_Manager_internal<_Op>): Add dummy specialization. 3672*fb8a8121Smrg * testsuite/experimental/any/misc/any_cast.cc: Test function types 3673*fb8a8121Smrg and array types. 3674*fb8a8121Smrg 3675*fb8a8121Smrg2019-05-22 Jonathan Wakely <jwakely@redhat.com> 3676*fb8a8121Smrg 3677*fb8a8121Smrg PR libstdc++/90557 3678*fb8a8121Smrg * src/c++17/fs_path.cc (path::_List::operator=(const _List&)): Fix 3679*fb8a8121Smrg reversed arguments to uninitialized_copy_n. 3680*fb8a8121Smrg * testsuite/27_io/filesystem/path/assign/copy.cc: Check that source 3681*fb8a8121Smrg is unchanged by copy assignment. 3682*fb8a8121Smrg * testsuite/util/testsuite_fs.h (compare_paths): Use std::equal to 3683*fb8a8121Smrg compare path components. 3684*fb8a8121Smrg 3685*fb8a8121Smrg PR libstdc++/77691 3686*fb8a8121Smrg * include/experimental/memory_resource: Add system header pragma and 3687*fb8a8121Smrg do not define anything unless compiled as C++14 or later. 3688*fb8a8121Smrg (__resource_adaptor_common::__guaranteed_alignment): Remove. 3689*fb8a8121Smrg (__resource_adaptor_imp::do_allocate): If the requested alignment 3690*fb8a8121Smrg is a fundamental alignment then either allocate directly from _M_alloc 3691*fb8a8121Smrg or call the new _M_allocate function. 3692*fb8a8121Smrg (__resource_adaptor_imp::do_deallocate): Likewise for deallocation. 3693*fb8a8121Smrg (__resource_adaptor_imp::_M_allocate): New function that uses a copy 3694*fb8a8121Smrg of the allocator rebound to a POD type with the specified alignment. 3695*fb8a8121Smrg (__resource_adaptor_imp::_M_deallocate): Likewise for deallocation. 3696*fb8a8121Smrg * testsuite/experimental/memory_resource/new_delete_resource.cc: 3697*fb8a8121Smrg Adjust expected allocation sizes. 3698*fb8a8121Smrg * testsuite/experimental/memory_resource/resource_adaptor.cc: Remove 3699*fb8a8121Smrg xfail for Solaris x86. 3700*fb8a8121Smrg 3701*fb8a8121Smrg2019-05-21 Thomas Rodgers <trodgers@redhat.com> 3702*fb8a8121Smrg 3703*fb8a8121Smrg LWG 3062 - Unnecessary decay_t in is_execution_policy_v 3704*fb8a8121Smrg * include/pstl/execution_defs.h (__enable_if_execution_policy): 3705*fb8a8121Smrg Use std::__remove_cvref_t when building with GCC. 3706*fb8a8121Smrg 3707*fb8a8121Smrg2019-05-21 Jonathan Wakely <jwakely@redhat.com> 3708*fb8a8121Smrg 3709*fb8a8121Smrg PR libstdc++/90252 3710*fb8a8121Smrg * testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend): 3711*fb8a8121Smrg Use "additional_flags" to pass -ltbb to v3_target_compile command. 3712*fb8a8121Smrg Use check_v3_target_prop_cached to cache the result of the test. 3713*fb8a8121Smrg 3714*fb8a8121Smrg * doc/xml/manual/shared_ptr.xml: Fix names of lock policy constants. 3715*fb8a8121Smrg 3716*fb8a8121Smrg2019-05-20 Thomas Rodgers <trodgers@redhat.com> 3717*fb8a8121Smrg 3718*fb8a8121Smrg PR libstdc++/90252 3719*fb8a8121Smrg * testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend): 3720*fb8a8121Smrg Changed v3_target_compile check from preprocess to executable. 3721*fb8a8121Smrg Added "-ltbb" to v3_target_compile flags. 3722*fb8a8121Smrg 3723*fb8a8121Smrg2019-05-20 Thomas Rodgers <trodgers@redhat.com> 3724*fb8a8121Smrg 3725*fb8a8121Smrg * testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend): 3726*fb8a8121Smrg Add check for Thread Building Blocks 2018 or later. 3727*fb8a8121Smrg 3728*fb8a8121Smrg2019-05-20 Jonathan Wakely <jwakely@redhat.com> 3729*fb8a8121Smrg 3730*fb8a8121Smrg * testsuite/experimental/names.cc: Only include Networking TS headers 3731*fb8a8121Smrg on targets with the necessary Gthreads support. 3732*fb8a8121Smrg 3733*fb8a8121Smrg2019-05-20 Marek Polacek <polacek@redhat.com> 3734*fb8a8121Smrg 3735*fb8a8121Smrg CWG 2094 - volatile scalars are trivially copyable. 3736*fb8a8121Smrg PR c++/85679 3737*fb8a8121Smrg * testsuite/20_util/is_trivially_copyable/value.cc: Change the expected 3738*fb8a8121Smrg result for volatile int. 3739*fb8a8121Smrg 3740*fb8a8121Smrg2019-05-20 Jonathan Wakely <jwakely@redhat.com> 3741*fb8a8121Smrg 3742*fb8a8121Smrg * testsuite/17_intro/names.cc: Do not check 'ptr' on Solaris. 3743*fb8a8121Smrg * testsuite/experimental/names.cc: Include <experimental/filesystem> 3744*fb8a8121Smrg conditionally. 3745*fb8a8121Smrg 3746*fb8a8121Smrg PR c++/90532 Ensure __is_constructible(T[]) is false 3747*fb8a8121Smrg * include/std/type_traits (__do_is_default_constructible_impl) 3748*fb8a8121Smrg (__is_default_constructible_atom, __is_default_constructible_safe): 3749*fb8a8121Smrg Remove. 3750*fb8a8121Smrg (is_default_constructible): Use is_constructible. 3751*fb8a8121Smrg * testsuite/20_util/is_constructible/value.cc: Check int[] case. 3752*fb8a8121Smrg * testsuite/20_util/is_default_constructible/value.cc: Likewise. 3753*fb8a8121Smrg * testsuite/20_util/is_trivially_constructible/value.cc: Likewise. 3754*fb8a8121Smrg * testsuite/20_util/is_trivially_default_constructible/value.cc: 3755*fb8a8121Smrg Likewise. 3756*fb8a8121Smrg 3757*fb8a8121Smrg2019-05-20 Pádraig Brady <pbrady@fb.com> 3758*fb8a8121Smrg 3759*fb8a8121Smrg * libstdc++-v3/include/ext/new_allocator.h (deallocate): Pass the size 3760*fb8a8121Smrg to the deallocator with -fsized-deallocation. 3761*fb8a8121Smrg 3762*fb8a8121Smrg2019-05-20 Jonathan Wakely <jwakely@redhat.com> 3763*fb8a8121Smrg 3764*fb8a8121Smrg * testsuite/experimental/memory_resource/new_delete_resource.cc: Fix 3765*fb8a8121Smrg test by passing correct alignment to deallocate function. 3766*fb8a8121Smrg 3767*fb8a8121Smrg2019-05-18 Jonathan Wakely <jwakely@redhat.com> 3768*fb8a8121Smrg 3769*fb8a8121Smrg PR libstdc++/90520 3770*fb8a8121Smrg * python/libstdcxx/v6/printers.py (UniquePointerPrinter.__init__): 3771*fb8a8121Smrg Raise exception if unique_ptr tuple member has unknown structure. 3772*fb8a8121Smrg * python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker.__call__): 3773*fb8a8121Smrg Adjust worker to support new __uniq_ptr_data base class. Do not 3774*fb8a8121Smrg assume field called _M_head_impl is the first tuple element. 3775*fb8a8121Smrg 3776*fb8a8121Smrg2019-05-17 François Dumont <fdumont@gcc.gnu.org> 3777*fb8a8121Smrg 3778*fb8a8121Smrg * include/bits/stl_deque.h 3779*fb8a8121Smrg (_Deque_iterator<>::__ptr_to): Remove, use std::__ptr_rebind. 3780*fb8a8121Smrg (_Deque_base(_Deque_base&&, const allocator_type&)): New. 3781*fb8a8121Smrg (_Deque_base::_Deque_impl_data): New. 3782*fb8a8121Smrg (_Deque_base::_Deque_impl): Inherit latter. 3783*fb8a8121Smrg (_Deque_base::_Deque_impl::_M_swap_data): Move... 3784*fb8a8121Smrg (_Deque_base::_Deque_impl_data::_M_swap_data): ... here. 3785*fb8a8121Smrg (_Deque_base::_Deque_impl()): Add noexcept qualification. 3786*fb8a8121Smrg (_Deque_base::_Deque_impl(_Deque_impl&&, _Tp_alloc_type&&)): New. 3787*fb8a8121Smrg (_Deque_base::_Deque_impl::_M_get_Tp_allocator()): Remove static_cast. 3788*fb8a8121Smrg (deque<>::deque()): Default. 3789*fb8a8121Smrg (deque<>::deque(deque&&)): Default. 3790*fb8a8121Smrg (deque<>::deque(deque&&, const allocator_type&, false_type)): New. 3791*fb8a8121Smrg (deque<>::deque(deque&&, const allocator_type&, true_type)): New. 3792*fb8a8121Smrg (deque<>::deque(deque&&, const allocator_type&)): Delegate to latters. 3793*fb8a8121Smrg (deque<>::deque<_It>(_It, _It, const allocator_type&)): Use 3794*fb8a8121Smrg _M_range_initialize. 3795*fb8a8121Smrg (deque<>::assign<_It>(_It, _It)): Use _M_assign_aux. 3796*fb8a8121Smrg (deque<>::resize(size_type, const value_type&)): Share a single 3797*fb8a8121Smrg implementation. 3798*fb8a8121Smrg (deque<>::insert<_It>(const_iterator, _It, _It)): Use 3799*fb8a8121Smrg _M_range_insert_aux. 3800*fb8a8121Smrg [__cplusplus >= 201103L](_M_initialize_dispatch): Remove. 3801*fb8a8121Smrg [__cplusplus >= 201103L](_M_assign_dispatch): Remove. 3802*fb8a8121Smrg [__cplusplus >= 201103L](_M_insert_dispatch): Remove. 3803*fb8a8121Smrg * testsuite/23_containers/deque/allocator/default_init.cc: New. 3804*fb8a8121Smrg 3805*fb8a8121Smrg2019-05-17 Jonathan Wakely <jwakely@redhat.com> 3806*fb8a8121Smrg 3807*fb8a8121Smrg PR libstdc++/90246 3808*fb8a8121Smrg * include/std/variant (holds_alternative, get, get_if): Improve 3809*fb8a8121Smrg static assertion messages. 3810*fb8a8121Smrg (bad_variant_access::bad_variant_access()): Change default message. 3811*fb8a8121Smrg (__throw_bad_variant_access(bool)): New overload. 3812*fb8a8121Smrg (get): Use new overload. 3813*fb8a8121Smrg (visit, visit<R>): Improve exception message. 3814*fb8a8121Smrg 3815*fb8a8121Smrg * testsuite/20_util/variant/compile.cc: Fix narrowing test for ILP32 3816*fb8a8121Smrg targets. Add more cases from P0608R3. 3817*fb8a8121Smrg * testsuite/20_util/variant/run.cc: Add more cases from P0608R3. 3818*fb8a8121Smrg 3819*fb8a8121Smrg * include/bits/random.h (seed_seq::param): Fix non-reserved name. 3820*fb8a8121Smrg * include/experimental/type_traits (is_detected_exact) 3821*fb8a8121Smrg (is_detected_exact_v): Likewise. 3822*fb8a8121Smrg * include/pstl/execution_defs.h (is_execution_policy) 3823*fb8a8121Smrg (is_execution_policy_v, __enable_if_execution_policy): Likewise. 3824*fb8a8121Smrg * include/pstl/execution_impl.h (__policy_traits): Likewise. 3825*fb8a8121Smrg * testsuite/17_intro/names.cc: Check for more non-reserved names. 3826*fb8a8121Smrg * testsuite/experimental/names.cc: New test. 3827*fb8a8121Smrg 3828*fb8a8121Smrg PR libstdc++/85965 3829*fb8a8121Smrg * include/bits/hashtable.h (_Hashtable::~_Hashtable()): Remove static 3830*fb8a8121Smrg assertions from the destructor. 3831*fb8a8121Smrg * include/bits/hashtable_policy.h (_Hash_code_base::_M_hash_code): 3832*fb8a8121Smrg Move static_assert for hash function to here. 3833*fb8a8121Smrg (_Hash_table_base::_M_equals): Move static_assert for equality 3834*fb8a8121Smrg predicate to here. 3835*fb8a8121Smrg * include/bits/stl_tree.h (_Rb_tree::_S_value(_Const_Link_type)): 3836*fb8a8121Smrg Remove. 3837*fb8a8121Smrg (_Rb_tree::_S_key(_Const_Link_type)): Move assertions here. Access 3838*fb8a8121Smrg the value directly instead of calling _S_value. 3839*fb8a8121Smrg (_Rb_tree::_S_value(_Const_Base_ptr)): Remove. 3840*fb8a8121Smrg (_Rb_tree::_S_key(_Const_Base_ptr)): Do downcast and forward to 3841*fb8a8121Smrg _S_key(_Const_Link_type). 3842*fb8a8121Smrg * testsuite/23_containers/set/85965.cc: Check construction, 3843*fb8a8121Smrg destruction, assignment and size() do not trigger the assertions. 3844*fb8a8121Smrg * testsuite/23_containers/unordered_set/85965.cc: Likewise. 3845*fb8a8121Smrg * testsuite/23_containers/map/48101_neg.cc: Call find and adjust 3846*fb8a8121Smrg expected errors. 3847*fb8a8121Smrg * testsuite/23_containers/multimap/48101_neg.cc: Likewise. 3848*fb8a8121Smrg * testsuite/23_containers/multiset/48101_neg.cc: Likewise. 3849*fb8a8121Smrg * testsuite/23_containers/set/48101_neg.cc: Likewise. 3850*fb8a8121Smrg * testsuite/23_containers/unordered_map/48101_neg.cc: Likewise. 3851*fb8a8121Smrg * testsuite/23_containers/unordered_multimap/48101_neg.cc: Likewise. 3852*fb8a8121Smrg * testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise. 3853*fb8a8121Smrg * testsuite/23_containers/unordered_set/48101_neg.cc: Likewise. 3854*fb8a8121Smrg 3855*fb8a8121Smrg * include/bits/invoke.h [__cplusplus < 201703L] (__invoke_r<void>): 3856*fb8a8121Smrg Use _GLIBCXX14_CONSTEXPR because void functions cannot be constexpr 3857*fb8a8121Smrg in C++11. 3858*fb8a8121Smrg 3859*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Update P0608R3, P0777R1, and 3860*fb8a8121Smrg P1165R1 entries. 3861*fb8a8121Smrg * doc/html/*: Regenerate. 3862*fb8a8121Smrg * include/std/tuple (make_from_tuple): Use remove_reference_t instead 3863*fb8a8121Smrg of decay_t (P0777R1). 3864*fb8a8121Smrg 3865*fb8a8121Smrg2019-05-17 François Dumont <fdumont@gcc.gnu.org> 3866*fb8a8121Smrg 3867*fb8a8121Smrg Move from state of allocators (LWG2593) 3868*fb8a8121Smrg * include/bits/stl_deque.h 3869*fb8a8121Smrg (_Deque_base(_Deque_base&&, false_type)): Remove. 3870*fb8a8121Smrg (_Deque_base(_Deque_base&&, true_type)): Remove. 3871*fb8a8121Smrg (_Deque_base(_Deque_base&&)): Adapt. 3872*fb8a8121Smrg (_Deque_base::_M_move_impl()): Remove. 3873*fb8a8121Smrg * testsuite/util/testsuite_allocator.h 3874*fb8a8121Smrg (propagating_allocator(propagating_allocator&&)): Preserve move from 3875*fb8a8121Smrg state. 3876*fb8a8121Smrg * testsuite/23_containers/deque/allocator/move_assign.cc (test02): 3877*fb8a8121Smrg Adapt. 3878*fb8a8121Smrg * testsuite/23_containers/forward_list/allocator/move_assign.cc (test02): 3879*fb8a8121Smrg Adapt. 3880*fb8a8121Smrg * testsuite/23_containers/list/allocator/move_assign.cc (test02): Adapt. 3881*fb8a8121Smrg * testsuite/23_containers/map/allocator/move_assign.cc (test02): Adapt. 3882*fb8a8121Smrg * testsuite/23_containers/multimap/allocator/move_assign.cc (test02): 3883*fb8a8121Smrg Adapt. 3884*fb8a8121Smrg * testsuite/23_containers/multiset/allocator/move_assign.cc (test02): 3885*fb8a8121Smrg Adapt. 3886*fb8a8121Smrg * testsuite/23_containers/set/allocator/move_assign.cc (test02): Adapt. 3887*fb8a8121Smrg * testsuite/23_containers/unordered_map/allocator/move_assign.cc 3888*fb8a8121Smrg (test02): Adapt. 3889*fb8a8121Smrg * testsuite/23_containers/unordered_multimap/allocator/move_assign.cc 3890*fb8a8121Smrg (test02): Adapt. 3891*fb8a8121Smrg * testsuite/23_containers/unordered_multiset/allocator/move_assign.cc 3892*fb8a8121Smrg (test02): Adapt. 3893*fb8a8121Smrg * testsuite/23_containers/unordered_set/allocator/move_assign.cc 3894*fb8a8121Smrg (test02): Adapt. 3895*fb8a8121Smrg * testsuite/23_containers/vector/allocator/move_assign.cc (test02): 3896*fb8a8121Smrg Adapt. 3897*fb8a8121Smrg * testsuite/23_containers/vector/bool/allocator/move_assign.cc (test02): 3898*fb8a8121Smrg Adapt. 3899*fb8a8121Smrg * testsuite/21_strings/basic_string/allocator/char/move_assign.cc 3900*fb8a8121Smrg (test02): Adapt. 3901*fb8a8121Smrg * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc 3902*fb8a8121Smrg (test02): Adapt. 3903*fb8a8121Smrg 3904*fb8a8121Smrg2019-05-16 Jonathan Wakely <jwakely@redhat.com> 3905*fb8a8121Smrg 3906*fb8a8121Smrg * src/c++17/fs_ops.cc (absolute(const path&, error_code&)) 3907*fb8a8121Smrg [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Remove bogus assertion. 3908*fb8a8121Smrg 3909*fb8a8121Smrg * include/std/variant (__overload_set): Remove. 3910*fb8a8121Smrg (_Arr): New helper. 3911*fb8a8121Smrg (_Build_FUN): New class template to define a single FUN overload, 3912*fb8a8121Smrg with specializations to prevent unwanted conversions, as per P0608R3. 3913*fb8a8121Smrg (_Build_FUNs): New class template to build an overload set of FUN. 3914*fb8a8121Smrg (_FUN_type): New alias template to perform overload resolution. 3915*fb8a8121Smrg (__accepted_type): Use integer_constant base for failure case. Use 3916*fb8a8121Smrg _FUN_type for successful case. 3917*fb8a8121Smrg (variant::__accepted_index): Use _Tp instead of _Tp&&. 3918*fb8a8121Smrg (variant::variant(_Tp&&)): Likewise. 3919*fb8a8121Smrg (variant::operator=(_Tp&&)): Likewise. 3920*fb8a8121Smrg 3921*fb8a8121Smrg * include/std/variant (_Variant_storage<false, _Types...>::_M_reset): 3922*fb8a8121Smrg Replace raw visitation with a runtime check for the valueless state 3923*fb8a8121Smrg and a non-raw visitor. 3924*fb8a8121Smrg (_Variant_storage<false, _Types...>::_M_reset_impl): Remove. 3925*fb8a8121Smrg (variant::index()): Remove branch. 3926*fb8a8121Smrg (variant::swap(variant&)): Use valueless_by_exception() instead of 3927*fb8a8121Smrg comparing the index to variant_npos, and add likelihood attribute. 3928*fb8a8121Smrg 3929*fb8a8121Smrg * include/bits/hashtable_policy.h (_Equal_helper): Remove. 3930*fb8a8121Smrg (_Hashtable_base::_Equal_hash_code): Define new class template. 3931*fb8a8121Smrg (_Hashtable_base::_M_equals): Use _Equal_hash_code instead of 3932*fb8a8121Smrg _Equal_helper. 3933*fb8a8121Smrg 3934*fb8a8121Smrg * include/bits/hashtable_policy.h (_Hashtable_ebo_helper::_S_get): 3935*fb8a8121Smrg Replace with _M_get non-static member function. 3936*fb8a8121Smrg (_Hashtable_ebo_helper::_S_cget): Replace with _M_cget non-static 3937*fb8a8121Smrg member function. 3938*fb8a8121Smrg (_Hash_code_base, _Local_iterator_base, _Hashtable_base): 3939*fb8a8121Smrg (_Hashtable_alloc): Adjust to use non-static members of EBO helper. 3940*fb8a8121Smrg 3941*fb8a8121Smrg * include/bits/hashtable_policy.h (_Hash_code_base::_M_swap): Use 3942*fb8a8121Smrg _S_get accessors for members in EBO helpers. 3943*fb8a8121Smrg (_Hash_code_base::_M_extract(), _Hash_code_base::_M_ranged_hash()) 3944*fb8a8121Smrg (_Hash_code_base::_M_h1(), _Hash_code_base::_M_h2()): Remove non-const 3945*fb8a8121Smrg overloads. 3946*fb8a8121Smrg (_Hashtable_base::_M_swap): Use _S_get accessors for members in EBO 3947*fb8a8121Smrg helpers. 3948*fb8a8121Smrg (_Hashtable_base::_M_eq()): Remove non-const overload. 3949*fb8a8121Smrg 3950*fb8a8121Smrg2019-05-15 Jonathan Wakely <jwakely@redhat.com> 3951*fb8a8121Smrg 3952*fb8a8121Smrg * include/std/variant (visit, visit<R>): Qualify calls to __do_visit. 3953*fb8a8121Smrg 3954*fb8a8121Smrg2019-05-14 Jonathan Wakely <jwakely@redhat.com> 3955*fb8a8121Smrg 3956*fb8a8121Smrg * testsuite/util/testsuite_allocator.h (NullablePointer::operator bool): 3957*fb8a8121Smrg Fix return value. 3958*fb8a8121Smrg 3959*fb8a8121Smrg2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 3960*fb8a8121Smrg 3961*fb8a8121Smrg * config/os/solaris/solaris2.10: Move to ... 3962*fb8a8121Smrg * config/os/solaris: ... this. 3963*fb8a8121Smrg * configure.host (os_include_dir): Adapt. 3964*fb8a8121Smrg (abi_baseline_pair): Remove Solaris 10 handling. 3965*fb8a8121Smrg * config/abi/post/i386-solaris2.10: Remove. 3966*fb8a8121Smrg * config/abi/post/sparc-solaris2.10: Remove. 3967*fb8a8121Smrg * config/abi/post/i386-solaris2.11: Rename to ... 3968*fb8a8121Smrg * config/abi/post/i386-solaris: ... this. 3969*fb8a8121Smrg * config/abi/post/sparc-solaris2.11: Rename to ... 3970*fb8a8121Smrg * config/abi/post/sparc-solaris: ... this. 3971*fb8a8121Smrg 3972*fb8a8121Smrg * libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] [__sun]: Remove 3973*fb8a8121Smrg workaround. 3974*fb8a8121Smrg 3975*fb8a8121Smrg * testsuite/ext/enc_filebuf/char/13598.cc: Remove *-*-solaris2.10 3976*fb8a8121Smrg xfail. 3977*fb8a8121Smrg 3978*fb8a8121Smrg2019-05-14 Jonathan Wakely <jwakely@redhat.com> 3979*fb8a8121Smrg 3980*fb8a8121Smrg * include/std/variant (__visit_with_index): Remove typedef. 3981*fb8a8121Smrg (__deduce_visit_result): New tag type. 3982*fb8a8121Smrg (__raw_visit, __raw_idx_visit): New helper functions for "raw" 3983*fb8a8121Smrg visitation of possibly-valueless variants, forwarding to __do_visit 3984*fb8a8121Smrg with the relevant tag type. 3985*fb8a8121Smrg (_Variant_storage<false, _Types...>::_M_reset_impl): Use __raw_visit 3986*fb8a8121Smrg and make lambda return void. 3987*fb8a8121Smrg (__variant_construct): Likewise. 3988*fb8a8121Smrg (_Copy_assign_base::operator=, _Move_assign_base::operator=): Use 3989*fb8a8121Smrg __raw_idx_visit and make lambda return void. 3990*fb8a8121Smrg (_Multi_array::__untag_result): Add metafunction to check the function 3991*fb8a8121Smrg pointer type for a tag type that dictates the kind of visitation. 3992*fb8a8121Smrg (_Multi_array<_Ret(*)(_Visitor, _Variants...), __first, __rest...>): 3993*fb8a8121Smrg Use decltype(auto) instead of tagged function pointer type. 3994*fb8a8121Smrg (__gen_vtable_impl): Remove bool non-type parameter and unused 3995*fb8a8121Smrg _Variant_tuple parameter. 3996*fb8a8121Smrg (__gen_vtable_impl::__visit_invoke_impl): Remove. 3997*fb8a8121Smrg (__gen_vtable_impl::__do_visit_invoke): Remove. 3998*fb8a8121Smrg (__gen_vtable_impl::__do_visit_invoke_r): Remove. 3999*fb8a8121Smrg (__gen_vtable_impl::__visit_invoke): Use if-constexpr and __invoke_r 4000*fb8a8121Smrg for the visit<R> case, rather than dispatching to separate functions. 4001*fb8a8121Smrg (_VARIANT_RELATION_FUNCTION_TEMPLATE): Use __raw_idx_visit and make 4002*fb8a8121Smrg lambda return void. 4003*fb8a8121Smrg (variant::swap): Likewise. 4004*fb8a8121Smrg (__do_visit): Replace two non-type template parameters with a single 4005*fb8a8121Smrg type parameter, so that the caller must specify the visitor's return 4006*fb8a8121Smrg type (or one of the tag types). 4007*fb8a8121Smrg (visit): Deduce a return type from the visitor and use the 4008*fb8a8121Smrg __deduce_visit_result tag to enforce that all overloads return the 4009*fb8a8121Smrg same type. 4010*fb8a8121Smrg (visit<R>): Call __do_visit<R> with explicit result type. 4011*fb8a8121Smrg (__variant_hash_call_base_impl::operator()): Use __raw_visit and make 4012*fb8a8121Smrg lambda return void. 4013*fb8a8121Smrg 4014*fb8a8121Smrg2019-05-14 Nina Dinka Ranns <dinka.ranns@gmail.com> 4015*fb8a8121Smrg 4016*fb8a8121Smrg nonesuch is insufficiently useless (lwg2996) 4017*fb8a8121Smrg * include/std/type_traits (struct __nonesuch): Added private base 4018*fb8a8121Smrg class to make __nonesuch not an aggregate and removed deleted default 4019*fb8a8121Smrg constructor. 4020*fb8a8121Smrg * include/bits/stl_pair.h (struct __nonesuch_no_braces): Removed. 4021*fb8a8121Smrg (operator=(const pair&)): Use __nonesuch instead of 4022*fb8a8121Smrg __nonesuch_no_braces. 4023*fb8a8121Smrg (operator=(pair&&)): Likewise 4024*fb8a8121Smrg * include/std/tuple (operator=(const tuple&)): Use __nonesuch instead 4025*fb8a8121Smrg of __nonesuch_no_braces. 4026*fb8a8121Smrg (operator=(tuple&&)): Likewise 4027*fb8a8121Smrg * include/experimental/type_traits (struct nonesuch): Added private 4028*fb8a8121Smrg base class to make nonesuch not an aggregate and removed deleted 4029*fb8a8121Smrg default constructor. 4030*fb8a8121Smrg * testsuite/20_util/nonesuch/nonesuch.cc: New. 4031*fb8a8121Smrg * testsuite/experimental/type_traits/nonesuch.cc: New. 4032*fb8a8121Smrg 4033*fb8a8121Smrg2019-05-14 Jonathan Wakely <jwakely@redhat.com> 4034*fb8a8121Smrg 4035*fb8a8121Smrg * include/bits/std_function.h (_Simple_type_wrapper): Remove. 4036*fb8a8121Smrg (_Function_handler): Remove partial specializations for void return 4037*fb8a8121Smrg types and pointers to member. 4038*fb8a8121Smrg (_Function_handler::_M_manager): Adapt to removal of 4039*fb8a8121Smrg _Simple_type_wrapper. 4040*fb8a8121Smrg (_Function_handler::_M_invoke): Use __invoke_r instead of __invoke. 4041*fb8a8121Smrg * include/std/functional (_Bind_result::__enable_if_void) 4042*fb8a8121Smrg (_Bind_result::__disable_if_void): Remove sfinae helpers. 4043*fb8a8121Smrg (_Bind_result::__call): Use __invoke_r and remove overloads for void 4044*fb8a8121Smrg return types. 4045*fb8a8121Smrg * include/std/future (__future_base::_Task_state::_M_run) 4046*fb8a8121Smrg (__future_base::_Task_state::_M_run_delayed): Use __invoke_r and 4047*fb8a8121Smrg change return type of lambda expressions. 4048*fb8a8121Smrg 4049*fb8a8121Smrg * include/bits/invoke.h (__invoke_r): Define new function implementing 4050*fb8a8121Smrg the INVOKE<R> pseudo-function. 4051*fb8a8121Smrg * testsuite/20_util/function_objects/invoke/1.cc: Add more tests. 4052*fb8a8121Smrg * testsuite/20_util/function_objects/invoke/2.cc: New test. 4053*fb8a8121Smrg 4054*fb8a8121Smrg * include/std/type_traits (__is_nt_convertible_helper): Define it 4055*fb8a8121Smrg unconditionally, not only for C++20. 4056*fb8a8121Smrg (__is_nothrow_convertible): Define internal trait for use in C++11. 4057*fb8a8121Smrg (__is_nt_invocable_impl: Fix by using __is_nothrow_convertible. 4058*fb8a8121Smrg (is_invocable_r_v, is_nothrow_invocable_r_v): Add missing parameter. 4059*fb8a8121Smrg * testsuite/20_util/is_nothrow_convertible/value_ext.cc: New test. 4060*fb8a8121Smrg * testsuite/20_util/is_nothrow_convertible/value.cc: Check with type 4061*fb8a8121Smrg that has nothrow explicit conversion but potentially-throwing implicit 4062*fb8a8121Smrg conversion. 4063*fb8a8121Smrg * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise. 4064*fb8a8121Smrg * testsuite/20_util/is_nothrow_invocable/value_ext.cc: Fix helper 4065*fb8a8121Smrg function to only consider implicit conversions. 4066*fb8a8121Smrg * testsuite/20_util/tuple/cons/noexcept_specs.cc: Add comment. 4067*fb8a8121Smrg 4068*fb8a8121Smrg * include/std/iterator: Include <iosfwd> instead of <istream> and 4069*fb8a8121Smrg <ostream>. 4070*fb8a8121Smrg 4071*fb8a8121Smrg * include/bits/stl_tree.h (_Rb_tree::erase(const Key*, const Key*)): 4072*fb8a8121Smrg Remove unused, non-standard function. 4073*fb8a8121Smrg 4074*fb8a8121Smrg * include/bits/regex.h (match_results::max_size()): Adjust return 4075*fb8a8121Smrg value to account for prefix/suffix/unmatched subs. 4076*fb8a8121Smrg (match_results::_M_resize(unsigned int)): Use _Base_type::assign to 4077*fb8a8121Smrg reset the contained sub matches. 4078*fb8a8121Smrg (match_results::_M_establish_failed_match(_Bi_iter)): Add new member 4079*fb8a8121Smrg function to set result state following a failed match. 4080*fb8a8121Smrg * include/bits/regex.tcc (__regex_algo_impl): Remove loop to set 4081*fb8a8121Smrg sub_match states after _M_resize. Use _M_establish_failed_match. 4082*fb8a8121Smrg 4083*fb8a8121Smrg PR libstdc++/69724 4084*fb8a8121Smrg * include/std/thread (thread::_State_impl, thread::_S_make_state): 4085*fb8a8121Smrg Replace single _Callable parameter with variadic _Args pack, to 4086*fb8a8121Smrg forward them directly to the tuple of decayed copies. 4087*fb8a8121Smrg * testsuite/30_threads/thread/cons/69724.cc: New test. 4088*fb8a8121Smrg 4089*fb8a8121Smrg2019-05-14 Nina Dinka Ranns <dinka.ranns@gmail.com> 4090*fb8a8121Smrg 4091*fb8a8121Smrg Inconsistency wrt Allocators in basic_string assignment (LWG2579) 4092*fb8a8121Smrg * include/bits/basic_string.h: (operator=(const basic_string&): 4093*fb8a8121Smrg Move allocator decision to assign. 4094*fb8a8121Smrg (assign(const basic_string&)): Move allocator decision here. 4095*fb8a8121Smrg * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc: 4096*fb8a8121Smrg Add tests. 4097*fb8a8121Smrg * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc: 4098*fb8a8121Smrg Add tests. 4099*fb8a8121Smrg 4100*fb8a8121Smrg2019-05-14 Jonathan Wakely <jwakely@redhat.com> 4101*fb8a8121Smrg 4102*fb8a8121Smrg * testsuite/util/testsuite_allocator.h (memory_resource) 4103*fb8a8121Smrg (default_resource_mgr): Fix indentation. 4104*fb8a8121Smrg 4105*fb8a8121Smrg * testsuite/20_util/allocator_traits/members/allocate_hint_nonpod.cc: 4106*fb8a8121Smrg Use operator-> to access raw pointer member. 4107*fb8a8121Smrg * testsuite/23_containers/vector/59829.cc: Likewise. 4108*fb8a8121Smrg * testsuite/23_containers/vector/bool/80893.cc: Likewise. 4109*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/cxx11.cc: Use NullablePointer. 4110*fb8a8121Smrg * testsuite/util/testsuite_allocator.h (NullablePointer): New utility 4111*fb8a8121Smrg for tests. 4112*fb8a8121Smrg (PointerBase, PointerBase_void): Derive from NullablePointer and use 4113*fb8a8121Smrg its constructors and equality operators. Change converting 4114*fb8a8121Smrg constructors to use operator-> to access private member of the other 4115*fb8a8121Smrg pointer type. 4116*fb8a8121Smrg (PointerBase_void::operator->()): Add, for access to private member. 4117*fb8a8121Smrg (operator-(PointerBase, PointerBase)): Change to hidden friend. 4118*fb8a8121Smrg (operator==(PointerBase, PointerBase)): Remove. 4119*fb8a8121Smrg (operator!=(PointerBase, PointerBase)): Remove. 4120*fb8a8121Smrg 4121*fb8a8121Smrg * python/libstdcxx/v6/printers.py (UniquePointerPrinter.__init__): Do 4122*fb8a8121Smrg not assume field called _M_head_impl is the first tuple element. 4123*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/compat.cc: Make tuple 4124*fb8a8121Smrg implementation more accurate. 4125*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/cxx11.cc: Check unique_ptr with 4126*fb8a8121Smrg empty pointer type and non-empty deleter. 4127*fb8a8121Smrg 4128*fb8a8121Smrg LWG 2899 - Make is_move_constructible correct for unique_ptr 4129*fb8a8121Smrg * include/bits/unique_ptr.h (__uniq_ptr_impl): Add move constructor, 4130*fb8a8121Smrg move assignment operator. 4131*fb8a8121Smrg (__uniq_ptr_impl::release(), __uniq_ptr_impl::reset(pointer)): Add. 4132*fb8a8121Smrg (__uniq_ptr_data): New class template with conditionally deleted 4133*fb8a8121Smrg special members. 4134*fb8a8121Smrg (unique_ptr, unique_ptr<T[], D>): Change type of data member from 4135*fb8a8121Smrg __uniq_ptr_impl<T, D> to __uniq_ptr_data<T, D>. Define move 4136*fb8a8121Smrg constructor and move assignment operator as defaulted. 4137*fb8a8121Smrg (unique_ptr::release(), unique_ptr<T[], D>::release()): Forward to 4138*fb8a8121Smrg __uniq_ptr_impl::release(). 4139*fb8a8121Smrg (unique_ptr::reset(pointer), unique_ptr<T[], D>::reset<U>(U)): Forward 4140*fb8a8121Smrg to __uniq_ptr_impl::reset(pointer). 4141*fb8a8121Smrg * python/libstdcxx/v6/printers.py (UniquePointerPrinter.__init__): 4142*fb8a8121Smrg Check for new __uniq_ptr_data type. 4143*fb8a8121Smrg * testsuite/20_util/unique_ptr/dr2899.cc: New test. 4144*fb8a8121Smrg 4145*fb8a8121Smrg2019-05-13 Jonathan Wakely <jwakely@redhat.com> 4146*fb8a8121Smrg 4147*fb8a8121Smrg PR libstdc++/90454.cc path construction from void* 4148*fb8a8121Smrg * include/bits/fs_path.h (path::_Path): Use remove_pointer so that 4149*fb8a8121Smrg pointers to void are rejected as well as void. 4150*fb8a8121Smrg * include/experimental/bits/fs_path.h (path::_Path): Likewise. 4151*fb8a8121Smrg * testsuite/27_io/filesystem/path/construct/80762.cc: Also check 4152*fb8a8121Smrg pointers to void. 4153*fb8a8121Smrg * testsuite/experimental/filesystem/path/construct/80762.cc: Likewise. 4154*fb8a8121Smrg 4155*fb8a8121Smrg * doc/xml/manual/policy_data_structures.xml: Comment out stray 4156*fb8a8121Smrg <remark> elements. Fix formatting of bibliography references. 4157*fb8a8121Smrg 4158*fb8a8121Smrg2019-05-13 Edward Smith-Rowland <3dw4rd@verizon.net> 4159*fb8a8121Smrg 4160*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Document P0811R3 status. 4161*fb8a8121Smrg 4162*fb8a8121Smrg2019-05-13 Jonathan Wakely <jwakely@redhat.com> 4163*fb8a8121Smrg 4164*fb8a8121Smrg Remove Profile Mode, deprecated since 7.1.0 4165*fb8a8121Smrg * doc/Makefile.am: Remove XML file for profile mode docs. 4166*fb8a8121Smrg * doc/Makefile.in: Regenerate. 4167*fb8a8121Smrg * doc/xml/authors.xml: Remove authors of profile mode docs. 4168*fb8a8121Smrg * doc/xml/manual/appendix_contributing.xml: Remove mention of profile 4169*fb8a8121Smrg mode. 4170*fb8a8121Smrg * doc/xml/manual/debug.xml: Likewise. 4171*fb8a8121Smrg * doc/xml/manual/evolution.xml: Document removal of profile mode. 4172*fb8a8121Smrg * doc/xml/manual/profile_mode.xml: Remove profile mode docs. 4173*fb8a8121Smrg * doc/xml/manual/spine.xml: Remove profile mode author credit. 4174*fb8a8121Smrg * doc/xml/manual/test.xml: Remove docs for dg-require-profile-mode 4175*fb8a8121Smrg directive. 4176*fb8a8121Smrg * doc/xml/manual/using.xml: Remove docs for profile mode headers and 4177*fb8a8121Smrg macro. 4178*fb8a8121Smrg * doc/html/*: Regenerate. 4179*fb8a8121Smrg * include/Makefile.am: Remove profile mode headers. 4180*fb8a8121Smrg * include/Makefile.in: Regenerate. 4181*fb8a8121Smrg * include/bits/c++config (std::__profile): Remove namespace. 4182*fb8a8121Smrg [_GLIBCXX_PROFILE]: Remove checks for macro. 4183*fb8a8121Smrg * include/profile/array: Remove. 4184*fb8a8121Smrg * include/profile/base.h: Remove. 4185*fb8a8121Smrg * include/profile/bitset: Remove. 4186*fb8a8121Smrg * include/profile/deque: Remove. 4187*fb8a8121Smrg * include/profile/forward_list: Remove. 4188*fb8a8121Smrg * include/profile/impl/profiler.h: Remove. 4189*fb8a8121Smrg * include/profile/impl/profiler_algos.h: Remove. 4190*fb8a8121Smrg * include/profile/impl/profiler_container_size.h: Remove. 4191*fb8a8121Smrg * include/profile/impl/profiler_hash_func.h: Remove. 4192*fb8a8121Smrg * include/profile/impl/profiler_hashtable_size.h: Remove. 4193*fb8a8121Smrg * include/profile/impl/profiler_list_to_slist.h: Remove. 4194*fb8a8121Smrg * include/profile/impl/profiler_list_to_vector.h: Remove. 4195*fb8a8121Smrg * include/profile/impl/profiler_map_to_unordered_map.h: Remove. 4196*fb8a8121Smrg * include/profile/impl/profiler_node.h: Remove. 4197*fb8a8121Smrg * include/profile/impl/profiler_state.h: Remove. 4198*fb8a8121Smrg * include/profile/impl/profiler_trace.h: Remove. 4199*fb8a8121Smrg * include/profile/impl/profiler_vector_size.h: Remove. 4200*fb8a8121Smrg * include/profile/impl/profiler_vector_to_list.h: Remove. 4201*fb8a8121Smrg * include/profile/iterator_tracker.h: Remove. 4202*fb8a8121Smrg * include/profile/list: Remove. 4203*fb8a8121Smrg * include/profile/map: Remove. 4204*fb8a8121Smrg * include/profile/map.h: Remove. 4205*fb8a8121Smrg * include/profile/multimap.h: Remove. 4206*fb8a8121Smrg * include/profile/multiset.h: Remove. 4207*fb8a8121Smrg * include/profile/ordered_base.h: Remove. 4208*fb8a8121Smrg * include/profile/set: Remove. 4209*fb8a8121Smrg * include/profile/set.h: Remove. 4210*fb8a8121Smrg * include/profile/unordered_base.h: Remove. 4211*fb8a8121Smrg * include/profile/unordered_map: Remove. 4212*fb8a8121Smrg * include/profile/unordered_set: Remove. 4213*fb8a8121Smrg * include/profile/vector: Remove. 4214*fb8a8121Smrg * scripts/run_doxygen: Do not process profile mode headers. 4215*fb8a8121Smrg * testsuite/23_containers/array/element_access/60497.cc: Don't use 4216*fb8a8121Smrg profile mode type. 4217*fb8a8121Smrg * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc: 4218*fb8a8121Smrg Remove dg-skip-if for profile mode. 4219*fb8a8121Smrg * testsuite/23_containers/forward_list/capacity/1.cc: Remove 4220*fb8a8121Smrg preprocessor check for profile mode. 4221*fb8a8121Smrg * testsuite/23_containers/list/capacity/29134.cc: Likewise. 4222*fb8a8121Smrg * testsuite/23_containers/map/modifiers/extract.cc: Remove dg-skip-if 4223*fb8a8121Smrg for profile mode. 4224*fb8a8121Smrg * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: 4225*fb8a8121Smrg Likewise. 4226*fb8a8121Smrg * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise. 4227*fb8a8121Smrg * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise. 4228*fb8a8121Smrg * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise. 4229*fb8a8121Smrg * testsuite/23_containers/set/modifiers/extract.cc: Likewise. 4230*fb8a8121Smrg * testsuite/23_containers/unordered_map/modifiers/extract.cc: 4231*fb8a8121Smrg Likewise. 4232*fb8a8121Smrg * testsuite/23_containers/unordered_multimap/modifiers/extract.cc: 4233*fb8a8121Smrg Likewise. 4234*fb8a8121Smrg * testsuite/23_containers/unordered_multiset/modifiers/extract.cc: 4235*fb8a8121Smrg Likewise. 4236*fb8a8121Smrg * testsuite/23_containers/unordered_set/modifiers/extract.cc: 4237*fb8a8121Smrg Likewise. 4238*fb8a8121Smrg * testsuite/23_containers/vector/bool/capacity/29134.cc: Remove 4239*fb8a8121Smrg preprocessor check for profile mode. 4240*fb8a8121Smrg * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: 4241*fb8a8121Smrg Likewise. 4242*fb8a8121Smrg * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: 4243*fb8a8121Smrg Remove dg-skip-if for profile mode. 4244*fb8a8121Smrg * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise. 4245*fb8a8121Smrg * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise. 4246*fb8a8121Smrg * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise. 4247*fb8a8121Smrg * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise. 4248*fb8a8121Smrg * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise. 4249*fb8a8121Smrg * testsuite/Makefile.am: Remove profile_flags variable and 4250*fb8a8121Smrg * testsuite/Makefile.am: Remove profile_flags variable and 4251*fb8a8121Smrg check-profile target. 4252*fb8a8121Smrg * testsuite/Makefile.in: Regenerate. 4253*fb8a8121Smrg * testsuite/ext/profile/all.cc: Remove. 4254*fb8a8121Smrg * testsuite/ext/profile/mutex_extensions_neg.cc: Remove. 4255*fb8a8121Smrg * testsuite/ext/profile/profiler_algos.cc: Remove. 4256*fb8a8121Smrg * testsuite/ext/profile/replace_new.cc: Remove. 4257*fb8a8121Smrg * testsuite/ext/throw_allocator/deallocate_global.cc: Remove 4258*fb8a8121Smrg preprocessor check for profile mode. 4259*fb8a8121Smrg * testsuite/ext/throw_allocator/deallocate_local.cc: Likewise. 4260*fb8a8121Smrg * testsuite/lib/libstdc++.exp (check_v3_target_profile_mode): Remove. 4261*fb8a8121Smrg (check_v3_target_normal_mode): Do not check for profile mode macro. 4262*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/80276.cc: Remove dg-skip-if for 4263*fb8a8121Smrg profile mode. 4264*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/compat.cc: Likewise. 4265*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise. 4266*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise. 4267*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/debug.cc: Likewise. 4268*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise. 4269*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise. 4270*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. 4271*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. 4272*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise. 4273*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/whatis2.cc: Likewise. 4274*fb8a8121Smrg 4275*fb8a8121Smrg Remove array_allocator extension, deprecated since 4.9.0 4276*fb8a8121Smrg * doc/xml/manual/allocator.xml: Remove documentation for 4277*fb8a8121Smrg array_allocator. 4278*fb8a8121Smrg * doc/xml/manual/evolution.xml: Document array_allocator removal. 4279*fb8a8121Smrg * doc/xml/manual/using.xml: Remove header from documentation. 4280*fb8a8121Smrg * include/Makefile.am: Remove <ext/array_allocator.h> header. 4281*fb8a8121Smrg * include/Makefile.in: Regenerate. 4282*fb8a8121Smrg * include/ext/array_allocator.h: Remove. 4283*fb8a8121Smrg * include/precompiled/extc++.h: Do not include removed header. 4284*fb8a8121Smrg * testsuite/ext/array_allocator/1.cc: Remove. 4285*fb8a8121Smrg * testsuite/ext/array_allocator/2.cc: Remove. 4286*fb8a8121Smrg * testsuite/ext/array_allocator/26875.cc: Remove. 4287*fb8a8121Smrg * testsuite/ext/array_allocator/3.cc: Remove. 4288*fb8a8121Smrg * testsuite/ext/array_allocator/check_deallocate_null.cc: Remove. 4289*fb8a8121Smrg * testsuite/ext/array_allocator/check_delete.cc: Remove. 4290*fb8a8121Smrg * testsuite/ext/array_allocator/check_new.cc: Remove. 4291*fb8a8121Smrg * testsuite/ext/array_allocator/variadic_construct.cc: Remove. 4292*fb8a8121Smrg * testsuite/ext/headers.cc: Do not include removed header. 4293*fb8a8121Smrg 4294*fb8a8121Smrg2019-05-11 François Dumont <fdumont@gcc.gnu.org> 4295*fb8a8121Smrg 4296*fb8a8121Smrg * include/bits/stl_bvector.h 4297*fb8a8121Smrg (operator==(const _Bit_iterator_base&, const _Bit_iterator_base&)): 4298*fb8a8121Smrg Make hidden friend. 4299*fb8a8121Smrg (operator<(const _Bit_iterator_base&, const _Bit_iterator_base&)): 4300*fb8a8121Smrg Likewise. 4301*fb8a8121Smrg (operator!=(const _Bit_iterator_base&, const _Bit_iterator_base&)): 4302*fb8a8121Smrg Likewise. 4303*fb8a8121Smrg (operator>(const _Bit_iterator_base&, const _Bit_iterator_base&)): 4304*fb8a8121Smrg Likewise. 4305*fb8a8121Smrg (operator<=(const _Bit_iterator_base&, const _Bit_iterator_base&)): 4306*fb8a8121Smrg Likewise. 4307*fb8a8121Smrg (operator>=(const _Bit_iterator_base&, const _Bit_iterator_base&)): 4308*fb8a8121Smrg Likewise. 4309*fb8a8121Smrg (operator-(const _Bit_iterator_base&, const _Bit_iterator_base&)): 4310*fb8a8121Smrg Likewise. 4311*fb8a8121Smrg (_Bit_iterator::operator+(difference_type)): Likewise and allow NRVO 4312*fb8a8121Smrg copy elision. 4313*fb8a8121Smrg (_Bit_iterator::operator-(difference_type)): Likewise. 4314*fb8a8121Smrg (operator+(ptrdiff_t, const _Bit_iterator&)): Make hidden friend. 4315*fb8a8121Smrg (_Bit_const_iterator::operator+(difference_type)): Likewise and allow 4316*fb8a8121Smrg NRVO copy elision. 4317*fb8a8121Smrg (_Bit_const_iterator::operator-(difference_type)): Likewise. 4318*fb8a8121Smrg (operator+(ptrdiff_t, const _Bit_const_iterator&)): Make hidden friend. 4319*fb8a8121Smrg 4320*fb8a8121Smrg2019-05-10 Jonathan Wakely <jwakely@redhat.com> 4321*fb8a8121Smrg 4322*fb8a8121Smrg PR libstdc++/81266 4323*fb8a8121Smrg * testsuite/util/thread/all.h: Do not use remove_pointer for 4324*fb8a8121Smrg std::thread::native_handle_type. 4325*fb8a8121Smrg 4326*fb8a8121Smrg PR libstdc++/90397 4327*fb8a8121Smrg * include/std/variant (_Variant_storage<false, Types...>::_M_storage()) 4328*fb8a8121Smrg (_Variant_storage<true, Types...>::_M_reset())) 4329*fb8a8121Smrg (_Variant_storage<true, Types...>::_M_storage())): Add noexcept. 4330*fb8a8121Smrg (__get_storage): Likewise. 4331*fb8a8121Smrg (variant): Add noexcept to friend declarations for __get and 4332*fb8a8121Smrg __get_storage. 4333*fb8a8121Smrg 4334*fb8a8121Smrg PR libstdc++/90388 4335*fb8a8121Smrg * include/bits/unique_ptr.h (default_delete, default_delete<T[]>): 4336*fb8a8121Smrg Use _Require for constraints. 4337*fb8a8121Smrg (operator>(nullptr_t, const unique_ptr<T,D>&)): Implement exactly as 4338*fb8a8121Smrg per the standard. 4339*fb8a8121Smrg (__uniq_ptr_hash): New base class with conditionally-disabled call 4340*fb8a8121Smrg operator. 4341*fb8a8121Smrg (hash<unique_ptr<T,D>>): Derive from __uniq_ptr_hash. 4342*fb8a8121Smrg * testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error line. 4343*fb8a8121Smrg * testsuite/20_util/unique_ptr/hash/90388.cc: New test. 4344*fb8a8121Smrg 4345*fb8a8121Smrg * include/bits/shared_ptr.h: Improve docs. 4346*fb8a8121Smrg * include/bits/shared_ptr_base.h: Likewise. 4347*fb8a8121Smrg * include/bits/stl_uninitialized.h: Likewise. 4348*fb8a8121Smrg * include/bits/unique_ptr.h: Likewise. 4349*fb8a8121Smrg * libsupc++/new: Likewise. 4350*fb8a8121Smrg 4351*fb8a8121Smrg2019-05-09 François Dumont <fdumont@gcc.gnu.org> 4352*fb8a8121Smrg 4353*fb8a8121Smrg * include/bits/stl_deque.h 4354*fb8a8121Smrg (operator==(const _Deque_iterator<>&, const _Deque_iterator<>&)): 4355*fb8a8121Smrg Make hidden friend. 4356*fb8a8121Smrg (operator!=(const _Deque_iterator<>&, const _Deque_iterator<>&)): 4357*fb8a8121Smrg Likewise. 4358*fb8a8121Smrg (operator<(const _Deque_iterator<>&, const _Deque_iterator<>&)): 4359*fb8a8121Smrg Likewise. 4360*fb8a8121Smrg (operator<=(const _Deque_iterator<>&, const _Deque_iterator<>&)): 4361*fb8a8121Smrg Likewise. 4362*fb8a8121Smrg (operator>(const _Deque_iterator<>&, const _Deque_iterator<>&)): 4363*fb8a8121Smrg Likewise. 4364*fb8a8121Smrg (operator>=(const _Deque_iterator<>&, const _Deque_iterator<>&)): 4365*fb8a8121Smrg Likewise. 4366*fb8a8121Smrg (_Deque_iterator<>::operator+(difference_type)): Likewise and allow NRVO 4367*fb8a8121Smrg copy elision. 4368*fb8a8121Smrg (_Deque_iterator<>::operator-(difference_type)): Likewise. 4369*fb8a8121Smrg 4370*fb8a8121Smrg2019-05-08 François Dumont <fdumont@gcc.gnu.org> 4371*fb8a8121Smrg 4372*fb8a8121Smrg PR libstdc++/90277 4373*fb8a8121Smrg * testsuite/23_containers/unordered_multiset/insert/24061-multiset.cc 4374*fb8a8121Smrg (test01): Reserve for number of insertions to avoid rehash during test. 4375*fb8a8121Smrg * testsuite/23_containers/unordered_multimap/insert/24061-multimap.cc 4376*fb8a8121Smrg (test01): Likewise. 4377*fb8a8121Smrg * testsuite/23_containers/unordered_multimap/insert/24061-multimap.cc 4378*fb8a8121Smrg (test01): Likewise. 4379*fb8a8121Smrg (test02): Likewise. 4380*fb8a8121Smrg (test03): Likewise. 4381*fb8a8121Smrg 4382*fb8a8121Smrg2019-05-08 Jonathan Wakely <jwakely@redhat.com> 4383*fb8a8121Smrg 4384*fb8a8121Smrg * include/experimental/bits/fs_path.h: Improve docs. 4385*fb8a8121Smrg * include/experimental/bits/net.h: Fix wrong header name in comment. 4386*fb8a8121Smrg Do not document implementation details. 4387*fb8a8121Smrg * include/experimental/netfwd: Fix doxygen grouping. 4388*fb8a8121Smrg 4389*fb8a8121Smrg2019-05-07 Jonathan Wakely <jwakely@redhat.com> 4390*fb8a8121Smrg 4391*fb8a8121Smrg * include/bits/stl_pair.h: Improve docs. 4392*fb8a8121Smrg * include/std/tuple: Likewise. 4393*fb8a8121Smrg 4394*fb8a8121Smrg * doc/doxygen/doxygroups.cc (std::literals): Add documentation for 4395*fb8a8121Smrg inline namespace. 4396*fb8a8121Smrg * include/std/chrono: Improve docs. 4397*fb8a8121Smrg * include/std/ratio: Do not document implementation details. 4398*fb8a8121Smrg * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Adjust dg-error 4399*fb8a8121Smrg line numbers. 4400*fb8a8121Smrg * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise. 4401*fb8a8121Smrg 4402*fb8a8121Smrg PR libstdc++/89102 4403*fb8a8121Smrg * doc/xml/manual/intro.xml: Document DR 2408 and 2465 changes. 4404*fb8a8121Smrg * include/std/chrono (__duration_common_type_wrapper): Replace with ... 4405*fb8a8121Smrg (__duration_common_type): New helper. 4406*fb8a8121Smrg (common_type<chrono::duration<R1, P2>, chrono::duration<R2, P2>>): Use 4407*fb8a8121Smrg __duration_common_type. 4408*fb8a8121Smrg (__timepoint_common_type_wrapper): Replace with ... 4409*fb8a8121Smrg (__timepoint_common_type): New helper. 4410*fb8a8121Smrg (common_type<chrono::time_point<C, D2>, chrono::time_point<C, D2>>): 4411*fb8a8121Smrg Use __time_point_common_type. 4412*fb8a8121Smrg * include/std/type_traits (common_type<>): Define, as per LWG 2408. 4413*fb8a8121Smrg (__common_type_impl): If either argument is transformed by decay, 4414*fb8a8121Smrg use the common_type of the decayed types. 4415*fb8a8121Smrg (__common_type_impl<_Tp, _Up, _Tp, _Up>): If the types are already 4416*fb8a8121Smrg decayed, use __do_common_type_impl to get the common_type. 4417*fb8a8121Smrg (common_type<_Tp>): Use common_type<_Tp, _Tp>. 4418*fb8a8121Smrg (__do_member_type_wrapper, __member_type_wrapper) 4419*fb8a8121Smrg (__expanded_common_type_wrapper): Remove. 4420*fb8a8121Smrg (__common_type_pack, __common_type_fold): New helpers. 4421*fb8a8121Smrg (common_type<_Tp, _Up, _Vp...>): Use new helpers instead of 4422*fb8a8121Smrg __member_type_wrapper and __expanded_common_type_wrapper. 4423*fb8a8121Smrg * testsuite/20_util/common_type/requirements/explicit_instantiation.cc: 4424*fb8a8121Smrg Test zero-length template argument list. 4425*fb8a8121Smrg * testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc: 4426*fb8a8121Smrg Test single argument cases and argument types that should decay. 4427*fb8a8121Smrg * testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc: 4428*fb8a8121Smrg Adjust expected error. 4429*fb8a8121Smrg * testsuite/20_util/duration/literals/range_neg.cc: Use zero for 4430*fb8a8121Smrg dg-error lineno. 4431*fb8a8121Smrg * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise. 4432*fb8a8121Smrg * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise. 4433*fb8a8121Smrg * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise. 4434*fb8a8121Smrg 4435*fb8a8121Smrg * doc/xml/manual/intro.xml: Fix DR 2537 and DR 2566 confusion. 4436*fb8a8121Smrg 4437*fb8a8121Smrg2019-05-01 Nina Dinka Ranns <dinka.ranns@gmail.com> 4438*fb8a8121Smrg 4439*fb8a8121Smrg Make allocator propagation more consistent for 4440*fb8a8121Smrg operator+(basic_string) (P1165R1) 4441*fb8a8121Smrg * include/bits/basic_string.h 4442*fb8a8121Smrg (operator+(basic_string&&, basic_string&&): Changed resulting 4443*fb8a8121Smrg allocator to always be the one from the first parameter. 4444*fb8a8121Smrg * include/bits/basic_string.tcc 4445*fb8a8121Smrg (operator+(const _CharT*, const basic_string&)): Changed 4446*fb8a8121Smrg resulting allocator to be SOCCC on the second parameter's allocator. 4447*fb8a8121Smrg (operator+(_CharT, const basic_string&)): Likewise. 4448*fb8a8121Smrg * testsuite/21_strings/basic_string/allocator/char/operator_plus.cc: 4449*fb8a8121Smrg New. 4450*fb8a8121Smrg * testsuite/21_strings/basic_string/allocator/wchar_t/operator_plus.cc: 4451*fb8a8121Smrg New. 4452*fb8a8121Smrg 4453*fb8a8121Smrg2019-05-07 Jonathan Wakely <jwakely@redhat.com> 4454*fb8a8121Smrg 4455*fb8a8121Smrg * include/bits/regex.h: Improve docs. 4456*fb8a8121Smrg * include/bits/regex.tcc: Do not document implementation details. 4457*fb8a8121Smrg 4458*fb8a8121Smrg * testsuite/19_diagnostics/error_code/hash.cc: New test. 4459*fb8a8121Smrg 4460*fb8a8121Smrg2019-05-06 François Dumont <fdumont@gcc.gnu.org> 4461*fb8a8121Smrg 4462*fb8a8121Smrg * python/libstdcxx/v6/printers.py (add_one_template_type_printer): 4463*fb8a8121Smrg Add type printer for container types in std::__debug namespace. 4464*fb8a8121Smrg * testsuite/lib/gdb-test.exp (whatis-regexp-test): New. 4465*fb8a8121Smrg (gdb-tests): Use distinct parameters for the type of test and use of 4466*fb8a8121Smrg regex. 4467*fb8a8121Smrg (gdb-test): Check for regex test even if 'whatis' test. 4468*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/80276.cc: Adapt for _GLIBCXX_DEBUG 4469*fb8a8121Smrg mode. 4470*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise. 4471*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise. 4472*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise. 4473*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. 4474*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. 4475*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise. 4476*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/whatis2.cc: Likewise. 4477*fb8a8121Smrg 4478*fb8a8121Smrg2019-05-04 Jonathan Wakely <jwakely@redhat.com> 4479*fb8a8121Smrg 4480*fb8a8121Smrg * include/std/system_error (error_category): Fix comment. 4481*fb8a8121Smrg 4482*fb8a8121Smrg PR libstdc++/90299 4483*fb8a8121Smrg * src/c++17/fs_ops.cc (absolute(const path&)): Report an error if the 4484*fb8a8121Smrg argument is an empty path. 4485*fb8a8121Smrg (absolute(const path&, error_code&)): Use invalid_argument as error 4486*fb8a8121Smrg code instead of no_such_file_or_directory. 4487*fb8a8121Smrg * testsuite/27_io/filesystem/operations/absolute.cc: Check handling 4488*fb8a8121Smrg of non-existent paths and empty paths with both overloads of absolute. 4489*fb8a8121Smrg 4490*fb8a8121Smrg * include/std/system_error (error_category, error_code) 4491*fb8a8121Smrg (error_condition): Improve docs. 4492*fb8a8121Smrg * libsupc++/exception: Add missing @addtogroup Doxygen command. 4493*fb8a8121Smrg * libsupc++/exception_ptr.h (exception_ptr): Link equality operators 4494*fb8a8121Smrg to class documentation. Suppress documentation for implementation 4495*fb8a8121Smrg details. 4496*fb8a8121Smrg * libsupc++/nested_exception.h (throw_with_nested, rethrow_if_nested): 4497*fb8a8121Smrg Suppress documentation for implementation details. 4498*fb8a8121Smrg 4499*fb8a8121Smrg * include/std/system_error (error_code): Remove friend declaration 4500*fb8a8121Smrg for hash<error_code>. 4501*fb8a8121Smrg (hash<error_code>::operator()): Use public member functions to access 4502*fb8a8121Smrg value and category. 4503*fb8a8121Smrg (hash<error_condition>::operator()): Use address of category, not 4504*fb8a8121Smrg its object representation. 4505*fb8a8121Smrg * src/c++11/compatibility-c++0x.cc (hash<error_code>::operator()): 4506*fb8a8121Smrg Use public member functions to access value and category. 4507*fb8a8121Smrg * testsuite/19_diagnostics/error_condition/hash.cc: New test. 4508*fb8a8121Smrg 4509*fb8a8121Smrg2019-05-04 François Dumont <fdumont@gcc.gnu.org> 4510*fb8a8121Smrg 4511*fb8a8121Smrg * include/bits/hashtable.h (_Hashtable<>::rehash): Review comment. 4512*fb8a8121Smrg * include/bits/hashtable_policy.h 4513*fb8a8121Smrg (_Prime_rehash_policy::_M_bkt_for_elements): Use __builtin_ceill. 4514*fb8a8121Smrg (_Power2_rehash_policy::_M_bkt_for_elements): Likewise. 4515*fb8a8121Smrg (_Power2_rehash_policy::_M_next_bkt): Enforce returning a result not 4516*fb8a8121Smrg smaller than input value rather than always greater. Preserve 4517*fb8a8121Smrg _M_next_resize if called with 0 input. Use __builtin_floorl. 4518*fb8a8121Smrg (_Power2_rehash_policy::_M_need_rehash): Rehash only if number of 4519*fb8a8121Smrg elements + number of insertions is greater than _M_next_resize. Start 4520*fb8a8121Smrg with 11 buckets if not told otherwise. Use __builtin_floorl. 4521*fb8a8121Smrg (_Rehash_base<>::reserve): Use rehash policy _M_bkt_for_elements. 4522*fb8a8121Smrg * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt): 4523*fb8a8121Smrg Preserve _M_next_resize if called with 0 input. Use __builtin_floorl. 4524*fb8a8121Smrg (_Prime_rehash_policy::_M_need_rehash): Start with 11 buckets if not 4525*fb8a8121Smrg told otherwise. Use __builtin_floorl. 4526*fb8a8121Smrg * testsuite/23_containers/unordered_set/hash_policy/71181.cc: Adapt test 4527*fb8a8121Smrg to also validate _Power2_rehash_policy. 4528*fb8a8121Smrg * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc: 4529*fb8a8121Smrg Adapt. 4530*fb8a8121Smrg 4531*fb8a8121Smrg2019-05-03 Jonathan Wakely <jwakely@redhat.com> 4532*fb8a8121Smrg 4533*fb8a8121Smrg PR libstdc++/61761 4534*fb8a8121Smrg * testsuite/26_numerics/complex/proj.cc: Don't assume <cmath> defines 4535*fb8a8121Smrg std::copysign. 4536*fb8a8121Smrg 4537*fb8a8121Smrg PR libstdc++/52119 4538*fb8a8121Smrg * include/ext/numeric_traits.h (__glibcxx_min): Avoid integer 4539*fb8a8121Smrg overflow warning with -Wpedantic -Wsystem-headers. 4540*fb8a8121Smrg 4541*fb8a8121Smrg2019-05-02 Jonathan Wakely <jwakely@redhat.com> 4542*fb8a8121Smrg 4543*fb8a8121Smrg PR libstdc++/90314 4544*fb8a8121Smrg * include/bits/c++config (_GLIBCXX_NOEXCEPT_IF): Use variadic macro. 4545*fb8a8121Smrg * include/bits/move.h (swap): Remove extra parentheses. 4546*fb8a8121Smrg 4547*fb8a8121Smrg * include/experimental/bits/lfts_config.h: Improve doc markup. 4548*fb8a8121Smrg * include/experimental/optional: Improve docs. 4549*fb8a8121Smrg (_Has_addressof_mem, _Has_addressof_free, _Has_addressof) 4550*fb8a8121Smrg (__constexpr_addressof): Remove. 4551*fb8a8121Smrg (optional::operator->()): Use std::__addressof(). 4552*fb8a8121Smrg * include/std/optional (optional::operator->()): Adjust whitespace. 4553*fb8a8121Smrg * testsuite/experimental/optional/constexpr/observers/2.cc: Check 4554*fb8a8121Smrg that operator-> is still constexpr with overloaded operator&. Change 4555*fb8a8121Smrg to compile-only test. 4556*fb8a8121Smrg * testsuite/experimental/optional/constexpr/observers/3.cc: Change to 4557*fb8a8121Smrg compile-only test. 4558*fb8a8121Smrg 4559*fb8a8121Smrg * include/bits/shared_ptr.h: Improve docs. 4560*fb8a8121Smrg * include/bits/shared_ptr_atomic.h: Likewise. 4561*fb8a8121Smrg * include/bits/unique_ptr.h: Likewise. Adjust whitespace. 4562*fb8a8121Smrg 4563*fb8a8121Smrg * include/bits/basic_string.h: Fix iterator/index confusion in 4564*fb8a8121Smrg Doxygen comments. 4565*fb8a8121Smrg * include/bits/range_access.h: Fix Doxygen warnings. 4566*fb8a8121Smrg * include/bits/refwrap.h: Do not document implementation details. 4567*fb8a8121Smrg (ref, cref): Group docs with reference_wrapper. 4568*fb8a8121Smrg * include/std/fstream: Fix Doxygen markup. 4569*fb8a8121Smrg * libsupc++/initializer_list (begin, end): Group docs with 4570*fb8a8121Smrg initializer_list. 4571*fb8a8121Smrg 4572*fb8a8121Smrg * doc/doxygen/user.cfg.in: Set MARKDOWN_SUPPORT=YES. 4573*fb8a8121Smrg 4574*fb8a8121Smrg * include/bits/unique_lock.h: Fix/improve doxygen markup. 4575*fb8a8121Smrg * include/std/mutex: Likewise. 4576*fb8a8121Smrg * include/std/shared_mutex: Likewise. 4577*fb8a8121Smrg 4578*fb8a8121Smrg * include/bits/fs_dir.h: Fix/improve doxygen markup. 4579*fb8a8121Smrg * include/bits/fs_fwd.h: Likewise. 4580*fb8a8121Smrg * include/bits/fs_ops.h: Likewise. 4581*fb8a8121Smrg * include/bits/fs_path.h: Likewise. 4582*fb8a8121Smrg * include/std/filesystem: Likewise. 4583*fb8a8121Smrg 4584*fb8a8121Smrg * include/experimental/bits/net.h: Fix/improve doxygen markup. 4585*fb8a8121Smrg * include/experimental/buffer: Likewise. 4586*fb8a8121Smrg * include/experimental/executor: Likewise. 4587*fb8a8121Smrg * include/experimental/internet: Likewise. 4588*fb8a8121Smrg * include/experimental/io_context: Likewise. 4589*fb8a8121Smrg * include/experimental/net: Likewise. 4590*fb8a8121Smrg * include/experimental/netfwd: Likewise. 4591*fb8a8121Smrg * include/experimental/socket: Likewise. 4592*fb8a8121Smrg * include/experimental/timer: Likewise. 4593*fb8a8121Smrg 4594*fb8a8121Smrg * doc/doxygen/doxygroups.cc: Move description of experimental group 4595*fb8a8121Smrg here. 4596*fb8a8121Smrg * include/experimental/algorithm: Add to libfund-ts doc group. 4597*fb8a8121Smrg * include/experimental/any: Likewise. Do not document implementation 4598*fb8a8121Smrg details. 4599*fb8a8121Smrg * include/experimental/array: Add to libfund-ts doc group. 4600*fb8a8121Smrg * include/experimental/bits/lfts_config.h: Define libfund-ts doc group 4601*fb8a8121Smrg for Library Fundamentals. 4602*fb8a8121Smrg * include/experimental/chrono: Add to libfund-ts doc group. 4603*fb8a8121Smrg * include/experimental/deque: Likewise. 4604*fb8a8121Smrg * include/experimental/forward_list: Likewise. 4605*fb8a8121Smrg * include/experimental/functional: Likewise. 4606*fb8a8121Smrg * include/experimental/iterator: Likewise. 4607*fb8a8121Smrg * include/experimental/list: Likewise. 4608*fb8a8121Smrg * include/experimental/map: Likewise. 4609*fb8a8121Smrg * include/experimental/memory: Likewise. 4610*fb8a8121Smrg * include/experimental/memory_resource: Likewise. Improve docs. 4611*fb8a8121Smrg details. 4612*fb8a8121Smrg * include/experimental/numeric: Add to libfund-ts doc group. 4613*fb8a8121Smrg * include/experimental/optional: Likewise. 4614*fb8a8121Smrg * include/experimental/propagate_const: Likewise. 4615*fb8a8121Smrg * include/experimental/random: Likewise. 4616*fb8a8121Smrg * include/experimental/ratio: Likewise. 4617*fb8a8121Smrg * include/experimental/regex: Likewise. 4618*fb8a8121Smrg * include/experimental/set: Likewise. 4619*fb8a8121Smrg * include/experimental/source_location: Likewise. 4620*fb8a8121Smrg * include/experimental/string: Likewise. 4621*fb8a8121Smrg * include/experimental/string_view: Likewise. 4622*fb8a8121Smrg * include/experimental/system_error: Likewise. 4623*fb8a8121Smrg * include/experimental/tuple: Likewise. 4624*fb8a8121Smrg * include/experimental/type_traits: Likewise. 4625*fb8a8121Smrg * include/experimental/unordered_map: Likewise. 4626*fb8a8121Smrg * include/experimental/unordered_set: Likewise. 4627*fb8a8121Smrg * include/experimental/utility: Likewise. 4628*fb8a8121Smrg * include/experimental/vector: Likewise. 4629*fb8a8121Smrg * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error. 4630*fb8a8121Smrg * testsuite/experimental/array/neg.cc: Adjust dg-error. 4631*fb8a8121Smrg * testsuite/experimental/propagate_const/assignment/move_neg.cc: 4632*fb8a8121Smrg Likewise. 4633*fb8a8121Smrg * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise. 4634*fb8a8121Smrg * testsuite/experimental/propagate_const/requirements2.cc: Likewise. 4635*fb8a8121Smrg * testsuite/experimental/propagate_const/requirements3.cc: Likewise. 4636*fb8a8121Smrg * testsuite/experimental/propagate_const/requirements4.cc: Likewise. 4637*fb8a8121Smrg * testsuite/experimental/propagate_const/requirements5.cc: Likewise. 4638*fb8a8121Smrg 4639*fb8a8121Smrg * include/experimental/bits/fs_dir.h: Fix Doxygen markup. 4640*fb8a8121Smrg * include/experimental/bits/fs_fwd.h: Improve docs. 4641*fb8a8121Smrg * include/experimental/bits/fs_ops.h: fix Doxygen markup. 4642*fb8a8121Smrg * include/experimental/bits/fs_path.h: Likewise. 4643*fb8a8121Smrg (path, filesystem_error, u8path): Improve docs. 4644*fb8a8121Smrg * include/experimental/filesystem: Link to docs for TS. 4645*fb8a8121Smrg 4646*fb8a8121Smrg * config/allocator/new_allocator_base.h (__allocator_base): Add 4647*fb8a8121Smrg workaround for Doxygen bug #6945. 4648*fb8a8121Smrg * include/std/memory: Improve docs. Define group for pointer safety. 4649*fb8a8121Smrg * include/std/scoped_allocator: Improve docs. Use "undocumented" 4650*fb8a8121Smrg conditional to suppress documentation for implementation details. 4651*fb8a8121Smrg 4652*fb8a8121Smrg * include/bits/specfun.h: Improve docs. 4653*fb8a8121Smrg * include/tr1/cmath: Likewise. Fix nesting of preprocessor conditions 4654*fb8a8121Smrg and namespaces. 4655*fb8a8121Smrg 4656*fb8a8121Smrg * doc/doxygen/doxygroups.cc (std::tr2, std::__gnu_cxx): Improve docs. 4657*fb8a8121Smrg (std::experimental): Add docs. 4658*fb8a8121Smrg * doc/doxygen/user.cfg.in (PREDEFINED): Expand macros for __cxx11 4659*fb8a8121Smrg namespace to nothing when generating docs. 4660*fb8a8121Smrg * include/bits/regex_constants.h (std::regex_constants): Improve docs. 4661*fb8a8121Smrg * include/std/chrono (std::chrono): Likewise. 4662*fb8a8121Smrg * include/std/functional (std::placeholders): Likewise. 4663*fb8a8121Smrg * include/std/thread (std::this_thread): Likewise. 4664*fb8a8121Smrg 4665*fb8a8121Smrg * include/parallel/settings.h: Fix Doxygen markup. 4666*fb8a8121Smrg 4667*fb8a8121Smrg * include/ext/pb_ds/detail/bin_search_tree_/*_imps.hpp: Do not define 4668*fb8a8121Smrg anything unless PB_DS_CLASS_C_DEC is defined. 4669*fb8a8121Smrg * include/ext/pb_ds/detail/binary_heap_/*_imps.hpp: Likewise. 4670*fb8a8121Smrg * include/ext/pb_ds/detail/binomial_heap_/*_imps.hpp: Likewise. 4671*fb8a8121Smrg * include/ext/pb_ds/detail/binomial_heap_base_/*_imps.hpp: Likewise. 4672*fb8a8121Smrg * include/ext/pb_ds/detail/cc_hash_table_map_/*_imps.hpp: Likewise. 4673*fb8a8121Smrg * include/ext/pb_ds/detail/gp_hash_table_map_/*_imps.hpp: Likewise. 4674*fb8a8121Smrg * include/ext/pb_ds/detail/hash_fn/*_imp.hpp: Likewise. 4675*fb8a8121Smrg * include/ext/pb_ds/detail/left_child_next_sibling_heap_/*_imps.hpp: 4676*fb8a8121Smrg Likewise. 4677*fb8a8121Smrg * include/ext/pb_ds/detail/list_update_map_/*_imps.hpp: Likewise. 4678*fb8a8121Smrg * include/ext/pb_ds/detail/ov_tree_map_/*_imps.hpp: Likewise. 4679*fb8a8121Smrg * include/ext/pb_ds/detail/pairing_heap_/*_imps.hpp: Likewise. 4680*fb8a8121Smrg * include/ext/pb_ds/detail/pat_trie_/*_imps.hpp: Likewise. 4681*fb8a8121Smrg * include/ext/pb_ds/detail/rb_tree_map_/*_imps.hpp: Likewise. 4682*fb8a8121Smrg * include/ext/pb_ds/detail/rc_binomial_heap_/*_imps.hpp: Likewise. 4683*fb8a8121Smrg * include/ext/pb_ds/detail/resize_policy*_imp.hpp: Likewise. 4684*fb8a8121Smrg * include/ext/pb_ds/detail/splay_tree_/*_imps.hpp: Likewise. 4685*fb8a8121Smrg * include/ext/pb_ds/detail/thin_heap_/*_imps.hpp: Likewise. 4686*fb8a8121Smrg * include/ext/pb_ds/detail/trie_policy*_imp.hpp: Likewise. 4687*fb8a8121Smrg * include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp: 4688*fb8a8121Smrg Likewise. 4689*fb8a8121Smrg * include/ext/pb_ds/detail/unordered_iterator/iterator.hpp: Likewise. 4690*fb8a8121Smrg * include/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp: 4691*fb8a8121Smrg Likewise. 4692*fb8a8121Smrg * include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp: 4693*fb8a8121Smrg Likewise. 4694*fb8a8121Smrg 4695*fb8a8121Smrg * doc/doxygen/user.cfg.in: Regenerate with Doxygen 1.8.14 and set 4696*fb8a8121Smrg GROUP_NESTED_COMPOUNDS=YES and SORT_BY_SCOPE_NAME=NO. Add various 4697*fb8a8121Smrg _GLIBCXX_xxx macros and __attribute__(X) to PREDEFINED macros that 4698*fb8a8121Smrg Doxygen expands. 4699*fb8a8121Smrg 4700*fb8a8121Smrg2019-05-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 4701*fb8a8121Smrg 4702*fb8a8121Smrg * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate. 4703*fb8a8121Smrg * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise. 4704*fb8a8121Smrg * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise. 4705*fb8a8121Smrg * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise. 4706*fb8a8121Smrg * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise. 4707*fb8a8121Smrg * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt: 4708*fb8a8121Smrg Likewise. 4709*fb8a8121Smrg * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise. 4710*fb8a8121Smrg * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt: 4711*fb8a8121Smrg Likewise. 4712*fb8a8121Smrg 4713*fb8a8121Smrg2019-05-01 Jonathan Wakely <jwakely@redhat.com> 4714*fb8a8121Smrg 4715*fb8a8121Smrg PR libstdc++/61761 4716*fb8a8121Smrg * include/std/complex (__complex_proj): Return parameter unchanged. 4717*fb8a8121Smrg [_GLIBCXX_USE_C99_COMPLEX] (__complex_proj): Change overloads for 4718*fb8a8121Smrg floating-point types to take std::complex arguments. 4719*fb8a8121Smrg [_GLIBCXX_USE_C99_MATH_TR1] (__complex_proj): Add overloads for 4720*fb8a8121Smrg floating-point types. 4721*fb8a8121Smrg * testsuite/26_numerics/complex/proj.cc: New test. 4722*fb8a8121Smrg 4723*fb8a8121Smrg2019-04-30 Jakub Jelinek <jakub@redhat.com> 4724*fb8a8121Smrg 4725*fb8a8121Smrg * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Change _Lock_policyE2 exports 4726*fb8a8121Smrg to _Lock_policyE[012]. 4727*fb8a8121Smrg * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update. 4728*fb8a8121Smrg 4729*fb8a8121Smrg2019-04-30 Jonathan Wakely <jwakely@redhat.com> 4730*fb8a8121Smrg 4731*fb8a8121Smrg * testsuite/27_io/filesystem/path/decompose/root_path.cc: Remove 4732*fb8a8121Smrg macros accidentally left in. 4733*fb8a8121Smrg * testsuite/27_io/filesystem/path/native/string-char8_t.cc: Remove 4734*fb8a8121Smrg unnecessary -lstdc++fs option. Fix test for mingw. 4735*fb8a8121Smrg * testsuite/experimental/filesystem/path/native/string-char8_t.cc: 4736*fb8a8121Smrg Fix test for mingw. 4737*fb8a8121Smrg 4738*fb8a8121Smrg2019-04-30 Jakub Jelinek <jakub@redhat.com> 4739*fb8a8121Smrg 4740*fb8a8121Smrg * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update. 4741*fb8a8121Smrg 4742*fb8a8121Smrg2019-04-29 Jonathan Wakely <jwakely@redhat.com> 4743*fb8a8121Smrg 4744*fb8a8121Smrg * include/bits/stl_algo.h (generate_n): Adjust doxygen comment. 4745*fb8a8121Smrg 4746*fb8a8121Smrg * include/bits/move.h (swap(T&, T&), swap(T (&)[N], T (&)[N])): Use 4747*fb8a8121Smrg _GLIBCXX_NOEXCEPT_IF to simplify declarations. 4748*fb8a8121Smrg 4749*fb8a8121Smrg PR libstdc++/71312 4750*fb8a8121Smrg * src/c++11/shared_ptr.cc (get_mutex): Align pool mutexes to 64 bytes. 4751*fb8a8121Smrg 4752*fb8a8121Smrg * include/bits/stl_bvector.h (vector<bool>::empty()): Add nodiscard 4753*fb8a8121Smrg attribute. 4754*fb8a8121Smrg 4755*fb8a8121Smrg * include/bits/stl_iterator_base_types.h (_Iter_base): Remove unused 4756*fb8a8121Smrg class template and partial specialization. 4757*fb8a8121Smrg 4758*fb8a8121Smrg PR libstdc++/87982 4759*fb8a8121Smrg * include/bits/stl_algo.h (generate_n): Convert _Size parameter to 4760*fb8a8121Smrg an integral type. 4761*fb8a8121Smrg * include/bits/stl_algobase.h (__size_to_integer): New overloaded 4762*fb8a8121Smrg functions to convert a value to an integral type. 4763*fb8a8121Smrg (__fill_n_a, __fill_n_a): Assert that __n is already an integral type. 4764*fb8a8121Smrg (fill_n): Convert _Size parameter to an integral type. 4765*fb8a8121Smrg * testsuite/25_algorithms/fill_n/87982.cc: New test. 4766*fb8a8121Smrg * testsuite/25_algorithms/fill_n/87982_neg.cc: New test. 4767*fb8a8121Smrg * testsuite/25_algorithms/fill_n/dr426.cc: New test. 4768*fb8a8121Smrg * testsuite/25_algorithms/generate_n/87982.cc: New test. 4769*fb8a8121Smrg * testsuite/25_algorithms/generate_n/87982_neg.cc: New test. 4770*fb8a8121Smrg * testsuite/25_algorithms/generate_n/dr426.cc: New test. 4771*fb8a8121Smrg 4772*fb8a8121Smrg2019-04-28 Nina Dinka Ranns <dinka.ranns@gmail.com> 4773*fb8a8121Smrg 4774*fb8a8121Smrg Adding noexcept-specification on tuple constructors (LWG 2899) 4775*fb8a8121Smrg * libstdc++-v3/include/std/tuple: 4776*fb8a8121Smrg (tuple()): Add noexcept-specification. 4777*fb8a8121Smrg (tuple(const _Elements&...)): Likewise 4778*fb8a8121Smrg (tuple(_UElements&&...)): Likewise 4779*fb8a8121Smrg (tuple(const tuple<_UElements...>&)): Likewise 4780*fb8a8121Smrg (tuple(tuple<_UElements...>&&)): Likewise 4781*fb8a8121Smrg (tuple(const _T1&, const _T2&)): Likewise 4782*fb8a8121Smrg (tuple(_U1&&, _U2&&)): Likewise 4783*fb8a8121Smrg (tuple(const tuple<_U1, _U2>&): Likewise 4784*fb8a8121Smrg (tuple(tuple<_U1, _U2>&&): Likewise 4785*fb8a8121Smrg (tuple(const pair<_U1, _U2>&): Likewise 4786*fb8a8121Smrg (tuple(pair<_U1, _U2>&&): Likewise 4787*fb8a8121Smrg * libstdc++-v3/testsuite/20_util/tuple/cons/noexcept_specs.cc: New 4788*fb8a8121Smrg 4789*fb8a8121Smrg2019-04-27 Marc Glisse <marc.glisse@inria.fr> 4790*fb8a8121Smrg 4791*fb8a8121Smrg PR libstdc++/87106 4792*fb8a8121Smrg * include/bits/stl_uninitialized.h (__relocate_object_a): Mark the 4793*fb8a8121Smrg arguments with __restrict. 4794*fb8a8121Smrg 4795*fb8a8121Smrg2019-04-26 H.J. Lu <hongjiu.lu@intel.com> 4796*fb8a8121Smrg 4797*fb8a8121Smrg * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated. 4798*fb8a8121Smrg 4799*fb8a8121Smrg2019-04-26 Jonathan Wakely <jwakely@redhat.com> 4800*fb8a8121Smrg 4801*fb8a8121Smrg * include/experimental/bits/fs_path.h 4802*fb8a8121Smrg (path::_S_convert_loc<_InputIterator>): Create const std::string to 4803*fb8a8121Smrg avoid redundant call to _S_convert_loc with non-const pointers. 4804*fb8a8121Smrg 4805*fb8a8121Smrg * testsuite/20_util/variant/run.cc: Use a new Hashable type to test 4806*fb8a8121Smrg hashing, because pmr::string depends on _GLIBCXX_USE_CXX11_ABI==1. 4807*fb8a8121Smrg * testsuite/21_strings/basic_string/hash/hash.cc 4808*fb8a8121Smrg [!_GLIBCXX_USE_CXX11_ABI]: Don't test pmr strings. 4809*fb8a8121Smrg * testsuite/21_strings/basic_string/hash/hash_char8_t.cc 4810*fb8a8121Smrg [!_GLIBCXX_USE_CXX11_ABI]: Likewise. 4811*fb8a8121Smrg 4812*fb8a8121Smrg * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace wildcard that matches 4813*fb8a8121Smrg wstring::_M_replace_dispatch with more specific patterns. 4814*fb8a8121Smrg * include/bits/fs_path.h (path::_S_convert_loc<_InputIterator>): 4815*fb8a8121Smrg Create const std::string to avoid redundant call to _S_convert_loc 4816*fb8a8121Smrg with non-const pointers. 4817*fb8a8121Smrg * include/bits/locale_conv.h (__do_str_codecvt): Use if-constexpr to 4818*fb8a8121Smrg avoid unnecessary basic_string::assign instantiations. 4819*fb8a8121Smrg 4820*fb8a8121Smrg * include/std/memory (__uses_alloc_args): Add string-literal to 4821*fb8a8121Smrg static_assert, to match the one in __uses_alloc. 4822*fb8a8121Smrg [__cpp_concepts] (_Std_pair): Use C++2a syntax for concept. 4823*fb8a8121Smrg * testsuite/20_util/polymorphic_allocator/construct_c++2a.cc: Check 4824*fb8a8121Smrg for recursive uses-allocator construction of nested pairs. 4825*fb8a8121Smrg * testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc:: Add 4826*fb8a8121Smrg comment. 4827*fb8a8121Smrg 4828*fb8a8121Smrg2019-04-26 Jakub Jelinek <jakub@redhat.com> 4829*fb8a8121Smrg 4830*fb8a8121Smrg * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update. 4831*fb8a8121Smrg * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update. 4832*fb8a8121Smrg * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update. 4833*fb8a8121Smrg * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update. 4834*fb8a8121Smrg 4835*fb8a8121Smrg * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. 4836*fb8a8121Smrg * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. 4837*fb8a8121Smrg * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update. 4838*fb8a8121Smrg * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. 4839*fb8a8121Smrg * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. 4840*fb8a8121Smrg * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. 4841*fb8a8121Smrg * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. 4842*fb8a8121Smrg 4843*fb8a8121Smrg2019-04-25 Jonathan Wakely <jwakely@redhat.com> 4844*fb8a8121Smrg 4845*fb8a8121Smrg PR libstdc++/90239 4846*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Amend P0591R4 status. 4847*fb8a8121Smrg * include/std/scoped_allocator [__cplusplus > 201703L] 4848*fb8a8121Smrg (scoped_allocator_adaptor::construct): Define in terms of 4849*fb8a8121Smrg uses_allocator_construction_args, as per P0591R4. 4850*fb8a8121Smrg * testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc: New test. 4851*fb8a8121Smrg * testsuite/util/testsuite_allocator.h: Remove name of unused 4852*fb8a8121Smrg parameter. 4853*fb8a8121Smrg 4854*fb8a8121Smrg2019-04-24 Jonathan Wakely <jwakely@redhat.com> 4855*fb8a8121Smrg 4856*fb8a8121Smrg * doc/xml/manual/status_cxx2017.xml: Document P0024R2 status. 4857*fb8a8121Smrg * doc/html/*: Regenerate. 4858*fb8a8121Smrg 4859*fb8a8121Smrg * include/bits/fs_path.h (operator<, operator<=, operator>) 4860*fb8a8121Smrg (operator>=, operator==, operator!=): Make hidden friends, as per 4861*fb8a8121Smrg LWG 3065. 4862*fb8a8121Smrg * testsuite/27_io/filesystem/path/native/string-char8_t.cc: Fix 4863*fb8a8121Smrg string type in test. 4864*fb8a8121Smrg * testsuite/27_io/filesystem/path/native/string.cc: Likewise. 4865*fb8a8121Smrg 4866*fb8a8121Smrg * include/std/any (any::any(ValueType&&)): Use __and_v. 4867*fb8a8121Smrg * include/std/numeric (midpoint(T, T, T), midpoint(T*, T*, T*)): 4868*fb8a8121Smrg Likewise. 4869*fb8a8121Smrg 4870*fb8a8121Smrg * include/std/tuple (apply): Use remove_reference_t instead of decay_t 4871*fb8a8121Smrg as per P0777R1. 4872*fb8a8121Smrg * include/std/type_traits (__result_of_memfun): Use remove_reference 4873*fb8a8121Smrg instead of __remove_cvref_t and remove redundant is_same check. 4874*fb8a8121Smrg (__inv_unwrap): Use __remove_cvref_t instead of decay_t. 4875*fb8a8121Smrg 4876*fb8a8121Smrg * include/experimental/string_view (basic_string_view::pointer) 4877*fb8a8121Smrg (basic_string_view::reference): Fix to refer to non-const value_type. 4878*fb8a8121Smrg * include/bits/basic_string.h (basic_string): Use __sv_check and 4879*fb8a8121Smrg __sv_limit instead of basic_string_view::_M_check and 4880*fb8a8121Smrg basic_string_view::_M_limit. 4881*fb8a8121Smrg * include/std/string_view (__sv_check, __sv_limit): New 4882*fb8a8121Smrg helper functions to replace basic_string_view::_M_check and 4883*fb8a8121Smrg basic_string_view::_M_limit. 4884*fb8a8121Smrg (basic_string_view): Add static assertions to enforce ill-formed 4885*fb8a8121Smrg requirement for traits_type::char_type from P1148R0, and to enforce 4886*fb8a8121Smrg required properties of char-like types. 4887*fb8a8121Smrg (basic_string_view::pointer, basic_string_view::reference): Fix to 4888*fb8a8121Smrg refer to non-const value_type. 4889*fb8a8121Smrg (basic_string_view::operator[], basic_string_view::at) 4890*fb8a8121Smrg (basic_string_view::front, basic_string_view::back) 4891*fb8a8121Smrg (basic_string_view::data): Use const_reference and const_pointer 4892*fb8a8121Smrg typedefs for return types. 4893*fb8a8121Smrg (basic_string_view::_M_check, basic_string_view::_M_limit): Remove. 4894*fb8a8121Smrg (hash<wstring_view>): Fix argument_type typedef. 4895*fb8a8121Smrg * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/ 4896*fb8a8121Smrg char/1.cc: Fix expected return type of basic_string_view::data(). 4897*fb8a8121Smrg * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/ 4898*fb8a8121Smrg wchar_t/1.cc: Likewise. 4899*fb8a8121Smrg * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/ 4900*fb8a8121Smrg char/1.cc: Likewise. 4901*fb8a8121Smrg * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/ 4902*fb8a8121Smrg wchar_t/1.cc: Likewise. 4903*fb8a8121Smrg * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc: 4904*fb8a8121Smrg New test. 4905*fb8a8121Smrg * testsuite/21_strings/basic_string_view/requirements/typedefs.cc: 4906*fb8a8121Smrg Check reference and pointer typedefs. 4907*fb8a8121Smrg * testsuite/experimental/string_view/requirements/typedefs.cc: 4908*fb8a8121Smrg Likewise. 4909*fb8a8121Smrg * testsuite/experimental/string_view/modifiers/remove_prefix/char/1.cc: 4910*fb8a8121Smrg Fix expected return type of basic_string_view::data(). 4911*fb8a8121Smrg * testsuite/experimental/string_view/modifiers/remove_prefix/wchar_t/ 4912*fb8a8121Smrg 1.cc: Likewise. 4913*fb8a8121Smrg * testsuite/experimental/string_view/modifiers/remove_suffix/char/1.cc: 4914*fb8a8121Smrg Likewise. 4915*fb8a8121Smrg * testsuite/experimental/string_view/modifiers/remove_suffix/wchar_t/ 4916*fb8a8121Smrg 1.cc: Likewise. 4917*fb8a8121Smrg 4918*fb8a8121Smrg PR libstdc++/90220 4919*fb8a8121Smrg * include/std/any (__any_caster): Use remove_cv_t instead of decay_t. 4920*fb8a8121Smrg Avoid a runtime check for types that can never be stored in std::any. 4921*fb8a8121Smrg * testsuite/20_util/any/misc/any_cast.cc: Test std::any_cast with 4922*fb8a8121Smrg array types. 4923*fb8a8121Smrg 4924*fb8a8121Smrg PR libstdc++/90220 (partial) 4925*fb8a8121Smrg * include/std/any (any_cast<T>(any*), any_cast<T>(const any*)): Do 4926*fb8a8121Smrg not attempt ill-formed static_cast to pointers to non-object types. 4927*fb8a8121Smrg * testsuite/20_util/any/misc/any_cast.cc: Test std::any_cast with 4928*fb8a8121Smrg function types. 4929*fb8a8121Smrg 4930*fb8a8121Smrg * testsuite/20_util/variant/run.cc: Catch exception by reference to 4931*fb8a8121Smrg prevent -Wcatch-value warning. 4932*fb8a8121Smrg 4933*fb8a8121Smrg * include/std/variant (__variant_construct): Use template parameter 4934*fb8a8121Smrg type instead of equivalent decltype-specifier. 4935*fb8a8121Smrg (_Move_ctor_base<false, Types...>::_Move_ctor_base(_Move_ctor_base&&)): 4936*fb8a8121Smrg Replace forward with move. 4937*fb8a8121Smrg (_Move_ctor_base<false, Types...>::_M_destructive_move) 4938*fb8a8121Smrg (_Move_ctor_base<false, Types...>::_M_destructive_copy) 4939*fb8a8121Smrg (_Move_ctor_base<true, Types...>::_M_destructive_move) 4940*fb8a8121Smrg (_Move_ctor_base<true, Types...>::_M_destructive_copy): Only set the 4941*fb8a8121Smrg index after construction succeeds. 4942*fb8a8121Smrg (_Copy_assign_base<false, Types...>::operator=): Remove redundant 4943*fb8a8121Smrg if-constexpr checks that are always true. Use __remove_cvref_t instead 4944*fb8a8121Smrg of remove_reference so that is_nothrow_move_constructible check 4945*fb8a8121Smrg doesn't use a const rvalue parameter. In the potentially-throwing case 4946*fb8a8121Smrg construct a temporary and move assign it, as per LWG 2904. 4947*fb8a8121Smrg (_Move_assign_base<false, Types...>::operator=): Remove redundant 4948*fb8a8121Smrg if-constexpr checks that are always true. Use emplace as per LWG 2904. 4949*fb8a8121Smrg (variant::operator=(T&&)): Only use emplace conditionally, otherwise 4950*fb8a8121Smrg construct a temporary and move assign from it, as per LWG 2904. 4951*fb8a8121Smrg * testsuite/20_util/variant/exception_safety.cc: Check that 4952*fb8a8121Smrg assignment operators have strong exception safety guarantee. 4953*fb8a8121Smrg 4954*fb8a8121Smrg2019-04-23 Thomas Rodgers <trodgers@redhat.com> 4955*fb8a8121Smrg 4956*fb8a8121Smrg Document PSTL linker flags 4957*fb8a8121Smrg 4958*fb8a8121Smrg * doc/xml/manual/using.xml: Add PSTL linker flags to table 3.1. 4959*fb8a8121Smrg 4960*fb8a8121Smrg2019-04-23 Jonathan Wakely <jwakely@redhat.com> 4961*fb8a8121Smrg 4962*fb8a8121Smrg * include/std/variant (__detail::__variant::_Traits): Make 4963*fb8a8121Smrg _S_trivial_copy_assign depend on _S_trivial_copy_ctor and make 4964*fb8a8121Smrg _S_trivial_move_assign depend on _S_trivial_move_ctor, as per 4965*fb8a8121Smrg P0602R4. 4966*fb8a8121Smrg (__detail::__variant::_Copy_assign_alias): Only depend on 4967*fb8a8121Smrg _S_trivial_copy_assign, which subsumes _S_trivial_copy_ctor now. 4968*fb8a8121Smrg * testsuite/20_util/variant/compile.cc: Correct checks for trivial 4969*fb8a8121Smrg move assignment operators. 4970*fb8a8121Smrg 4971*fb8a8121Smrg PR libstdc++/90165 4972*fb8a8121Smrg * include/std/variant (variant::__not_self): New helper for the 4973*fb8a8121Smrg is_same_v<remove_cvref_t<T>, variant>==false constraints. 4974*fb8a8121Smrg (variant::__to_type_impl): Remove. 4975*fb8a8121Smrg (variant::__to_type): Add default argument to check pack size, instead 4976*fb8a8121Smrg of using __to_type_impl. 4977*fb8a8121Smrg (variant::__accepted_type): Add default argument using __not_self. 4978*fb8a8121Smrg (variant::__is_in_place_tag, variant::__not_in_place_tag): New helpers 4979*fb8a8121Smrg for variant(T&&) constructor constraint. 4980*fb8a8121Smrg (variant::variant(T&&)): Use __not_in_place_tag in constraints. 4981*fb8a8121Smrg Extract __accepted_type into a named template parameter for reuse in 4982*fb8a8121Smrg other constraints and in the exception specification. 4983*fb8a8121Smrg (variant::variant(in_place_type_t<T>, Args&&...)) 4984*fb8a8121Smrg (variant::variant(in_place_type_t<T>, initializer_list<U>, Args&&...)) 4985*fb8a8121Smrg (variant::variant(in_place_index_t<T>, Args&&...)) 4986*fb8a8121Smrg (variant::variant(in_place_index_t<T>, initializer_list<U>, Args&&...)) 4987*fb8a8121Smrg (variant::operator=T&&)): Remove redundant && from trait arguments. 4988*fb8a8121Smrg * testsuite/20_util/variant/compile.cc: Check variant(T&&) constructor 4989*fb8a8121Smrg isn't used for in_place_type or in_place_index arguments. 4990*fb8a8121Smrg 4991*fb8a8121Smrg * include/std/type_traits (unwrap_reference_t): Define for C++2a. 4992*fb8a8121Smrg (unwrap_ref_decay): Remove inheritance from unwrap_reference. 4993*fb8a8121Smrg * testsuite/20_util/unwrap_reference/1.cc: Adjust test to use alias. 4994*fb8a8121Smrg 4995*fb8a8121Smrg2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 4996*fb8a8121Smrg Bernd Edlinger <bernd.edlinger@hotmail.de> 4997*fb8a8121Smrg Jakub Jelinek <jakub@redhat.com> 4998*fb8a8121Smrg 4999*fb8a8121Smrg PR target/89093 5000*fb8a8121Smrg * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Add 5001*fb8a8121Smrg general-regs-only target attribute for ARM. 5002*fb8a8121Smrg 5003*fb8a8121Smrg2019-04-23 Jonathan Wakely <jwakely@redhat.com> 5004*fb8a8121Smrg 5005*fb8a8121Smrg PR libstdc++/87431 5006*fb8a8121Smrg * include/bits/basic_string.h (_Never_valueless_alt): Make partial 5007*fb8a8121Smrg specialization also depend on is_nothrow_move_constructible. 5008*fb8a8121Smrg * include/std/variant (__detail::__variant::__never_valueless()): 5009*fb8a8121Smrg Only true if the variant would have a move assignment operator. 5010*fb8a8121Smrg (__detail::__variant::_Variant_storage<false, T...>::_M_valid()): 5011*fb8a8121Smrg Check __never_valueless<T...>(). 5012*fb8a8121Smrg (variant::emplace): Only perform non-throwing move assignments 5013*fb8a8121Smrg for never-valueless alternatives if the variant has a move assignment 5014*fb8a8121Smrg operator. 5015*fb8a8121Smrg * testsuite/20_util/variant/compile.cc: Check that never-valueless 5016*fb8a8121Smrg types can be emplaced into non-assignable variants. 5017*fb8a8121Smrg * testsuite/20_util/variant/run.cc: Check that never-valueless types 5018*fb8a8121Smrg don't get copied when emplaced into non-assignable variants. 5019*fb8a8121Smrg 5020*fb8a8121Smrg * include/std/variant (__detail::__variant::__ref_cast): Remove 5021*fb8a8121Smrg unused function. 5022*fb8a8121Smrg (__detail::__variant::_Uninitialized::_M_get) 5023*fb8a8121Smrg (__detail::__variant::__get) 5024*fb8a8121Smrg (__gen_vtable_impl::__element_by_index_or_cookie): Add noexcept. 5025*fb8a8121Smrg 5026*fb8a8121Smrg2019-04-21 Iain Sandoe <iain@sandoe.co.uk> 5027*fb8a8121Smrg 5028*fb8a8121Smrg * testsuite/17_intro/headers/c++1998/charset.cc: Skip for Darwin8 5029*fb8a8121Smrg to Darwin10. 5030*fb8a8121Smrg * testsuite/17_intro/headers/c++2011/charset.cc: Likewise. 5031*fb8a8121Smrg * testsuite/17_intro/headers/c++2014/charset.cc: Likewise. 5032*fb8a8121Smrg * testsuite/17_intro/headers/c++2017/charset.cc: Likewise. 5033*fb8a8121Smrg * testsuite/17_intro/headers/c++2020/charset.cc: Likewise. 5034*fb8a8121Smrg 5035*fb8a8121Smrg2019-04-20 Thomas Rodgers <trodgers@redhat.com> 5036*fb8a8121Smrg 5037*fb8a8121Smrg Delegate PSTL configuration to pstl/pstl_config.h 5038*fb8a8121Smrg 5039*fb8a8121Smrg * include/bits/c++config: Remove explicit PSTL configuration 5040*fb8a8121Smrg macros and use definitions from <pstl/pstl_config.h>. 5041*fb8a8121Smrg 5042*fb8a8121Smrg2019-04-20 Thomas Rodgers <trodgers@redhat.com> 5043*fb8a8121Smrg 5044*fb8a8121Smrg Cleanup algorithm implementations 5045*fb8a8121Smrg * include/pstl/glue_algorithm_impl.h (stable_sort): Forward 5046*fb8a8121Smrg execution policy. 5047*fb8a8121Smrg (mismatch): Forward execution policy. 5048*fb8a8121Smrg (equal): Qualify call to std::equal(). 5049*fb8a8121Smrg (partial_sort): Forward execution policy. 5050*fb8a8121Smrg (inplace_merge): Forward execution policy. 5051*fb8a8121Smrg 5052*fb8a8121Smrg2019-04-19 Thomas Rodgers <trodgers@redhat.com> 5053*fb8a8121Smrg 5054*fb8a8121Smrg Improve implementation of parallel equal() 5055*fb8a8121Smrg * include/pstl/algorithm_impl.h 5056*fb8a8121Smrg (__internal::__brick_equal): use "4 iterator" version of 5057*fb8a8121Smrg std::equal(). 5058*fb8a8121Smrg (__internal::__brick_equal): use simd for random access 5059*fb8a8121Smrg iterators on unsequenced execution policies. 5060*fb8a8121Smrg (__internal::__pattern_equal): add "4 iterator" version 5061*fb8a8121Smrg (__internal::__pattern_equal): dispatch to simd __brick_equal 5062*fb8a8121Smrg for vector-only execution policies. 5063*fb8a8121Smrg (__internal::__pattern_equal): dispatch to __parallel_or for 5064*fb8a8121Smrg parallel execution policies. 5065*fb8a8121Smrg * include/pstl/glue_algorithm_impl.h 5066*fb8a8121Smrg (std::equal): dispatch to "4 iterator" version of 5067*fb8a8121Smrg __internal::__pattern_equal(). 5068*fb8a8121Smrg 5069*fb8a8121Smrg2019-04-17 Jonathan Wakely <jwakely@redhat.com> 5070*fb8a8121Smrg 5071*fb8a8121Smrg PR libstdc++/90105 5072*fb8a8121Smrg * include/bits/forward_list.h (operator==): Do not use operator!= to 5073*fb8a8121Smrg compare elements. 5074*fb8a8121Smrg (forward_list<T, A>::sort(Comp)): When elements are equal take the one 5075*fb8a8121Smrg earlier in the list, so that sort is stable. 5076*fb8a8121Smrg * testsuite/23_containers/forward_list/operations/90105.cc: New test. 5077*fb8a8121Smrg * testsuite/23_containers/forward_list/comparable.cc: Test with 5078*fb8a8121Smrg types that meet the minimum EqualityComparable and LessThanComparable 5079*fb8a8121Smrg requirements. Remove irrelevant comment. 5080*fb8a8121Smrg 5081*fb8a8121Smrg * include/std/variant (__detail::__variant::_Traits::_S_copy_assign): 5082*fb8a8121Smrg Do not depend on whether all alternative types are move constructible. 5083*fb8a8121Smrg (__detail::__variant::_Copy_assign_base::operator=): Remove cv-quals 5084*fb8a8121Smrg from the operand when deciding whether to perform the assignment. 5085*fb8a8121Smrg * testsuite/20_util/variant/compile.cc (DeletedMoves): Define type 5086*fb8a8121Smrg with deleted move constructor and deleted move assignment operator. 5087*fb8a8121Smrg (default_ctor, copy_ctor, move_ctor, copy_assign, move_assign): Check 5088*fb8a8121Smrg behaviour of variants with DeletedMoves as an alternative. 5089*fb8a8121Smrg * testsuite/20_util/variant/run.cc (DeletedMoves): Define same type. 5090*fb8a8121Smrg (move_ctor, move_assign): Check that moving a variant with a 5091*fb8a8121Smrg DeletedMoves alternative falls back to copying instead of moving. 5092*fb8a8121Smrg 5093*fb8a8121Smrg * testsuite/20_util/variant/compile.cc: Remove empty string literals 5094*fb8a8121Smrg from static_assert declarations. 5095*fb8a8121Smrg 5096*fb8a8121Smrg * testsuite/20_util/variant/compile.cc (MoveCtorOnly): Fix type to 5097*fb8a8121Smrg actually match its name. 5098*fb8a8121Smrg (MoveCtorAndSwapOnly): Define new type that adds swap to MoveCtorOnly. 5099*fb8a8121Smrg (test_swap()): Fix result for MoveCtorOnly and check 5100*fb8a8121Smrg MoveCtorAndSwapOnly. 5101*fb8a8121Smrg 5102*fb8a8121Smrg * include/std/optional (optional::value_or(U&&) &&): Add missing 5103*fb8a8121Smrg constexpr specifier. 5104*fb8a8121Smrg * testsuite/20_util/optional/constexpr/observers/4.cc: Check value_or 5105*fb8a8121Smrg for disengaged optionals and rvalue optionals. 5106*fb8a8121Smrg * testsuite/20_util/optional/observers/4.cc: Likewise. 5107*fb8a8121Smrg 5108*fb8a8121Smrg2019-04-12 Thomas Rodgers <trodgers@redhat.com> 5109*fb8a8121Smrg 5110*fb8a8121Smrg * include/pstl/algorithm_impl.h: Uglify identfiers. 5111*fb8a8121Smrg * include/pstl/numeric_impl.h: Uglify identfiers. 5112*fb8a8121Smrg * include/pstl/parallel_backend_tbb.h: Uglify identfiers. 5113*fb8a8121Smrg 5114*fb8a8121Smrg2019-04-11 Thomas Rodgers <trodgers@redhat.com> 5115*fb8a8121Smrg 5116*fb8a8121Smrg * include/bits/c++config: 5117*fb8a8121Smrg Add definition for __PSTL_ASSERT. 5118*fb8a8121Smrg Add definition for __PSTL_ASSERT_MSG. 5119*fb8a8121Smrg * include/pstl/algorithm_impl.h: Replace use of assert(). 5120*fb8a8121Smrg * include/pstl/numeric_impl.h: Replace use of assert(). 5121*fb8a8121Smrg * include/pstl/parallel_backend_tbb.h: 5122*fb8a8121Smrg Replace use of assert(). 5123*fb8a8121Smrg Replace use of __TBB_ASSERT(). 5124*fb8a8121Smrg * include/pstl/parallel_backend_utils.h: Replace use of assert(). 5125*fb8a8121Smrg 5126*fb8a8121Smrg2019-04-11 Jonathan Wakely <jwakely@redhat.com> 5127*fb8a8121Smrg 5128*fb8a8121Smrg PR libstdc++/90046 5129*fb8a8121Smrg * src/c++17/memory_resource.cc 5130*fb8a8121Smrg (monotonic_buffer_resource::_Chunk::allocate): Increase alignment if 5131*fb8a8121Smrg needed to allow placing a _Chunk at the end of the buffer. 5132*fb8a8121Smrg (monotonic_buffer_resource::_M_new_buffer): Remove static_assert. 5133*fb8a8121Smrg 5134*fb8a8121Smrg2019-04-10 Jonathan Wakely <jwakely@redhat.com> 5135*fb8a8121Smrg 5136*fb8a8121Smrg * doc/xml/faq.xml: Add information about emergency EH pool. 5137*fb8a8121Smrg * doc/xml/manual/debug.xml: Update list of memory debugging tools. 5138*fb8a8121Smrg Move outdated information on mt_allocator to a separate section. 5139*fb8a8121Smrg * doc/xml/manual/evolution.xml: Clarify that GLIBCXX_FORCE_NEW 5140*fb8a8121Smrg doesn't affect the default allocator. 5141*fb8a8121Smrg 5142*fb8a8121Smrg * testsuite/lib/libstdc++.exp (check_v3_target_parallel_mode): Fix 5143*fb8a8121Smrg typo. 5144*fb8a8121Smrg 5145*fb8a8121Smrg PR libstdc++/89851 5146*fb8a8121Smrg * testsuite/20_util/variant/89851.cc: New test. 5147*fb8a8121Smrg 5148*fb8a8121Smrg2019-04-09 Jonathan Wakely <jwakely@redhat.com> 5149*fb8a8121Smrg 5150*fb8a8121Smrg * include/std/variant: Adjust whitespace. Add comments. 5151*fb8a8121Smrg (_Multi_array): Leave primary template undefined. 5152*fb8a8121Smrg (_Multi_array<_Tp>): Define partial specialization for base case of 5153*fb8a8121Smrg recursion. 5154*fb8a8121Smrg (__gen_vtable_impl, __gen_vtable): Remove redundant && from type 5155*fb8a8121Smrg which is always a reference. 5156*fb8a8121Smrg (__gen_vtable::_S_apply()): Remove function, inline body into 5157*fb8a8121Smrg default member initializer. 5158*fb8a8121Smrg * testsuite/20_util/variant/visit.cc: Test with noncopyable types. 5159*fb8a8121Smrg 5160*fb8a8121Smrg * include/std/variant (__variant_idx_cookie): Add member type. 5161*fb8a8121Smrg (__visitor_result_type): Remove. 5162*fb8a8121Smrg (__do_visit): Use invoke_result instead of __visitor_result_type. 5163*fb8a8121Smrg * testsuite/20_util/variant/visit.cc: New test. 5164*fb8a8121Smrg 5165*fb8a8121Smrg PR libstdc++/90008 5166*fb8a8121Smrg * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Remove 5167*fb8a8121Smrg unused capture. 5168*fb8a8121Smrg * testsuite/20_util/variant/90008.cc: New test. 5169*fb8a8121Smrg 5170*fb8a8121Smrg2019-04-09 Thomas Rodgers <trodgers@redhat.com> 5171*fb8a8121Smrg 5172*fb8a8121Smrg * include/pstl/algorithm_impl.h: Add namespace qualification. 5173*fb8a8121Smrg * include/pstl/execution_defs.h: Add namespace qualification. 5174*fb8a8121Smrg * include/pstl/execution_impl.h: Add namespace qualification. 5175*fb8a8121Smrg * include/pstl/numeric_impl.h: Add namespace qualification. 5176*fb8a8121Smrg * include/pstl/parallel_backend_tbb.h: Add namespace qualification. 5177*fb8a8121Smrg * include/pstl/unseq_backend_simd.h: Add namespace qualification. 5178*fb8a8121Smrg * include/pstl/parallel_backend_utils.h: Include <cassert>. 5179*fb8a8121Smrg 5180*fb8a8121Smrg2019-04-08 Ville Voutilainen <ville.voutilainen@gmail.com> 5181*fb8a8121Smrg 5182*fb8a8121Smrg Fix visit<R> for variant. 5183*fb8a8121Smrg * include/std/variant (__do_visit): Add a template parameter 5184*fb8a8121Smrg for enforcing same return types for visit. 5185*fb8a8121Smrg (__gen_vtable_impl): Likewise. 5186*fb8a8121Smrg (_S_apply_single_alt): Adjust. 5187*fb8a8121Smrg (__visit_invoke_impl): New. Handle casting to void. 5188*fb8a8121Smrg (__do_visit_invoke): New. Enforces same return types. 5189*fb8a8121Smrg (__do_visit_invoke_r): New. Converts return types. 5190*fb8a8121Smrg (__visit_invoke): Adjust. 5191*fb8a8121Smrg (__gen_vtable): Add a template parameter for enforcing 5192*fb8a8121Smrg same return types for visit. 5193*fb8a8121Smrg * testsuite/20_util/variant/visit_r.cc: Add a test for a visitor with 5194*fb8a8121Smrg different return types. 5195*fb8a8121Smrg * testsuite/20_util/variant/visit_neg.cc: New. Ensures that 5196*fb8a8121Smrg visitors with different return types don't accidentally 5197*fb8a8121Smrg compile with regular visitation. 5198*fb8a8121Smrg 5199*fb8a8121Smrg2019-04-08 Christophe Lyon <christophe.lyon@linaro.org> 5200*fb8a8121Smrg 5201*fb8a8121Smrg * testsuite/27_io/filesystem/iterators/caching.cc: Add 5202*fb8a8121Smrg dg-require-filesystem-ts. 5203*fb8a8121Smrg 5204*fb8a8121Smrg2019-04-05 Jonathan Wakely <jwakely@redhat.com> 5205*fb8a8121Smrg 5206*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Update status. 5207*fb8a8121Smrg * include/std/variant (visit<R>): Define for C++2a (P0655R1). 5208*fb8a8121Smrg * testsuite/20_util/variant/visit_r.cc: New test. 5209*fb8a8121Smrg 5210*fb8a8121Smrg * include/bits/fs_dir.h (directory_iterator::operator*) 5211*fb8a8121Smrg (directory_iterator::operator->): Add noexcept. 5212*fb8a8121Smrg (operator==, operator!=): Replace namespace-scope equality operators 5213*fb8a8121Smrg for directory iterators with hidden friends. 5214*fb8a8121Smrg 5215*fb8a8121Smrg PR libstdc++/89986 5216*fb8a8121Smrg * config/abi/pre/gnu.ver: Add missing exports. 5217*fb8a8121Smrg * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Test 5218*fb8a8121Smrg increment member. 5219*fb8a8121Smrg 5220*fb8a8121Smrg * config/abi/pre/gnu.ver: Export new symbols. 5221*fb8a8121Smrg * include/bits/fs_dir.h (recursive_directory_iterator::options()) 5222*fb8a8121Smrg (recursive_directory_iterator::recursion_pending()) 5223*fb8a8121Smrg (recursive_directory_iterator::disable_recursion_pending()): Remove 5224*fb8a8121Smrg inline definitions. Make noexcept. 5225*fb8a8121Smrg (recursive_directory_iterator::depth()) 5226*fb8a8121Smrg (recursive_directory_iterator::operator*()) 5227*fb8a8121Smrg (recursive_directory_iterator::operator->()): Make noexcept. 5228*fb8a8121Smrg (recursive_directory_iterator::_M_options) 5229*fb8a8121Smrg (recursive_directory_iterator::_M_pending): Remove data members. 5230*fb8a8121Smrg * src/c++17/fs_path.cc (_Dir_stack): Add constructor and data members. 5231*fb8a8121Smrg (recursive_directory_iterator::recursive_directory_iterator): Remove 5232*fb8a8121Smrg ctor-initializer. Use new constructor for _Dir_stack. 5233*fb8a8121Smrg (recursive_directory_iterator::options()) 5234*fb8a8121Smrg (recursive_directory_iterator::recursion_pending()) 5235*fb8a8121Smrg (recursive_directory_iterator::disable_recursion_pending()): Add 5236*fb8a8121Smrg non-inline definitions. 5237*fb8a8121Smrg (recursive_directory_iterator::depth()): Make noexcept. 5238*fb8a8121Smrg (recursive_directory_iterator::increment(error_code&)) 5239*fb8a8121Smrg (recursive_directory_iterator::pop(error_code&)): Adjust to new 5240*fb8a8121Smrg location of options and recursion_pending members. 5241*fb8a8121Smrg * testsuite/27_io/filesystem/iterators/recursion_pending.cc: New test. 5242*fb8a8121Smrg * testsuite/util/testsuite_fs.h (__gnu_test::scoped_file): Add 5243*fb8a8121Smrg user-declared move constructor and assignment operator, to make the 5244*fb8a8121Smrg type move-only. 5245*fb8a8121Smrg 5246*fb8a8121Smrg * src/c++17/fs_dir.cc (_Dir::advance(bool, error_code&)): Handle 5247*fb8a8121Smrg d_type == DT_UNKNOWN immediately. 5248*fb8a8121Smrg (_Dir::should_recurse(bool, error_code&)): Remove file_type::unknown 5249*fb8a8121Smrg handling here. 5250*fb8a8121Smrg * testsuite/27_io/filesystem/iterators/caching.cc: New test. 5251*fb8a8121Smrg 5252*fb8a8121Smrg * include/bits/fs_path.h (path::operator=(path&&)): Check for self 5253*fb8a8121Smrg assignment. 5254*fb8a8121Smrg * src/c++17/fs_path.cc (path::operator=(const path&)): Likewise. 5255*fb8a8121Smrg * testsuite/27_io/filesystem/path/assign/copy.cc: Test self 5256*fb8a8121Smrg assignment. 5257*fb8a8121Smrg 5258*fb8a8121Smrg PR libstdc++/87431 (again) 5259*fb8a8121Smrg * include/bits/basic_string.h (__variant::_Never_valueless_alt): 5260*fb8a8121Smrg Define partial specialization for basic_string. 5261*fb8a8121Smrg * include/bits/shared_ptr.h (_Never_valueless_alt): Likewise for 5262*fb8a8121Smrg shared_ptr and weak_ptr. 5263*fb8a8121Smrg * include/bits/std_function.h (_Never_valueless_alt): Likewise for 5264*fb8a8121Smrg function. 5265*fb8a8121Smrg * include/bits/stl_vector.h (_Never_valueless_alt): Likewise for 5266*fb8a8121Smrg vector. 5267*fb8a8121Smrg * include/bits/unique_ptr.h (_Never_valueless_alt): Likewise for 5268*fb8a8121Smrg unique_ptr. 5269*fb8a8121Smrg * include/debug/vector (_Never_valueless_alt): Likewise for debug 5270*fb8a8121Smrg vector. 5271*fb8a8121Smrg * include/std/any (_Never_valueless_alt): Define explicit 5272*fb8a8121Smrg specialization for any. 5273*fb8a8121Smrg * include/std/variant (_Never_valueless_alt): Define primary template. 5274*fb8a8121Smrg (__never_valueless): Use _Never_valueless_alt instead of 5275*fb8a8121Smrg is_trivially_copyable. 5276*fb8a8121Smrg (variant::emplace<N>(Args&&...)): Add special case for non-throwing 5277*fb8a8121Smrg initializations to avoid try-catch overhead. Add special case for 5278*fb8a8121Smrg scalars produced by potentially-throwing conversions. Use 5279*fb8a8121Smrg _Never_valueless_alt instead of is_trivially_copyable for the 5280*fb8a8121Smrg remaining strong exception-safety cases. 5281*fb8a8121Smrg (variant::emplace<N>(initializer_list<U>, Args&&...)): Likewise. 5282*fb8a8121Smrg * testsuite/20_util/variant/87431.cc: Run both test functions. 5283*fb8a8121Smrg * testsuite/20_util/variant/exception_safety.cc: New test. 5284*fb8a8121Smrg * testsuite/20_util/variant/run.cc: Use pmr::string instead of string, 5285*fb8a8121Smrg so the variant becomes valueless. 5286*fb8a8121Smrg 5287*fb8a8121Smrg2019-04-03 Jonathan Wakely <jwakely@redhat.com> 5288*fb8a8121Smrg 5289*fb8a8121Smrg PR libstdc++/85184 5290*fb8a8121Smrg * include/std/variant (_Copy_assign_base, _Move_assign_base, variant): 5291*fb8a8121Smrg Remove assertions. 5292*fb8a8121Smrg (variant::emplace<_Tp>): Return result of emplace<N> directly. 5293*fb8a8121Smrg 5294*fb8a8121Smrg * include/std/string (__hash_string_base): New class template defining 5295*fb8a8121Smrg operator() for hashing strings. 5296*fb8a8121Smrg (hash<pmr::string>, hash<pmr::u8string>, hash<pmr::u16string>) 5297*fb8a8121Smrg (hash<pmr::u32string>, hash<pmr::wstring>): Define for C++17. 5298*fb8a8121Smrg * testsuite/21_strings/basic_string/hash/hash.cc: New test. 5299*fb8a8121Smrg * testsuite/21_strings/basic_string/hash/hash_char8_t.cc: New test. 5300*fb8a8121Smrg 5301*fb8a8121Smrg2019-04-01 Ville Voutilainen <ville.voutilainen@gmail.com> 5302*fb8a8121Smrg 5303*fb8a8121Smrg Use single-visitation in variant assignment and swap and relops. 5304*fb8a8121Smrg Also use indices instead of types when checking whether 5305*fb8a8121Smrg variants hold the same thing. 5306*fb8a8121Smrg * include/std/variant (__do_visit): Add a template parameter 5307*fb8a8121Smrg for index visitation, invoke with indices if index visitation 5308*fb8a8121Smrg is used. 5309*fb8a8121Smrg (__variant_idx_cookie): New. 5310*fb8a8121Smrg (__visit_with_index): Likewise. 5311*fb8a8121Smrg (_Copy_assign_base::operator=): Do single-visitation with 5312*fb8a8121Smrg an index visitor. 5313*fb8a8121Smrg (_Move_assign_base::operator=): Likewise. 5314*fb8a8121Smrg (_Extra_visit_slot_needed): Adjust. 5315*fb8a8121Smrg (__visit_invoke): Call with indices if it's an index visitor. 5316*fb8a8121Smrg (relops): Do single-visitation with an index visitor. 5317*fb8a8121Smrg (swap): Likewise. 5318*fb8a8121Smrg (__visitor_result_type): New. 5319*fb8a8121Smrg 5320*fb8a8121Smrg2019-03-30 Eric Botcazou <ebotcazou@adacore.com> 5321*fb8a8121Smrg 5322*fb8a8121Smrg * src/c++17/fs_ops.cc (fs::permissions): Use std::errc::not_supported. 5323*fb8a8121Smrg 5324*fb8a8121Smrg2019-03-28 Ville Voutilainen <ville.voutilainen@gmail.com> 5325*fb8a8121Smrg 5326*fb8a8121Smrg Don't revisit a variant we are already visiting. 5327*fb8a8121Smrg * include/std/variant (__variant_construct_single): New. 5328*fb8a8121Smrg (__variant_construct): Use it. 5329*fb8a8121Smrg (_M_destructive_move): Likewise. 5330*fb8a8121Smrg (_M_destructive_copy): Likewise. 5331*fb8a8121Smrg (_Copy_assign_base::operator=): Adjust. 5332*fb8a8121Smrg (_Move_assign_base::operator=): Likewise. 5333*fb8a8121Smrg (swap): Likewise. 5334*fb8a8121Smrg 5335*fb8a8121Smrg2019-03-26 Jonathan Wakely <jwakely@redhat.com> 5336*fb8a8121Smrg 5337*fb8a8121Smrg PR libstdc++/85965 5338*fb8a8121Smrg * include/bits/hashtable.h (_Hashtable): Move static assertions to 5339*fb8a8121Smrg destructor so they are not evaluated until the _Key type is complete. 5340*fb8a8121Smrg * include/bits/stl_tree.h (_Rb_tree): Likewise. 5341*fb8a8121Smrg * testsuite/23_containers/set/85965.cc: New test. 5342*fb8a8121Smrg * testsuite/23_containers/unordered_set/85965.cc: New test. 5343*fb8a8121Smrg * testsuite/23_containers/map/48101_neg.cc: Replace "here" errors 5344*fb8a8121Smrg with regexp matching the corresponding _Rb_tree specialization. 5345*fb8a8121Smrg * testsuite/23_containers/multimap/48101_neg.cc: Likewise. 5346*fb8a8121Smrg * testsuite/23_containers/multiset/48101_neg.cc: Remove "here" error. 5347*fb8a8121Smrg * testsuite/23_containers/set/48101_neg.cc: Likewise. 5348*fb8a8121Smrg * testsuite/23_containers/unordered_map/48101_neg.cc: Likewise. 5349*fb8a8121Smrg * testsuite/23_containers/unordered_multimap/48101_neg.cc: Likewise. 5350*fb8a8121Smrg * testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise. 5351*fb8a8121Smrg * testsuite/23_containers/unordered_set/48101_neg.cc: Likewise. 5352*fb8a8121Smrg 5353*fb8a8121Smrg2019-03-26 Ville Voutilainen <ville.voutilainen@gmail.com> 5354*fb8a8121Smrg 5355*fb8a8121Smrg PR libstdc++/89825 5356*fb8a8121Smrg Fix based on a suggestion by Antony Polukhin. 5357*fb8a8121Smrg * include/std/variant (__never_valueless): New. 5358*fb8a8121Smrg (_M_valid): Use it. 5359*fb8a8121Smrg (_Extra_visit_slot_needed): New. 5360*fb8a8121Smrg (_Multi_array): Use it. 5361*fb8a8121Smrg (_S_apply_all_alts): Likewise. 5362*fb8a8121Smrg 5363*fb8a8121Smrg2019-03-26 Ville Voutilainen <ville.voutilainen@gmail.com> 5364*fb8a8121Smrg 5365*fb8a8121Smrg PR libstdc++/89824 5366*fb8a8121Smrg Fix based on a suggestion by Antony Polukhin. 5367*fb8a8121Smrg * include/std/variant (__gen_vtable): Don't reserve an 5368*fb8a8121Smrg additional table slot, _Multi_array already does that. 5369*fb8a8121Smrg 5370*fb8a8121Smrg2019-03-26 Ville Voutilainen <ville.voutilainen@gmail.com> 5371*fb8a8121Smrg 5372*fb8a8121Smrg PR libstdc++/89816 5373*fb8a8121Smrg Fix based on a suggestion by Antony Polukhin. 5374*fb8a8121Smrg * include/std/variant (__variant_construct): Capture a pointer 5375*fb8a8121Smrg to the storage and visit just one variant. 5376*fb8a8121Smrg 5377*fb8a8121Smrg2019-03-22 Jonathan Wakely <jwakely@redhat.com> 5378*fb8a8121Smrg 5379*fb8a8121Smrg * doc/xml/manual/backwards_compatibility.xml: Remove link to 5380*fb8a8121Smrg Doxygen-generated pages with unstable URL. 5381*fb8a8121Smrg * doc/xml/manual/concurrency_extensions.xml: Likewise. 5382*fb8a8121Smrg * doc/xml/manual/extensions.xml: Likewise. 5383*fb8a8121Smrg * doc/xml/manual/parallel_mode.xml: Likewise. 5384*fb8a8121Smrg * doc/xml/manual/support.xml: Likewise. 5385*fb8a8121Smrg 5386*fb8a8121Smrg * include/bits/stl_algobase.h (__lg): Do arithmetic on type int to 5387*fb8a8121Smrg avoid -Wconversion warnings. 5388*fb8a8121Smrg 5389*fb8a8121Smrg2019-03-21 Thomas Rodgers <trodgers@redhat.com> 5390*fb8a8121Smrg 5391*fb8a8121Smrg * include/Makefile.am (std_header): Add ${std_srcdir}/execution. 5392*fb8a8121Smrg (pstl_srcdir, pstl_builddir, pstl_headers): New variables. 5393*fb8a8121Smrg (allstamped): Add stamp-pstl. 5394*fb8a8121Smrg (install-headers): Add ptsl_builddir. 5395*fb8a8121Smrg * include/Makefile.in: Regenerate. 5396*fb8a8121Smrg * include/bits/c++config: Add pstl configuration. 5397*fb8a8121Smrg * include/pstl/LICENSE.txt: New file. 5398*fb8a8121Smrg * include/pstl/algorithm_fwd.h: New file. 5399*fb8a8121Smrg * include/pstl/algorithm_impl.h: New file. 5400*fb8a8121Smrg * include/pstl/execution_defs.h: New file. 5401*fb8a8121Smrg * include/pstl/execution_impl.h: New file. 5402*fb8a8121Smrg * include/pstl/glue_algorithm_defs.h: New file. 5403*fb8a8121Smrg * include/pstl/glue_algorithm_impl.h: New file. 5404*fb8a8121Smrg * include/pstl/glue_execution_defs.h: New file. 5405*fb8a8121Smrg * include/pstl/glue_memory_defs.h: New file. 5406*fb8a8121Smrg * include/pstl/glue_memory_impl.h: New file. 5407*fb8a8121Smrg * include/pstl/glue_numeric_defs.h: New file. 5408*fb8a8121Smrg * include/pstl/glue_numeric_impl.h: New file. 5409*fb8a8121Smrg * include/pstl/memory_impl.h: New file. 5410*fb8a8121Smrg * include/pstl/numeric_fwd.h: New file. 5411*fb8a8121Smrg * include/pstl/numeric_impl.h: New file. 5412*fb8a8121Smrg * include/pstl/parallel_backend.h: New file. 5413*fb8a8121Smrg * include/pstl/parallel_backend_tbb.h: New file. 5414*fb8a8121Smrg * include/pstl/parallel_backend_utils.h: New file. 5415*fb8a8121Smrg * include/pstl/parallel_impl.h: New file. 5416*fb8a8121Smrg * include/pstl/pstl_config.h: New file. 5417*fb8a8121Smrg * include/pstl/unseq_backend_simd.h: New file. 5418*fb8a8121Smrg * include/pstl/utils.h: New file. 5419*fb8a8121Smrg * include/std/algorithm: Include parallel algorithm implementations. 5420*fb8a8121Smrg * include/std/execution: New file. 5421*fb8a8121Smrg * include/std/memory: Include parallel algorithm implementations. 5422*fb8a8121Smrg * include/std/numeric: Include parallel algorithm implementations. 5423*fb8a8121Smrg * include/std/version: Add parallel algorithms feature test macro. 5424*fb8a8121Smrg * testsuite/util/pstl/pstl_test_config.h: New file. 5425*fb8a8121Smrg * testsuite/util/pstl/test_utils.h: New file. 5426*fb8a8121Smrg * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc: New file. 5427*fb8a8121Smrg * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: New file. 5428*fb8a8121Smrg * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc: New file. 5429*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: New file. 5430*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_merge/merge.cc: New file. 5431*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: New file. 5432*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: New file. 5433*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc: New file. 5434*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc: New file. 5435*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: New file. 5436*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: New file. 5437*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: New file. 5438*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: New file. 5439*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc: New file. 5440*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc: New file. 5441*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc: New file. 5442*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: New file. 5443*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: New file. 5444*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc: New file. 5445*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc: New file. 5446*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc: New file. 5447*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: New file. 5448*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: New file. 5449*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc: New file. 5450*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: New file. 5451*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: New file. 5452*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: New file. 5453*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: New file. 5454*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: New file. 5455*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: New file. 5456*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc: New file. 5457*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: New file. 5458*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc: New file. 5459*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc: New file. 5460*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: New file. 5461*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc: New file. 5462*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: New file. 5463*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc: New file. 5464*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: New file. 5465*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_sorting/includes.cc: New file. 5466*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: New file. 5467*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc: New file. 5468*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: New file. 5469*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: New file. 5470*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: New file. 5471*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc: New file. 5472*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_sorting/set.cc: New file. 5473*fb8a8121Smrg * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: New file. 5474*fb8a8121Smrg * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc: New file. 5475*fb8a8121Smrg * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: New file. 5476*fb8a8121Smrg * testsuite/26_numerics/pstl/numeric_ops/scan.cc: New file. 5477*fb8a8121Smrg * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: New file. 5478*fb8a8121Smrg * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: New file. 5479*fb8a8121Smrg * testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc: New file. 5480*fb8a8121Smrg * testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: New file. 5481*fb8a8121Smrg * testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc: New file. 5482*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: New file. 5483*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_merge/merge.cc: New file. 5484*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: New file. 5485*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: New file. 5486*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc: New file. 5487*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc: New file. 5488*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: New file. 5489*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: New file. 5490*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: New file. 5491*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: New file. 5492*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc: New file. 5493*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc: New file. 5494*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc: New file. 5495*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: New file. 5496*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: New file. 5497*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc: New file. 5498*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc: New file. 5499*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc: New file. 5500*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: New file. 5501*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: New file. 5502*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc: New file. 5503*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: New file. 5504*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: New file. 5505*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: New file. 5506*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: New file. 5507*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: New file. 5508*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: New file. 5509*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc: New file. 5510*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: New file. 5511*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc: New file. 5512*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc: New file. 5513*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: New file. 5514*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc: New file. 5515*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: New file. 5516*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc: New file. 5517*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: New file. 5518*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_sorting/includes.cc: New file. 5519*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: New file. 5520*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc: New file. 5521*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: New file. 5522*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: New file. 5523*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: New file. 5524*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc: New file. 5525*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_sorting/set.cc: New file. 5526*fb8a8121Smrg * testsuite/testsuite/25_algorithms/pstl/alg_sorting/sort.cc: New file. 5527*fb8a8121Smrg * testsuite/testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc: New file. 5528*fb8a8121Smrg * testsuite/testsuite/26_numerics/pstl/numeric_ops/reduce.cc: New file. 5529*fb8a8121Smrg * testsuite/testsuite/26_numerics/pstl/numeric_ops/scan.cc: New file. 5530*fb8a8121Smrg * testsuite/testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: New file. 5531*fb8a8121Smrg * testsuite/testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: New file. 5532*fb8a8121Smrg 5533*fb8a8121Smrg2019-03-21 Jonathan Wakely <jwakely@redhat.com> 5534*fb8a8121Smrg 5535*fb8a8121Smrg * include/c_compatibility/math.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__] 5536*fb8a8121Smrg (assoc_laguerre, assoc_laguerref, assoc_laguerrel, assoc_legendre) 5537*fb8a8121Smrg (assoc_legendref, assoc_legendrel, beta, betaf, betal, comp_ellint_1) 5538*fb8a8121Smrg (comp_ellint_1f, comp_ellint_1l, comp_ellint_2, comp_ellint_2f) 5539*fb8a8121Smrg (comp_ellint_2l, comp_ellint_3, comp_ellint_3f, comp_ellint_3l) 5540*fb8a8121Smrg (cyl_bessel_i, cyl_bessel_if, cyl_bessel_il, cyl_bessel_j) 5541*fb8a8121Smrg (cyl_bessel_jf, cyl_bessel_jl, cyl_bessel_k, cyl_bessel_kf) 5542*fb8a8121Smrg (cyl_bessel_kl, cyl_neumann, cyl_neumannf, cyl_neumannl, ellint_1) 5543*fb8a8121Smrg (ellint_1f, ellint_1l, ellint_2, ellint_2f, ellint_2l, ellint_3) 5544*fb8a8121Smrg (ellint_3f, ellint_3l, expint, expintf, expintl, hermite, hermitef) 5545*fb8a8121Smrg (hermitel, laguerre, laguerref, laguerrel, legendre, legendref) 5546*fb8a8121Smrg (legendrel, riemann_zeta, riemann_zetaf, riemann_zetal, sph_bessel) 5547*fb8a8121Smrg (sph_besself, sph_bessell, sph_legendre, sph_legendref, sph_legendrel) 5548*fb8a8121Smrg (sph_neumann, sph_neumannf, sph_neumannl): Only add using-declarations 5549*fb8a8121Smrg when the special functions IS is enabled, not for C++17. 5550*fb8a8121Smrg * testsuite/26_numerics/headers/cmath/functions_global_c++17.cc: 5551*fb8a8121Smrg Replace with ... 5552*fb8a8121Smrg * testsuite/26_numerics/headers/cmath/functions_global.cc: New test, 5553*fb8a8121Smrg without checks for special functions in C++17. 5554*fb8a8121Smrg * testsuite/26_numerics/headers/cmath/special_functions_global.cc: 5555*fb8a8121Smrg New test. 5556*fb8a8121Smrg 5557*fb8a8121Smrg PR libstdc++/88066 5558*fb8a8121Smrg * include/backward/hash_map: Use <> for includes not "". 5559*fb8a8121Smrg * include/backward/hash_set: Likewise. 5560*fb8a8121Smrg * include/backward/strstream: Likewise. 5561*fb8a8121Smrg * include/tr1/bessel_function.tcc: Likewise. 5562*fb8a8121Smrg * include/tr1/exp_integral.tcc: Likewise. 5563*fb8a8121Smrg * include/tr1/legendre_function.tcc: Likewise. 5564*fb8a8121Smrg * include/tr1/modified_bessel_func.tcc: Likewise. 5565*fb8a8121Smrg * include/tr1/riemann_zeta.tcc: Likewise. 5566*fb8a8121Smrg 5567*fb8a8121Smrg2019-03-19 Jonathan Wakely <jwakely@redhat.com> 5568*fb8a8121Smrg 5569*fb8a8121Smrg * doc/xml/manual/allocator.xml: Link to table documenting evolution 5570*fb8a8121Smrg of extension allocators. 5571*fb8a8121Smrg * doc/xml/manual/evolution.xml: Use angle brackets for header names. 5572*fb8a8121Smrg Document new headers in 7.2, 8.1 and 9.1 releases. 5573*fb8a8121Smrg * doc/xml/manual/using.xml: Adjust link target for new_allocator. 5574*fb8a8121Smrg * doc/html/*: Regenerate. 5575*fb8a8121Smrg 5576*fb8a8121Smrg2019-03-12 John David Anglin <dave.anglin@bell.net> 5577*fb8a8121Smrg 5578*fb8a8121Smrg PR libstdc++/89461 5579*fb8a8121Smrg * testsuite/lib/libstdc++.exp: Locate libatomic. 5580*fb8a8121Smrg * testsuite/lib/dg-options.exp (add_options_for_libatomic): New. 5581*fb8a8121Smrg * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Add 5582*fb8a8121Smrg libatomic options. 5583*fb8a8121Smrg * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise. 5584*fb8a8121Smrg * testsuite/experimental/net/timer/waitable/cons.cc: Likewise. 5585*fb8a8121Smrg * testsuite/experimental/net/timer/waitable/dest.cc: Likewise. 5586*fb8a8121Smrg * testsuite/experimental/net/timer/waitable/ops.cc: Likewise. 5587*fb8a8121Smrg 5588*fb8a8121Smrg2019-03-11 Jonathan Wakely <jwakely@redhat.com> 5589*fb8a8121Smrg 5590*fb8a8121Smrg PR libstdc++/89460 5591*fb8a8121Smrg * configure.ac: Check for sockatmark. 5592*fb8a8121Smrg * crossconfig.m4: Check for sockatmark. 5593*fb8a8121Smrg * config.h.in: Regenerate. 5594*fb8a8121Smrg * configure: Regenerate. 5595*fb8a8121Smrg * include/experimental/internet (address_v4::_S_hton): Rename 5596*fb8a8121Smrg overloaded functions to _S_hton_16 and _S_ntoh_16. 5597*fb8a8121Smrg (address_v4::_S_ntoh): Rename to _S_ntoh_16 and _S_ntoh_32. 5598*fb8a8121Smrg (basic_endpoint): Adjust calls to _S_hton and _S_ntoh. 5599*fb8a8121Smrg * include/experimental/socket (basic_socket::at_mark): Check 5600*fb8a8121Smrg _GLIBCXX_HAVE_SOCKATMARK. 5601*fb8a8121Smrg 5602*fb8a8121Smrg * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Use 5603*fb8a8121Smrg const variables instead of macros. 5604*fb8a8121Smrg 5605*fb8a8121Smrg PR libstdc++/89629 5606*fb8a8121Smrg * libsupc++/hash_bytes.cc [__SIZEOF_SIZE_T__ == 8] (_Hash_bytes): 5607*fb8a8121Smrg Use correct type for len_aligned. 5608*fb8a8121Smrg * testsuite/20_util/hash/89629.cc: New test. 5609*fb8a8121Smrg 5610*fb8a8121Smrg2019-03-11 Jakub Jelinek <jakub@redhat.com> 5611*fb8a8121Smrg 5612*fb8a8121Smrg PR libstdc++/89641 5613*fb8a8121Smrg * include/std/atomic (atomic<T>::store, atomic<T>::load, 5614*fb8a8121Smrg atomic<T>::exchange, atomic<T>::compare_exchange_weak, 5615*fb8a8121Smrg atomic<T>::compare_exchange_strong): Cast __m or __s and __f to int. 5616*fb8a8121Smrg * include/bits/atomic_base.h (__atomic_base<T>::operator++, 5617*fb8a8121Smrg __atomic_base<T>::operator--, __atomic_base<T>::operator+=, 5618*fb8a8121Smrg __atomic_base<T>::operator-=, __atomic_base<T>::operator&=, 5619*fb8a8121Smrg __atomic_base<T>::operator|=, __atomic_base<T>::operator^=, 5620*fb8a8121Smrg __atomic_base<T*>::operator++, __atomic_base<T*>::operator--, 5621*fb8a8121Smrg __atomic_base<T*>::operator+=, __atomic_base<T*>::operator-=): Cast 5622*fb8a8121Smrg memory_order_seq_cst to int. 5623*fb8a8121Smrg 5624*fb8a8121Smrg2019-03-08 Jonathan Wakely <jwakely@redhat.com> 5625*fb8a8121Smrg 5626*fb8a8121Smrg * doc/xml/manual/using.xml: Use link element instead of xref. 5627*fb8a8121Smrg * doc/html/*: Regenerate. 5628*fb8a8121Smrg 5629*fb8a8121Smrg * include/bits/fs_path.h (path::format): Add fixed underlying type. 5630*fb8a8121Smrg 5631*fb8a8121Smrg2019-03-08 François Dumont <fdumont@gcc.gnu.org> 5632*fb8a8121Smrg 5633*fb8a8121Smrg PR libstdc++/89477 5634*fb8a8121Smrg * include/debug/map.h (map): Use _RequireNotAllocator to constrain 5635*fb8a8121Smrg parameters in deduction guides. 5636*fb8a8121Smrg * include/debug/multimap.h (multimap): Likewise. 5637*fb8a8121Smrg * include/debug/set.h (multimap): Likewise. 5638*fb8a8121Smrg * include/debug/multiset.h (multimap): Likewise. 5639*fb8a8121Smrg * include/debug/unordered_map (unordered_map): Likewise. 5640*fb8a8121Smrg (unordered_multimap): Likewise. 5641*fb8a8121Smrg * include/debug/unordered_set (unordered_set): Likewise. 5642*fb8a8121Smrg (unordered_multiset): Likewise. 5643*fb8a8121Smrg 5644*fb8a8121Smrg PR libstdc++/89608 5645*fb8a8121Smrg * include/debug/unordered_map (unordered_map<>::_M_check_rehashed): 5646*fb8a8121Smrg Invalidate all iterators in case of rehash. 5647*fb8a8121Smrg (unordered_multimap<>::_M_check_rehashed): Likewise. 5648*fb8a8121Smrg * include/debug/unordered_set 5649*fb8a8121Smrg (unordered_set<>::_M_check_rehashed): Likewise. 5650*fb8a8121Smrg (unordered_multiset<>::_M_check_rehashed): Likewise. 5651*fb8a8121Smrg * testsuite/23_containers/unordered_set/debug/89608_neg.cc: New. 5652*fb8a8121Smrg 5653*fb8a8121Smrg2019-03-07 Andreas Schwab <schwab@suse.de> 5654*fb8a8121Smrg 5655*fb8a8121Smrg * config/abi/post/riscv64-linux-gnu: New directory. 5656*fb8a8121Smrg * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: New file. 5657*fb8a8121Smrg 5658*fb8a8121Smrg2019-03-07 Jonathan Wakely <jwakely@redhat.com> 5659*fb8a8121Smrg 5660*fb8a8121Smrg * testsuite/20_util/function_objects/bind_front/1.cc: Change from 5661*fb8a8121Smrg compile test to run. Fix typo. 5662*fb8a8121Smrg 5663*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Update C++20 status. 5664*fb8a8121Smrg * doc/html/*: Regenerate. 5665*fb8a8121Smrg 5666*fb8a8121Smrg P0356R5 Simplified partial function application 5667*fb8a8121Smrg * include/std/functional [C++20] (_Bind_front, _Bind_front_t): Define 5668*fb8a8121Smrg helpers for bind_front. 5669*fb8a8121Smrg (bind_front, __cpp_lib_bind_front): Define. 5670*fb8a8121Smrg * testsuite/20_util/function_objects/bind_front/1.cc: New test. 5671*fb8a8121Smrg 5672*fb8a8121Smrg2019-03-06 Jonathan Wakely <jwakely@redhat.com> 5673*fb8a8121Smrg 5674*fb8a8121Smrg * include/std/type_traits (__cpp_lib_bounded_array_traits): Define. 5675*fb8a8121Smrg * include/std/version (__cpp_lib_bounded_array_traits): Likewise. 5676*fb8a8121Smrg * testsuite/20_util/is_bounded_array/value.cc: Check for macro. 5677*fb8a8121Smrg * testsuite/20_util/is_unbounded_array/value.cc: Likewise. 5678*fb8a8121Smrg 5679*fb8a8121Smrg2019-03-06 Edward Smith-Rowland <3dw4rd@verizon.net> 5680*fb8a8121Smrg 5681*fb8a8121Smrg PR libstdc++/86655 - std::assoc_legendre should not constrain 5682*fb8a8121Smrg the value of m (or x). 5683*fb8a8121Smrg * include/tr1/legendre_function.tcc (__assoc_legendre_p, 5684*fb8a8121Smrg __sph_legendre): If degree > order Don't throw, return 0. 5685*fb8a8121Smrg (__legendre_p, __assoc_legendre_p): Don't constrain x either. 5686*fb8a8121Smrg * testsuite/special_functions/02_assoc_legendre/pr86655.cc: New test. 5687*fb8a8121Smrg * testsuite/special_functions/20_sph_legendre/pr86655.cc: New test. 5688*fb8a8121Smrg * testsuite/tr1/5_numerical_facilities/special_functions/ 5689*fb8a8121Smrg 02_assoc_legendre/pr86655.cc: New test. 5690*fb8a8121Smrg * testsuite/tr1/5_numerical_facilities/special_functions/ 5691*fb8a8121Smrg 22_sph_legendre/pr86655.cc: New test. 5692*fb8a8121Smrg 5693*fb8a8121Smrg2019-03-06 Ville Voutilainen <ville.voutilainen@gmail.com> 5694*fb8a8121Smrg 5695*fb8a8121Smrg Rewrite variant. 5696*fb8a8121Smrg Also PR libstdc++/85517 5697*fb8a8121Smrg * include/std/variant (__do_visit): New. 5698*fb8a8121Smrg (__variant_cast): Likewise. 5699*fb8a8121Smrg (__variant_cookie): Likewise. 5700*fb8a8121Smrg (__erased_*): Remove. 5701*fb8a8121Smrg (_Variant_storage::_S_vtable): Likewise. 5702*fb8a8121Smrg (_Variant_storage::__M_reset_impl): Adjust to use __do_visit. 5703*fb8a8121Smrg (_Variant_storage::__M_reset): Adjust. 5704*fb8a8121Smrg (__variant_construct): New. 5705*fb8a8121Smrg (_Copy_ctor_base(const _Copy_ctor_base&)): Adjust to use 5706*fb8a8121Smrg __variant_construct. 5707*fb8a8121Smrg (_Move_ctor_base(_Move_ctor_base&&)): Likewise. 5708*fb8a8121Smrg (_Move_ctor_base::__M_destructive_copy): New. 5709*fb8a8121Smrg (_Move_ctor_base::__M_destructive_move): Adjust to use 5710*fb8a8121Smrg __variant_construct. 5711*fb8a8121Smrg (_Copy_assign_base::operator=): Adjust to use __do_visit. 5712*fb8a8121Smrg (_Copy_assign_alias): Adjust to check both copy assignment 5713*fb8a8121Smrg and copy construction for triviality. 5714*fb8a8121Smrg (_Move_assign_base::operator=): Adjust to use __do_visit. 5715*fb8a8121Smrg (_Multi_array): Add support for visitors that accept and return 5716*fb8a8121Smrg a __variant_cookie. 5717*fb8a8121Smrg (__gen_vtable_impl::_S_apply_all_alts): Likewise. 5718*fb8a8121Smrg (__gen_vtable_impl::_S_apply_single_alt): Likewise. 5719*fb8a8121Smrg (__gen_vtable_impl::__element_by_index_or_cookie): New. Generate 5720*fb8a8121Smrg a __variant_cookie temporary for a variant that is valueless and.. 5721*fb8a8121Smrg (__gen_vtable_impl::__visit_invoke): ..adjust here. 5722*fb8a8121Smrg (__gen_vtable::_Array_type): Conditionally make space for 5723*fb8a8121Smrg the __variant_cookie visitor case. 5724*fb8a8121Smrg (__variant_construct_by_index): New. 5725*fb8a8121Smrg (get_if): Adjust to use std::addressof. 5726*fb8a8121Smrg (relops): Adjust to use __do_visit. 5727*fb8a8121Smrg (variant): Add __variant_cast and __variant_construct_by_index 5728*fb8a8121Smrg as friends. 5729*fb8a8121Smrg (variant::emplace): Use _M_reset() and __variant_construct_by_index 5730*fb8a8121Smrg instead of self-destruction. 5731*fb8a8121Smrg (variant::swap): Adjust to use __do_visit. 5732*fb8a8121Smrg (visit): Reimplement in terms of __do_visit. 5733*fb8a8121Smrg (__variant_hash_call_base_impl::operator()): Adjust to use __do_visit. 5734*fb8a8121Smrg * testsuite/20_util/variant/compile.cc: Adjust. 5735*fb8a8121Smrg * testsuite/20_util/variant/run.cc: Likewise. 5736*fb8a8121Smrg 5737*fb8a8121Smrg2019-03-06 Jonathan Wakely <jwakely@redhat.com> 5738*fb8a8121Smrg 5739*fb8a8121Smrg * include/bits/c++config.h (_cpp_lib_char8_t): Add L suffix to 5740*fb8a8121Smrg constant. 5741*fb8a8121Smrg * testsuite/experimental/feat-char8_t.cc: Likewise. 5742*fb8a8121Smrg 5743*fb8a8121Smrg * include/std/type_traits [C++20] (is_bounded_array) 5744*fb8a8121Smrg (is_unbounded_array, is_bounded_array_v, is_unbounded_array_v): 5745*fb8a8121Smrg Define. 5746*fb8a8121Smrg * testsuite/20_util/is_bounded_array/requirements/ 5747*fb8a8121Smrg explicit_instantiation.cc: New test. 5748*fb8a8121Smrg * testsuite/20_util/is_bounded_array/requirements/typedefs.cc: New 5749*fb8a8121Smrg test. 5750*fb8a8121Smrg * testsuite/20_util/is_bounded_array/value.cc: New test. 5751*fb8a8121Smrg * testsuite/20_util/is_unbounded_array/requirements/ 5752*fb8a8121Smrg explicit_instantiation.cc: New test. 5753*fb8a8121Smrg * testsuite/20_util/is_unbounded_array/requirements/typedefs.cc: New 5754*fb8a8121Smrg * test. 5755*fb8a8121Smrg * testsuite/20_util/is_unbounded_array/value.cc: New test. 5756*fb8a8121Smrg 5757*fb8a8121Smrg * include/bits/ptr_traits.h [C++20] (pointer_traits<T*>::pointer_to): 5758*fb8a8121Smrg Add constexpr. 5759*fb8a8121Smrg * testsuite/20_util/pointer_traits/pointer_to_constexpr.cc: New test. 5760*fb8a8121Smrg 5761*fb8a8121Smrg2019-03-05 Jonathan Wakely <jwakely@redhat.com> 5762*fb8a8121Smrg 5763*fb8a8121Smrg * include/c_compatibility/math.h [C++20] (lerp): Add using 5764*fb8a8121Smrg declaration. 5765*fb8a8121Smrg * include/c_global/cmath [C++20] (__cpp_lib_interpolate): Define. 5766*fb8a8121Smrg (__lerp): Define function template to implement lerp. 5767*fb8a8121Smrg (lerp(float, float, float), lerp(double, double, double)) 5768*fb8a8121Smrg (lerp(long double, long double, long double)): Define for C++20. 5769*fb8a8121Smrg * include/std/numeric [C++20] (__cpp_lib_interpolate): Define. 5770*fb8a8121Smrg (midpoint(T, T), midpoint(T*, T*)): Define. 5771*fb8a8121Smrg * include/std::version [C++20] (__cpp_lib_interpolate): Define. 5772*fb8a8121Smrg * testsuite/26_numerics/lerp.cc: New test. 5773*fb8a8121Smrg * testsuite/26_numerics/midpoint/floating.cc: New test. 5774*fb8a8121Smrg * testsuite/26_numerics/midpoint/integral.cc: New test. 5775*fb8a8121Smrg * testsuite/26_numerics/midpoint/pointer.cc: New test. 5776*fb8a8121Smrg 5777*fb8a8121Smrg2019-03-04 Edward Smith-Rowland <3dw4rd@verizon.net> 5778*fb8a8121Smrg 5779*fb8a8121Smrg PR libstdc++/88996 Implement P0439R0 5780*fb8a8121Smrg Make std::memory_order a scoped enumeration. 5781*fb8a8121Smrg * include/bits/atomic_base.h: For C++20 make memory_order a scoped enum, 5782*fb8a8121Smrg add variables for the old enumerators. Adjust calls. 5783*fb8a8121Smrg * testsuite/29_atomics/headers/atomic/types_std_c++2a.cc: New test. 5784*fb8a8121Smrg * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc: New test. 5785*fb8a8121Smrg 5786*fb8a8121Smrg2019-03-04 Jonathan Wakely <jwakely@redhat.com> 5787*fb8a8121Smrg 5788*fb8a8121Smrg * testsuite/26_numerics/bit/bitops.rot/rotl.cc: Remove bogus dg-do 5789*fb8a8121Smrg directive. 5790*fb8a8121Smrg 5791*fb8a8121Smrg * include/std/memory_resource (polymorphic_allocator): Add default 5792*fb8a8121Smrg template argument for C++20. 5793*fb8a8121Smrg (polymorphic_allocator::allocate_bytes) 5794*fb8a8121Smrg (polymorphic_allocator::deallocate_bytes) 5795*fb8a8121Smrg (polymorphic_allocator::allocate_object) 5796*fb8a8121Smrg (polymorphic_allocator::deallocate_object) 5797*fb8a8121Smrg (polymorphic_allocator::new_object) 5798*fb8a8121Smrg (polymorphic_allocator::delete_object): New member functions for 5799*fb8a8121Smrg C++20. 5800*fb8a8121Smrg * testsuite/20_util/polymorphic_allocator/allocate_object.cc: New 5801*fb8a8121Smrg test. 5802*fb8a8121Smrg 5803*fb8a8121Smrg2019-03-03 Jonathan Wakely <jwakely@redhat.com> 5804*fb8a8121Smrg 5805*fb8a8121Smrg PR libstdc++/89562 5806*fb8a8121Smrg * src/filesystem/ops-common.h (do_copy_file): Open files in binary 5807*fb8a8121Smrg mode for mingw. 5808*fb8a8121Smrg 5809*fb8a8121Smrg2019-03-01 Jonathan Wakely <jwakely@redhat.com> 5810*fb8a8121Smrg 5811*fb8a8121Smrg * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource) 5812*fb8a8121Smrg [!__cpp_sized_deallocation]: Do not pass size to operator delete. 5813*fb8a8121Smrg 5814*fb8a8121Smrg * include/std/memory (uses_allocator_construction_args): New set of 5815*fb8a8121Smrg overloaded functions. 5816*fb8a8121Smrg (make_obj_using_allocator, uninitialized_construct_using_allocator): 5817*fb8a8121Smrg New functions. 5818*fb8a8121Smrg * include/std/memory_resource (polymorphic_allocator::construct) 5819*fb8a8121Smrg [__cplusplus > 201703l]: Replace all overloads with a single function 5820*fb8a8121Smrg using uses_allocator_construction_args. 5821*fb8a8121Smrg * testsuite/20_util/polymorphic_allocator/construct_c++2a.cc: New 5822*fb8a8121Smrg test. 5823*fb8a8121Smrg * testsuite/20_util/uses_allocator/make_obj.cc: New test. 5824*fb8a8121Smrg 5825*fb8a8121Smrg2019-02-27 Jonathan Wakely <jwakely@redhat.com> 5826*fb8a8121Smrg 5827*fb8a8121Smrg PR libstdc++/89466 5828*fb8a8121Smrg * acinclude.m4 (GLIBCXX_CONFIGURE_DOCBOOK): Reorder check for local 5829*fb8a8121Smrg stylesheet directories before check for xsltproc. Try to use 5830*fb8a8121Smrg xmlcatalog to find local stylesheet directory before trying hardcoded 5831*fb8a8121Smrg paths. Add path used by suse to hardcoded paths. Adjust xsltproc 5832*fb8a8121Smrg check to look for the same stylesheet as doc/Makefile.am uses. Don't 5833*fb8a8121Smrg use xsltproc if xmlcatalog fails to find a local stylesheet. 5834*fb8a8121Smrg * configure.ac: Check for xmlcatalog. 5835*fb8a8121Smrg * Makefile.in: Regenerate. 5836*fb8a8121Smrg * configure: Likewise. 5837*fb8a8121Smrg * doc/Makefile.in: Likewise. 5838*fb8a8121Smrg * include/Makefile.in: Likewise. 5839*fb8a8121Smrg * libsupc++/Makefile.in: Likewise. 5840*fb8a8121Smrg * po/Makefile.in: Likewise. 5841*fb8a8121Smrg * python/Makefile.in: Likewise. 5842*fb8a8121Smrg * src/Makefile.in: Likewise. 5843*fb8a8121Smrg * src/c++11/Makefile.in: Likewise. 5844*fb8a8121Smrg * src/c++17/Makefile.in: Likewise. 5845*fb8a8121Smrg * src/c++98/Makefile.in: Likewise. 5846*fb8a8121Smrg * src/filesystem/Makefile.in: Likewise. 5847*fb8a8121Smrg * testsuite/Makefile.in: Likewise. 5848*fb8a8121Smrg 5849*fb8a8121Smrg2019-02-26 Jonathan Wakely <jwakely@redhat.com> 5850*fb8a8121Smrg 5851*fb8a8121Smrg PR libstdc++/89477 5852*fb8a8121Smrg * include/bits/alloc_traits.h (_RequireNotAllocator): New helper for 5853*fb8a8121Smrg container deduction guides. 5854*fb8a8121Smrg * include/bits/hashtable.h (_RequireNotAllocatorOrIntegral): Likewise. 5855*fb8a8121Smrg * include/bits/stl_map.h (map): Use _RequireNotAllocator to constrain 5856*fb8a8121Smrg parameters in deduction guides. 5857*fb8a8121Smrg * include/bits/stl_multimap.h (multimap): Likewise. 5858*fb8a8121Smrg * include/bits/stl_multiset.h (multiset): Likewise. 5859*fb8a8121Smrg * include/bits/stl_queue.h (queue, priority_queue): Likewise. 5860*fb8a8121Smrg * include/bits/stl_set.h (set): Likewise. 5861*fb8a8121Smrg * include/bits/stl_stack.h (stack): Likewise. 5862*fb8a8121Smrg * include/bits/unordered_map.h (unordered_map, unordered_multimap): 5863*fb8a8121Smrg use _RequireNotAllocator and _RequireNotAllocatorOrIntegral to 5864*fb8a8121Smrg constrain parameters in deduction guides. 5865*fb8a8121Smrg * include/bits/unordered_set.h (unordered_set, unordered_multiset): 5866*fb8a8121Smrg Likewise. 5867*fb8a8121Smrg * testsuite/23_containers/map/cons/deduction.cc: Test additional 5868*fb8a8121Smrg deduction cases. 5869*fb8a8121Smrg * testsuite/23_containers/multiset/cons/deduction.cc: Likewise. 5870*fb8a8121Smrg * testsuite/23_containers/set/cons/deduction.cc: Likewise. 5871*fb8a8121Smrg * testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise. 5872*fb8a8121Smrg * testsuite/23_containers/unordered_multimap/cons/deduction.cc: 5873*fb8a8121Smrg Likewise. 5874*fb8a8121Smrg * testsuite/23_containers/unordered_multiset/cons/deduction.cc: 5875*fb8a8121Smrg Likewise. 5876*fb8a8121Smrg * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise. 5877*fb8a8121Smrg 5878*fb8a8121Smrg PR libstdc++/89416 5879*fb8a8121Smrg * include/bits/alloc_traits.h (__is_alloc_insertable_impl): Change 5880*fb8a8121Smrg to class template and partial specialization using void_t. 5881*fb8a8121Smrg (__is_copy_insertable, __is_move_insertable): Adjust base class. 5882*fb8a8121Smrg 5883*fb8a8121Smrg2019-02-24 Jonathan Wakely <jwakely@redhat.com> 5884*fb8a8121Smrg 5885*fb8a8121Smrg PR libstdc++/89416 5886*fb8a8121Smrg * include/bits/alloc_traits.h (__is_alloc_insertable_impl): Make 5887*fb8a8121Smrg copy and move members public. 5888*fb8a8121Smrg 5889*fb8a8121Smrg2019-02-23 Jonathan Wakely <jwakely@redhat.com> 5890*fb8a8121Smrg 5891*fb8a8121Smrg * include/std/type_traits (__underlying_type_impl): New helper to 5892*fb8a8121Smrg make underlying_type SFINAE-friendly. 5893*fb8a8121Smrg (underlying_type): Derive from __underlying_type_impl. 5894*fb8a8121Smrg * testsuite/20_util/underlying_type/requirements/typedefs-3.cc: New 5895*fb8a8121Smrg test. 5896*fb8a8121Smrg 5897*fb8a8121Smrg PR libstdc++/89446 5898*fb8a8121Smrg * include/bits/char_traits.h (__constant_char_array): Check index is 5899*fb8a8121Smrg in range before dereferencing. 5900*fb8a8121Smrg (char_traits<char>::compare, char_traits<char>::find) 5901*fb8a8121Smrg (char_traits<char8_t>::compare, char_traits<char8_t>::find): Return 5902*fb8a8121Smrg immediately if n is zero. 5903*fb8a8121Smrg (char_traits<wchar_t>::compare, char_traits<wchar_t>::find): Likewise. 5904*fb8a8121Smrg Remove workarounds for PR 67026. 5905*fb8a8121Smrg * testsuite/21_strings/basic_string_view/operators/char/89446.cc: 5906*fb8a8121Smrg New test. 5907*fb8a8121Smrg * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc: 5908*fb8a8121Smrg New test. 5909*fb8a8121Smrg 5910*fb8a8121Smrg2019-02-22 Eric Botcazou <ebotcazou@adacore.com> 5911*fb8a8121Smrg 5912*fb8a8121Smrg * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Adjust. 5913*fb8a8121Smrg * config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise. 5914*fb8a8121Smrg 5915*fb8a8121Smrg2019-02-22 Jakub Jelinek <jakub@redhat.com> 5916*fb8a8121Smrg 5917*fb8a8121Smrg PR libstdc++/89402 5918*fb8a8121Smrg * src/c++98/compatibility-ldbl.cc (_ZNKSt4hashIeEclEe): Change return 5919*fb8a8121Smrg type to std::size_t and argument to type to long double. 5920*fb8a8121Smrg 5921*fb8a8121Smrg2019-02-22 Eric Botcazou <ebotcazou@adacore.com> 5922*fb8a8121Smrg 5923*fb8a8121Smrg * configure.host (abi_baseline_pair): Adjust for SPARC64/Linux. 5924*fb8a8121Smrg * config/abi/post/sparc64-linux-gnu: New directory. 5925*fb8a8121Smrg * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: New file. 5926*fb8a8121Smrg * config/abi/post/sparc64-linux-gnu/32: New directory. 5927*fb8a8121Smrg * config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: New file. 5928*fb8a8121Smrg 5929*fb8a8121Smrg2019-02-21 Jonathan Wakely <jwakely@redhat.com> 5930*fb8a8121Smrg 5931*fb8a8121Smrg * testsuite/29_atomics/headers/atomic/types_std_c++20.cc: New test. 5932*fb8a8121Smrg * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc: New 5933*fb8a8121Smrg test. 5934*fb8a8121Smrg 5935*fb8a8121Smrg2019-02-22 Tom Honermann <tom@honermann.net> 5936*fb8a8121Smrg 5937*fb8a8121Smrg * python/libstdcxx/v6/printers.py (register_type_printers): Add type 5938*fb8a8121Smrg printers for u8string and u8string_view. 5939*fb8a8121Smrg 5940*fb8a8121Smrg2019-02-22 Tom Honermann <tom@honermann.net> 5941*fb8a8121Smrg 5942*fb8a8121Smrg * testsuite/18_support/byte/ops.cc: Validate 5943*fb8a8121Smrg std::to_integer<char8_t>, std::to_integer<char16_t>, and 5944*fb8a8121Smrg std::to_integer<char32_t>. 5945*fb8a8121Smrg * testsuite/18_support/numeric_limits/dr559.cc: Validate 5946*fb8a8121Smrg std::numeric_limits<char8_t>. 5947*fb8a8121Smrg * testsuite/18_support/numeric_limits/lowest.cc: Validate 5948*fb8a8121Smrg std::numeric_limits<char8_t>::lowest(). 5949*fb8a8121Smrg * testsuite/18_support/numeric_limits/max_digits10.cc: Validate 5950*fb8a8121Smrg std::numeric_limits<char8_t>::max_digits10. 5951*fb8a8121Smrg * testsuite/18_support/type_info/fundamental.cc: Validate 5952*fb8a8121Smrg typeinfo for char8_t. 5953*fb8a8121Smrg * testsuite/20_util/from_chars/1_c++20_neg.cc: New test, validating 5954*fb8a8121Smrg std::from_chars with char8_t. 5955*fb8a8121Smrg * testsuite/20_util/hash/requirements/explicit_instantiation.cc: 5956*fb8a8121Smrg Validate explicit instantiation of std::hash<char8_t>. 5957*fb8a8121Smrg * testsuite/20_util/is_integral/value.cc: Validate 5958*fb8a8121Smrg std::is_integral<char8_t>. 5959*fb8a8121Smrg * testsuite/20_util/make_signed/requirements/typedefs-4.cc: 5960*fb8a8121Smrg Validate std::make_signed<char8_t>. 5961*fb8a8121Smrg * testsuite/21_strings/basic_string/cons/char/deduction.cc: 5962*fb8a8121Smrg Validate u8string construction from char8_t sources. 5963*fb8a8121Smrg * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Validate 5964*fb8a8121Smrg std::pmr::u8string. 5965*fb8a8121Smrg * testsuite/21_strings/basic_string_view/operations/compare/ 5966*fb8a8121Smrg char/70483.cc: Validate substr operations on u8string_view. 5967*fb8a8121Smrg * testsuite/21_strings/basic_string_view/typedefs.cc: Validate that 5968*fb8a8121Smrg the u8string_view typedef is defined. 5969*fb8a8121Smrg * testsuite/21_strings/char_traits/requirements/ 5970*fb8a8121Smrg constexpr_functions.cc: Validate char_traits<char8_t> constexpr 5971*fb8a8121Smrg member functions. 5972*fb8a8121Smrg * testsuite/21_strings/char_traits/requirements/ 5973*fb8a8121Smrg constexpr_functions_c++17.cc: Validate char_traits<char8_t> C++17 5974*fb8a8121Smrg constexpr member functions. 5975*fb8a8121Smrg * testsuite/21_strings/headers/string/types_std_c++0x.cc: Validate 5976*fb8a8121Smrg that the u8string typedef is defined. 5977*fb8a8121Smrg * testsuite/22_locale/locale/cons/unicode.cc: Validate the presence 5978*fb8a8121Smrg of the std::codecvt<char16_t, char8_t, std::mbstate_t> and 5979*fb8a8121Smrg std::codecvt<char32_t, char8_t, std::mbstate_t> facets. 5980*fb8a8121Smrg * testsuite/29_atomics/atomic/cons/assign_neg.cc: Update line 5981*fb8a8121Smrg numbers. 5982*fb8a8121Smrg * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise. 5983*fb8a8121Smrg * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: 5984*fb8a8121Smrg Likewise. 5985*fb8a8121Smrg * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise. 5986*fb8a8121Smrg * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: 5987*fb8a8121Smrg Validate std::atomic<char8_t>::is_always_lock_free 5988*fb8a8121Smrg * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc: 5989*fb8a8121Smrg Update line numbers. 5990*fb8a8121Smrg * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc: 5991*fb8a8121Smrg Likewise. 5992*fb8a8121Smrg * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc: 5993*fb8a8121Smrg Likewise. 5994*fb8a8121Smrg * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc: 5995*fb8a8121Smrg Validate std::experimental::pmr::u8string. 5996*fb8a8121Smrg * testsuite/experimental/string_view/typedefs.cc: Validate that the 5997*fb8a8121Smrg u8string_view typedef is defined. 5998*fb8a8121Smrg * testsuite/util/testsuite_common_types.h: Add char8_t, char16_t and 5999*fb8a8121Smrg char32_t to the typelists. 6000*fb8a8121Smrg 6001*fb8a8121Smrg2019-02-22 Tom Honermann <tom@honermann.net> 6002*fb8a8121Smrg 6003*fb8a8121Smrg * include/ext/typelist.h: Constrain a partial specialization of 6004*fb8a8121Smrg typelist::detail::append_ to only match chain<T1,T2>. 6005*fb8a8121Smrg 6006*fb8a8121Smrg2019-02-21 Jonathan Wakely <jwakely@redhat.com> 6007*fb8a8121Smrg 6008*fb8a8121Smrg PR libstdc++/89416 6009*fb8a8121Smrg * include/bits/alloc_traits.h (__is_alloc_insertable_impl): Replace 6010*fb8a8121Smrg class template with class. Replace move and copy member types with 6011*fb8a8121Smrg member alias templates, so they are only instantiated when needed. 6012*fb8a8121Smrg (__is_copy_insertable, __is_move_insertable): Adjust base class. 6013*fb8a8121Smrg * testsuite/23_containers/vector/modifiers/push_back/89130.cc: Enable 6014*fb8a8121Smrg test for C++11/14/17 as well. 6015*fb8a8121Smrg * testsuite/23_containers/vector/modifiers/push_back/89416.cc: New 6016*fb8a8121Smrg test. 6017*fb8a8121Smrg 6018*fb8a8121Smrg2019-02-20 Jakub Jelinek <jakub@redhat.com> 6019*fb8a8121Smrg 6020*fb8a8121Smrg PR libstdc++/89402 6021*fb8a8121Smrg * src/c++98/compatibility-ldbl.cc (_ZNKSt4hashIeEclEe): Add 6022*fb8a8121Smrg _GLIBCXX_PURE to the alias declaration. 6023*fb8a8121Smrg 6024*fb8a8121Smrg2019-02-19 Jonathan Wakely <jwakely@redhat.com> 6025*fb8a8121Smrg 6026*fb8a8121Smrg * testsuite/21_strings/basic_string/literals/types.cc 6027*fb8a8121Smrg [_GLIBCXX_USE_CHAR8_T]: Adjust expected string type for u8 literal. 6028*fb8a8121Smrg * testsuite/21_strings/basic_string/literals/values.cc 6029*fb8a8121Smrg [_GLIBCXX_USE_CHAR8_T]: Likewise. 6030*fb8a8121Smrg * testsuite/22_locale/codecvt/char16_t.cc: Adjust for u8 literals 6031*fb8a8121Smrg potentially having different type. 6032*fb8a8121Smrg * testsuite/22_locale/codecvt/char32_t.cc: Likewise. 6033*fb8a8121Smrg * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: Cast u8 literal 6034*fb8a8121Smrg to char. 6035*fb8a8121Smrg * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: Likewise. 6036*fb8a8121Smrg * testsuite/22_locale/codecvt/utf8.cc: Likewise. 6037*fb8a8121Smrg * testsuite/22_locale/conversions/string/2.cc: Remove u8 prefix from 6038*fb8a8121Smrg string literals only using basic character set. 6039*fb8a8121Smrg * testsuite/22_locale/conversions/string/3.cc: Likewise. Cast other 6040*fb8a8121Smrg u8 literals to char. 6041*fb8a8121Smrg * testsuite/29_atomics/headers/atomic/macros.cc [_GLIBCXX_USE_CHAR8_T]: 6042*fb8a8121Smrg Test ATOMIC_CHAR8_T_LOCK_FREE. 6043*fb8a8121Smrg Add missing #error to ATOMIC_CHAR16_T_LOCK_FREE test. 6044*fb8a8121Smrg * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc 6045*fb8a8121Smrg [_GLIBCXX_USE_CHAR8_T]: Check for std::atomic_char8_t. 6046*fb8a8121Smrg * testsuite/experimental/string_view/literals/types.cc 6047*fb8a8121Smrg [_GLIBCXX_USE_CHAR8_T]: Adjust expected string_view type for u8 6048*fb8a8121Smrg literal. 6049*fb8a8121Smrg * testsuite/experimental/string_view/literals/values.cc 6050*fb8a8121Smrg [_GLIBCXX_USE_CHAR8_T]: Likewise. 6051*fb8a8121Smrg 6052*fb8a8121Smrg2019-02-19 Tom Honermann <tom@honermann.net> 6053*fb8a8121Smrg 6054*fb8a8121Smrg * testsuite/18_support/numeric_limits/char8_t.cc: New test cloned 6055*fb8a8121Smrg from char16_32_t.cc; validates numeric_limits<char8_t>. 6056*fb8a8121Smrg * testsuite/21_strings/basic_string/literals/types-char8_t.cc: New 6057*fb8a8121Smrg test cloned from types.cc; validates operator""s for char8_t 6058*fb8a8121Smrg returns u8string. 6059*fb8a8121Smrg * testsuite/21_strings/basic_string/literals/values-char8_t.cc: New 6060*fb8a8121Smrg test cloned from values.cc; validates construction and comparison 6061*fb8a8121Smrg of u8string values. 6062*fb8a8121Smrg * testsuite/21_strings/basic_string/requirements/ 6063*fb8a8121Smrg /explicit_instantiation/char8_t/1.cc: New test cloned from 6064*fb8a8121Smrg char16_t/1.cc; validates explicit instantiation of 6065*fb8a8121Smrg basic_string<char8_t>. 6066*fb8a8121Smrg * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc: 6067*fb8a8121Smrg New test cloned from types.cc; validates operator""sv for char8_t 6068*fb8a8121Smrg returns u8string_view. 6069*fb8a8121Smrg * testsuite/21_strings/basic_string_view/literals/ 6070*fb8a8121Smrg values-char8_t.cc: New test cloned from values.cc; validates 6071*fb8a8121Smrg construction and comparison of u8string_view values. 6072*fb8a8121Smrg * testsuite/21_strings/basic_string_view/requirements/ 6073*fb8a8121Smrg explicit_instantiation/char8_t/1.cc: New test cloned from 6074*fb8a8121Smrg char16_t/1.cc; validates explicit instantiation of 6075*fb8a8121Smrg basic_string_view<char8_t>. 6076*fb8a8121Smrg * testsuite/21_strings/char_traits/requirements/char8_t/65049.cc: 6077*fb8a8121Smrg New test cloned from char16_t/65049.cc; validates that 6078*fb8a8121Smrg char_traits<char8_t> is not vulnerable to the concerns in PR65049. 6079*fb8a8121Smrg * testsuite/21_strings/char_traits/requirements/char8_t/ 6080*fb8a8121Smrg typedefs.cc: New test cloned from char16_t/typedefs.cc; validates 6081*fb8a8121Smrg that char_traits<char8_t> member typedefs are present and correct. 6082*fb8a8121Smrg * testsuite/21_strings/char_traits/requirements/ 6083*fb8a8121Smrg explicit_instantiation/char8_t/1.cc: New test cloned from 6084*fb8a8121Smrg char16_t/1.cc; validates explicit instantiation of 6085*fb8a8121Smrg char_traits<char8_t>. 6086*fb8a8121Smrg * testsuite/22_locale/codecvt/char16_t-char8_t.cc: New test cloned 6087*fb8a8121Smrg from char16_t.cc: validates 6088*fb8a8121Smrg codecvt<char16_t, char8_t, mbstate_t>. 6089*fb8a8121Smrg * testsuite/22_locale/codecvt/char32_t-char8_t.cc: New test cloned 6090*fb8a8121Smrg from char32_t.cc: validates 6091*fb8a8121Smrg codecvt<char32_t, char8_t, mbstate_t>. 6092*fb8a8121Smrg * testsuite/22_locale/codecvt/utf8-char8_t.cc: New test cloned from 6093*fb8a8121Smrg utf8.cc; validates codecvt<char16_t, char8_t, std::mbstate_t> and 6094*fb8a8121Smrg codecvt<char32_t, char8_t, std::mbstate_t>. 6095*fb8a8121Smrg * testsuite/27_io/filesystem/path/native/string-char8_t.cc: New 6096*fb8a8121Smrg test cloned from string.cc; validates filesystem::path construction 6097*fb8a8121Smrg from char8_t input. 6098*fb8a8121Smrg * testsuite/experimental/feat-char8_t.cc: New test; validates that 6099*fb8a8121Smrg the __cpp_lib_char8_t feature test macro is defined with the 6100*fb8a8121Smrg correct value. 6101*fb8a8121Smrg * testsuite/experimental/filesystem/path/native/string-char8_t.cc: 6102*fb8a8121Smrg New test cloned from string.cc; validates filesystem::path 6103*fb8a8121Smrg construction from char8_t input. 6104*fb8a8121Smrg * testsuite/experimental/string_view/literals/types-char8_t.cc: New 6105*fb8a8121Smrg test cloned from types.cc; validates operator""sv for char8_t 6106*fb8a8121Smrg returns u8string_view. 6107*fb8a8121Smrg * testsuite/experimental/string_view/literals/values-char8_t.cc: 6108*fb8a8121Smrg New test cloned from values.cc; validates construction and 6109*fb8a8121Smrg comparison of u8string_view values. 6110*fb8a8121Smrg * testsuite/experimental/string_view/requirements/ 6111*fb8a8121Smrg explicit_instantiation/char8_t/1.cc: New test cloned from 6112*fb8a8121Smrg char16_t/1.cc; validates explicit instantiation of 6113*fb8a8121Smrg basic_string_view<char8_t>. 6114*fb8a8121Smrg * testsuite/ext/char8_t/atomic-1.cc: New test; validates that 6115*fb8a8121Smrg ATOMIC_CHAR8_T_LOCK_FREE is not defined if char8_t support is not 6116*fb8a8121Smrg enabled. 6117*fb8a8121Smrg 6118*fb8a8121Smrg2019-02-19 Tom Honermann <tom@honermann.net> 6119*fb8a8121Smrg 6120*fb8a8121Smrg P0482R5 char8_t: Standard library support 6121*fb8a8121Smrg * config/abi/pre/gnu-versioned-namespace.ver (CXXABI_2.0): Add 6122*fb8a8121Smrg typeinfo symbols for char8_t. 6123*fb8a8121Smrg * config/abi/pre/gnu.ver: Add CXXABI_1.3.12. 6124*fb8a8121Smrg (GLIBCXX_3.4.26): Add symbols for specializations of 6125*fb8a8121Smrg numeric_limits and codecvt that involve char8_t. 6126*fb8a8121Smrg (CXXABI_1.3.12): Add typeinfo symbols for char8_t. 6127*fb8a8121Smrg * include/bits/atomic_base.h: Add atomic_char8_t. 6128*fb8a8121Smrg * include/bits/basic_string.h: Add std::hash<u8string> and 6129*fb8a8121Smrg operator""s(const char8_t*, size_t). 6130*fb8a8121Smrg * include/bits/c++config: Define _GLIBCXX_USE_CHAR8_T and 6131*fb8a8121Smrg __cpp_lib_char8_t. 6132*fb8a8121Smrg * include/bits/char_traits.h: Add char_traits<char8_t>. 6133*fb8a8121Smrg * include/bits/codecvt.h: Add 6134*fb8a8121Smrg codecvt<char16_t, char8_t, mbstate_t>, 6135*fb8a8121Smrg codecvt<char32_t, char8_t, mbstate_t>, 6136*fb8a8121Smrg codecvt_byname<char16_t, char8_t, mbstate_t>, and 6137*fb8a8121Smrg codecvt_byname<char32_t, char8_t, mbstate_t>. 6138*fb8a8121Smrg * include/bits/cpp_type_traits.h: Add __is_integer<char8_t> to 6139*fb8a8121Smrg recognize char8_t as an integral type. 6140*fb8a8121Smrg * include/bits/fs_path.h: (path::__is_encoded_char): Recognize 6141*fb8a8121Smrg char8_t. 6142*fb8a8121Smrg (path::u8string): Return std::u8string when char8_t support is 6143*fb8a8121Smrg enabled. 6144*fb8a8121Smrg (path::generic_u8string): Likewise. 6145*fb8a8121Smrg (path::_S_convert): Handle conversion from char8_t input. 6146*fb8a8121Smrg (path::_S_str_convert): Likewise. 6147*fb8a8121Smrg * include/bits/functional_hash.h: Add hash<char8_t>. 6148*fb8a8121Smrg * include/bits/locale_conv.h (__str_codecvt_out): Add overloads for 6149*fb8a8121Smrg char8_t. 6150*fb8a8121Smrg * include/bits/locale_facets.h (_GLIBCXX_NUM_UNICODE_FACETS): Bump 6151*fb8a8121Smrg for new char8_t specializations. 6152*fb8a8121Smrg * include/bits/localefwd.h: Add missing declarations of 6153*fb8a8121Smrg codecvt<char16_t, char, mbstate_t> and 6154*fb8a8121Smrg codecvt<char32_t, char, mbstate_t>. Add char8_t declarations 6155*fb8a8121Smrg codecvt<char16_t, char8_t, mbstate_t> and 6156*fb8a8121Smrg codecvt<char32_t, char8_t, mbstate_t>. 6157*fb8a8121Smrg * include/bits/postypes.h: Add u8streampos 6158*fb8a8121Smrg * include/bits/stringfwd.h: Add declarations of 6159*fb8a8121Smrg char_traits<char8_t> and u8string. 6160*fb8a8121Smrg * include/c_global/cstddef: Add __byte_operand<char8_t>. 6161*fb8a8121Smrg * include/experimental/bits/fs_path.h (path::__is_encoded_char): 6162*fb8a8121Smrg Recognize char8_t. 6163*fb8a8121Smrg (path::u8string): Return std::u8string when char8_t support is 6164*fb8a8121Smrg enabled. 6165*fb8a8121Smrg (path::generic_u8string): Likewise. 6166*fb8a8121Smrg (path::_S_convert): Handle conversion from char8_t input. 6167*fb8a8121Smrg (path::_S_str_convert): Likewise. 6168*fb8a8121Smrg * include/experimental/string: Add u8string. 6169*fb8a8121Smrg * include/experimental/string_view: Add u8string_view, 6170*fb8a8121Smrg hash<experimental::u8string_view>, and 6171*fb8a8121Smrg operator""sv(const char8_t*, size_t). 6172*fb8a8121Smrg * include/std/atomic: Add atomic<char8_t> and atomic_char8_t. 6173*fb8a8121Smrg * include/std/charconv (__is_int_to_chars_type): Recognize char8_t 6174*fb8a8121Smrg as a character type. 6175*fb8a8121Smrg * include/std/limits: Add numeric_limits<char8_t>. 6176*fb8a8121Smrg * include/std/string_view: Add u8string_view, 6177*fb8a8121Smrg hash<experimental::u8string_view>, and 6178*fb8a8121Smrg operator""sv(const char8_t*, size_t). 6179*fb8a8121Smrg * include/std/type_traits: Add __is_integral_helper<char8_t>, 6180*fb8a8121Smrg __make_unsigned<char8_t>, and __make_signed<char8_t>. 6181*fb8a8121Smrg * libsupc++/atomic_lockfree_defines.h: Define 6182*fb8a8121Smrg ATOMIC_CHAR8_T_LOCK_FREE. 6183*fb8a8121Smrg * src/c++11/Makefile.am: Compile with -fchar8_t when compiling 6184*fb8a8121Smrg codecvt.cc and limits.cc so that char8_t specializations of 6185*fb8a8121Smrg numeric_limits and codecvt and emitted. 6186*fb8a8121Smrg * src/c++11/Makefile.in: Likewise. 6187*fb8a8121Smrg * src/c++11/codecvt.cc: Define members of 6188*fb8a8121Smrg codecvt<char16_t, char8_t, mbstate_t>, 6189*fb8a8121Smrg codecvt<char32_t, char8_t, mbstate_t>, 6190*fb8a8121Smrg codecvt_byname<char16_t, char8_t, mbstate_t>, and 6191*fb8a8121Smrg codecvt_byname<char32_t, char8_t, mbstate_t>. 6192*fb8a8121Smrg * src/c++11/limits.cc: Define members of 6193*fb8a8121Smrg numeric_limits<char8_t>. 6194*fb8a8121Smrg * src/c++98/Makefile.am: Compile with -fchar8_t when compiling 6195*fb8a8121Smrg locale_init.cc and localename.cc. 6196*fb8a8121Smrg * src/c++98/Makefile.in: Likewise. 6197*fb8a8121Smrg * src/c++98/locale_init.cc: Add initialization for the 6198*fb8a8121Smrg codecvt<char16_t, char8_t, mbstate_t> and 6199*fb8a8121Smrg codecvt<char32_t, char8_t, mbstate_t> facets. 6200*fb8a8121Smrg * src/c++98/localename.cc: Likewise. 6201*fb8a8121Smrg * testsuite/util/testsuite_abi.cc: Validate ABI bump. 6202*fb8a8121Smrg 6203*fb8a8121Smrg2019-02-18 Wilco Dijkstra <wdijkstr@arm.com> 6204*fb8a8121Smrg 6205*fb8a8121Smrg * 27_io/filesystem/operations/all.cc: Add dg-require-filesystem-ts. 6206*fb8a8121Smrg * 27_io/filesystem/operations/resize_file.cc: Likewise. 6207*fb8a8121Smrg * 27_io/filesystem/path/generation/normal2.cc: Likewise. 6208*fb8a8121Smrg 6209*fb8a8121Smrg2019-02-14 Jonathan Wakely <jwakely@redhat.com> 6210*fb8a8121Smrg 6211*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Update P0887R1 status. 6212*fb8a8121Smrg * doc/html/*: Regenerate. 6213*fb8a8121Smrg 6214*fb8a8121Smrg * doc/xml/manual/status_cxx2017.xml: Add P0063R3 to status table. 6215*fb8a8121Smrg * doc/html/*: Regenerate. 6216*fb8a8121Smrg 6217*fb8a8121Smrg * doc/xml/manual/intro.xml: Document LWG 2586 status. 6218*fb8a8121Smrg * include/bits/uses_allocator.h (__uses_alloc): Use const lvalue 6219*fb8a8121Smrg allocator type in is_constructible checks. 6220*fb8a8121Smrg * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error. 6221*fb8a8121Smrg * testsuite/20_util/scoped_allocator/dr2586.cc: New test. 6222*fb8a8121Smrg * testsuite/20_util/tuple/cons/allocators.cc: Add test using 6223*fb8a8121Smrg problematic type from LWG 2586 discussion. 6224*fb8a8121Smrg * testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error. 6225*fb8a8121Smrg * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise. 6226*fb8a8121Smrg 6227*fb8a8121Smrg * configure.ac: Check for C11 timespec_get function. 6228*fb8a8121Smrg * crossconfig.m4 (freebsd, linux, gnu, cygwin, solaris, netbsd) 6229*fb8a8121Smrg (openbsd): Likewise 6230*fb8a8121Smrg * config.h.in: Regenerate. 6231*fb8a8121Smrg * configure: Regenerate. 6232*fb8a8121Smrg * include/c_global/ctime (timespec, timespec_get): Add to namespace 6233*fb8a8121Smrg std for C++17 and up. 6234*fb8a8121Smrg 6235*fb8a8121Smrg * doc/xml/manual/intro.xml: Document LWG 2537 status. 6236*fb8a8121Smrg * include/bits/stl_queue.h 6237*fb8a8121Smrg (priority_queue(const Compare&, const Container&, const Alloc&)) 6238*fb8a8121Smrg (priority_queue(const Compare&, Container&&, const Alloc&)): Call 6239*fb8a8121Smrg make_heap. 6240*fb8a8121Smrg * testsuite/23_containers/priority_queue/dr2537.cc: New test. 6241*fb8a8121Smrg 6242*fb8a8121Smrg * doc/xml/manual/intro.xml: Document LWG 2566 status. 6243*fb8a8121Smrg * include/bits/stl_queue.h (queue, priority_queue): Add static 6244*fb8a8121Smrg assertions to enforce LWG 2566 requirement on value_type. 6245*fb8a8121Smrg * include/bits/stl_stack.h (stack): Likewise. 6246*fb8a8121Smrg 6247*fb8a8121Smrg PR middle-end/89303 6248*fb8a8121Smrg * testsuite/20_util/enable_shared_from_this/89303.cc: New test. 6249*fb8a8121Smrg 6250*fb8a8121Smrg * doc/xml/manual/intro.xml: Document LWG 2735 status. 6251*fb8a8121Smrg * include/bits/std_abs.h: Add comment about LWG 2735. 6252*fb8a8121Smrg * testsuite/26_numerics/headers/cstdlib/dr2735.cc: New test. 6253*fb8a8121Smrg 6254*fb8a8121Smrg2019-02-13 Jonathan Wakely <jwakely@redhat.com> 6255*fb8a8121Smrg 6256*fb8a8121Smrg PR libstdc++/89345 6257*fb8a8121Smrg * include/std/version [__cpp_impl_destroying_delete] 6258*fb8a8121Smrg (__cpp_lib_destroying_delete): Only define for C++2a and later. 6259*fb8a8121Smrg * libsupc++/new [__cpp_impl_destroying_delete] 6260*fb8a8121Smrg (__cpp_lib_destroying_delete): Likewise. 6261*fb8a8121Smrg (destroying_delete_t, destroying_delete): Likewise, but define even 6262*fb8a8121Smrg when __cpp_impl_destroying_delete is not defined. 6263*fb8a8121Smrg * testsuite/18_support/destroying_delete.cc: New test. 6264*fb8a8121Smrg 6265*fb8a8121Smrg2019-02-11 Jonathan Wakely <jwakely@redhat.com> 6266*fb8a8121Smrg 6267*fb8a8121Smrg PR libstdc++/89023 6268*fb8a8121Smrg * testsuite/17_intro/headers/c++2011/parallel_mode.cc: New test. 6269*fb8a8121Smrg * testsuite/17_intro/headers/c++2014/parallel_mode.cc: New test. 6270*fb8a8121Smrg * testsuite/17_intro/headers/c++2017/parallel_mode.cc: New test. 6271*fb8a8121Smrg * testsuite/28_regex/headers/regex/parallel_mode.cc: Remove. 6272*fb8a8121Smrg 6273*fb8a8121Smrg2019-02-09 Jonathan Wakely <jwakely@redhat.com> 6274*fb8a8121Smrg 6275*fb8a8121Smrg PR libstdc++/71044 6276*fb8a8121Smrg * include/bits/fs_path.h (path::has_root_name) 6277*fb8a8121Smrg (path::has_root_directory, path::has_root_path) 6278*fb8a8121Smrg (path::has_relative_path, path::has_parent_path) 6279*fb8a8121Smrg (path::has_filename, path::has_stem, path::has_extension) 6280*fb8a8121Smrg (path::is_absolute, path::is_relative, path::_M_find_extension): Add 6281*fb8a8121Smrg noexcept. 6282*fb8a8121Smrg * src/c++17/fs_path.cc (path::has_root_name) 6283*fb8a8121Smrg (path::has_root_directory, path::has_root_path) 6284*fb8a8121Smrg (path::has_relative_path, path::has_parent_path) 6285*fb8a8121Smrg (path::has_filename, path::_M_find_extension): Add noexcept. 6286*fb8a8121Smrg 6287*fb8a8121Smrg2019-02-06 Jonathan Wakely <jwakely@redhat.com> 6288*fb8a8121Smrg 6289*fb8a8121Smrg PR libstdc++/89102 (partial) 6290*fb8a8121Smrg * include/std/type_traits (common_type<>): Define. 6291*fb8a8121Smrg (common_type<T>): Derive from common_type<T, T>. 6292*fb8a8121Smrg * testsuite/20_util/common_type/requirements/explicit_instantiation.cc: 6293*fb8a8121Smrg Test zero-length template argument list. 6294*fb8a8121Smrg * testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc: 6295*fb8a8121Smrg Test additional single argument cases. 6296*fb8a8121Smrg * testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc: 6297*fb8a8121Smrg Adjust expected error. 6298*fb8a8121Smrg 6299*fb8a8121Smrg2019-02-05 Jonathan Wakely <jwakely@redhat.com> 6300*fb8a8121Smrg 6301*fb8a8121Smrg PR libstdc++/89128 6302*fb8a8121Smrg * include/bits/stl_queue.h (queue, priority_queue): Add deduction 6303*fb8a8121Smrg guides. 6304*fb8a8121Smrg * include/bits/stl_stack.h (stack): Likewise. 6305*fb8a8121Smrg * testsuite/23_containers/priority_queue/deduction.cc: New test. 6306*fb8a8121Smrg * testsuite/23_containers/queue/deduction.cc: New test. 6307*fb8a8121Smrg * testsuite/23_containers/stack/deduction.cc: New test. 6308*fb8a8121Smrg 6309*fb8a8121Smrg PR libstdc++/89194 6310*fb8a8121Smrg * include/std/type_traits (__is_convertible_helper) 6311*fb8a8121Smrg (__is_convertible_helper<_From, _To, false>): Revert changes to 6312*fb8a8121Smrg support is_nothrow_convertible. 6313*fb8a8121Smrg (__is_nt_convertible_helper): New helper. 6314*fb8a8121Smrg (is_nothrow_convertible): Use __is_nt_convertible_helper. 6315*fb8a8121Smrg 6316*fb8a8121Smrg * testsuite/23_containers/vector/modifiers/push_back/49836.cc: Restore 6317*fb8a8121Smrg use of CopyConsOnlyType, but also test DelAnyAssign for completeness. 6318*fb8a8121Smrg 6319*fb8a8121Smrg PR libstdc++/89130 6320*fb8a8121Smrg * include/bits/alloc_traits.h (__is_copy_insertable_impl): Rename to 6321*fb8a8121Smrg __is_alloc_insertable_impl. Replace single type member with two 6322*fb8a8121Smrg members, one for each of copy and move insertable. 6323*fb8a8121Smrg (__is_move_insertable): New trait for internal use. 6324*fb8a8121Smrg * include/bits/stl_vector.h (vector::_S_nothrow_relocate(true_type)) 6325*fb8a8121Smrg (vector::_S_nothrow_relocate(true_type)): New functions to 6326*fb8a8121Smrg conditionally check if __relocate_a can throw. 6327*fb8a8121Smrg (vector::_S_use_relocate()): Dispatch to _S_nothrow_relocate based 6328*fb8a8121Smrg on __is_move_insertable. 6329*fb8a8121Smrg (vector::_S_do_relocate): New overloaded functions to conditionally 6330*fb8a8121Smrg call __relocate_a. 6331*fb8a8121Smrg (vector::_S_relocate): New function that dispatches to _S_do_relocate 6332*fb8a8121Smrg based on _S_use_relocate. 6333*fb8a8121Smrg * include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert) 6334*fb8a8121Smrg (vector::_M_default_append): Call _S_relocate instead of __relocate_a. 6335*fb8a8121Smrg * testsuite/23_containers/vector/modifiers/push_back/89130.cc: New. 6336*fb8a8121Smrg 6337*fb8a8121Smrg PR libstdc++/89090 6338*fb8a8121Smrg * include/bits/stl_uninitialized.h (__relocate_a_1): Make unused 6339*fb8a8121Smrg parameter unnamed. Add message to static assertion. 6340*fb8a8121Smrg * include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert) 6341*fb8a8121Smrg (vector::_M_default_append): Use _GLIBCXX17_CONSTEXPR for if constexpr 6342*fb8a8121Smrg in C++11 code. 6343*fb8a8121Smrg 6344*fb8a8121Smrg2019-02-05 Marc Glisse <marc.glisse@inria.fr> 6345*fb8a8121Smrg 6346*fb8a8121Smrg PR libstdc++/87106 6347*fb8a8121Smrg * include/bits/stl_uninitialized.h (__is_trivially_relocatable): 6348*fb8a8121Smrg Rename... 6349*fb8a8121Smrg (__is_bitwise_relocatable): ... to this. 6350*fb8a8121Smrg (__relocate_a_1): Adapt. 6351*fb8a8121Smrg * include/bits/stl_deque.h (__is_trivially_relocatable): Rename... 6352*fb8a8121Smrg (__is_bitwise_relocatable): ... to this. 6353*fb8a8121Smrg 6354*fb8a8121Smrg2019-01-30 Jonathan Wakely <jwakely@redhat.com> 6355*fb8a8121Smrg 6356*fb8a8121Smrg PR libstdc++/89117 6357*fb8a8121Smrg * src/c++17/fs_path.cc (path::replace_extension): Erase extension from 6358*fb8a8121Smrg final component as well as from _M_pathname. Append the dot using 6359*fb8a8121Smrg operator+= instead of only to _M_pathname. 6360*fb8a8121Smrg (path::_M_find_extension): Reformat slightly. 6361*fb8a8121Smrg * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: 6362*fb8a8121Smrg Add more test cases. 6363*fb8a8121Smrg 6364*fb8a8121Smrg2019-01-30 Ulrich Drepper <drepper@redhat.com> 6365*fb8a8121Smrg 6366*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Update P0600 entry. 6367*fb8a8121Smrg 6368*fb8a8121Smrg2019-01-29 Jonathan Wakely <jwakely@redhat.com> 6369*fb8a8121Smrg 6370*fb8a8121Smrg * testsuite/26_numerics/headers/complex/synopsis.cc: Remove incorrect 6371*fb8a8121Smrg constexpr specifiers from arg and proj. 6372*fb8a8121Smrg 6373*fb8a8121Smrg * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Add missing exports for 6374*fb8a8121Smrg __shared_ptr instantiations used by gcc4-compatible ABI. 6375*fb8a8121Smrg 6376*fb8a8121Smrg * include/experimental/forward_list (experimental::erase): Qualify 6377*fb8a8121Smrg call to erase_if. 6378*fb8a8121Smrg * include/experimental/list (experimental::erase): Likewise. 6379*fb8a8121Smrg * include/std/forward_list (std::erase): Likewise. 6380*fb8a8121Smrg * include/std/list (std::erase): Likewise. 6381*fb8a8121Smrg 6382*fb8a8121Smrg * testsuite/20_util/reference_wrapper/result_type.cc: Disable for 6383*fb8a8121Smrg C++2a. 6384*fb8a8121Smrg * testsuite/20_util/reference_wrapper/typedefs-2.cc: Likewise. 6385*fb8a8121Smrg * testsuite/20_util/reference_wrapper/typedefs-3.cc: Likewise. 6386*fb8a8121Smrg * testsuite/20_util/reference_wrapper/typedefs.cc: Likewise. 6387*fb8a8121Smrg * testsuite/30_threads/async/54297.cc: Suppress nodiscard warning. 6388*fb8a8121Smrg * testsuite/ext/array_allocator/26875.cc: Likewise. 6389*fb8a8121Smrg * testsuite/ext/pool_allocator/allocate_chunk.cc: Likewise. 6390*fb8a8121Smrg * testsuite/util/replacement_memory_operators.h: Likewise. 6391*fb8a8121Smrg * testsuite/util/testsuite_allocator.h: Likewise. 6392*fb8a8121Smrg 6393*fb8a8121Smrg * include/std/memory_resource (__pool_resource::_M_unpooled): Use 6394*fb8a8121Smrg normal mode vector, even for debug mode. 6395*fb8a8121Smrg * include/std/vector [_GLIBCXX_DEBUG] (_GLIBCXX_STD_C::pmr::vector): 6396*fb8a8121Smrg Define alias template for normal mode vector. 6397*fb8a8121Smrg 6398*fb8a8121Smrg2019-01-28 Jonathan Wakely <jwakely@redhat.com> 6399*fb8a8121Smrg 6400*fb8a8121Smrg PR libstdc++/68737 6401*fb8a8121Smrg * config/locale/generic/c_locale.h (__convert_from_v) 6402*fb8a8121Smrg [_GLIBCXX_USE_C99_STDIO]: Also check _GLIBCXX_HAVE_BROKEN_VSNPRINTF. 6403*fb8a8121Smrg * config/os/hpux/os_defines.h: Define _GLIBCXX_HAVE_BROKEN_VSNPRINTF. 6404*fb8a8121Smrg * include/bits/locale_facets.tcc (num_put::_M_insert_float) 6405*fb8a8121Smrg [_GLIBCXX_USE_C99_STDIO]: Also check _GLIBCXX_HAVE_BROKEN_VSNPRINTF. 6406*fb8a8121Smrg 6407*fb8a8121Smrg2019-01-24 Jonathan Wakely <jwakely@redhat.com> 6408*fb8a8121Smrg 6409*fb8a8121Smrg PR libstdc++/88840 6410*fb8a8121Smrg * include/bits/stl_vector.h (vector::__use_relocate): Replace static 6411*fb8a8121Smrg data member with static member function _S_use_relocate(). 6412*fb8a8121Smrg * include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert) 6413*fb8a8121Smrg (vector::_M_default_append): Use _S_use_relocate() instead of 6414*fb8a8121Smrg __use_relocate. 6415*fb8a8121Smrg 6416*fb8a8121Smrg * testsuite/27_io/filesystem/path/compare/strings.cc: Only compare 6417*fb8a8121Smrg sign of results. 6418*fb8a8121Smrg 6419*fb8a8121Smrg2019-01-22 Jonathan Wakely <jwakely@redhat.com> 6420*fb8a8121Smrg 6421*fb8a8121Smrg PR libstdc++/88740 6422*fb8a8121Smrg * testsuite/util/testsuite_hooks.h [stderr] (VERIFY): Use fprintf to 6423*fb8a8121Smrg write to stderr instead of using printf. 6424*fb8a8121Smrg 6425*fb8a8121Smrg2019-01-21 Jakub Jelinek <jakub@redhat.com> 6426*fb8a8121Smrg 6427*fb8a8121Smrg PR libstdc++/86590 6428*fb8a8121Smrg * include/bits/char_traits.h (__constant_string_p, 6429*fb8a8121Smrg __constant_char_array_p): Use __builtin_is_constant_evaluated if 6430*fb8a8121Smrg available. 6431*fb8a8121Smrg 6432*fb8a8121Smrg2019-01-20 Ulrich Drepper <drepper@redhat.com> 6433*fb8a8121Smrg 6434*fb8a8121Smrg Implement C++20 P0600r1. 6435*fb8a8121Smrg * include/backward/hash_map: Add nodiscard attribute to empty. 6436*fb8a8121Smrg * include/backward/hash_set: Likewise. 6437*fb8a8121Smrg * backward/hashtable.h: Likewise. 6438*fb8a8121Smrg * include/bits/basic_string.h: Likewise. 6439*fb8a8121Smrg * include/bits/forward_list.h: Likewise. 6440*fb8a8121Smrg * include/bits/hashtable.h: Likewise. 6441*fb8a8121Smrg * include/bits/regex.h: Likewise. 6442*fb8a8121Smrg * include/bits/stl_deque.h: Likewise. 6443*fb8a8121Smrg * include/bits/stl_list.h: Likewise. 6444*fb8a8121Smrg * include/bits/stl_map.h: Likewise. 6445*fb8a8121Smrg * include/bits/stl_multimap.h: Likewise. 6446*fb8a8121Smrg * include/bits/stl_multiset.h: Likewise. 6447*fb8a8121Smrg * include/bits/stl_queue.h: Likewise. 6448*fb8a8121Smrg * include/bits/stl_set.h: Likewise. 6449*fb8a8121Smrg * include/bits/stl_stack.h: Likewise. 6450*fb8a8121Smrg * include/bits/stl_tree.h: Likewise. 6451*fb8a8121Smrg * include/bits/stl_vector.h: Likewise. 6452*fb8a8121Smrg * include/bits/unordered_map.h: Likewise. 6453*fb8a8121Smrg * include/bits/unordered_set.h: Likewise. 6454*fb8a8121Smrg * include/debug/array: Likewise. 6455*fb8a8121Smrg * include/experimental/any: Likewise. 6456*fb8a8121Smrg * include/experimental/bits/fs_path.h: Likewise. 6457*fb8a8121Smrg * include/experimental/internet: Likewise. 6458*fb8a8121Smrg * include/experimental/string_view: Likewise. 6459*fb8a8121Smrg * include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp: 6460*fb8a8121Smrg Likewise. 6461*fb8a8121Smrg * include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp: 6462*fb8a8121Smrg Likewise. 6463*fb8a8121Smrg * include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp: 6464*fb8a8121Smrg Likewise. 6465*fb8a8121Smrg * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp: 6466*fb8a8121Smrg Likewise. 6467*fb8a8121Smrg * include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp: 6468*fb8a8121Smrg Likewise. 6469*fb8a8121Smrg * include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp: 6470*fb8a8121Smrg Likewise. 6471*fb8a8121Smrg * include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp: 6472*fb8a8121Smrg Likewise. 6473*fb8a8121Smrg * include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp: 6474*fb8a8121Smrg Likewise. 6475*fb8a8121Smrg * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ 6476*fb8a8121Smrg info_fn_imps.hpp: Likewise. 6477*fb8a8121Smrg * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ 6478*fb8a8121Smrg left_child_next_sibling_heap_.hpp: Likewise. 6479*fb8a8121Smrg * include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp: 6480*fb8a8121Smrg Likewise. 6481*fb8a8121Smrg * include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp: 6482*fb8a8121Smrg Likewise. 6483*fb8a8121Smrg * include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp: 6484*fb8a8121Smrg Likewise. 6485*fb8a8121Smrg * include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hp: 6486*fb8a8121Smrg Likewise. 6487*fb8a8121Smrg * include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp: 6488*fb8a8121Smrg Likewise. 6489*fb8a8121Smrg * include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp: 6490*fb8a8121Smrg Likewise. 6491*fb8a8121Smrg * include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp: 6492*fb8a8121Smrg Likewise. 6493*fb8a8121Smrg * include/ext/pb_ds/detail/tree_trace_base.hpp: Likewise. 6494*fb8a8121Smrg * include/ext/pb_ds/trie_policy.hpp: Likewise. 6495*fb8a8121Smrg * include/ext/rope: Likewise. 6496*fb8a8121Smrg * include/ext/slist: Likewise. 6497*fb8a8121Smrg * include/ext/vstring.h: Likewise. 6498*fb8a8121Smrg * include/profile/array: Likewise. 6499*fb8a8121Smrg * include/std/array: Likewise. 6500*fb8a8121Smrg * include/tr1/array: Likewise. 6501*fb8a8121Smrg * include/tr1/hashtable.h: Likewise. 6502*fb8a8121Smrg * include/tr1/regex: Likewise. 6503*fb8a8121Smrg * include/tr2/dynamic_bitset: Likewise. 6504*fb8a8121Smrg * include/bits/alloc_traits.h: Add nodiscard attribute to 6505*fb8a8121Smrg allocate. 6506*fb8a8121Smrg * include/experimental/memory_resource: Likewise. 6507*fb8a8121Smrg * include/ext/alloc_traits.h: Likewise. 6508*fb8a8121Smrg * include/ext/array_allocator.h: Likewise. 6509*fb8a8121Smrg * include/ext/bitmap_allocator.h: Likewise. 6510*fb8a8121Smrg * include/ext/debug_allocator.h: Likewise. 6511*fb8a8121Smrg * include/ext/extptr_allocator.h: Likewise. 6512*fb8a8121Smrg * include/ext/mt_allocator.h: Likewise. 6513*fb8a8121Smrg * include/ext/new_allocator.h: Likewise. 6514*fb8a8121Smrg * include/ext/pool_allocator.h: Likewise. 6515*fb8a8121Smrg * include/ext/throw_allocator.h: Likewise. 6516*fb8a8121Smrg * include/std/scoped_allocator: Likewise. 6517*fb8a8121Smrg * libsupc++/eh_alloc.cc: Likewise. 6518*fb8a8121Smrg * include/std/future: Add nodiscard attribute to async. 6519*fb8a8121Smrg * libsupc++/new: Add nodiscard attribute to new. 6520*fb8a8121Smrg 6521*fb8a8121Smrg2019-01-18 Jonathan Wakely <jwakely@redhat.com> 6522*fb8a8121Smrg 6523*fb8a8121Smrg PR libstdc++/87514 6524*fb8a8121Smrg PR libstdc++/87520 6525*fb8a8121Smrg PR libstdc++/88782 6526*fb8a8121Smrg * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export new symbol. 6527*fb8a8121Smrg * include/bits/shared_ptr.h 6528*fb8a8121Smrg (shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)) 6529*fb8a8121Smrg (allocate_shared): Change to use new tag type. 6530*fb8a8121Smrg * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_eq): 6531*fb8a8121Smrg Declare new member function. 6532*fb8a8121Smrg (_Sp_alloc_shared_tag): Define new type. 6533*fb8a8121Smrg (_Sp_counted_ptr_inplace): Declare __shared_count<_Lp> as a friend. 6534*fb8a8121Smrg (_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Use 6535*fb8a8121Smrg _Sp_make_shared_tag::_S_eq to check type_info. 6536*fb8a8121Smrg (__shared_count(Ptr, Deleter),__shared_count(Ptr, Deleter, Alloc)): 6537*fb8a8121Smrg Constrain to prevent being called with _Sp_alloc_shared_tag. 6538*fb8a8121Smrg (__shared_count(_Sp_make_shared_tag, const _Alloc&, Args&&...)): 6539*fb8a8121Smrg Replace constructor with ... 6540*fb8a8121Smrg (__shared_count(Tp*&, _Sp_alloc_shared_tag<_Alloc>, Args&&...)): Use 6541*fb8a8121Smrg reference parameter so address of the new object can be returned to 6542*fb8a8121Smrg the caller. Obtain the allocator from the tag type. 6543*fb8a8121Smrg (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Replace 6544*fb8a8121Smrg constructor with ... 6545*fb8a8121Smrg (__shared_ptr(_Sp_alloc_shared_tag<Alloc>, Args&&...)): Pass _M_ptr 6546*fb8a8121Smrg to the __shared_count constructor. 6547*fb8a8121Smrg (__allocate_shared): Change to use new tag type. 6548*fb8a8121Smrg * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq): Define. 6549*fb8a8121Smrg 6550*fb8a8121Smrg2019-01-17 Jonathan Wakely <jwakely@redhat.com> 6551*fb8a8121Smrg 6552*fb8a8121Smrg * src/c++17/fs_ops.cc 6553*fb8a8121Smrg (equivalent(const path&, const path&, error_code&)) 6554*fb8a8121Smrg [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use GetFileInformationByHandle to 6555*fb8a8121Smrg compare files instead of relying on incomplete info returned by stat. 6556*fb8a8121Smrg 6557*fb8a8121Smrg PR libstdc++/88884 6558*fb8a8121Smrg * src/c++17/fs_ops.cc (absolute(const path&, error_code&)): Do nothing 6559*fb8a8121Smrg if the path is already absolute. 6560*fb8a8121Smrg [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Normalize root-directory. 6561*fb8a8121Smrg [!_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Pass error_code to current_path. 6562*fb8a8121Smrg 6563*fb8a8121Smrg PR libstdc++/88881 6564*fb8a8121Smrg * src/c++17/fs_ops.cc (canonical(const path&, error_code&)) 6565*fb8a8121Smrg [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Normalize path, to match behaviour 6566*fb8a8121Smrg of filesystem::exists. 6567*fb8a8121Smrg (create_directories(const path&, error_code&)): Add assertions. 6568*fb8a8121Smrg (status(const path&, error_code&)) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: 6569*fb8a8121Smrg Add workaround for bug in _wstat for paths with trailing slash. 6570*fb8a8121Smrg * testsuite/27_io/filesystem/operations/create_directories.cc: Adjust 6571*fb8a8121Smrg for expected behaviour on mingw. 6572*fb8a8121Smrg * testsuite/experimental/filesystem/operations/create_directories.cc: 6573*fb8a8121Smrg Likewise. 6574*fb8a8121Smrg * testsuite/27_io/filesystem/operations/temp_directory_path.cc: Use 6575*fb8a8121Smrg "TMP" instead of "TMPDIR" and clean environment before each test. Do 6576*fb8a8121Smrg not test permissions on mingw targets. 6577*fb8a8121Smrg 6578*fb8a8121Smrg2019-01-16 Jonathan Wakely <jwakely@redhat.com> 6579*fb8a8121Smrg 6580*fb8a8121Smrg * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Add exports for fstream 6581*fb8a8121Smrg constructors and open members taking wide strings. Fix patterns for 6582*fb8a8121Smrg filesystem::path members to match wstring_view parameters. Add 6583*fb8a8121Smrg exports for shared_ptr members used by directory iterators. 6584*fb8a8121Smrg * src/c++17/fs_ops.cc (remove(const path&, error_code&)): Clear the 6585*fb8a8121Smrg error code parameter if the file doesn't exist. 6586*fb8a8121Smrg * src/filesystem/ops.cc (remove(const path&, error_code&)): 6587*fb8a8121Smrg Likewise. 6588*fb8a8121Smrg * testsuite/27_io/filesystem/operations/canonical.cc: Fix expected 6589*fb8a8121Smrg values for mingw targets, where "/" is not an absolute path. Do not 6590*fb8a8121Smrg test symlinks on mingw targets. 6591*fb8a8121Smrg * testsuite/experimental/filesystem/operations/canonical.cc: Likewise. 6592*fb8a8121Smrg * testsuite/27_io/filesystem/operations/copy.cc: Do not test symlinks 6593*fb8a8121Smrg on mingw targets. 6594*fb8a8121Smrg * testsuite/experimental/filesystem/operations/copy.cc: Likewise. 6595*fb8a8121Smrg * testsuite/27_io/filesystem/operations/create_directories.cc: Check 6596*fb8a8121Smrg that each component of the path is created. 6597*fb8a8121Smrg * testsuite/experimental/filesystem/operations/create_directories.cc: 6598*fb8a8121Smrg Likewise. 6599*fb8a8121Smrg * testsuite/27_io/filesystem/operations/exists.cc: Do not test 6600*fb8a8121Smrg permissions on mingw targets. 6601*fb8a8121Smrg * testsuite/experimental/filesystem/operations/exists.cc: Likewise. 6602*fb8a8121Smrg * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise. 6603*fb8a8121Smrg * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise. 6604*fb8a8121Smrg * testsuite/27_io/filesystem/operations/permissions.cc: XFAIL for 6605*fb8a8121Smrg mingw targets. 6606*fb8a8121Smrg * testsuite/experimental/filesystem/operations/permissions.cc: 6607*fb8a8121Smrg Likewise. 6608*fb8a8121Smrg * testsuite/27_io/filesystem/operations/remove.cc: Do not test 6609*fb8a8121Smrg symlinks or permissions on mingw targets. 6610*fb8a8121Smrg * testsuite/experimental/filesystem/operations/remove.cc: Likewise. 6611*fb8a8121Smrg * testsuite/27_io/filesystem/operations/remove_all.cc: Do not test 6612*fb8a8121Smrg symlinks on mingw targets. 6613*fb8a8121Smrg * testsuite/experimental/filesystem/operations/remove_all.cc: 6614*fb8a8121Smrg Likewise. 6615*fb8a8121Smrg * testsuite/27_io/filesystem/operations/status.cc: Do not test 6616*fb8a8121Smrg permissions on mingw targets. 6617*fb8a8121Smrg * testsuite/27_io/filesystem/operations/weakly_canonical.cc: Do not 6618*fb8a8121Smrg test symlinks on mingw targets. 6619*fb8a8121Smrg * testsuite/experimental/filesystem/operations/space.cc: Fix test 6620*fb8a8121Smrg for mingw targets. 6621*fb8a8121Smrg 6622*fb8a8121Smrg2019-02-14 Ulrich Drepper <drepper@redhat.com> 6623*fb8a8121Smrg 6624*fb8a8121Smrg PR libstdc++/88738 6625*fb8a8121Smrg Warn about unused comparisons of shared_ptr/unique_ptr 6626*fb8a8121Smrg * include/bits/c++config [_GLIBCXX_NODISCARD]: Define. 6627*fb8a8121Smrg * include/bits/shared_ptr.h: Use it for operator ==, !=, 6628*fb8a8121Smrg <, <=, >, >= for shared_ptr. 6629*fb8a8121Smrg * include/bits/unique_ptr.h: Likewise for unique_ptr. 6630*fb8a8121Smrg 6631*fb8a8121Smrg2019-01-15 Jonathan Wakely <jwakely@redhat.com> 6632*fb8a8121Smrg 6633*fb8a8121Smrg * include/bits/shared_ptr_base.h (__cpp_lib_shared_ptr_arrays): Define 6634*fb8a8121Smrg as 201611L, because P0497R0 changes are supported. 6635*fb8a8121Smrg * include/std/version (__cpp_lib_shared_ptr_arrays): Likewise. 6636*fb8a8121Smrg 6637*fb8a8121Smrg * include/bits/erase_if.h [__cplusplus > 201703L] 6638*fb8a8121Smrg (__cpp_lib_erase_if): Only define for C++2a. 6639*fb8a8121Smrg * include/std/iterator [__cplusplus >= 201402L && !_GLIBCXX_DEBUG] 6640*fb8a8121Smrg (__cpp_lib_null_iterators): Define. 6641*fb8a8121Smrg * include/std/version [__cplusplus >= 201402L && !_GLIBCXX_DEBUG] 6642*fb8a8121Smrg (__cpp_lib_null_iterators): Define. 6643*fb8a8121Smrg [__cpp_impl_destroying_delete] (__cpp_lib_destroying_delete): Define. 6644*fb8a8121Smrg 6645*fb8a8121Smrg * doc/xml/manual/status_cxx2017.xml: Document P0032R3 and P0307R2 6646*fb8a8121Smrg status. 6647*fb8a8121Smrg * include/bits/stl_uninitialized.h (__cpp_lib_raw_memory_algorithms): 6648*fb8a8121Smrg Define. 6649*fb8a8121Smrg * include/std/any (__cpp_lib_any): Define as 201606L, because P0032R3 6650*fb8a8121Smrg changes are supported. 6651*fb8a8121Smrg * include/std/optional (__cpp_lib_optional): Likewise. 6652*fb8a8121Smrg * include/std/variant (__cpp_lib_variant): Likewise. 6653*fb8a8121Smrg * include/std/version [!__STRICT_ANSI__] 6654*fb8a8121Smrg (__cpp_lib_uncaught_exceptions): Define as long integer. 6655*fb8a8121Smrg [__cplusplus >= 201703L] (__cpp_lib_any) 6656*fb8a8121Smrg (__cpp_lib_raw_memory_algorithms, __cpp_lib_uncaught_exceptions) 6657*fb8a8121Smrg (__cpp_lib_variant): Define for C++17. 6658*fb8a8121Smrg [__cplusplus >= 201703L] (__cpp_lib_optional): Update value and define 6659*fb8a8121Smrg as long integer. 6660*fb8a8121Smrg * libsupc++/exception (__cpp_lib_uncaught_exceptions): Define as long 6661*fb8a8121Smrg integer. 6662*fb8a8121Smrg 6663*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Update P1123R0 status. 6664*fb8a8121Smrg 6665*fb8a8121Smrg2019-01-12 Jonathan Wakely <jwakely@redhat.com> 6666*fb8a8121Smrg 6667*fb8a8121Smrg PR libstdc++/88811 6668*fb8a8121Smrg PR libstdc++/83306 6669*fb8a8121Smrg * src/filesystem/path.cc: Fix typo. If first path is empty, show [] 6670*fb8a8121Smrg before second path. 6671*fb8a8121Smrg * testsuite/experimental/filesystem/filesystem_error/cons.cc: New 6672*fb8a8121Smrg test. 6673*fb8a8121Smrg 6674*fb8a8121Smrg2019-01-11 Jonathan Wakely <jwakely@redhat.com> 6675*fb8a8121Smrg 6676*fb8a8121Smrg * doc/xml/manual/intro.xml: Include new section. 6677*fb8a8121Smrg * doc/xml/manual/status_cxx2017.xml: Document more 6678*fb8a8121Smrg implementation-defined properties of the library. 6679*fb8a8121Smrg * doc/xml/manual/status_cxx2020.xml: Document C++2a status. 6680*fb8a8121Smrg * doc/html/*: Regenerate. 6681*fb8a8121Smrg 6682*fb8a8121Smrg * include/bits/refwrap.h [__cplusplus > 201703L] 6683*fb8a8121Smrg (_Refwrap_base_arg1, _Refwrap_base_arg2, _Reference_wrapper_base) 6684*fb8a8121Smrg (_Reference_wrapper_base_memfun): Do not define for C++2a. 6685*fb8a8121Smrg (reference_wrapper): Do not derive from _Reference_wrapper_base_memfun 6686*fb8a8121Smrg for C++2a. 6687*fb8a8121Smrg (reference_wrapper::operator()): Add static assertion. 6688*fb8a8121Smrg * testsuite/20_util/reference_wrapper/incomplete.cc: New test. 6689*fb8a8121Smrg 6690*fb8a8121Smrg * include/std/chrono (duration_values::zero(), duration_values::min()) 6691*fb8a8121Smrg (duration_values::max()): Add noexcept. 6692*fb8a8121Smrg (duration::zero(), duration::min(), duration::max()): Likewise. 6693*fb8a8121Smrg (time_point::zero(), time_point::min(), time_point::max()): Likewise. 6694*fb8a8121Smrg * testsuite/20_util/duration/requirements/noexcept.cc: New test. 6695*fb8a8121Smrg * testsuite/20_util/time_point/requirements/noexcept.cc: New test. 6696*fb8a8121Smrg 6697*fb8a8121Smrg * include/std/version (__cpp_lib_erase_if): Move to C++20 group. 6698*fb8a8121Smrg 6699*fb8a8121Smrg2019-01-11 Jakub Jelinek <jakub@redhat.com> 6700*fb8a8121Smrg 6701*fb8a8121Smrg * include/std/type_traits (__cpp_lib_is_constant_evaluated): Define. 6702*fb8a8121Smrg * include/std/version (__cpp_lib_is_constant_evaluated): Define. 6703*fb8a8121Smrg 6704*fb8a8121Smrg2019-01-11 Jonathan Wakely <jwakely@redhat.com> 6705*fb8a8121Smrg 6706*fb8a8121Smrg PR libstdc++/88802 6707*fb8a8121Smrg * include/bits/functional_hash.h (hash<nullptr_t>): Define 6708*fb8a8121Smrg specialization for C++17 (P0513R0, LWG 2817). 6709*fb8a8121Smrg * testsuite/20_util/hash/nullptr.cc: New test. 6710*fb8a8121Smrg 6711*fb8a8121Smrg PR libstdc++/88125 6712*fb8a8121Smrg * config/abi/pre/gnu.ver (GLIBCXX_3.4.6): Remove unused duplicate 6713*fb8a8121Smrg pattern for std::basic_stringbuf::str(). 6714*fb8a8121Smrg 6715*fb8a8121Smrg * config/abi/pre/gnu.ver (GLIBCXX_3.4): Correct recent changes to 6716*fb8a8121Smrg basic_ostream::operator<< patterns. 6717*fb8a8121Smrg 6718*fb8a8121Smrg2019-01-10 Jonathan Wakely <jwakely@redhat.com> 6719*fb8a8121Smrg 6720*fb8a8121Smrg * testsuite/27_io/filesystem/operations/last_write_time.cc: Fix 6721*fb8a8121Smrg test failures on targets with 32-bit time_t. 6722*fb8a8121Smrg 6723*fb8a8121Smrg * include/bits/erase_if.h: Define __cpp_lib_erase_if. 6724*fb8a8121Smrg * include/std/deque: Likewise. 6725*fb8a8121Smrg * include/std/forward_list: Likewise. 6726*fb8a8121Smrg * include/std/list: Likewise. 6727*fb8a8121Smrg * include/std/string: Likewise. 6728*fb8a8121Smrg * include/std/vector: Likewise. 6729*fb8a8121Smrg * include/std/version: Likewise. 6730*fb8a8121Smrg * testsuite/21_strings/basic_string/erasure.cc: Test macro. 6731*fb8a8121Smrg * testsuite/23_containers/deque/erasure.cc: Likewise. 6732*fb8a8121Smrg * testsuite/23_containers/forward_list/erasure.cc: Likewise. 6733*fb8a8121Smrg * testsuite/23_containers/list/erasure.cc: Likewise. 6734*fb8a8121Smrg * testsuite/23_containers/map/erasure.cc: Likewise. 6735*fb8a8121Smrg * testsuite/23_containers/set/erasure.cc: Likewise. 6736*fb8a8121Smrg * testsuite/23_containers/unordered_map/erasure.cc: Likewise. 6737*fb8a8121Smrg * testsuite/23_containers/unordered_set/erasure.cc: Likewise. 6738*fb8a8121Smrg * testsuite/23_containers/vector/erasure.cc: Likewise. 6739*fb8a8121Smrg 6740*fb8a8121Smrg * include/experimental/internet [AI_NUMERICSERV] 6741*fb8a8121Smrg (resolver_base::numeric_service): Define conditionally. 6742*fb8a8121Smrg * testsuite/experimental/net/internet/resolver/base.cc: Test it 6743*fb8a8121Smrg conditionally. 6744*fb8a8121Smrg * testsuite/experimental/net/internet/resolver/ops/lookup.cc: 6745*fb8a8121Smrg Likewise. 6746*fb8a8121Smrg 6747*fb8a8121Smrg2019-01-10 Ville Voutilainen <ville.voutilainen@gmail.com> 6748*fb8a8121Smrg Jonathan Wakely <jwakely@redhat.com> 6749*fb8a8121Smrg 6750*fb8a8121Smrg Implement LWG 2221 6751*fb8a8121Smrg * config/abi/pre/gnu.ver (GLIBCXX_3.4): Tighten patterns. 6752*fb8a8121Smrg (GLIBCXX_3.4.26): Add new exports. 6753*fb8a8121Smrg * include/Makefile.am: Add ostream-inst.cc. Move string-inst.cc to 6754*fb8a8121Smrg correct list of sources. 6755*fb8a8121Smrg * include/Makefile.in: Regenerate. 6756*fb8a8121Smrg * include/std/ostream (operator<<(nullptr_t)): New member function. 6757*fb8a8121Smrg * src/c++17/ostream-inst.cc: New file. 6758*fb8a8121Smrg * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc: New 6759*fb8a8121Smrg test. 6760*fb8a8121Smrg 6761*fb8a8121Smrg2019-01-10 Jonathan Wakely <jwakely@redhat.com> 6762*fb8a8121Smrg 6763*fb8a8121Smrg * testsuite/util/testsuite_fs.h (nonexistent_path): Include name 6764*fb8a8121Smrg of the source file containing the caller. 6765*fb8a8121Smrg * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Remove 6766*fb8a8121Smrg directories created by test. 6767*fb8a8121Smrg * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc: 6768*fb8a8121Smrg Likewise. 6769*fb8a8121Smrg * testsuite/experimental/filesystem/iterators/directory_iterator.cc: 6770*fb8a8121Smrg Likewise. 6771*fb8a8121Smrg * testsuite/experimental/filesystem/iterators/ 6772*fb8a8121Smrg recursive_directory_iterator.cc: Likewise. 6773*fb8a8121Smrg 6774*fb8a8121Smrg2019-01-10 Jakub Jelinek <jakub@redhat.com> 6775*fb8a8121Smrg 6776*fb8a8121Smrg PR tree-optimization/88775 6777*fb8a8121Smrg * include/bits/stl_function.h (greater<_Tp*>::operator(), 6778*fb8a8121Smrg less<_Tp*>::operator(), greater_equal<_Tp*>::operator(), 6779*fb8a8121Smrg less_equal<_Tp*>::operator()): Use __builtin_is_constant_evaluated 6780*fb8a8121Smrg instead of __builtin_constant_p if available. Don't bother with 6781*fb8a8121Smrg the pointer comparison in C++11 and earlier. 6782*fb8a8121Smrg 6783*fb8a8121Smrg2019-01-09 Sandra Loosemore <sandra@codesourcery.com> 6784*fb8a8121Smrg 6785*fb8a8121Smrg PR other/16615 6786*fb8a8121Smrg 6787*fb8a8121Smrg * include/ext/bitmap_allocator.h: Mechanically replace "can not" 6788*fb8a8121Smrg with "cannot". 6789*fb8a8121Smrg 6790*fb8a8121Smrg2019-01-09 Jonathan Wakely <jwakely@redhat.com> 6791*fb8a8121Smrg 6792*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/cxx17.cc: Fix expected output 6793*fb8a8121Smrg for filesystem::path. Give variables more distinctive names. 6794*fb8a8121Smrg 6795*fb8a8121Smrg * include/std/optional (_Optional_payload_base::_M_copy_assign): New 6796*fb8a8121Smrg member function to perform non-trivial assignment. 6797*fb8a8121Smrg (_Optional_payload_base::_M_move_assign): Likewise. 6798*fb8a8121Smrg (_Optional_payload<T, true, false, true>::operator=) 6799*fb8a8121Smrg (_Optional_payload<T, true, true, false>::operator=) 6800*fb8a8121Smrg (_Optional_payload<T, true, false, false>::operator=): Call 6801*fb8a8121Smrg _M_copy_assign and/or _M_move_assign to do non-trivial assignments. 6802*fb8a8121Smrg 6803*fb8a8121Smrg PR libstdc++/88204 6804*fb8a8121Smrg * testsuite/26_numerics/complex/operators/more_constexpr.cc: Do not 6805*fb8a8121Smrg test std::complex<long double> if long double format is IBM128. 6806*fb8a8121Smrg * testsuite/26_numerics/complex/requirements/more_constexpr.cc: 6807*fb8a8121Smrg Likewise. 6808*fb8a8121Smrg 6809*fb8a8121Smrg2019-01-08 Jonathan Wakely <jwakely@redhat.com> 6810*fb8a8121Smrg 6811*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/compat.cc: Test printer support 6812*fb8a8121Smrg for old std::unique_ptr layout. 6813*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/cxx17.cc: Fix std::variant test 6814*fb8a8121Smrg to become valueless. Add filesystem::path tests. 6815*fb8a8121Smrg 6816*fb8a8121Smrg PR libstdc++/87855 6817*fb8a8121Smrg * include/std/optional (_Optional_payload_base): New class template 6818*fb8a8121Smrg for common code hoisted from _Optional_payload specializations. Use 6819*fb8a8121Smrg a template for the union, to allow a partial specialization for 6820*fb8a8121Smrg types with non-trivial destructors. Add constructors for in-place 6821*fb8a8121Smrg initialization to the union. 6822*fb8a8121Smrg (_Optional_payload(bool, const _Optional_payload&)): Use _M_construct 6823*fb8a8121Smrg to perform non-trivial copy construction, instead of relying on 6824*fb8a8121Smrg non-standard copy elision in a delegating constructor. 6825*fb8a8121Smrg (_Optional_payload(bool, _Optional_payload&&)): Likewise for 6826*fb8a8121Smrg non-trivial move construction. 6827*fb8a8121Smrg (_Optional_payload): Derive from _Optional_payload_base and use it 6828*fb8a8121Smrg for everything except the non-trivial assignment operators, which are 6829*fb8a8121Smrg defined as needed. 6830*fb8a8121Smrg (_Optional_payload<false, C, M>): Derive from the specialization 6831*fb8a8121Smrg _Optional_payload<true, false, false> and add a destructor. 6832*fb8a8121Smrg (_Optional_base_impl::_M_destruct, _Optional_base_impl::_M_reset): 6833*fb8a8121Smrg Forward to corresponding members of _Optional_payload. 6834*fb8a8121Smrg (_Optional_base_impl::_M_is_engaged, _Optional_base_impl::_M_get): 6835*fb8a8121Smrg Hoist common members from _Optional_base. 6836*fb8a8121Smrg (_Optional_base): Make all members and base class public. 6837*fb8a8121Smrg (_Optional_base::_M_get, _Optional_base::_M_is_engaged): Move to 6838*fb8a8121Smrg _Optional_base_impl. 6839*fb8a8121Smrg * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Add 6840*fb8a8121Smrg support for new std::optional layout. 6841*fb8a8121Smrg * testsuite/libstdc++-prettyprinters/compat.cc: New test. 6842*fb8a8121Smrg 6843*fb8a8121Smrg PR libstdc++/88066 6844*fb8a8121Smrg * include/bits/locale_conv.h: Use <> for includes not "". 6845*fb8a8121Smrg * include/ext/random: Likewise. 6846*fb8a8121Smrg * include/ext/vstring.h: Likewise. 6847*fb8a8121Smrg 6848*fb8a8121Smrg2019-01-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 6849*fb8a8121Smrg 6850*fb8a8121Smrg * config/abi/pre/gnu.ver (GLIBCXX_3.4): Tighten existing patterns. 6851*fb8a8121Smrg (GLIBCXX_3.4.21): Likewise. 6852*fb8a8121Smrg 6853*fb8a8121Smrg2019-01-08 Jonathan Wakely <jwakely@redhat.com> 6854*fb8a8121Smrg 6855*fb8a8121Smrg PR libstdc++/88749 6856*fb8a8121Smrg * src/filesystem/ops.cc (last_write_time): Fix preprocessor condition 6857*fb8a8121Smrg to match the one that controls whether utimbuf and utime are declared. 6858*fb8a8121Smrg 6859*fb8a8121Smrg2019-01-07 Jonathan Wakely <jwakely@redhat.com> 6860*fb8a8121Smrg 6861*fb8a8121Smrg PR libstdc++/87787 6862*fb8a8121Smrg * include/bits/char_traits.h (char_traits::move): Do not pass null 6863*fb8a8121Smrg pointers to memmove. 6864*fb8a8121Smrg * include/bits/locale_facets.h 6865*fb8a8121Smrg (ctype<char>::widen(const char*, const char*, char*)): Do not 6866*fb8a8121Smrg pass null pointers to memcpy. 6867*fb8a8121Smrg (ctype<char>::narrow(const char*, const char*, char, char*)): 6868*fb8a8121Smrg Likewise. 6869*fb8a8121Smrg (ctype<char>::do_widen(const char*, const char*, char*)): 6870*fb8a8121Smrg Likewise. 6871*fb8a8121Smrg (ctype<char>::do_narrow(const char*, const char*, char, char*)): 6872*fb8a8121Smrg Likewise. 6873*fb8a8121Smrg 6874*fb8a8121Smrg * doc/xml/manual/spine.xml: Update copyright years. 6875*fb8a8121Smrg * doc/xml/manual/status_cxx2017.xml: Adjust note about -lstdc++fs. 6876*fb8a8121Smrg * doc/xml/manual/using.xml: Remove requirement to link with -lstdc++fs 6877*fb8a8121Smrg for C++17 filesystem library. 6878*fb8a8121Smrg * doc/html/*: Regenerate. 6879*fb8a8121Smrg 6880*fb8a8121Smrg * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for truncate. 6881*fb8a8121Smrg * config.h.in: Regenerate. 6882*fb8a8121Smrg * config/abi/pre/gnu.ver: Order patterns for filesystem operations 6883*fb8a8121Smrg alphabetically and add missing entries for copy_symlink, 6884*fb8a8121Smrg hard_link_count, rename, and resize_file. 6885*fb8a8121Smrg * configure: Regenerate. 6886*fb8a8121Smrg * src/c++17/fs_ops.cc (resize_file): Remove #if so posix::truncate is 6887*fb8a8121Smrg used unconditionally. 6888*fb8a8121Smrg * src/filesystem/ops-common.h (__gnu_posix::truncate) 6889*fb8a8121Smrg [!_GLIBCXX_HAVE_TRUNCATE]: Provide fallback definition that only 6890*fb8a8121Smrg supports truncating to zero length. 6891*fb8a8121Smrg * testsuite/27_io/filesystem/operations/all.cc: New test. 6892*fb8a8121Smrg * testsuite/27_io/filesystem/operations/resize_file.cc: New test. 6893*fb8a8121Smrg 6894*fb8a8121Smrg2019-01-06 Jonathan Wakely <jwakely@redhat.com> 6895*fb8a8121Smrg 6896*fb8a8121Smrg PR libstdc++/86756 6897*fb8a8121Smrg * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for utime and 6898*fb8a8121Smrg lstat and define _GLIBCXX_USE_UTIME and _GLIBCXX_USE_LSTAT. 6899*fb8a8121Smrg * config.h.in: Regenerate. 6900*fb8a8121Smrg * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export symbols for 6901*fb8a8121Smrg remaining std::filesystem types and functions. 6902*fb8a8121Smrg * configure: Regenerate. 6903*fb8a8121Smrg * src/c++17/Makefile.am: Add C++17 filesystem sources. 6904*fb8a8121Smrg * src/c++17/Makefile.in: Regenerate. 6905*fb8a8121Smrg * src/c++17/cow-fs_dir.cc: Move src/filesystem/cow-std-dir.cc to 6906*fb8a8121Smrg here, and change name of included file. 6907*fb8a8121Smrg * src/c++17/cow-fs_ops.cc: Move src/filesystem/cow-std-ops.cc to 6908*fb8a8121Smrg here, and change name of included file. 6909*fb8a8121Smrg * src/c++17/fs_dir.cc: Move src/filesystem/std-dir.cc to here. Change 6910*fb8a8121Smrg path to dir-common.h. 6911*fb8a8121Smrg * src/c++17/fs_ops.cc: Move src/filesystem/std-ops.cc to here. Change 6912*fb8a8121Smrg path to ops-common.h. Disable -Wunused-parameter warnings. 6913*fb8a8121Smrg (internal_file_clock): Define unconditionally. 6914*fb8a8121Smrg [!_GLIBCXX_HAVE_SYS_STAT_H] (internal_file_clock::from_stat): Do not 6915*fb8a8121Smrg define. 6916*fb8a8121Smrg (do_copy_file, do_space): Move definitions to ops.common.h. 6917*fb8a8121Smrg (copy, file_size, hard_link_count, last_write_time, space): Only 6918*fb8a8121Smrg perform operation when _GLIBCXX_HAVE_SYS_STAT_H is defined, otherwise 6919*fb8a8121Smrg report an error. 6920*fb8a8121Smrg (last_write_time, read_symlink): Remove unused attributes from 6921*fb8a8121Smrg parameters. 6922*fb8a8121Smrg * src/filesystem/Makefile.am: Remove C++17 filesystem sources. 6923*fb8a8121Smrg * src/filesystem/Makefile.in: Regenerate. 6924*fb8a8121Smrg * src/filesystem/cow-std-dir.cc: Move to src/c++17/cow-fs_dir.cc. 6925*fb8a8121Smrg * src/filesystem/cow-std-ops.cc: Move to src/c++17/cow-fs_ops.cc. 6926*fb8a8121Smrg * src/filesystem/std-dir.cc: Move to src/c++17/fs_dir.cc. 6927*fb8a8121Smrg * src/filesystem/std-ops.cc: Move to src/c++17/fs_ops.cc. 6928*fb8a8121Smrg * src/filesystem/dir-common.h [!_GLIBCXX_HAVE_DIRENT_H]: Define 6929*fb8a8121Smrg dummy types and functions instead of using #error. 6930*fb8a8121Smrg * src/filesystem/dir.cc [!_GLIBCXX_HAVE_DIRENT_H]: Use #error. 6931*fb8a8121Smrg * src/filesystem/ops-common.h [!_GLIBCXX_USE_LSTAT] (lstat): Define 6932*fb8a8121Smrg in terms of stat. 6933*fb8a8121Smrg [!_GLIBCXX_HAVE_UNISTD_H]: Define dummy types and functions. 6934*fb8a8121Smrg (do_copy_file, do_space): Move definitions here from std-ops.cc. 6935*fb8a8121Smrg * src/filesystem/ops.cc: Adjust calls to do_copy_file and do_space 6936*fb8a8121Smrg to account for new namespace. 6937*fb8a8121Smrg * testsuite/27_io/filesystem/directory_entry/86597.cc: Remove 6938*fb8a8121Smrg -lstdc++fs from dg-options. 6939*fb8a8121Smrg * testsuite/27_io/filesystem/directory_entry/lwg3171.cc: Likewise. 6940*fb8a8121Smrg * testsuite/27_io/filesystem/file_status/1.cc: Likewise. 6941*fb8a8121Smrg * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise. 6942*fb8a8121Smrg * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise. 6943*fb8a8121Smrg * testsuite/27_io/filesystem/iterators/directory_iterator.cc: 6944*fb8a8121Smrg Likewise. 6945*fb8a8121Smrg * testsuite/27_io/filesystem/iterators/pop.cc: Likewise. 6946*fb8a8121Smrg * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc: 6947*fb8a8121Smrg Likewise. 6948*fb8a8121Smrg * testsuite/27_io/filesystem/operations/absolute.cc: Likewise. 6949*fb8a8121Smrg * testsuite/27_io/filesystem/operations/canonical.cc: Likewise. 6950*fb8a8121Smrg * testsuite/27_io/filesystem/operations/copy.cc: Likewise. 6951*fb8a8121Smrg * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise. 6952*fb8a8121Smrg * testsuite/27_io/filesystem/operations/create_directories.cc: 6953*fb8a8121Smrg Likewise. 6954*fb8a8121Smrg * testsuite/27_io/filesystem/operations/create_directory.cc: Likewise. 6955*fb8a8121Smrg * testsuite/27_io/filesystem/operations/create_symlink.cc: Likewise. 6956*fb8a8121Smrg * testsuite/27_io/filesystem/operations/current_path.cc: Likewise. 6957*fb8a8121Smrg * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise. 6958*fb8a8121Smrg * testsuite/27_io/filesystem/operations/exists.cc: Likewise. 6959*fb8a8121Smrg * testsuite/27_io/filesystem/operations/file_size.cc: Likewise. 6960*fb8a8121Smrg * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise. 6961*fb8a8121Smrg * testsuite/27_io/filesystem/operations/last_write_time.cc: Likewise. 6962*fb8a8121Smrg * testsuite/27_io/filesystem/operations/permissions.cc: Likewise. 6963*fb8a8121Smrg * testsuite/27_io/filesystem/operations/proximate.cc: Likewise. 6964*fb8a8121Smrg * testsuite/27_io/filesystem/operations/read_symlink.cc: Likewise. 6965*fb8a8121Smrg * testsuite/27_io/filesystem/operations/relative.cc: Likewise. 6966*fb8a8121Smrg * testsuite/27_io/filesystem/operations/remove.cc: Likewise. 6967*fb8a8121Smrg * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise. 6968*fb8a8121Smrg * testsuite/27_io/filesystem/operations/space.cc: Likewise. 6969*fb8a8121Smrg * testsuite/27_io/filesystem/operations/status.cc: Likewise. 6970*fb8a8121Smrg * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise. 6971*fb8a8121Smrg * testsuite/27_io/filesystem/operations/temp_directory_path.cc: 6972*fb8a8121Smrg Likewise. 6973*fb8a8121Smrg * testsuite/27_io/filesystem/operations/weakly_canonical.cc: Likewise. 6974*fb8a8121Smrg 6975*fb8a8121Smrg 6976*fb8a8121Smrg PR libstdc++/86756 6977*fb8a8121Smrg * config/abi/pre/gnu.ver (GLIBCXX_3.4): Make various patterns for 6978*fb8a8121Smrg typeinfo and vtables less greedy. 6979*fb8a8121Smrg (GLIBCXX_3.4.26): Export symbols for std::filesystem::path. 6980*fb8a8121Smrg * src/c++17/Makefile.am: Add fs_path.cc and cow-fs_path.cc. 6981*fb8a8121Smrg * src/c++17/Makefile.in: Regenerate. 6982*fb8a8121Smrg * src/c++17/cow-fs_path.cc: Move src/filesystem/cow-std-path.cc to 6983*fb8a8121Smrg here, and change name of included file. 6984*fb8a8121Smrg * src/c++17/fs_path.cc: Move src/filesystem/std-path.cc to here. 6985*fb8a8121Smrg * src/filesystem/Makefile.am: Remove std-path.cc and cow-std-path.cc 6986*fb8a8121Smrg from sources. 6987*fb8a8121Smrg * src/filesystem/Makefile.in: Regenerate. 6988*fb8a8121Smrg * src/filesystem/cow-std-path.cc: Move to src/c++17/cow-fs_path.cc. 6989*fb8a8121Smrg * src/filesystem/std-path.cc: Move to src/c++17/fs_path.cc. 6990*fb8a8121Smrg * testsuite/27_io/filesystem/path/append/path.cc: Remove -lstdc++fs 6991*fb8a8121Smrg from dg-options and remove dg-require-filesystem-ts. 6992*fb8a8121Smrg * testsuite/27_io/filesystem/path/append/source.cc: Likewise. 6993*fb8a8121Smrg * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise. 6994*fb8a8121Smrg * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise. 6995*fb8a8121Smrg * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise. 6996*fb8a8121Smrg * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise. 6997*fb8a8121Smrg * testsuite/27_io/filesystem/path/compare/path.cc: Likewise. 6998*fb8a8121Smrg * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise. 6999*fb8a8121Smrg * testsuite/27_io/filesystem/path/concat/path.cc: Likewise. 7000*fb8a8121Smrg * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise. 7001*fb8a8121Smrg * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise. 7002*fb8a8121Smrg * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise. 7003*fb8a8121Smrg * testsuite/27_io/filesystem/path/construct/default.cc: Likewise. 7004*fb8a8121Smrg * testsuite/27_io/filesystem/path/construct/format.cc: Likewise. 7005*fb8a8121Smrg * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise. 7006*fb8a8121Smrg * testsuite/27_io/filesystem/path/construct/range.cc: Likewise. 7007*fb8a8121Smrg * testsuite/27_io/filesystem/path/construct/string_view.cc: Likewise. 7008*fb8a8121Smrg * testsuite/27_io/filesystem/path/decompose/extension.cc: Likewise. 7009*fb8a8121Smrg * testsuite/27_io/filesystem/path/decompose/filename.cc: Likewise. 7010*fb8a8121Smrg * testsuite/27_io/filesystem/path/decompose/parent_path.cc: Likewise. 7011*fb8a8121Smrg * testsuite/27_io/filesystem/path/decompose/relative_path.cc: Likewise. 7012*fb8a8121Smrg * testsuite/27_io/filesystem/path/decompose/root_directory.cc: 7013*fb8a8121Smrg Likewise. 7014*fb8a8121Smrg * testsuite/27_io/filesystem/path/decompose/root_name.cc: Likewise. 7015*fb8a8121Smrg * testsuite/27_io/filesystem/path/decompose/root_path.cc: Likewise. 7016*fb8a8121Smrg * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise. 7017*fb8a8121Smrg * testsuite/27_io/filesystem/path/generation/normal.cc: Likewise. 7018*fb8a8121Smrg * testsuite/27_io/filesystem/path/generation/normal2.cc: Likewise. 7019*fb8a8121Smrg * testsuite/27_io/filesystem/path/generation/proximate.cc: Likewise. 7020*fb8a8121Smrg * testsuite/27_io/filesystem/path/generation/relative.cc: Likewise. 7021*fb8a8121Smrg * testsuite/27_io/filesystem/path/generic/generic_string.cc: Likewise. 7022*fb8a8121Smrg * testsuite/27_io/filesystem/path/itr/components.cc: Likewise. 7023*fb8a8121Smrg * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise. 7024*fb8a8121Smrg * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise. 7025*fb8a8121Smrg * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: 7026*fb8a8121Smrg Likewise. 7027*fb8a8121Smrg * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: 7028*fb8a8121Smrg Likewise. 7029*fb8a8121Smrg * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: 7030*fb8a8121Smrg Likewise. 7031*fb8a8121Smrg * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc: 7032*fb8a8121Smrg Likewise. 7033*fb8a8121Smrg * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise. 7034*fb8a8121Smrg * testsuite/27_io/filesystem/path/native/string.cc: Likewise. 7035*fb8a8121Smrg * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise. 7036*fb8a8121Smrg * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: Likewise. 7037*fb8a8121Smrg * testsuite/27_io/filesystem/path/query/empty.cc: Likewise. 7038*fb8a8121Smrg * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise. 7039*fb8a8121Smrg * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise. 7040*fb8a8121Smrg * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise. 7041*fb8a8121Smrg * testsuite/27_io/filesystem/path/query/has_relative_path.cc: Likewise. 7042*fb8a8121Smrg * testsuite/27_io/filesystem/path/query/has_root_directory.cc: 7043*fb8a8121Smrg Likewise. 7044*fb8a8121Smrg * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise. 7045*fb8a8121Smrg * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise. 7046*fb8a8121Smrg * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise. 7047*fb8a8121Smrg * testsuite/27_io/filesystem/path/query/is_absolute.cc: Likewise. 7048*fb8a8121Smrg * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise. 7049*fb8a8121Smrg 7050*fb8a8121Smrg PR libstdc++/87431 7051*fb8a8121Smrg * include/std/variant (_Variant_storage<true, _Types...>::_M_valid): 7052*fb8a8121Smrg Check is_trivially_copyable instead of is_scalar. 7053*fb8a8121Smrg (variant::emplace<N, Args>(Args&&...)): If construction of the new 7054*fb8a8121Smrg contained value can throw and its type is trivially copyable then 7055*fb8a8121Smrg construct into a temporary variant and move from it, to provide the 7056*fb8a8121Smrg strong exception safety guarantee. 7057*fb8a8121Smrg (variant::emplace<N, U, Args>(initializer_list<U>, Args&&...)): 7058*fb8a8121Smrg Likewise. 7059*fb8a8121Smrg * testsuite/20_util/variant/87431.cc: New test. 7060*fb8a8121Smrg * testsuite/20_util/variant/run.cc: Adjust test so that throwing 7061*fb8a8121Smrg conversion causes valueless state. 7062*fb8a8121Smrg 7063*fb8a8121Smrg PR libstdc++/88607 7064*fb8a8121Smrg * testsuite/17_intro/headers/c++1998/charset.cc: New test. 7065*fb8a8121Smrg * testsuite/17_intro/headers/c++2011/charset.cc: New test. 7066*fb8a8121Smrg * testsuite/17_intro/headers/c++2014/charset.cc: New test. 7067*fb8a8121Smrg * testsuite/17_intro/headers/c++2017/charset.cc: New test. 7068*fb8a8121Smrg * testsuite/17_intro/headers/c++2020/charset.cc: New test. 7069*fb8a8121Smrg 7070*fb8a8121Smrg2019-01-05 Jonathan Wakely <jwakely@redhat.com> 7071*fb8a8121Smrg 7072*fb8a8121Smrg * include/bits/fs_fwd.h (__file_clock): Define new clock. 7073*fb8a8121Smrg (file_time_type): Redefine in terms of __file_clock. 7074*fb8a8121Smrg * src/filesystem/ops-common.h (file_time): Add FIXME comment about 7075*fb8a8121Smrg overflow. 7076*fb8a8121Smrg * src/filesystem/std-ops.cc (is_set(perm_options, perm_options)): Give 7077*fb8a8121Smrg internal linkage. 7078*fb8a8121Smrg (internal_file_lock): New helper type for accessing __file_clock. 7079*fb8a8121Smrg (do_copy_file): Use internal_file_lock to convert system time to 7080*fb8a8121Smrg file_time_type. 7081*fb8a8121Smrg (last_write_time(const path&, error_code&)): Likewise. 7082*fb8a8121Smrg (last_write_time(const path&, file_time_type, error_code&)): Likewise. 7083*fb8a8121Smrg 7084*fb8a8121Smrg2019-01-04 Jonathan Wakely <jwakely@redhat.com> 7085*fb8a8121Smrg 7086*fb8a8121Smrg * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Make patterns less greedy 7087*fb8a8121Smrg for const member functions of std::basic_string. 7088*fb8a8121Smrg (GLIBCXX_3.4.26): Export member functions of std::basic_string added 7089*fb8a8121Smrg in C++17. 7090*fb8a8121Smrg * include/bits/basic_string.h (basic_string(__sv_wrapper, const A&)): 7091*fb8a8121Smrg Make non-standard constructor private. 7092*fb8a8121Smrg [!_GLIBCXX_USE_CXX11_ABI] (basic_string(__sv_wrapper, const A&)): 7093*fb8a8121Smrg Likewise. 7094*fb8a8121Smrg * include/bits/basic_string.tcc (std::string, std::wstring): Declare 7095*fb8a8121Smrg explicit instantiations for C++17 as well as earlier dialects. 7096*fb8a8121Smrg * src/c++17/Makefile.am: Add new source files. 7097*fb8a8121Smrg * src/c++17/Makefile.in: Regenerate. 7098*fb8a8121Smrg * src/c++17/cow-string-inst.cc: New file defining explicit 7099*fb8a8121Smrg instantiations for basic_string member functions added in C++17. 7100*fb8a8121Smrg * src/c++17/string-inst.cc: Likewise. 7101*fb8a8121Smrg 7102*fb8a8121Smrg * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export allocator-extended 7103*fb8a8121Smrg copy/move constructors for old std::basic_string. 7104*fb8a8121Smrg * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI] 7105*fb8a8121Smrg (basic_string::reference, basic_string::const_reference): Define 7106*fb8a8121Smrg as plain references for C++11 and later. 7107*fb8a8121Smrg (basic_string::basic_string()): Put constructor body outside 7108*fb8a8121Smrg preprocessor conditional groups. 7109*fb8a8121Smrg (basic_string::basic_string(basic_string&&)): Move _Alloc_hider 7110*fb8a8121Smrg instead of copying it. 7111*fb8a8121Smrg (basic_string::basic_string(const basic_string&, const _Alloc&)): 7112*fb8a8121Smrg Define. 7113*fb8a8121Smrg (basic_string::basic_string(basic_string&&, const _Alloc&)): 7114*fb8a8121Smrg Define. 7115*fb8a8121Smrg * include/bits/fs_path.h [!_GLIBCXX_USE_CXX11_ABI]: Remove special 7116*fb8a8121Smrg cases for old basic_string. 7117*fb8a8121Smrg * testsuite/21_strings/basic_string/cons/char/8.cc: Test 7118*fb8a8121Smrg allocator-extended constructors unconditionally. Add extra members to 7119*fb8a8121Smrg allocator type when using old string ABI. 7120*fb8a8121Smrg * testsuite/21_strings/basic_string/allocator/71964.cc: Enable test 7121*fb8a8121Smrg for old string ABI. 7122*fb8a8121Smrg * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise. 7123*fb8a8121Smrg 7124*fb8a8121Smrg * testsuite/23_containers/list/61347.cc: Avoid spurious failure when 7125*fb8a8121Smrg -fno-inline added to test flags. 7126*fb8a8121Smrg 7127*fb8a8121Smrg * testsuite/21_strings/basic_string/requirements/ 7128*fb8a8121Smrg explicit_instantiation/debug.cc: Remove XFAIL for old ABI. 7129*fb8a8121Smrg 7130*fb8a8121Smrg * testsuite/27_io/filesystem/filesystem_error/copy.cc: Fix static 7131*fb8a8121Smrg assertion failures with old std::string ABI. 7132*fb8a8121Smrg 7133*fb8a8121Smrg * include/bits/fs_path.h (path::_List::erase): Replace both overloads 7134*fb8a8121Smrg with ... 7135*fb8a8121Smrg (path::pop_back(), path::_M_erase_from(const_iterator)): New member 7136*fb8a8121Smrg functions that will only erase elements at the end. 7137*fb8a8121Smrg * src/filesystem/std-path.cc (path::_List::_Impl::pop_back()): Define. 7138*fb8a8121Smrg (path::_List::_Impl::_M_erase_from(const_iterator)): Define. 7139*fb8a8121Smrg (path::_List::operator=(const _List&)): Use _M_erase_from(p) instead 7140*fb8a8121Smrg of erase(p, end()). 7141*fb8a8121Smrg (path::_List::pop_back()): Define. 7142*fb8a8121Smrg (path::_List::_M_erase_from(const_iterator)): Define. 7143*fb8a8121Smrg (path::operator/=(const path&)): Use pop_back to remove last component 7144*fb8a8121Smrg and _M_erase_from to remove multiple components. 7145*fb8a8121Smrg (path::_M_append(basic_string_view<value_type>)): Likewise. 7146*fb8a8121Smrg (path::operator+=(const path&)): Likewise. 7147*fb8a8121Smrg (path::_M_concat(basic_string_view<value_type>)): Likewise. 7148*fb8a8121Smrg (path::remove_filename()): Likewise. 7149*fb8a8121Smrg (path::lexically_normal()): Use _List::_Impl iterators instead of 7150*fb8a8121Smrg path::iterator. Use pop_back to remove components from the end. Clear 7151*fb8a8121Smrg trailing filename, instead of using erase(const_iterator) to remove 7152*fb8a8121Smrg a non-final component. 7153*fb8a8121Smrg * testsuite/27_io/filesystem/path/generation/normal.cc: Test 7154*fb8a8121Smrg additional cases. 7155*fb8a8121Smrg * testsuite/27_io/filesystem/path/generation/normal2.cc: New test. 7156*fb8a8121Smrg 7157*fb8a8121Smrg * src/filesystem/std-path.cc (path::operator+=(const path&)): Fix 7158*fb8a8121Smrg incorrect treatment of empty filename after trailing slash. 7159*fb8a8121Smrg * testsuite/27_io/filesystem/path/concat/path.cc: Test problem case. 7160*fb8a8121Smrg 7161*fb8a8121Smrg * testsuite/21_strings/basic_string/modifiers/assign/char/ 7162*fb8a8121Smrg move_assign_optim.cc: Avoid spurious failure when -fno-inline added 7163*fb8a8121Smrg to test flags. 7164*fb8a8121Smrg * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/ 7165*fb8a8121Smrg move_assign_optim.cc: Likewise. 7166*fb8a8121Smrg 7167*fb8a8121Smrg2019-01-03 Jonathan Wakely <jwakely@redhat.com> 7168*fb8a8121Smrg Jakub Jelinek <jakub@redhat.com> 7169*fb8a8121Smrg 7170*fb8a8121Smrg PR libstdc++/88607 7171*fb8a8121Smrg * include/experimental/memory: Replace UTF-8 quote characters. 7172*fb8a8121Smrg * include/std/future: Replace UTF-8 "em dash" characters. 7173*fb8a8121Smrg 7174*fb8a8121Smrg2019-01-03 Jonathan Wakely <jwakely@redhat.com> 7175*fb8a8121Smrg 7176*fb8a8121Smrg PR libstdc++/88607 7177*fb8a8121Smrg * include/bits/forward_list.h: Replace UTF-8 "ligature fi" character. 7178*fb8a8121Smrg * include/debug/forward_list: Likewise. 7179*fb8a8121Smrg * include/experimental/bits/shared_ptr.h: Remove UTF-8 "section sign" 7180*fb8a8121Smrg character. 7181*fb8a8121Smrg * include/experimental/chrono: Likewise. 7182*fb8a8121Smrg * include/experimental/functional: Likewise. 7183*fb8a8121Smrg * include/experimental/ratio: Likewise. 7184*fb8a8121Smrg * include/experimental/system_error: Likewise. 7185*fb8a8121Smrg * include/experimental/tuple: Likewise. 7186*fb8a8121Smrg * include/experimental/type_traits: Likewise. 7187*fb8a8121Smrg * include/parallel/workstealing.h: Replace UTF-8 "en dash" character. 7188*fb8a8121Smrg * include/parallel/multiseq_selection.h: Likewise. 7189*fb8a8121Smrg 7190*fb8a8121Smrg PR libstdc++/88681 7191*fb8a8121Smrg * config/abi/pre/gnu.ver: Add missing exports. 7192*fb8a8121Smrg * testsuite/22_locale/collate_byname/88681.cc: New test. 7193*fb8a8121Smrg * testsuite/22_locale/time_get/get/char/88681.cc: New test. 7194*fb8a8121Smrg * testsuite/22_locale/time_get/get/wchar_t/88681.cc: New test. 7195*fb8a8121Smrg 7196*fb8a8121Smrg2019-01-02 Jonathan Wakely <jwakely@redhat.com> 7197*fb8a8121Smrg 7198*fb8a8121Smrg * testsuite/23_containers/map/cons/deduction.cc: Test deduction from 7199*fb8a8121Smrg initializer_list<value_type> and from input iterator ranges. 7200*fb8a8121Smrg * testsuite/23_containers/multimap/cons/deduction.cc: Likewise. 7201*fb8a8121Smrg 7202*fb8a8121Smrg * testsuite/experimental/string_view/element_access/char/empty.cc: 7203*fb8a8121Smrg Fix year range in copyright header. 7204*fb8a8121Smrg 7205*fb8a8121Smrg2019-01-02 Joel Brobecker <brobecker@adacore.com> 7206*fb8a8121Smrg 7207*fb8a8121Smrg * testsuite/21_strings/basic_string_view/element_access/char/empty.cc: 7208*fb8a8121Smrg Fix year range in copyright header. 7209*fb8a8121Smrg 7210*fb8a8121Smrg2019-01-01 Jakub Jelinek <jakub@redhat.com> 7211*fb8a8121Smrg 7212*fb8a8121Smrg Update copyright years. 7213*fb8a8121Smrg 7214*fb8a8121SmrgCopyright (C) 2019-2020 Free Software Foundation, Inc. 7215*fb8a8121Smrg 7216*fb8a8121SmrgCopying and distribution of this file, with or without modification, 7217*fb8a8121Smrgare permitted in any medium without royalty provided the copyright 7218*fb8a8121Smrgnotice and this notice are preserved. 7219