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