1*0a307195Smrg2024-06-20 Release Manager 2*0a307195Smrg 3*0a307195Smrg * GCC 12.4.0 released. 4*0a307195Smrg 5*0a307195Smrg2024-06-17 Jonathan Wakely <jwakely@redhat.com> 6*0a307195Smrg 7*0a307195Smrg Backported from master: 8*0a307195Smrg 2024-06-14 Jonathan Wakely <jwakely@redhat.com> 9*0a307195Smrg 10*0a307195Smrg * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Fix declaration of 11*0a307195Smrg posix_memalign. 12*0a307195Smrg 13*0a307195Smrg2024-06-11 Tianqiang Shuai <1101282468@qq.com> 14*0a307195Smrg 15*0a307195Smrg Backported from master: 16*0a307195Smrg 2023-07-06 Tianqiang Shuai <1101282468@qq.com> 17*0a307195Smrg 18*0a307195Smrg * config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix 19*0a307195Smrg first argument. 20*0a307195Smrg 21*0a307195Smrg2024-06-11 Jonathan Wakely <jwakely@redhat.com> 22*0a307195Smrg 23*0a307195Smrg Backported from master: 24*0a307195Smrg 2023-03-22 Jonathan Wakely <jwakely@redhat.com> 25*0a307195Smrg 26*0a307195Smrg * include/std/utility (__cpp_lib_constexpr_algorithms): Define, 27*0a307195Smrg as per LWG 3792. 28*0a307195Smrg * testsuite/20_util/exchange/constexpr.cc: Check for it. 29*0a307195Smrg 30*0a307195Smrg2024-06-11 Jonathan Wakely <jwakely@redhat.com> 31*0a307195Smrg 32*0a307195Smrg Backported from master: 33*0a307195Smrg 2023-02-16 Jonathan Wakely <jwakely@redhat.com> 34*0a307195Smrg 35*0a307195Smrg * include/bits/fs_ops.h (create_directory): Use reserved name 36*0a307195Smrg for parameter. 37*0a307195Smrg * include/bits/regex_automaton.h (_State_base::_M_print): 38*0a307195Smrg Likewise. 39*0a307195Smrg * include/bits/regex_automaton.tcc(_State_base::_M_print): 40*0a307195Smrg Likewise. 41*0a307195Smrg * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise. 42*0a307195Smrg * include/experimental/bits/fs_ops.h (create_directory): 43*0a307195Smrg Likewise. 44*0a307195Smrg * include/std/mutex (timed_mutex::_M_clocklock): Likewise. 45*0a307195Smrg (recursive_timed_mutex:_M_clocklock): Likewise. 46*0a307195Smrg * libsupc++/cxxabi_init_exception.h 47*0a307195Smrg (__cxa_init_primary_exception): Likewise. 48*0a307195Smrg * testsuite/17_intro/names.cc: Add checks. 49*0a307195Smrg 50*0a307195Smrg2024-06-11 Jonathan Wakely <jwakely@redhat.com> 51*0a307195Smrg 52*0a307195Smrg Backported from master: 53*0a307195Smrg 2024-02-02 Jonathan Wakely <jwakely@redhat.com> 54*0a307195Smrg 55*0a307195Smrg * include/experimental/internet (network_v6::network): Define. 56*0a307195Smrg (network_v6::hosts): Finish implementing. 57*0a307195Smrg (network_v6::to_string): Do not concatenate std::string to 58*0a307195Smrg arbitrary std::basic_string specialization. 59*0a307195Smrg * testsuite/experimental/net/internet/network/v6/cons.cc: New 60*0a307195Smrg test. 61*0a307195Smrg 62*0a307195Smrg2024-06-11 Jonathan Wakely <jwakely@redhat.com> 63*0a307195Smrg 64*0a307195Smrg Backported from master: 65*0a307195Smrg 2023-06-09 Jonathan Wakely <jwakely@redhat.com> 66*0a307195Smrg 67*0a307195Smrg PR libstdc++/100285 68*0a307195Smrg * include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP] 69*0a307195Smrg (basic_endpoint, basic_resolver_entry, resolver_base) 70*0a307195Smrg (basic_resolver_results, basic_resolver): Only define if the tcp 71*0a307195Smrg or udp protocols will be defined. 72*0a307195Smrg 73*0a307195Smrg2024-06-11 Jonathan Wakely <jwakely@redhat.com> 74*0a307195Smrg 75*0a307195Smrg Backported from master: 76*0a307195Smrg 2023-07-05 Jonathan Wakely <jwakely@redhat.com> 77*0a307195Smrg 78*0a307195Smrg PR libstdc++/110542 79*0a307195Smrg * include/bits/stl_uninitialized.h (__uninitialized_default_n): 80*0a307195Smrg Do not use std::fill_n during constant evaluation. 81*0a307195Smrg 82*0a307195Smrg2024-06-11 Jonathan Wakely <jwakely@redhat.com> 83*0a307195Smrg 84*0a307195Smrg Backported from master: 85*0a307195Smrg 2024-04-10 Jonathan Wakely <jwakely@redhat.com> 86*0a307195Smrg 87*0a307195Smrg * testsuite/27_io/manipulators/extended/get_time/char/2.cc: 88*0a307195Smrg Adjust input string so that it matches %a with or without a 89*0a307195Smrg trailing period. 90*0a307195Smrg 91*0a307195Smrg2024-06-11 Jonathan Wakely <jwakely@redhat.com> 92*0a307195Smrg 93*0a307195Smrg Backported from master: 94*0a307195Smrg 2024-03-19 Jonathan Wakely <jwakely@redhat.com> 95*0a307195Smrg 96*0a307195Smrg PR libstdc++/114359 97*0a307195Smrg * include/bits/random.tcc (binomial_distribution::param_type): 98*0a307195Smrg Ensure arithmetic is done as type double. 99*0a307195Smrg * testsuite/26_numerics/random/binomial_distribution/114359.cc: New test. 100*0a307195Smrg 101*0a307195Smrg2024-06-11 Jonathan Wakely <jwakely@redhat.com> 102*0a307195Smrg 103*0a307195Smrg Backported from master: 104*0a307195Smrg 2024-03-19 Jonathan Wakely <jwakely@redhat.com> 105*0a307195Smrg 106*0a307195Smrg PR libstdc++/114367 107*0a307195Smrg * include/bits/stl_bvector.h (_M_allocate): Use allocator's 108*0a307195Smrg construct function to begin lifetime of words. 109*0a307195Smrg 110*0a307195Smrg2024-06-11 Jonathan Wakely <jwakely@redhat.com> 111*0a307195Smrg 112*0a307195Smrg Backported from master: 113*0a307195Smrg 2024-04-03 Jonathan Wakely <jwakely@redhat.com> 114*0a307195Smrg 115*0a307195Smrg PR libstdc++/104606 116*0a307195Smrg * include/std/optional (operator<=>(const optional<T>&, const U&)): 117*0a307195Smrg Reverse order of three_way_comparable_with template arguments. 118*0a307195Smrg * testsuite/20_util/optional/relops/104606.cc: New test. 119*0a307195Smrg 120*0a307195Smrg2024-06-11 Jonathan Wakely <jwakely@redhat.com> 121*0a307195Smrg 122*0a307195Smrg Backported from master: 123*0a307195Smrg 2024-03-22 Jonathan Wakely <jwakely@redhat.com> 124*0a307195Smrg 125*0a307195Smrg PR libstdc++/114401 126*0a307195Smrg * include/bits/hashtable.h (_Hashtable::_M_reinsert_node): Call 127*0a307195Smrg release() on node handle instead of just zeroing its pointer. 128*0a307195Smrg (_Hashtable::_M_reinsert_node_multi): Likewise. 129*0a307195Smrg (_Hashtable::_M_merge_unique): Likewise. 130*0a307195Smrg (_Hashtable::_M_merge_multi): Likewise. 131*0a307195Smrg * include/bits/node_handle.h (_Node_handle_common::release()): 132*0a307195Smrg New member function. 133*0a307195Smrg (_Node_handle_common::_Optional_alloc::_M_empty): Remove 134*0a307195Smrg unnecessary union member. 135*0a307195Smrg (_Node_handle_common): Declare _Hashtable as a friend. 136*0a307195Smrg * include/bits/stl_tree.h (_Rb_tree::_M_reinsert_node_unique): 137*0a307195Smrg Call release() on node handle instead of just zeroing its 138*0a307195Smrg pointer. 139*0a307195Smrg (_Rb_tree::_M_reinsert_node_equal): Likewise. 140*0a307195Smrg (_Rb_tree::_M_reinsert_node_hint_unique): Likewise. 141*0a307195Smrg (_Rb_tree::_M_reinsert_node_hint_equal): Likewise. 142*0a307195Smrg * testsuite/23_containers/multiset/modifiers/114401.cc: New test. 143*0a307195Smrg * testsuite/23_containers/set/modifiers/114401.cc: New test. 144*0a307195Smrg * testsuite/23_containers/unordered_multiset/modifiers/114401.cc: New test. 145*0a307195Smrg * testsuite/23_containers/unordered_set/modifiers/114401.cc: New test. 146*0a307195Smrg 147*0a307195Smrg2024-06-01 Jonathan Wakely <jwakely@redhat.com> 148*0a307195Smrg 149*0a307195Smrg Backported from master: 150*0a307195Smrg 2024-06-01 Jonathan Wakely <jwakely@redhat.com> 151*0a307195Smrg 152*0a307195Smrg PR libstdc++/115269 153*0a307195Smrg * doc/xml/manual/using.xml: Replace link to gcc-4.3.2 docs. 154*0a307195Smrg Replace list of -std=... options with a single entry for -std. 155*0a307195Smrg * doc/html/manual/using.html: Regenerate. 156*0a307195Smrg 157*0a307195Smrg2024-05-08 Matthias Kretz <m.kretz@gsi.de> 158*0a307195Smrg 159*0a307195Smrg Backported from master: 160*0a307195Smrg 2024-04-22 Matthias Kretz <m.kretz@gsi.de> 161*0a307195Smrg 162*0a307195Smrg PR libstdc++/114803 163*0a307195Smrg * include/experimental/bits/simd_builtin.h 164*0a307195Smrg (_SimdBase2::operator __vector_type_t): There is no __builtin() 165*0a307195Smrg function in _SimdWrapper, instead use its conversion operator. 166*0a307195Smrg * testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc: New 167*0a307195Smrg test. 168*0a307195Smrg 169*0a307195Smrg2024-05-08 Matthias Kretz <m.kretz@gsi.de> 170*0a307195Smrg 171*0a307195Smrg Backported from master: 172*0a307195Smrg 2024-04-22 Matthias Kretz <m.kretz@gsi.de> 173*0a307195Smrg 174*0a307195Smrg * include/experimental/bits/simd.h: Ignore -Wnarrowing for 175*0a307195Smrg arm_neon.h. 176*0a307195Smrg (__int_for_sizeof): Replace tautological compare with checking 177*0a307195Smrg for invalid template parameter value. 178*0a307195Smrg * include/experimental/bits/simd_builtin.h (__extract_part): 179*0a307195Smrg Remove tautological compare by combining two static_assert. 180*0a307195Smrg 181*0a307195Smrg2024-05-08 Matthias Kretz <m.kretz@gsi.de> 182*0a307195Smrg 183*0a307195Smrg Backported from master: 184*0a307195Smrg 2024-04-17 Matthias Kretz <m.kretz@gsi.de> 185*0a307195Smrg 186*0a307195Smrg * include/experimental/bits/numeric_traits.h: Add include guard. 187*0a307195Smrg 188*0a307195Smrg2024-05-08 Matthias Kretz <m.kretz@gsi.de> 189*0a307195Smrg 190*0a307195Smrg Backported from master: 191*0a307195Smrg 2024-04-17 Matthias Kretz <m.kretz@gsi.de> 192*0a307195Smrg 193*0a307195Smrg PR libstdc++/114750 194*0a307195Smrg * include/experimental/bits/simd_builtin.h 195*0a307195Smrg (_SimdImplBuiltin::_S_load, _S_store): Fall back to copying 196*0a307195Smrg scalars if the memory type cannot be vectorized for the target. 197*0a307195Smrg 198*0a307195Smrg2024-05-08 Matthias Kretz <m.kretz@gsi.de> 199*0a307195Smrg 200*0a307195Smrg Backported from master: 201*0a307195Smrg 2024-03-27 Matthias Kretz <m.kretz@gsi.de> 202*0a307195Smrg 203*0a307195Smrg * include/experimental/bits/simd_x86.h (_S_masked_unary): 204*0a307195Smrg Cast inputs < 16 bytes to 16 byte vectors before calling the 205*0a307195Smrg right subtraction builtin. Before returning, truncate to the 206*0a307195Smrg return vector type. 207*0a307195Smrg 208*0a307195Smrg2024-05-08 Matthias Kretz <m.kretz@gsi.de> 209*0a307195Smrg 210*0a307195Smrg Backported from master: 211*0a307195Smrg 2024-03-27 Matthias Kretz <m.kretz@gsi.de> 212*0a307195Smrg 213*0a307195Smrg * include/experimental/bits/simd_x86.h (_S_masked_unary): Call 214*0a307195Smrg the 4- and 8-byte variants of __builtin_ia32_subp[ds] without 215*0a307195Smrg rounding direction argument. 216*0a307195Smrg 217*0a307195Smrg2024-05-08 Matthias Kretz <m.kretz@gsi.de> 218*0a307195Smrg 219*0a307195Smrg Backported from master: 220*0a307195Smrg 2023-06-06 Matthias Kretz <m.kretz@gsi.de> 221*0a307195Smrg 222*0a307195Smrg PR libstdc++/109822 223*0a307195Smrg * include/experimental/bits/simd_builtin.h (_S_store): Rewrite 224*0a307195Smrg to avoid casts to other vector types. Implement store as 225*0a307195Smrg succession of power-of-2 sized memcpy to avoid PR90424. 226*0a307195Smrg 227*0a307195Smrg2024-05-08 Matthias Kretz <m.kretz@gsi.de> 228*0a307195Smrg 229*0a307195Smrg Backported from master: 230*0a307195Smrg 2023-06-06 Matthias Kretz <m.kretz@gsi.de> 231*0a307195Smrg 232*0a307195Smrg PR libstdc++/110054 233*0a307195Smrg * include/experimental/bits/simd_builtin.h (_S_masked_store): 234*0a307195Smrg Call into deduced ABI's SimdImpl after conversion. 235*0a307195Smrg * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt): 236*0a307195Smrg Don't use _mm_maskmoveu_si128. Use the generic fall-back 237*0a307195Smrg implementation. Also fix masked stores without SSE2, which 238*0a307195Smrg were not doing anything before. 239*0a307195Smrg 240*0a307195Smrg2024-05-08 Matthias Kretz <m.kretz@gsi.de> 241*0a307195Smrg 242*0a307195Smrg Backported from master: 243*0a307195Smrg 2023-06-06 Matthias Kretz <m.kretz@gsi.de> 244*0a307195Smrg 245*0a307195Smrg * include/experimental/bits/simd.h (__bit_cast): Use 246*0a307195Smrg __gnu__::__vector_size__ instead of gnu::vector_size. 247*0a307195Smrg 248*0a307195Smrg2024-04-21 Iain Sandoe <iain@sandoe.co.uk> 249*0a307195Smrg 250*0a307195Smrg Backported from master: 251*0a307195Smrg 2024-02-19 Iain Sandoe <iain@sandoe.co.uk> 252*0a307195Smrg Jonathan Wakely <jwakely@redhat.com> 253*0a307195Smrg 254*0a307195Smrg PR target/112397 255*0a307195Smrg * configure: Regenerate. 256*0a307195Smrg * configure.ac: Detect if we are building for Darwin. 257*0a307195Smrg * libsupc++/Makefile.am: If we are building for Darwin, then 258*0a307195Smrg suppress hot/cold partitioning for the array allocators. 259*0a307195Smrg * libsupc++/Makefile.in: Regenerated. 260*0a307195Smrg 261*0a307195Smrg2024-04-21 Iain Sandoe <iain@sandoe.co.uk> 262*0a307195Smrg 263*0a307195Smrg Backported from master: 264*0a307195Smrg 2024-03-19 Iain Sandoe <iain@sandoe.co.uk> 265*0a307195Smrg 266*0a307195Smrg * testsuite/lib/dg-options.exp (atomic_link_flags): Emit a -B 267*0a307195Smrg option for the path to the uninstalled libatomic. 268*0a307195Smrg 269*0a307195Smrg2024-04-21 Iain Sandoe <iain@sandoe.co.uk> 270*0a307195Smrg 271*0a307195Smrg Backported from master: 272*0a307195Smrg 2024-03-19 Iain Sandoe <iain@sandoe.co.uk> 273*0a307195Smrg 274*0a307195Smrg * testsuite/lib/libstdc++.exp (v3_target_compile): Instead of 275*0a307195Smrg /dev/null, use a temporary file for test executables on Darwin. 276*0a307195Smrg 277*0a307195Smrg2024-04-18 Iain Sandoe <iain@sandoe.co.uk> 278*0a307195Smrg 279*0a307195Smrg Backported from master: 280*0a307195Smrg 2022-12-04 Iain Sandoe <iain@sandoe.co.uk> 281*0a307195Smrg 282*0a307195Smrg * config/os/bsd/darwin/os_defines.h 283*0a307195Smrg (_GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC): Limit use of this macro 284*0a307195Smrg to OS versions that need it. 285*0a307195Smrg 286*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 287*0a307195Smrg 288*0a307195Smrg Backported from master: 289*0a307195Smrg 2023-05-12 Jonathan Wakely <jwakely@redhat.com> 290*0a307195Smrg 291*0a307195Smrg * testsuite/experimental/feat-cxx14.cc: Remove dependency on 292*0a307195Smrg _GLIBCXX_USE_C99_STDINT_TR1. 293*0a307195Smrg 294*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 295*0a307195Smrg 296*0a307195Smrg Backported from master: 297*0a307195Smrg 2023-05-12 Jonathan Wakely <jwakely@redhat.com> 298*0a307195Smrg 299*0a307195Smrg * testsuite/21_strings/basic_string_view/typedefs.cc: Remove 300*0a307195Smrg dependency on _GLIBCXX_USE_C99_STDINT_TR1. 301*0a307195Smrg * testsuite/experimental/string_view/typedefs.cc: Likewise. 302*0a307195Smrg 303*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 304*0a307195Smrg 305*0a307195Smrg Backported from master: 306*0a307195Smrg 2023-09-11 Jonathan Wakely <jwakely@redhat.com> 307*0a307195Smrg 308*0a307195Smrg * src/c++11/Makefile.am: Add new file. 309*0a307195Smrg * src/c++11/Makefile.in: Regenerate. 310*0a307195Smrg * src/c++11/debug.cc (__glibcxx_assert_fail): Move to ... 311*0a307195Smrg * src/c++11/assert_fail.cc: New file. 312*0a307195Smrg 313*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 314*0a307195Smrg 315*0a307195Smrg Backported from master: 316*0a307195Smrg 2023-06-26 Jonathan Wakely <jwakely@redhat.com> 317*0a307195Smrg 318*0a307195Smrg * include/bits/iterator_concepts.h (projected): Replace class 319*0a307195Smrg template with alias template denoting an ADL-proofed helper. 320*0a307195Smrg (incremental_traits<projected<Iter, Proj>>): Remove. 321*0a307195Smrg * testsuite/24_iterators/indirect_callable/projected-adl.cc: 322*0a307195Smrg New test. 323*0a307195Smrg 324*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 325*0a307195Smrg 326*0a307195Smrg Backported from master: 327*0a307195Smrg 2023-04-27 Jonathan Wakely <jwakely@redhat.com> 328*0a307195Smrg 329*0a307195Smrg PR libstdc++/40380 330*0a307195Smrg * include/bits/basic_string.h: Improve doxygen comments. 331*0a307195Smrg * include/bits/cow_string.h: Likewise. 332*0a307195Smrg * include/bits/forward_list.h: Likewise. 333*0a307195Smrg * include/bits/fs_dir.h: Likewise. 334*0a307195Smrg * include/bits/fs_path.h: Likewise. 335*0a307195Smrg * include/bits/quoted_string.h: Likewise. 336*0a307195Smrg * include/bits/stl_bvector.h: Likewise. 337*0a307195Smrg * include/bits/stl_map.h: Likewise. 338*0a307195Smrg * include/bits/stl_multimap.h: Likewise. 339*0a307195Smrg * include/bits/stl_multiset.h: Likewise. 340*0a307195Smrg * include/bits/stl_set.h: Likewise. 341*0a307195Smrg * include/bits/stl_vector.h: Likewise. 342*0a307195Smrg * include/bits/unordered_map.h: Likewise. 343*0a307195Smrg * include/bits/unordered_set.h: Likewise. 344*0a307195Smrg * include/std/filesystem: Likewise. 345*0a307195Smrg * include/std/iomanip: Likewise. 346*0a307195Smrg 347*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 348*0a307195Smrg 349*0a307195Smrg Backported from master: 350*0a307195Smrg 2022-11-19 Jonathan Wakely <jwakely@redhat.com> 351*0a307195Smrg 352*0a307195Smrg * include/bits/ptr_traits.h (pointer_traits::pointer_to): Rename 353*0a307195Smrg parameter. 354*0a307195Smrg 355*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 356*0a307195Smrg 357*0a307195Smrg Backported from master: 358*0a307195Smrg 2022-11-21 Jonathan Wakely <jwakely@redhat.com> 359*0a307195Smrg 360*0a307195Smrg * include/std/tuple: Add better Doxygen comments. 361*0a307195Smrg 362*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 363*0a307195Smrg 364*0a307195Smrg Backported from master: 365*0a307195Smrg 2022-11-08 Jonathan Wakely <jwakely@redhat.com> 366*0a307195Smrg 367*0a307195Smrg * testsuite/18_support/new_nothrow.cc: Add missing noexcept 368*0a307195Smrg to operator delete replacements. 369*0a307195Smrg * testsuite/20_util/any/cons/92156.cc: Disable 370*0a307195Smrg -Winit-list-lifetime warnings from instantiating invalid 371*0a307195Smrg specialization of manager function. 372*0a307195Smrg * testsuite/20_util/any/modifiers/92156.cc: Likewise. 373*0a307195Smrg * testsuite/20_util/default_delete/void_neg.cc: Prune additional 374*0a307195Smrg diagnostics. 375*0a307195Smrg * testsuite/20_util/headers/memory/synopsis.cc: Add missing 376*0a307195Smrg noexcept. 377*0a307195Smrg * testsuite/20_util/shared_ptr/cons/void_neg.cc: Prune 378*0a307195Smrg additional diagnostic. 379*0a307195Smrg * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Add 380*0a307195Smrg missing noexcept to operator delete replacements. 381*0a307195Smrg * testsuite/21_strings/basic_string/cons/char/103919.cc: 382*0a307195Smrg Likewise. 383*0a307195Smrg * testsuite/23_containers/map/modifiers/emplace/92300.cc: 384*0a307195Smrg Likewise. 385*0a307195Smrg * testsuite/23_containers/map/modifiers/insert/92300.cc: 386*0a307195Smrg Likewise. 387*0a307195Smrg * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: 388*0a307195Smrg Add missing noexcept to synopsis declarations. 389*0a307195Smrg * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: 390*0a307195Smrg Likewise. 391*0a307195Smrg * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: 392*0a307195Smrg Likewise. 393*0a307195Smrg 394*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 395*0a307195Smrg 396*0a307195Smrg Backported from master: 397*0a307195Smrg 2022-09-21 Jonathan Wakely <jwakely@redhat.com> 398*0a307195Smrg 399*0a307195Smrg * testsuite/20_util/headers/memory/synopsis.cc: Add declarations 400*0a307195Smrg from C++11 and later. 401*0a307195Smrg 402*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 403*0a307195Smrg 404*0a307195Smrg Backported from master: 405*0a307195Smrg 2022-11-08 Jonathan Wakely <jwakely@redhat.com> 406*0a307195Smrg 407*0a307195Smrg * include/bits/stl_tempbuf.h (_Temporary_buffer): Disable 408*0a307195Smrg warnings about get_temporary_buffer being deprecated. 409*0a307195Smrg * include/ext/functional (mem_fun1, mem_fun1_ref): Disable 410*0a307195Smrg warnings about mem_fun1_t, const_mem_fun1_t, mem_fun1_ref_t and 411*0a307195Smrg const_mem_fun1_ref_t being deprecated. 412*0a307195Smrg * include/std/spanstream (basic_spanbuf::setbuf): Add assertion 413*0a307195Smrg and adjust to avoid narrowing warning. 414*0a307195Smrg * libsupc++/exception_ptr.h [!__cpp_rtti && !__cpp_exceptions] 415*0a307195Smrg (make_exception_ptr): Add missing inline specifier. 416*0a307195Smrg 417*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 418*0a307195Smrg 419*0a307195Smrg Backported from master: 420*0a307195Smrg 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 421*0a307195Smrg 422*0a307195Smrg * doc/doxygen/user.cfg.in (PREDEFINED): Define 423*0a307195Smrg _GTHREAD_USE_MUTEX_TIMEDLOCK macro. 424*0a307195Smrg * include/bits/std_mutex.h (mutex, lock_guard): Use @since and 425*0a307195Smrg @headerfile. 426*0a307195Smrg * include/bits/unique_lock.h (unique_lock): Likewise. 427*0a307195Smrg * include/std/mutex (recursive_mutex, timed_mutex) 428*0a307195Smrg (recursive_timed_mutex, scoped_lock): Likewise. 429*0a307195Smrg 430*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 431*0a307195Smrg 432*0a307195Smrg Backported from master: 433*0a307195Smrg 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 434*0a307195Smrg 435*0a307195Smrg * doc/doxygen/user.cfg.in (PREDEFINED): Define 436*0a307195Smrg _GLIBCXX23_CONSTEXPR macro. 437*0a307195Smrg * include/backward/auto_ptr.h (auto_ptr): Use @deprecated. 438*0a307195Smrg * include/bits/unique_ptr.h (default_delete): Use @since and 439*0a307195Smrg @headerfile. 440*0a307195Smrg * include/std/scoped_allocator: Remove @ingroup from @file 441*0a307195Smrg block. 442*0a307195Smrg 443*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 444*0a307195Smrg 445*0a307195Smrg Backported from master: 446*0a307195Smrg 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 447*0a307195Smrg 448*0a307195Smrg * include/bits/ostream_insert.h: Mark helper functions as 449*0a307195Smrg undocumented by Doxygen. 450*0a307195Smrg * include/bits/stl_algo.h: Use markdown for formatting and mark 451*0a307195Smrg helper functions as undocumented. 452*0a307195Smrg * include/bits/stl_numeric.h: Likewise. 453*0a307195Smrg * include/bits/stl_pair.h (pair): Add @headerfile. 454*0a307195Smrg 455*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 456*0a307195Smrg 457*0a307195Smrg Backported from master: 458*0a307195Smrg 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 459*0a307195Smrg 460*0a307195Smrg * doc/doxygen/user.cfg.in (PREDEFINED): Define __allocator_base 461*0a307195Smrg so that Doxygen shows the right base-class for std::allocator. 462*0a307195Smrg * include/bits/alloc_traits.h: Improve doxygen docs. 463*0a307195Smrg * include/bits/allocator.h: Likewise. 464*0a307195Smrg * include/bits/new_allocator.h: Likewise. 465*0a307195Smrg * include/ext/new_allocator.h: Likewise. 466*0a307195Smrg 467*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 468*0a307195Smrg 469*0a307195Smrg Backported from master: 470*0a307195Smrg 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 471*0a307195Smrg 472*0a307195Smrg * doc/doxygen/user.cfg.in (PREDEFINED): Define macro 473*0a307195Smrg _GLIBCXX_DOXYGEN_ONLY to expand its argument. 474*0a307195Smrg * include/bits/c++config (_GLIBCXX_DOXYGEN_ONLY): Define. 475*0a307195Smrg * include/bits/regex.h: Improve doxygen docs. 476*0a307195Smrg * include/bits/regex_constants.h: Likewise. 477*0a307195Smrg * include/bits/regex_error.h: Likewise. 478*0a307195Smrg 479*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 480*0a307195Smrg 481*0a307195Smrg Backported from master: 482*0a307195Smrg 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 483*0a307195Smrg 484*0a307195Smrg * include/std/atomic: Suppress doxygen docs for 485*0a307195Smrg implementation details. 486*0a307195Smrg * include/bits/atomic_base.h: Likewise. 487*0a307195Smrg * include/bits/shared_ptr_atomic.h: Use markdown. Fix grouping 488*0a307195Smrg so that std::atomic is not added to the pointer abstractions 489*0a307195Smrg group. 490*0a307195Smrg 491*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 492*0a307195Smrg 493*0a307195Smrg Backported from master: 494*0a307195Smrg 2022-05-17 Jonathan Wakely <jwakely@redhat.com> 495*0a307195Smrg 496*0a307195Smrg * src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources): 497*0a307195Smrg Do not build the compatibility*-c++0x.cc objects. 498*0a307195Smrg * src/Makefile.in: Regenerate. 499*0a307195Smrg * src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]: 500*0a307195Smrg Refuse to build for the versioned namespace. 501*0a307195Smrg * src/c++11/compatibility-chrono.cc: Likewise. 502*0a307195Smrg * src/c++11/compatibility-condvar.cc: Likewise. 503*0a307195Smrg * src/c++11/compatibility-thread-c++0x.cc: Likewise. 504*0a307195Smrg * src/c++11/chrono.cc (system_clock, steady_clock): 505*0a307195Smrg Use macros to define in inline namespace _V2, matching the 506*0a307195Smrg declarations in <system_error>. 507*0a307195Smrg * src/c++11/system_error.cc (system_category, generic_category): 508*0a307195Smrg Likewise. 509*0a307195Smrg 510*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 511*0a307195Smrg 512*0a307195Smrg Backported from master: 513*0a307195Smrg 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 514*0a307195Smrg 515*0a307195Smrg * doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to 516*0a307195Smrg nothing. 517*0a307195Smrg * include/bits/c++config (_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE) 518*0a307195Smrg (_GLIBCXX_END_INLINE_ABI_NAMESPACE): Define new macros. 519*0a307195Smrg * include/bits/algorithmfwd.h (_V2::__rotate): Use new macros 520*0a307195Smrg for the namespace. 521*0a307195Smrg * include/bits/chrono.h (chrono::_V2::system_clock): Likewise. 522*0a307195Smrg * include/bits/stl_algo.h (_V2::__rotate): Likewise. 523*0a307195Smrg * include/std/condition_variable (_V2::condition_variable_any): 524*0a307195Smrg Likewise. 525*0a307195Smrg * include/std/system_error (_V2::error_category): Likewise. 526*0a307195Smrg 527*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 528*0a307195Smrg 529*0a307195Smrg Backported from master: 530*0a307195Smrg 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 531*0a307195Smrg 532*0a307195Smrg * doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO. 533*0a307195Smrg (CLASS_DIAGRAMS): Remove obsolete option. 534*0a307195Smrg 535*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 536*0a307195Smrg 537*0a307195Smrg Backported from master: 538*0a307195Smrg 2022-06-27 Jonathan Wakely <jwakely@redhat.com> 539*0a307195Smrg 540*0a307195Smrg * include/bits/fs_path.h (__is_path_iter_src): Replace class 541*0a307195Smrg template with variable template. 542*0a307195Smrg 543*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 544*0a307195Smrg 545*0a307195Smrg Backported from master: 546*0a307195Smrg 2022-09-26 Jonathan Wakely <jwakely@redhat.com> 547*0a307195Smrg 548*0a307195Smrg * include/bits/ptr_traits.h (__ptr_traits_elem) [__cpp_concepts]: 549*0a307195Smrg Also define the __ptr_traits_elem class template for the 550*0a307195Smrg concepts case. 551*0a307195Smrg (pointer_traits<Ptr>): Remove constrained partial 552*0a307195Smrg specialization. 553*0a307195Smrg * testsuite/20_util/pointer_traits/lwg3545.cc: Check for 554*0a307195Smrg ambiguitiy with program-defined partial specialization. 555*0a307195Smrg 556*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 557*0a307195Smrg 558*0a307195Smrg Backported from master: 559*0a307195Smrg 2022-09-24 Jonathan Wakely <jwakely@redhat.com> 560*0a307195Smrg 561*0a307195Smrg * include/bits/alloc_traits.h (allocator_traits::is_always_equal): 562*0a307195Smrg Only instantiate is_empty if needed. 563*0a307195Smrg * include/bits/ptr_traits.h (__ptr_traits_impl::difference_type) 564*0a307195Smrg (__ptr_traits_impl::rebind): Use __detected_or. 565*0a307195Smrg * include/experimental/type_traits (is_same_v): Add a partial 566*0a307195Smrg specialization instead of instantiating the std::is_same class 567*0a307195Smrg template. 568*0a307195Smrg (detected_t): Redefine in terms of detected_or_t. 569*0a307195Smrg (is_detected, is_detected_v): Redefine in terms of detected_t. 570*0a307195Smrg * include/std/type_traits [__cpp_concepts] (__detected_or): Add 571*0a307195Smrg new definition using concepts. 572*0a307195Smrg (__detector::value_t): Rename to __is_detected. 573*0a307195Smrg * testsuite/17_intro/names.cc: Check value_t isn't used. 574*0a307195Smrg 575*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 576*0a307195Smrg 577*0a307195Smrg Backported from master: 578*0a307195Smrg 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 579*0a307195Smrg 580*0a307195Smrg * include/bits/ptr_traits.h: Add some doxygen comments. 581*0a307195Smrg 582*0a307195Smrg2024-03-18 Xi Ruoyao <xry111@xry111.site> 583*0a307195Smrg 584*0a307195Smrg Backported from master: 585*0a307195Smrg 2022-06-24 Xi Ruoyao <xry111@xry111.site> 586*0a307195Smrg 587*0a307195Smrg * scripts/extract_symvers.in: Use grep -E instead of egrep. 588*0a307195Smrg * scripts/run_doxygen: Likewise. 589*0a307195Smrg 590*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 591*0a307195Smrg 592*0a307195Smrg Backported from master: 593*0a307195Smrg 2022-10-28 Jonathan Wakely <jwakely@redhat.com> 594*0a307195Smrg 595*0a307195Smrg PR libstdc++/107376 596*0a307195Smrg * include/bits/regex_executor.h (_Executor::_Executor): Use same 597*0a307195Smrg allocator for _M_cur_results and _M_results. 598*0a307195Smrg * include/bits/regex_executor.tcc (_Executor::_M_main_dispatch): 599*0a307195Smrg Prevent possibly incorrect allocator propagating to 600*0a307195Smrg _M_cur_results. 601*0a307195Smrg * testsuite/28_regex/algorithms/regex_match/107376.cc: New test. 602*0a307195Smrg 603*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 604*0a307195Smrg 605*0a307195Smrg Backported from master: 606*0a307195Smrg 2023-02-02 Jonathan Wakely <jwakely@redhat.com> 607*0a307195Smrg 608*0a307195Smrg * include/std/sstream (basic_stringbuf::view): Define for old 609*0a307195Smrg std::string ABI. 610*0a307195Smrg (basic_istringstream::view, basic_stringstream::view) 611*0a307195Smrg (basic_stringstream::view): Likewise. 612*0a307195Smrg * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove 613*0a307195Smrg { dg-require-effective-target cxx11_abi }. 614*0a307195Smrg * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc: 615*0a307195Smrg Likewise. 616*0a307195Smrg * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise. 617*0a307195Smrg * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc: 618*0a307195Smrg Likewise. 619*0a307195Smrg * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise. 620*0a307195Smrg * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise. 621*0a307195Smrg * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise. 622*0a307195Smrg * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc: 623*0a307195Smrg Likewise. 624*0a307195Smrg 625*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 626*0a307195Smrg 627*0a307195Smrg Backported from master: 628*0a307195Smrg 2023-09-07 Jonathan Wakely <jwakely@redhat.com> 629*0a307195Smrg 630*0a307195Smrg * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for mkdir, 631*0a307195Smrg chmod, chdir, and getcwd. 632*0a307195Smrg * config.h.in: Regenerate. 633*0a307195Smrg * configure: Regenerate. 634*0a307195Smrg * src/c++17/fs_ops.cc (create_dir): Use USE_MKDIR macro. 635*0a307195Smrg (fs::current_path): Use USE_GETCWD and USE_CHDIR macros. 636*0a307195Smrg (fs::permissions): Use USE_CHMOD macro. 637*0a307195Smrg * src/filesystem/ops-common.h [FILESYSTEM_IS_WINDOWS] 638*0a307195Smrg (chmod, mkdir, getcwd, chdir): Define new macros. 639*0a307195Smrg [FILESYSTEM_IS_WINDOWS] (chmod, mkdir, getcwd, chdir): Use 640*0a307195Smrg new macros. 641*0a307195Smrg * src/filesystem/ops.cc (create_dir): Use USE_MKDIR macro. 642*0a307195Smrg (fs::current_path): Use USE_GETCWD and USE_CHDIR macros. 643*0a307195Smrg (fs::permissions): Use USE_CHMOD macro. 644*0a307195Smrg 645*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 646*0a307195Smrg 647*0a307195Smrg Backported from master: 648*0a307195Smrg 2023-08-09 Jonathan Wakely <jwakely@redhat.com> 649*0a307195Smrg 650*0a307195Smrg * include/bits/new_allocator.h (__new_allocator): Define copy 651*0a307195Smrg assignment operator as defaulted. 652*0a307195Smrg * include/std/complex (complex<float>, complex<double>) 653*0a307195Smrg (complex<long double>): Define copy constructor as defaulted. 654*0a307195Smrg 655*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 656*0a307195Smrg 657*0a307195Smrg Backported from master: 658*0a307195Smrg 2023-11-11 Jonathan Wakely <jwakely@redhat.com> 659*0a307195Smrg 660*0a307195Smrg PR libstdc++/112473 661*0a307195Smrg * include/bits/utility.h (integer_sequence): Add static_assert. 662*0a307195Smrg * testsuite/20_util/integer_sequence/112473.cc: New test. 663*0a307195Smrg 664*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 665*0a307195Smrg 666*0a307195Smrg Backported from master: 667*0a307195Smrg 2023-09-15 Jonathan Wakely <jwakely@redhat.com> 668*0a307195Smrg 669*0a307195Smrg PR libstdc++/111172 670*0a307195Smrg * include/std/variant (get<T>): Remove !is_void static 671*0a307195Smrg assertions. 672*0a307195Smrg 673*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 674*0a307195Smrg 675*0a307195Smrg Backported from master: 676*0a307195Smrg 2023-10-26 Jonathan Wakely <jwakely@redhat.com> 677*0a307195Smrg 678*0a307195Smrg PR libstdc++/112089 679*0a307195Smrg * include/std/shared_mutex (shared_lock::unlock): Change errc 680*0a307195Smrg constant to operation_not_permitted. 681*0a307195Smrg * testsuite/30_threads/shared_lock/locking/112089.cc: New test. 682*0a307195Smrg 683*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 684*0a307195Smrg 685*0a307195Smrg Backported from master: 686*0a307195Smrg 2024-02-29 Jonathan Wakely <jwakely@redhat.com> 687*0a307195Smrg 688*0a307195Smrg PR libstdc++/113960 689*0a307195Smrg * include/bits/stl_algobase.h (__is_byte_iter): Replace with ... 690*0a307195Smrg (__memcmp_ordered_with): New concept. 691*0a307195Smrg (lexicographical_compare_three_way): Use __memcmp_ordered_with 692*0a307195Smrg instead of __is_byte_iter. Use correct length for memcmp. 693*0a307195Smrg * testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc: 694*0a307195Smrg New test. 695*0a307195Smrg 696*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 697*0a307195Smrg 698*0a307195Smrg Backported from master: 699*0a307195Smrg 2023-02-28 Jonathan Wakely <jwakely@redhat.com> 700*0a307195Smrg 701*0a307195Smrg PR libstdc++/108846 702*0a307195Smrg * include/bits/stl_algobase.h (__copy_move<false, false, RA>) 703*0a307195Smrg Add __assign_one static member function. 704*0a307195Smrg (__copy_move<true, false, RA>): Likewise. 705*0a307195Smrg (__copy_move<IsMove, true, RA>): Do not use memmove for a single 706*0a307195Smrg value. 707*0a307195Smrg (__copy_move_backward<IsMove, true, RA>): Likewise. 708*0a307195Smrg * testsuite/25_algorithms/copy/108846.cc: New test. 709*0a307195Smrg * testsuite/25_algorithms/copy_backward/108846.cc: New test. 710*0a307195Smrg * testsuite/25_algorithms/copy_n/108846.cc: New test. 711*0a307195Smrg * testsuite/25_algorithms/move/108846.cc: New test. 712*0a307195Smrg * testsuite/25_algorithms/move_backward/108846.cc: New test. 713*0a307195Smrg 714*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 715*0a307195Smrg 716*0a307195Smrg Backported from master: 717*0a307195Smrg 2023-03-22 Jonathan Wakely <jwakely@redhat.com> 718*0a307195Smrg 719*0a307195Smrg * include/bits/stream_iterator.h (istream_iterator): Add 720*0a307195Smrg constexpr to copy constructor, as per LWG 3600. 721*0a307195Smrg * testsuite/24_iterators/istream_iterator/cons/constexpr.cc: 722*0a307195Smrg Check copy construction. 723*0a307195Smrg 724*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 725*0a307195Smrg 726*0a307195Smrg Backported from master: 727*0a307195Smrg 2023-03-22 Jonathan Wakely <jwakely@redhat.com> 728*0a307195Smrg 729*0a307195Smrg * include/bits/regex.h (match_results): Add allocator-extended 730*0a307195Smrg copy and move constructors, as per LWG 2195. 731*0a307195Smrg * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test. 732*0a307195Smrg 733*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 734*0a307195Smrg 735*0a307195Smrg Backported from master: 736*0a307195Smrg 2023-02-28 Jonathan Wakely <jwakely@redhat.com> 737*0a307195Smrg 738*0a307195Smrg * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]] 739*0a307195Smrg attributes. 740*0a307195Smrg 741*0a307195Smrg2024-03-18 Dimitrij Mijoski <dmjpp@hotmail.com> 742*0a307195Smrg 743*0a307195Smrg Backported from master: 744*0a307195Smrg 2023-01-13 Dimitrij Mijoski <dmjpp@hotmail.com> 745*0a307195Smrg 746*0a307195Smrg PR libstdc++/86419 747*0a307195Smrg * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect 748*0a307195Smrg errors in incomplete multibyte sequences. 749*0a307195Smrg (utf16_in): Remove surrogates parameter. Fix conditions for 750*0a307195Smrg returning partial. 751*0a307195Smrg (utf16_out): Fix condition for returning partial. 752*0a307195Smrg (ucs2_in): Do not pass surrogates argument to utf16_in. 753*0a307195Smrg * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test. 754*0a307195Smrg * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for 755*0a307195Smrg tests. 756*0a307195Smrg * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New 757*0a307195Smrg test. 758*0a307195Smrg 759*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 760*0a307195Smrg 761*0a307195Smrg Backported from master: 762*0a307195Smrg 2023-07-26 Jonathan Wakely <jwakely@redhat.com> 763*0a307195Smrg 764*0a307195Smrg * include/bits/algorithmfwd.h (random_shuffle): Add deprecated 765*0a307195Smrg attribute. 766*0a307195Smrg * include/bits/stl_algo.h (random_shuffle): Correct comments. 767*0a307195Smrg * testsuite/25_algorithms/random_shuffle/1.cc: Disable 768*0a307195Smrg deprecated warnings. 769*0a307195Smrg * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise. 770*0a307195Smrg * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise. 771*0a307195Smrg * testsuite/25_algorithms/random_shuffle/deprecated.cc: New 772*0a307195Smrg test. 773*0a307195Smrg 774*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 775*0a307195Smrg 776*0a307195Smrg Backported from master: 777*0a307195Smrg 2023-05-11 Jonathan Wakely <jwakely@redhat.com> 778*0a307195Smrg 779*0a307195Smrg PR libstdc++/109758 780*0a307195Smrg * include/bits/std_abs.h (abs(__float128)): Handle negative NaN 781*0a307195Smrg and negative zero correctly. 782*0a307195Smrg * testsuite/26_numerics/headers/cmath/109758.cc: New test. 783*0a307195Smrg 784*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 785*0a307195Smrg 786*0a307195Smrg Backported from master: 787*0a307195Smrg 2023-05-12 Jonathan Wakely <jwakely@redhat.com> 788*0a307195Smrg 789*0a307195Smrg * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer 790*0a307195Smrg to check for nan, nanf, and nanl. 791*0a307195Smrg * configure: Regenerate. 792*0a307195Smrg 793*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 794*0a307195Smrg 795*0a307195Smrg Backported from master: 796*0a307195Smrg 2023-05-31 Jonathan Wakely <jwakely@redhat.com> 797*0a307195Smrg 798*0a307195Smrg * include/std/scoped_allocator (scoped_allocator_adaptor): Add 799*0a307195Smrg noexcept to all constructors except the default constructor. 800*0a307195Smrg (scoped_allocator_adaptor::inner_allocator): Add noexcept. 801*0a307195Smrg (scoped_allocator_adaptor::outer_allocator): Likewise. 802*0a307195Smrg * testsuite/20_util/scoped_allocator/noexcept.cc: New test. 803*0a307195Smrg 804*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 805*0a307195Smrg 806*0a307195Smrg Backported from master: 807*0a307195Smrg 2023-06-01 Jonathan Wakely <jwakely@redhat.com> 808*0a307195Smrg 809*0a307195Smrg * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: 810*0a307195Smrg Add const to equality operator. 811*0a307195Smrg 812*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 813*0a307195Smrg 814*0a307195Smrg Backported from master: 815*0a307195Smrg 2023-06-09 Jonathan Wakely <jwakely@redhat.com> 816*0a307195Smrg 817*0a307195Smrg * testsuite/23_containers/deque/modifiers/emplace/52799.cc: 818*0a307195Smrg Removed. 819*0a307195Smrg * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc: 820*0a307195Smrg Removed. 821*0a307195Smrg * testsuite/23_containers/list/modifiers/emplace/52799.cc: 822*0a307195Smrg Removed. 823*0a307195Smrg * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc: 824*0a307195Smrg Removed. 825*0a307195Smrg * testsuite/23_containers/vector/modifiers/emplace/52799.cc: 826*0a307195Smrg Removed. 827*0a307195Smrg * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc: 828*0a307195Smrg Removed. 829*0a307195Smrg * testsuite/23_containers/deque/modifiers/emplace/1.cc: New 830*0a307195Smrg test. 831*0a307195Smrg * testsuite/23_containers/list/modifiers/emplace/1.cc: New 832*0a307195Smrg test. 833*0a307195Smrg * testsuite/23_containers/vector/modifiers/emplace/1.cc: New 834*0a307195Smrg test. 835*0a307195Smrg 836*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 837*0a307195Smrg 838*0a307195Smrg Backported from master: 839*0a307195Smrg 2023-07-03 Jonathan Wakely <jwakely@redhat.com> 840*0a307195Smrg 841*0a307195Smrg * include/bits/alloc_traits.h (_Destroy): Qualify call. 842*0a307195Smrg * include/bits/stl_construct.h (_Destroy, _Destroy_n): Likewise. 843*0a307195Smrg * testsuite/23_containers/vector/cons/destroy-adl.cc: New test. 844*0a307195Smrg 845*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 846*0a307195Smrg 847*0a307195Smrg Backported from master: 848*0a307195Smrg 2023-07-19 Jonathan Wakely <jwakely@redhat.com> 849*0a307195Smrg 850*0a307195Smrg PR libstdc++/110593 851*0a307195Smrg * include/bits/chrono.h (duration): Improve static assert 852*0a307195Smrg messages. 853*0a307195Smrg (__is_ratio): Move to ... 854*0a307195Smrg * include/std/ratio (__is_ratio): ... here. 855*0a307195Smrg (__is_ratio_v): New variable template and partial 856*0a307195Smrg specialization. 857*0a307195Smrg (__are_both_ratios): New function template. 858*0a307195Smrg (__ratio_multiply, ratio_equal, ratio_less, __ratio_add): 859*0a307195Smrg Add static assertion. 860*0a307195Smrg * testsuite/20_util/ratio/requirements/type_constraints.cc: 861*0a307195Smrg New test. 862*0a307195Smrg * testsuite/20_util/duration/requirements/typedefs_neg1.cc: 863*0a307195Smrg Adjust expected error. 864*0a307195Smrg * testsuite/20_util/duration/requirements/typedefs_neg2.cc: 865*0a307195Smrg Likewise. 866*0a307195Smrg 867*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 868*0a307195Smrg 869*0a307195Smrg Backported from master: 870*0a307195Smrg 2023-09-11 Jonathan Wakely <jwakely@redhat.com> 871*0a307195Smrg 872*0a307195Smrg * src/c++11/debug.cc (acquire_sequence_ptr_for_lock): New 873*0a307195Smrg function. 874*0a307195Smrg (reset_sequence_ptr): New function. 875*0a307195Smrg (_Safe_iterator_base::_M_detach) 876*0a307195Smrg (_Safe_local_iterator_base::_M_detach): Replace bare atomic_load 877*0a307195Smrg with acquire_sequence_ptr_for_lock. 878*0a307195Smrg (_Safe_iterator_base::_M_reset): Replace bare atomic_store with 879*0a307195Smrg reset_sequence_ptr. 880*0a307195Smrg 881*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 882*0a307195Smrg 883*0a307195Smrg Backported from master: 884*0a307195Smrg 2023-08-16 Jonathan Wakely <jwakely@redhat.com> 885*0a307195Smrg 886*0a307195Smrg * include/bits/basic_string.tcc (resize_and_overwrite): Invoke 887*0a307195Smrg the callable with the same size as resize_and_overwrite was 888*0a307195Smrg called with. 889*0a307195Smrg * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: 890*0a307195Smrg Check with small values for the new size. 891*0a307195Smrg 892*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 893*0a307195Smrg 894*0a307195Smrg Backported from master: 895*0a307195Smrg 2023-03-22 Jonathan Wakely <jwakely@redhat.com> 896*0a307195Smrg 897*0a307195Smrg * include/bits/basic_string.tcc (basic_string::resize_and_overwrite): 898*0a307195Smrg Pass rvalues to the callback, as now allowed by LWG 3645. 899*0a307195Smrg Enforce preconditions on the return value. 900*0a307195Smrg * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: 901*0a307195Smrg Adjust. 902*0a307195Smrg 903*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 904*0a307195Smrg 905*0a307195Smrg Backported from master: 906*0a307195Smrg 2023-08-09 Jonathan Wakely <jwakely@redhat.com> 907*0a307195Smrg 908*0a307195Smrg * include/bits/shared_ptr_atomic.h (atomic): Change class-head 909*0a307195Smrg to struct. 910*0a307195Smrg * include/bits/stl_tree.h (_Rb_tree_merge_helper): Change 911*0a307195Smrg class-head to struct in friend declaration. 912*0a307195Smrg * include/std/future (_Task_state_base, _Task_state): Likewise. 913*0a307195Smrg * include/std/scoped_allocator (__inner_type_impl): Likewise. 914*0a307195Smrg * include/std/valarray (_BinClos, _SClos, _GClos, _IClos) 915*0a307195Smrg (_ValFunClos, _RefFunClos): Change class-head to struct. 916*0a307195Smrg 917*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 918*0a307195Smrg 919*0a307195Smrg Backported from master: 920*0a307195Smrg 2023-09-08 Jonathan Wakely <jwakely@redhat.com> 921*0a307195Smrg 922*0a307195Smrg * doc/xml/manual/test.xml: Update reference to -std=gnu++14 as 923*0a307195Smrg the default. 924*0a307195Smrg * doc/html/manual/test.html: Regenerate. 925*0a307195Smrg 926*0a307195Smrg2024-03-18 Alexey Lapshin <alexey.lapshin@espressif.com> 927*0a307195Smrg 928*0a307195Smrg Backported from master: 929*0a307195Smrg 2023-09-08 Alexey Lapshin <alexey.lapshin@espressif.com> 930*0a307195Smrg 931*0a307195Smrg * src/libbacktrace/Makefile.am: Remove -Werror. 932*0a307195Smrg * src/libbacktrace/Makefile.in: Regenerate. 933*0a307195Smrg 934*0a307195Smrg2024-03-18 Nathaniel Shead <nathanieloshead@gmail.com> 935*0a307195Smrg 936*0a307195Smrg Backported from master: 937*0a307195Smrg 2023-09-29 Nathaniel Shead <nathanieloshead@gmail.com> 938*0a307195Smrg 939*0a307195Smrg * include/bits/basic_string.h: (basic_string(basic_string&&)): 940*0a307195Smrg Activate _M_local_buf when needed. 941*0a307195Smrg (basic_string(basic_string&&, const _Alloc&)): Likewise. 942*0a307195Smrg * include/bits/basic_string.tcc: (basic_string::swap): Likewise. 943*0a307195Smrg * include/std/variant: (__detail::__variant::__construct_n): New. 944*0a307195Smrg (__detail::__variant::__emplace): Use __construct_n. 945*0a307195Smrg 946*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 947*0a307195Smrg 948*0a307195Smrg Backported from master: 949*0a307195Smrg 2023-11-02 Jonathan Wakely <jwakely@redhat.com> 950*0a307195Smrg 951*0a307195Smrg * acinclude.m4 (GLIBCXX_ENABLE_C99): Fix snprintf checks. 952*0a307195Smrg * configure: Regenerate. 953*0a307195Smrg 954*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 955*0a307195Smrg 956*0a307195Smrg Backported from master: 957*0a307195Smrg 2023-11-21 Jonathan Wakely <jwakely@redhat.com> 958*0a307195Smrg 959*0a307195Smrg * include/tr2/dynamic_bitset (dynamic_bitset): Pass zero and one 960*0a307195Smrg characters to _M_copy_from_string. 961*0a307195Smrg * testsuite/tr2/dynamic_bitset/string.cc: New test. 962*0a307195Smrg 963*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 964*0a307195Smrg 965*0a307195Smrg Backported from master: 966*0a307195Smrg 2023-11-14 Jonathan Wakely <jwakely@redhat.com> 967*0a307195Smrg 968*0a307195Smrg * include/std/charconv (__from_chars_pow2_base): Convert base to 969*0a307195Smrg unsigned for call to __countr_zero. 970*0a307195Smrg (__from_chars_alnum): Likewise for call to __bit_width. 971*0a307195Smrg 972*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 973*0a307195Smrg 974*0a307195Smrg Backported from master: 975*0a307195Smrg 2023-11-23 Jonathan Wakely <jwakely@redhat.com> 976*0a307195Smrg 977*0a307195Smrg * testsuite/util/testsuite_allocator.h (uneq_allocator): Fix 978*0a307195Smrg equality operator for heterogeneous comparisons. 979*0a307195Smrg 980*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 981*0a307195Smrg 982*0a307195Smrg Backported from master: 983*0a307195Smrg 2024-03-14 Jonathan Wakely <jwakely@redhat.com> 984*0a307195Smrg 985*0a307195Smrg PR libstdc++/66146 986*0a307195Smrg * doc/xml/manual/status_cxx2011.xml: Remove mention of Linux in 987*0a307195Smrg note about std::call_once. 988*0a307195Smrg * doc/xml/manual/status_cxx2014.xml: Likewise. 989*0a307195Smrg * doc/xml/manual/status_cxx2017.xml: Likewise. 990*0a307195Smrg * doc/html/manual/status.html: Regenerate. 991*0a307195Smrg 992*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 993*0a307195Smrg 994*0a307195Smrg Backported from master: 995*0a307195Smrg 2024-03-13 Jonathan Wakely <jwakely@redhat.com> 996*0a307195Smrg 997*0a307195Smrg * testsuite/libstdc++-prettyprinters/cxx11.cc: Move custom_cat 998*0a307195Smrg to namespace scope. 999*0a307195Smrg 1000*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 1001*0a307195Smrg 1002*0a307195Smrg Backported from master: 1003*0a307195Smrg 2024-02-28 Jonathan Wakely <jwakely@redhat.com> 1004*0a307195Smrg 1005*0a307195Smrg * doc/xml/manual/appendix_contributing.xml: Change URLs to use 1006*0a307195Smrg https. 1007*0a307195Smrg * doc/html/manual/*: Regenerate. 1008*0a307195Smrg 1009*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 1010*0a307195Smrg 1011*0a307195Smrg Backported from master: 1012*0a307195Smrg 2024-02-28 Jonathan Wakely <jwakely@redhat.com> 1013*0a307195Smrg 1014*0a307195Smrg * doc/xml/manual/appendix_contributing.xml: Replace outdated 1015*0a307195Smrg info on ChangeLog entries. 1016*0a307195Smrg * doc/html/manual/appendix_contributing.html: Regenerate. 1017*0a307195Smrg 1018*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 1019*0a307195Smrg 1020*0a307195Smrg Backported from master: 1021*0a307195Smrg 2022-11-04 Jonathan Wakely <jwakely@redhat.com> 1022*0a307195Smrg 1023*0a307195Smrg PR libstdc++/107500 1024*0a307195Smrg * libsupc++/eh_globals.cc (eh_globals): Remove immortalizing 1025*0a307195Smrg wrapper. 1026*0a307195Smrg (__cxxabiv1::__cxa_get_globals_fast): Adjust. 1027*0a307195Smrg (__cxxabiv1::__cxa_get_globals): Adjust. 1028*0a307195Smrg 1029*0a307195Smrg2024-03-18 Jonathan Wakely <jwakely@redhat.com> 1030*0a307195Smrg 1031*0a307195Smrg Backported from master: 1032*0a307195Smrg 2024-03-04 Jonathan Wakely <jwakely@redhat.com> 1033*0a307195Smrg 1034*0a307195Smrg PR libstdc++/114147 1035*0a307195Smrg * include/std/tuple (tuple::tuple(allocator_arg_t, const Alloc&)): 1036*0a307195Smrg Add missing overload of allocator-extended default constructor. 1037*0a307195Smrg (tuple<T1,T2>::tuple(allocator_arg_t, const Alloc&)): Likewise. 1038*0a307195Smrg * testsuite/20_util/tuple/cons/114147.cc: New test. 1039*0a307195Smrg 1040*0a307195Smrg2024-03-13 Cassio Neri <cassio.neri@gmail.com> 1041*0a307195Smrg 1042*0a307195Smrg Backported from master: 1043*0a307195Smrg 2024-01-05 Cassio Neri <cassio.neri@gmail.com> 1044*0a307195Smrg 1045*0a307195Smrg * include/std/chrono: Fix + and - for months and weekdays. 1046*0a307195Smrg * testsuite/std/time/month/1.cc: Add constexpr tests against overflow. 1047*0a307195Smrg * testsuite/std/time/month/2.cc: New test for extreme values. 1048*0a307195Smrg * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow. 1049*0a307195Smrg * testsuite/std/time/weekday/2.cc: New test for extreme values. 1050*0a307195Smrg 1051*0a307195Smrg2024-03-13 Cassio Neri <cassio.neri@gmail.com> 1052*0a307195Smrg 1053*0a307195Smrg Backported from master: 1054*0a307195Smrg 2023-11-14 Cassio Neri <cassio.neri@gmail.com> 1055*0a307195Smrg 1056*0a307195Smrg * include/std/chrono (operator-(const weekday&, const weekday&)): 1057*0a307195Smrg Optimize. 1058*0a307195Smrg 1059*0a307195Smrg2024-03-13 Cassio Neri <cassio.neri@gmail.com> 1060*0a307195Smrg 1061*0a307195Smrg Backported from master: 1062*0a307195Smrg 2023-11-14 Cassio Neri <cassio.neri@gmail.com> 1063*0a307195Smrg 1064*0a307195Smrg * include/std/chrono (year::is_leap): Clear code. 1065*0a307195Smrg 1066*0a307195Smrg2024-03-13 Cassio Neri <cassio.neri@gmail.com> 1067*0a307195Smrg 1068*0a307195Smrg Backported from master: 1069*0a307195Smrg 2023-11-14 Cassio Neri <cassio.neri@gmail.com> 1070*0a307195Smrg 1071*0a307195Smrg * include/std/chrono (year_month_day_last::day): Remove &1. 1072*0a307195Smrg 1073*0a307195Smrg2024-03-13 Cassio Neri <cassio.neri@gmail.com> 1074*0a307195Smrg 1075*0a307195Smrg Backported from master: 1076*0a307195Smrg 2023-11-14 Cassio Neri <cassio.neri@gmail.com> 1077*0a307195Smrg 1078*0a307195Smrg * include/std/chrono (weekday::_S_from_days): Fix UB. 1079*0a307195Smrg * testsuite/std/time/weekday/1.cc: Add test for overflow. 1080*0a307195Smrg 1081*0a307195Smrg2024-03-13 Jonathan Wakely <jwakely@redhat.com> 1082*0a307195Smrg 1083*0a307195Smrg Backported from master: 1084*0a307195Smrg 2023-08-09 Jonathan Wakely <jwakely@redhat.com> 1085*0a307195Smrg 1086*0a307195Smrg * include/bits/list.tcc (list::sort(Cmp)): Fix -Wsign-compare 1087*0a307195Smrg warning for loop condition. 1088*0a307195Smrg 1089*0a307195Smrg2024-03-13 Jonathan Wakely <jwakely@redhat.com> 1090*0a307195Smrg 1091*0a307195Smrg Backported from master: 1092*0a307195Smrg 2023-06-09 Jonathan Wakely <jwakely@redhat.com> 1093*0a307195Smrg 1094*0a307195Smrg PR libstdc++/110167 1095*0a307195Smrg * include/std/array (to_array): Initialize arrays of trivial 1096*0a307195Smrg types using memcpy. For non-trivial types, use lambda 1097*0a307195Smrg expressions instead of a separate helper function. 1098*0a307195Smrg (__to_array): Remove. 1099*0a307195Smrg * testsuite/23_containers/array/creation/110167.cc: New test. 1100*0a307195Smrg 1101*0a307195Smrg2024-02-08 Jonathan Wakely <jwakely@redhat.com> 1102*0a307195Smrg 1103*0a307195Smrg Backported from master: 1104*0a307195Smrg 2024-02-02 Jonathan Wakely <jwakely@redhat.com> 1105*0a307195Smrg 1106*0a307195Smrg * include/std/string_view (basic_string_view(R&&)): Remove 1107*0a307195Smrg constraint that traits_type must be the same, as per LWG 3857. 1108*0a307195Smrg * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: 1109*0a307195Smrg Explicit conversion between different specializations should be 1110*0a307195Smrg allowed. 1111*0a307195Smrg * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: 1112*0a307195Smrg Likewise. 1113*0a307195Smrg 1114*0a307195Smrg2024-02-08 Jonathan Wakely <jwakely@redhat.com> 1115*0a307195Smrg 1116*0a307195Smrg Backported from master: 1117*0a307195Smrg 2024-02-02 Jonathan Wakely <jwakely@redhat.com> 1118*0a307195Smrg 1119*0a307195Smrg PR libstdc++/90276 1120*0a307195Smrg * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use 1121*0a307195Smrg perfect forwarding for iterator arguments. 1122*0a307195Smrg 1123*0a307195Smrg2024-02-08 Jonathan Wakely <jwakely@redhat.com> 1124*0a307195Smrg 1125*0a307195Smrg Backported from master: 1126*0a307195Smrg 2024-02-02 Jonathan Wakely <jwakely@redhat.com> 1127*0a307195Smrg 1128*0a307195Smrg * include/std/syncstream (basic_osyncstream::operator=): Remove 1129*0a307195Smrg noexcept, as per LWG 3867. 1130*0a307195Smrg 1131*0a307195Smrg2024-02-08 Jonathan Wakely <jwakely@redhat.com> 1132*0a307195Smrg 1133*0a307195Smrg Backported from master: 1134*0a307195Smrg 2024-01-13 Jonathan Wakely <jwakely@redhat.com> 1135*0a307195Smrg 1136*0a307195Smrg PR libstdc++/107466 1137*0a307195Smrg * include/bits/random.tcc (subtract_with_carry_engine::seed): 1138*0a307195Smrg Implement proposed resolution of LWG 4014. 1139*0a307195Smrg * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error 1140*0a307195Smrg line number. 1141*0a307195Smrg * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc: 1142*0a307195Smrg Check for expected result of 64-bit engine with seed that 1143*0a307195Smrg doesn't fit in 32-bits. 1144*0a307195Smrg 1145*0a307195Smrg2024-02-08 Jonathan Wakely <jwakely@redhat.com> 1146*0a307195Smrg 1147*0a307195Smrg Backported from master: 1148*0a307195Smrg 2024-01-11 Jonathan Wakely <jwakely@redhat.com> 1149*0a307195Smrg 1150*0a307195Smrg PR libstdc++/113258 1151*0a307195Smrg * libsupc++/new_opa.cc: Prefer to use posix_memalign if 1152*0a307195Smrg available. 1153*0a307195Smrg 1154*0a307195Smrg2024-02-02 Jonathan Wakely <jwakely@redhat.com> 1155*0a307195Smrg 1156*0a307195Smrg PR libstdc++/108636 1157*0a307195Smrg * include/bits/shared_ptr_base.h (__shared_ptr::operator bool): 1158*0a307195Smrg Add always_inline attribute for C++20 and later. 1159*0a307195Smrg 1160*0a307195Smrg2024-01-11 Jonathan Wakely <jwakely@redhat.com> 1161*0a307195Smrg 1162*0a307195Smrg Backported from master: 1163*0a307195Smrg 2024-01-05 Jonathan Wakely <jwakely@redhat.com> 1164*0a307195Smrg 1165*0a307195Smrg PR libstdc++/113200 1166*0a307195Smrg * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use 1167*0a307195Smrg __builtin_constant_p to check for unrelated pointers that cannot 1168*0a307195Smrg be compared during constant evaluation. 1169*0a307195Smrg * testsuite/21_strings/char_traits/requirements/113200.cc: New 1170*0a307195Smrg test. 1171*0a307195Smrg 1172*0a307195Smrg2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org> 1173*0a307195Smrg 1174*0a307195Smrg Backported from master: 1175*0a307195Smrg 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org> 1176*0a307195Smrg 1177*0a307195Smrg PR libstdc++/113250 1178*0a307195Smrg * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&. 1179*0a307195Smrg * src/filesystem/ops.cc (fs::equivalent): Likewise. 1180*0a307195Smrg * testsuite/27_io/filesystem/operations/equivalent.cc: Handle 1181*0a307195Smrg error codes. 1182*0a307195Smrg * testsuite/experimental/filesystem/operations/equivalent.cc: 1183*0a307195Smrg Likewise. 1184*0a307195Smrg 1185*0a307195Smrg2024-01-03 Patrick Palka <ppalka@redhat.com> 1186*0a307195Smrg 1187*0a307195Smrg Backported from master: 1188*0a307195Smrg 2024-01-03 Patrick Palka <ppalka@redhat.com> 1189*0a307195Smrg 1190*0a307195Smrg PR testsuite/113175 1191*0a307195Smrg * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce 1192*0a307195Smrg 'limit' to 100 from 1000 and adjust 'log2_limit' accordingly. 1193*0a307195Smrg (test03): Likewise. 1194*0a307195Smrg 1195*0a307195Smrg2023-12-16 Jakub Jelinek <jakub@redhat.com> 1196*0a307195Smrg 1197*0a307195Smrg Backported from master: 1198*0a307195Smrg 2023-10-13 Jakub Jelinek <jakub@redhat.com> 1199*0a307195Smrg 1200*0a307195Smrg * testsuite/tr1/8_c_compatibility/cstdio/functions.cc (test01): 1201*0a307195Smrg Initialize stream to va_arg(ap, FILE*) rather than 0. 1202*0a307195Smrg * testsuite/tr1/8_c_compatibility/cwchar/functions.cc (test01): 1203*0a307195Smrg Likewise. 1204*0a307195Smrg 1205*0a307195Smrg2023-12-06 Jonathan Wakely <jwakely@redhat.com> 1206*0a307195Smrg 1207*0a307195Smrg Backported from master: 1208*0a307195Smrg 2023-11-02 Jonathan Wakely <jwakely@redhat.com> 1209*0a307195Smrg 1210*0a307195Smrg PR libstdc++/112314 1211*0a307195Smrg * include/std/string_view (string_view::remove_suffix): Add 1212*0a307195Smrg debug assertion. 1213*0a307195Smrg * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc: 1214*0a307195Smrg New test. 1215*0a307195Smrg * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc: 1216*0a307195Smrg New test. 1217*0a307195Smrg 1218*0a307195Smrg2023-12-06 Jonathan Wakely <jwakely@redhat.com> 1219*0a307195Smrg 1220*0a307195Smrg Backported from master: 1221*0a307195Smrg 2023-11-17 Jonathan Wakely <jwakely@redhat.com> 1222*0a307195Smrg 1223*0a307195Smrg * include/std/utility (in_range): Rename _Up parameter to _Res. 1224*0a307195Smrg 1225*0a307195Smrg2023-11-15 Jonathan Wakely <jwakely@redhat.com> 1226*0a307195Smrg 1227*0a307195Smrg Backported from master: 1228*0a307195Smrg 2023-11-15 Jonathan Wakely <jwakely@redhat.com> 1229*0a307195Smrg 1230*0a307195Smrg PR libstdc++/112491 1231*0a307195Smrg * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): 1232*0a307195Smrg Correctly handle unused capacity at the start of the first node. 1233*0a307195Smrg * testsuite/libstdc++-xmethods/deque.cc: Check index operator 1234*0a307195Smrg when elements have been removed from the front. 1235*0a307195Smrg 1236*0a307195Smrg2023-11-15 Jonathan Wakely <jwakely@redhat.com> 1237*0a307195Smrg 1238*0a307195Smrg Backported from master: 1239*0a307195Smrg 2023-11-15 Jonathan Wakely <jwakely@redhat.com> 1240*0a307195Smrg 1241*0a307195Smrg * include/std/stacktrace (basic_stacktrace::at): Fix class name 1242*0a307195Smrg in exception message. 1243*0a307195Smrg * testsuite/19_diagnostics/stacktrace/hash.cc: Do not fail if 1244*0a307195Smrg current() returns a non-empty stacktrace. 1245*0a307195Smrg 1246*0a307195Smrg2023-11-14 Jonathan Wakely <jwakely@redhat.com> 1247*0a307195Smrg 1248*0a307195Smrg Backported from master: 1249*0a307195Smrg 2023-11-14 Jonathan Wakely <jwakely@redhat.com> 1250*0a307195Smrg 1251*0a307195Smrg PR libstdc++/112348 1252*0a307195Smrg * include/std/stacktrace (hash<basic_stacktrace<Alloc>>): Fix 1253*0a307195Smrg type of hash function for entries. 1254*0a307195Smrg * testsuite/19_diagnostics/stacktrace/hash.cc: New test. 1255*0a307195Smrg 1256*0a307195Smrg2023-11-14 Jonathan Wakely <jwakely@redhat.com> 1257*0a307195Smrg 1258*0a307195Smrg Backported from master: 1259*0a307195Smrg 2023-11-14 Jonathan Wakely <jwakely@redhat.com> 1260*0a307195Smrg 1261*0a307195Smrg PR libstdc++/112491 1262*0a307195Smrg * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.size): Fix 1263*0a307195Smrg calculation to use _M_start._M_cur. 1264*0a307195Smrg * testsuite/libstdc++-xmethods/deque.cc: Check failing cases. 1265*0a307195Smrg 1266*0a307195Smrg2023-11-13 Tom Tromey <tromey@adacore.com> 1267*0a307195Smrg 1268*0a307195Smrg Backported from master: 1269*0a307195Smrg 2023-10-04 Tom Tromey <tromey@adacore.com> 1270*0a307195Smrg 1271*0a307195Smrg * python/libstdcxx/v6/printers.py 1272*0a307195Smrg (StdExpAnyPrinter.__init__): Qualify call to 1273*0a307195Smrg _string_types. 1274*0a307195Smrg 1275*0a307195Smrg2023-11-13 Tom Tromey <tromey@adacore.com> 1276*0a307195Smrg 1277*0a307195Smrg Backported from master: 1278*0a307195Smrg 2023-10-04 Tom Tromey <tromey@adacore.com> 1279*0a307195Smrg 1280*0a307195Smrg * python/libstdcxx/v6/printers.py: Assume that 1281*0a307195Smrg _versioned_namespace is non-None. 1282*0a307195Smrg * python/libstdcxx/v6/xmethods.py (is_specialization_of): 1283*0a307195Smrg Assume that _versioned_namespace is non-None. 1284*0a307195Smrg 1285*0a307195Smrg2023-11-13 Tom Tromey <tromey@adacore.com> 1286*0a307195Smrg 1287*0a307195Smrg Backported from master: 1288*0a307195Smrg 2023-09-28 Tom Tromey <tromey@adacore.com> 1289*0a307195Smrg 1290*0a307195Smrg * python/libstdcxx/v6/printers.py (Printer.add_version) 1291*0a307195Smrg (add_one_template_type_printer) 1292*0a307195Smrg (FilteringTypePrinter.add_one_type_printer): Use Python 1293*0a307195Smrg "not in" operator. 1294*0a307195Smrg 1295*0a307195Smrg2023-11-13 Tom Tromey <tromey@adacore.com> 1296*0a307195Smrg 1297*0a307195Smrg Backported from master: 1298*0a307195Smrg 2023-10-04 Tom Tromey <tromey@adacore.com> 1299*0a307195Smrg 1300*0a307195Smrg * python/libstdcxx/v6/xmethods.py (_versioned_namespace): 1301*0a307195Smrg Define. 1302*0a307195Smrg 1303*0a307195Smrg2023-11-13 Jonathan Wakely <jwakely@redhat.com> 1304*0a307195Smrg 1305*0a307195Smrg Backported from master: 1306*0a307195Smrg 2023-09-28 Jonathan Wakely <jwakely@redhat.com> 1307*0a307195Smrg 1308*0a307195Smrg * python/libstdcxx/v6/xmethods.py (is_specialization_of): Define 1309*0a307195Smrg new function. 1310*0a307195Smrg (ArrayMethodsMatcher, DequeMethodsMatcher) 1311*0a307195Smrg (ForwardListMethodsMatcher, ListMethodsMatcher) 1312*0a307195Smrg (VectorMethodsMatcher, AssociativeContainerMethodsMatcher) 1313*0a307195Smrg (UniquePtrGetWorker, UniquePtrMethodsMatcher) 1314*0a307195Smrg (SharedPtrSubscriptWorker, SharedPtrMethodsMatcher): Use 1315*0a307195Smrg is_specialization_of instead of re.match. 1316*0a307195Smrg 1317*0a307195Smrg2023-11-13 Jonathan Wakely <jwakely@redhat.com> 1318*0a307195Smrg 1319*0a307195Smrg Backported from master: 1320*0a307195Smrg 2023-09-28 Jonathan Wakely <jwakely@redhat.com> 1321*0a307195Smrg 1322*0a307195Smrg * python/libstdcxx/v6/printers.py: Break long lines. Use raw 1323*0a307195Smrg strings for regular expressions. Add whitespace around 1324*0a307195Smrg operators. 1325*0a307195Smrg (is_member_of_namespace): Use isinstance to check type. 1326*0a307195Smrg (is_specialization_of): Likewise. Adjust template_name 1327*0a307195Smrg for versioned namespace instead of duplicating the re.match 1328*0a307195Smrg call. 1329*0a307195Smrg (StdExpAnyPrinter._string_types): New static method. 1330*0a307195Smrg (StdExpAnyPrinter.to_string): Use _string_types. 1331*0a307195Smrg 1332*0a307195Smrg2023-11-13 Jonathan Wakely <jwakely@redhat.com> 1333*0a307195Smrg 1334*0a307195Smrg Backported from master: 1335*0a307195Smrg 2023-09-28 Jonathan Wakely <jwakely@redhat.com> 1336*0a307195Smrg 1337*0a307195Smrg * python/libstdcxx/v6/printers.py: Format docstrings according 1338*0a307195Smrg to PEP 257. 1339*0a307195Smrg * python/libstdcxx/v6/xmethods.py: Likewise. 1340*0a307195Smrg 1341*0a307195Smrg2023-11-13 Jonathan Wakely <jwakely@redhat.com> 1342*0a307195Smrg 1343*0a307195Smrg Backported from master: 1344*0a307195Smrg 2023-09-12 Jonathan Wakely <jwakely@redhat.com> 1345*0a307195Smrg 1346*0a307195Smrg * python/libstdcxx/v6/printers.py: Reformat. 1347*0a307195Smrg * python/libstdcxx/v6/xmethods.py: Likewise. 1348*0a307195Smrg 1349*0a307195Smrg2023-11-06 Ian Lance Taylor <iant@golang.org> 1350*0a307195Smrg 1351*0a307195Smrg PR libbacktrace/111315 1352*0a307195Smrg PR libbacktrace/112263 1353*0a307195Smrg * acinclude.m4: Set -D_GNU_SOURCE in BACKTRACE_CPPFLAGS and when 1354*0a307195Smrg grepping link.h for dl_iterate_phdr. 1355*0a307195Smrg * configure: Regenerate. 1356*0a307195Smrg 1357*0a307195Smrg2023-10-25 Jonathan Wakely <jwakely@redhat.com> 1358*0a307195Smrg 1359*0a307195Smrg Backported from master: 1360*0a307195Smrg 2023-10-25 Jonathan Wakely <jwakely@redhat.com> 1361*0a307195Smrg 1362*0a307195Smrg PR libstdc++/111936 1363*0a307195Smrg * src/libbacktrace/Makefile.am: Add -prefer-pic to libtool 1364*0a307195Smrg compile commands. 1365*0a307195Smrg * src/libbacktrace/Makefile.in: Regenerate. 1366*0a307195Smrg 1367*0a307195Smrg2023-10-23 François Dumont <fdumont@gcc.gnu.org> 1368*0a307195Smrg 1369*0a307195Smrg * include/bits/hashtable_policy.h 1370*0a307195Smrg (_Hash_code_base::_M_hash_code(const _Hash&, const _Hash_node_value<>&)): Remove. 1371*0a307195Smrg (_Hash_code_base::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): Remove. 1372*0a307195Smrg * include/bits/hashtable.h 1373*0a307195Smrg (_M_src_hash_code<_H2>(const _H2&, const key_type&, const __node_value_type&)): New. 1374*0a307195Smrg (_M_merge_unique<>, _M_merge_multi<>): Use latter. 1375*0a307195Smrg * testsuite/23_containers/unordered_map/modifiers/merge.cc 1376*0a307195Smrg (test04, test05, test06): New test cases. 1377*0a307195Smrg 1378*0a307195Smrg2023-10-03 Jonathan Wakely <jwakely@redhat.com> 1379*0a307195Smrg 1380*0a307195Smrg * include/bits/fs_dir.h (directory_iterator::operator==): 1381*0a307195Smrg Define without using a non-exported shared_ptr symbol. 1382*0a307195Smrg (recursive_directory_iterator::operator==): Likewise. 1383*0a307195Smrg 1384*0a307195Smrg2023-10-03 Jonathan Wakely <jwakely@redhat.com> 1385*0a307195Smrg 1386*0a307195Smrg Backported from master: 1387*0a307195Smrg 2023-09-01 Jonathan Wakely <jwakely@redhat.com> 1388*0a307195Smrg 1389*0a307195Smrg * testsuite/27_io/filesystem/path/108636.cc: Add dg-require for 1390*0a307195Smrg filesystem support. 1391*0a307195Smrg 1392*0a307195Smrg2023-10-03 Jonathan Wakely <jwakely@redhat.com> 1393*0a307195Smrg 1394*0a307195Smrg Backported from master: 1395*0a307195Smrg 2023-06-06 Jonathan Wakely <jwakely@redhat.com> 1396*0a307195Smrg 1397*0a307195Smrg PR libstdc++/108178 1398*0a307195Smrg * src/filesystem/ops-common.h (do_copy_file): Check for empty 1399*0a307195Smrg files by trying to read a character. 1400*0a307195Smrg * testsuite/27_io/filesystem/operations/copy_file_108178.cc: 1401*0a307195Smrg New test. 1402*0a307195Smrg 1403*0a307195Smrg2023-10-03 Jonathan Wakely <jwakely@redhat.com> 1404*0a307195Smrg 1405*0a307195Smrg Backported from master: 1406*0a307195Smrg 2023-06-06 Jonathan Wakely <jwakely@redhat.com> 1407*0a307195Smrg 1408*0a307195Smrg * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set 1409*0a307195Smrg close-on-exec flag on file descriptors. 1410*0a307195Smrg 1411*0a307195Smrg2023-10-03 Jonathan Wakely <jwakely@redhat.com> 1412*0a307195Smrg 1413*0a307195Smrg Backported from master: 1414*0a307195Smrg 2023-03-20 Jonathan Wakely <jwakely@redhat.com> 1415*0a307195Smrg 1416*0a307195Smrg * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix 1417*0a307195Smrg formatting. 1418*0a307195Smrg 1419*0a307195Smrg2023-10-03 Jonathan Wakely <jwakely@redhat.com> 1420*0a307195Smrg 1421*0a307195Smrg Backported from master: 1422*0a307195Smrg 2023-02-02 Jonathan Wakely <jwakely@redhat.com> 1423*0a307195Smrg 1424*0a307195Smrg * src/filesystem/ops-common.h [AVR] (__unsupported): Always use 1425*0a307195Smrg errc::function_not_supported instead of errc::not_supported. 1426*0a307195Smrg 1427*0a307195Smrg2023-10-02 Tim Song <t.canens.cpp@gmail.com> 1428*0a307195Smrg 1429*0a307195Smrg Backported from master: 1430*0a307195Smrg 2023-09-28 Tim Song <t.canens.cpp@gmail.com> 1431*0a307195Smrg 1432*0a307195Smrg PR libstdc++/111050 1433*0a307195Smrg * include/bits/hashtable_policy.h 1434*0a307195Smrg (_Hash_node_value_base<>::_M_valptr(), _Hash_node_value_base<>::_M_v()) 1435*0a307195Smrg Add [[__gnu__::__always_inline__]]. 1436*0a307195Smrg 1437*0a307195Smrg2023-09-27 Jonathan Wakely <jwakely@redhat.com> 1438*0a307195Smrg 1439*0a307195Smrg Backported from master: 1440*0a307195Smrg 2023-08-09 Jonathan Wakely <jwakely@redhat.com> 1441*0a307195Smrg 1442*0a307195Smrg * include/experimental/bits/fs_path.h (path::string): Use 1443*0a307195Smrg _GLIBCXX17_CONSTEXPR not _GLIBCXX_CONSTEXPR for 'if constexpr'. 1444*0a307195Smrg * include/std/charconv (__to_chars_8): Initialize variable for 1445*0a307195Smrg C++17 constexpr rules. 1446*0a307195Smrg 1447*0a307195Smrg2023-09-26 Jonathan Wakely <jwakely@redhat.com> 1448*0a307195Smrg 1449*0a307195Smrg Backported from master: 1450*0a307195Smrg 2023-09-25 Jonathan Wakely <jwakely@redhat.com> 1451*0a307195Smrg 1452*0a307195Smrg PR libstdc++/111511 1453*0a307195Smrg PR c++/111512 1454*0a307195Smrg * include/std/array (to_array): Qualify calls to __to_array. 1455*0a307195Smrg * testsuite/23_containers/array/creation/111512.cc: New test. 1456*0a307195Smrg 1457*0a307195Smrg2023-09-18 Jonathan Wakely <jwakely@redhat.com> 1458*0a307195Smrg 1459*0a307195Smrg Backported from master: 1460*0a307195Smrg 2023-09-18 Jonathan Wakely <jwakely@redhat.com> 1461*0a307195Smrg 1462*0a307195Smrg * doc/xml/manual/configure.xml: Use conventional option name. 1463*0a307195Smrg * doc/xml/manual/status_cxx2020.xml: Update. 1464*0a307195Smrg * doc/html/*: Regenerate. 1465*0a307195Smrg 1466*0a307195Smrg2023-09-14 Jonathan Wakely <jwakely@redhat.com> 1467*0a307195Smrg 1468*0a307195Smrg Backported from master: 1469*0a307195Smrg 2023-09-14 Jonathan Wakely <jwakely@redhat.com> 1470*0a307195Smrg 1471*0a307195Smrg PR c++/111357 1472*0a307195Smrg * include/bits/utility.h (make_integer_sequence): Add cast. 1473*0a307195Smrg * testsuite/20_util/integer_sequence/pr111357.cc: New test. 1474*0a307195Smrg 1475*0a307195Smrg2023-07-12 Jonathan Wakely <jwakely@redhat.com> 1476*0a307195Smrg 1477*0a307195Smrg Backported from master: 1478*0a307195Smrg 2023-07-12 Jonathan Wakely <jwakely@redhat.com> 1479*0a307195Smrg 1480*0a307195Smrg PR libstdc++/95048 1481*0a307195Smrg * testsuite/27_io/filesystem/path/construct/95048.cc: Check 1482*0a307195Smrg conversions to wide strings. 1483*0a307195Smrg * testsuite/experimental/filesystem/path/construct/95048.cc: 1484*0a307195Smrg Likewise. 1485*0a307195Smrg 1486*0a307195Smrg2023-07-06 Jonathan Wakely <jwakely@redhat.com> 1487*0a307195Smrg 1488*0a307195Smrg Backported from master: 1489*0a307195Smrg 2023-07-06 Jonathan Wakely <jwakely@redhat.com> 1490*0a307195Smrg 1491*0a307195Smrg PR libstdc++/104299 1492*0a307195Smrg * doc/xml/manual/configure.xml: Describe stdio_pure argument to 1493*0a307195Smrg --enable-cstdio. 1494*0a307195Smrg * doc/html/manual/configure.html: Regenerate. 1495*0a307195Smrg 1496*0a307195Smrg2023-06-23 Jonathan Wakely <jwakely@redhat.com> 1497*0a307195Smrg 1498*0a307195Smrg Backported from master: 1499*0a307195Smrg 2023-06-01 Jonathan Wakely <jwakely@redhat.com> 1500*0a307195Smrg 1501*0a307195Smrg * doc/xml/manual/evolution.xml: Document removal of implicit 1502*0a307195Smrg allocator rebinding extensions in strict mode and for C++20. 1503*0a307195Smrg * doc/html/*: Regenerate. 1504*0a307195Smrg 1505*0a307195Smrg2023-06-21 Jason Merrill <jason@redhat.com> 1506*0a307195Smrg 1507*0a307195Smrg PR tree-optimization/105651 1508*0a307195Smrg * include/bits/basic_string.tcc (_M_replace): Add an assert 1509*0a307195Smrg to avoid -Wrestrict false positive. 1510*0a307195Smrg 1511*0a307195Smrg2023-05-30 Alexandre Oliva <oliva@adacore.com> 1512*0a307195Smrg 1513*0a307195Smrg Backported from master: 1514*0a307195Smrg 2023-05-30 Alexandre Oliva <oliva@adacore.com> 1515*0a307195Smrg 1516*0a307195Smrg * testsuite/20_util/from_chars/4.cc: Skip long double test06 1517*0a307195Smrg on x86_64-vxworks. 1518*0a307195Smrg * testsuite/20_util/to_chars/long_double.cc: Xfail run on 1519*0a307195Smrg x86_64-vxworks. 1520*0a307195Smrg 1521*0a307195Smrg2023-05-30 Alexandre Oliva <oliva@adacore.com> 1522*0a307195Smrg 1523*0a307195Smrg Backported from master: 1524*0a307195Smrg 2023-05-25 Alexandre Oliva <oliva@adacore.com> 1525*0a307195Smrg 1526*0a307195Smrg * testsuite/20_util/to_chars/long_double.cc: Expect execution 1527*0a307195Smrg fail on x86-vxworks. 1528*0a307195Smrg 1529*0a307195Smrg2023-05-30 Alexandre Oliva <oliva@adacore.com> 1530*0a307195Smrg 1531*0a307195Smrg Backported from master: 1532*0a307195Smrg 2023-05-05 Alexandre Oliva <oliva@adacore.com> 1533*0a307195Smrg 1534*0a307195Smrg * testsuite/20_util/from_chars/4.cc: Skip long double test06 1535*0a307195Smrg on aarch64-vxworks. 1536*0a307195Smrg * testsuite/20_util/to_chars/long_double.cc: Xfail run on 1537*0a307195Smrg aarch64-vxworks. 1538*0a307195Smrg 1539*0a307195Smrg2023-05-30 Matthias Kretz <m.kretz@gsi.de> 1540*0a307195Smrg 1541*0a307195Smrg Backported from master: 1542*0a307195Smrg 2023-05-30 Matthias Kretz <m.kretz@gsi.de> 1543*0a307195Smrg 1544*0a307195Smrg PR libstdc++/109822 1545*0a307195Smrg * include/experimental/bits/simd.h (to_native): Use int NTTP 1546*0a307195Smrg as specified in PTS2. 1547*0a307195Smrg (to_compatible): Likewise. Add missing tag to call mask 1548*0a307195Smrg generator ctor. 1549*0a307195Smrg * testsuite/experimental/simd/pr109822_cast_functions.cc: New 1550*0a307195Smrg test. 1551*0a307195Smrg 1552*0a307195Smrg2023-05-30 Matthias Kretz <m.kretz@gsi.de> 1553*0a307195Smrg 1554*0a307195Smrg Backported from master: 1555*0a307195Smrg 2023-05-30 Matthias Kretz <m.kretz@gsi.de> 1556*0a307195Smrg 1557*0a307195Smrg * testsuite/experimental/simd/tests/integer_operators.cc: 1558*0a307195Smrg Compute expected value differently to avoid getting turned into 1559*0a307195Smrg a vector shift. 1560*0a307195Smrg 1561*0a307195Smrg2023-05-30 Matthias Kretz <m.kretz@gsi.de> 1562*0a307195Smrg 1563*0a307195Smrg Backported from master: 1564*0a307195Smrg 2023-05-30 Matthias Kretz <m.kretz@gsi.de> 1565*0a307195Smrg 1566*0a307195Smrg * testsuite/experimental/simd/tests/operator_cvt.cc: Make long 1567*0a307195Smrg double <-> (u)long conversion tests conditional on sizeof(long 1568*0a307195Smrg double) and sizeof(long). 1569*0a307195Smrg 1570*0a307195Smrg2023-05-30 Matthias Kretz <m.kretz@gsi.de> 1571*0a307195Smrg 1572*0a307195Smrg Backported from master: 1573*0a307195Smrg 2023-05-26 Matthias Kretz <m.kretz@gsi.de> 1574*0a307195Smrg 1575*0a307195Smrg * include/experimental/bits/simd_ppc.h (_S_bit_shift_left): 1576*0a307195Smrg Negative __y is UB, so prefer signed compare. 1577*0a307195Smrg 1578*0a307195Smrg2023-05-24 Matthias Kretz <m.kretz@gsi.de> 1579*0a307195Smrg 1580*0a307195Smrg Backported from master: 1581*0a307195Smrg 2023-05-24 Matthias Kretz <m.kretz@gsi.de> 1582*0a307195Smrg 1583*0a307195Smrg PR libstdc++/109949 1584*0a307195Smrg * include/experimental/bits/simd.h (__intrinsic_type): If 1585*0a307195Smrg __ALTIVEC__ is defined, map gnu::vector_size types to their 1586*0a307195Smrg corresponding __vector T types without losing unsignedness of 1587*0a307195Smrg integer types. Also prefer long long over long. 1588*0a307195Smrg * include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask 1589*0a307195Smrg object to the expected unsigned vector type. 1590*0a307195Smrg 1591*0a307195Smrg2023-05-24 Matthias Kretz <m.kretz@gsi.de> 1592*0a307195Smrg 1593*0a307195Smrg Backported from master: 1594*0a307195Smrg 2023-05-24 Matthias Kretz <m.kretz@gsi.de> 1595*0a307195Smrg 1596*0a307195Smrg PR libstdc++/109261 1597*0a307195Smrg * include/experimental/bits/simd.h (__intrinsic_type): 1598*0a307195Smrg Specialize __intrinsic_type<double, 8> and 1599*0a307195Smrg __intrinsic_type<double, 16> in any case, but provide the member 1600*0a307195Smrg type only with __aarch64__. 1601*0a307195Smrg 1602*0a307195Smrg2023-05-24 Matthias Kretz <m.kretz@gsi.de> 1603*0a307195Smrg 1604*0a307195Smrg Backported from master: 1605*0a307195Smrg 2023-05-24 Matthias Kretz <m.kretz@gsi.de> 1606*0a307195Smrg 1607*0a307195Smrg PR libstdc++/109261 1608*0a307195Smrg * include/experimental/bits/simd_neon.h (_S_reduce): Add 1609*0a307195Smrg constexpr and make NEON implementation conditional on 1610*0a307195Smrg not __builtin_is_constant_evaluated. 1611*0a307195Smrg 1612*0a307195Smrg2023-05-23 Matthias Kretz <m.kretz@gsi.de> 1613*0a307195Smrg 1614*0a307195Smrg Backported from master: 1615*0a307195Smrg 2023-05-23 Matthias Kretz <m.kretz@gsi.de> 1616*0a307195Smrg 1617*0a307195Smrg PR libstdc++/109261 1618*0a307195Smrg * include/experimental/bits/simd.h (_SimdWrapper::_M_set): 1619*0a307195Smrg Avoid vector builtin subscripting in constant expressions. 1620*0a307195Smrg (resizing_simd_cast): Avoid memcpy if constant_evaluated. 1621*0a307195Smrg (const_where_expression, where_expression, where) 1622*0a307195Smrg (__extract_part, simd_mask, _SimdIntOperators, simd): Add either 1623*0a307195Smrg _GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on 1624*0a307195Smrg internal APIs). 1625*0a307195Smrg * include/experimental/bits/simd_builtin.h (__vector_permute) 1626*0a307195Smrg (__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1) 1627*0a307195Smrg (_GnuTraits::_SimdCastType2, _SimdImplBuiltin) 1628*0a307195Smrg (_MaskImplBuiltin::_S_store): Add constexpr. 1629*0a307195Smrg (_CommonImplBuiltin::_S_store_bool_array) 1630*0a307195Smrg (_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store) 1631*0a307195Smrg (_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add 1632*0a307195Smrg constant_evaluated case. 1633*0a307195Smrg * include/experimental/bits/simd_fixed_size.h 1634*0a307195Smrg (_S_masked_load): Reword comment. 1635*0a307195Smrg (__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r) 1636*0a307195Smrg (_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write) 1637*0a307195Smrg (__make_simd_tuple, __optimize_simd_tuple, __extract_part) 1638*0a307195Smrg (__autocvt_to_simd, _Fixed::__traits::_SimdBase) 1639*0a307195Smrg (_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add 1640*0a307195Smrg constexpr. 1641*0a307195Smrg (_SimdTuple::operator[], _M_set): Add constexpr and add 1642*0a307195Smrg constant_evaluated case. 1643*0a307195Smrg (_MaskImplFixedSize::_S_load): Add constant_evaluated case. 1644*0a307195Smrg * include/experimental/bits/simd_scalar.h: Add constexpr. 1645*0a307195Smrg * include/experimental/bits/simd_x86.h (_CommonImplX86): Add 1646*0a307195Smrg constexpr and add constant_evaluated case. 1647*0a307195Smrg (_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less) 1648*0a307195Smrg (_S_less_equal): Value-initialize to satisfy constexpr 1649*0a307195Smrg evaluation. 1650*0a307195Smrg (_MaskImplX86::_S_load): Add constant_evaluated case. 1651*0a307195Smrg (_MaskImplX86::_S_store): Add constexpr and constant_evaluated 1652*0a307195Smrg case. Value-initialize local variables. 1653*0a307195Smrg (_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not) 1654*0a307195Smrg (_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated 1655*0a307195Smrg case. 1656*0a307195Smrg * testsuite/experimental/simd/pr109261_constexpr_simd.cc: New 1657*0a307195Smrg test. 1658*0a307195Smrg 1659*0a307195Smrg2023-05-23 Matthias Kretz <m.kretz@gsi.de> 1660*0a307195Smrg 1661*0a307195Smrg Backported from master: 1662*0a307195Smrg 2023-05-22 Matthias Kretz <m.kretz@gsi.de> 1663*0a307195Smrg 1664*0a307195Smrg * include/experimental/bits/simd_builtin.h (_S_fpclassify): Move 1665*0a307195Smrg __infn into #ifdef'ed block. 1666*0a307195Smrg * testsuite/experimental/simd/tests/fpclassify.cc: Declare 1667*0a307195Smrg constants only when used. 1668*0a307195Smrg * testsuite/experimental/simd/tests/frexp.cc: Likewise. 1669*0a307195Smrg * testsuite/experimental/simd/tests/logarithm.cc: Likewise. 1670*0a307195Smrg * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: 1671*0a307195Smrg Likewise. 1672*0a307195Smrg * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc: 1673*0a307195Smrg Move totest and expect1 into #ifdef'ed block. 1674*0a307195Smrg 1675*0a307195Smrg2023-05-23 Matthias Kretz <m.kretz@gsi.de> 1676*0a307195Smrg 1677*0a307195Smrg Backported from master: 1678*0a307195Smrg 2023-03-28 Matthias Kretz <m.kretz@gsi.de> 1679*0a307195Smrg 1680*0a307195Smrg * include/experimental/bits/simd.h (is_simd_flag_type): New. 1681*0a307195Smrg (_IsSimdFlagType): New. 1682*0a307195Smrg (copy_from, copy_to, load ctors): Constrain _Flags using 1683*0a307195Smrg _IsSimdFlagType. 1684*0a307195Smrg 1685*0a307195Smrg2023-05-23 Matthias Kretz <m.kretz@gsi.de> 1686*0a307195Smrg 1687*0a307195Smrg Backported from master: 1688*0a307195Smrg 2023-03-28 Matthias Kretz <m.kretz@gsi.de> 1689*0a307195Smrg 1690*0a307195Smrg * include/experimental/bits/simd_x86.h (_SimdImplX86): Use 1691*0a307195Smrg _Base::_S_divides if the optimized _S_divides function is hidden 1692*0a307195Smrg via the preprocessor. 1693*0a307195Smrg 1694*0a307195Smrg2023-05-23 Matthias Kretz <m.kretz@gsi.de> 1695*0a307195Smrg 1696*0a307195Smrg Backported from master: 1697*0a307195Smrg 2023-03-21 Matthias Kretz <m.kretz@gsi.de> 1698*0a307195Smrg 1699*0a307195Smrg * include/experimental/bits/simd_detail.h: Don't declare the 1700*0a307195Smrg simd API as constexpr with Clang. 1701*0a307195Smrg * include/experimental/bits/simd_x86.h (__movm): New. 1702*0a307195Smrg (_S_blend_avx512): Resolve FIXME. Implement blend using __movm 1703*0a307195Smrg and ?:. 1704*0a307195Smrg (_SimdImplX86::_S_masked_unary): Clang does not implement the 1705*0a307195Smrg same builtins. Implement the function using __movm, ?:, and - 1706*0a307195Smrg operators on vector_size types instead. 1707*0a307195Smrg 1708*0a307195Smrg2023-05-23 Matthias Kretz <m.kretz@gsi.de> 1709*0a307195Smrg 1710*0a307195Smrg Backported from master: 1711*0a307195Smrg 2023-02-24 Matthias Kretz <m.kretz@gsi.de> 1712*0a307195Smrg 1713*0a307195Smrg * include/experimental/bits/simd.h: Line breaks and indenting 1714*0a307195Smrg fixed to follow the libstdc++ standard. 1715*0a307195Smrg * include/experimental/bits/simd_builtin.h: Likewise. 1716*0a307195Smrg * include/experimental/bits/simd_fixed_size.h: Likewise. 1717*0a307195Smrg * include/experimental/bits/simd_neon.h: Likewise. 1718*0a307195Smrg * include/experimental/bits/simd_ppc.h: Likewise. 1719*0a307195Smrg * include/experimental/bits/simd_scalar.h: Likewise. 1720*0a307195Smrg * include/experimental/bits/simd_x86.h: Likewise. 1721*0a307195Smrg 1722*0a307195Smrg2023-05-23 Matthias Kretz <m.kretz@gsi.de> 1723*0a307195Smrg 1724*0a307195Smrg Backported from master: 1725*0a307195Smrg 2023-02-24 Matthias Kretz <m.kretz@gsi.de> 1726*0a307195Smrg 1727*0a307195Smrg PR libstdc++/108030 1728*0a307195Smrg * include/experimental/bits/simd_fixed_size.h 1729*0a307195Smrg (_SimdImplFixedSize::_S_broadcast): Replace inline with 1730*0a307195Smrg _GLIBCXX_SIMD_INTRINSIC. 1731*0a307195Smrg (_SimdImplFixedSize::_S_generate): Likewise. 1732*0a307195Smrg (_SimdImplFixedSize::_S_load): Likewise. 1733*0a307195Smrg (_SimdImplFixedSize::_S_masked_load): Likewise. 1734*0a307195Smrg (_SimdImplFixedSize::_S_store): Likewise. 1735*0a307195Smrg (_SimdImplFixedSize::_S_masked_store): Likewise. 1736*0a307195Smrg (_SimdImplFixedSize::_S_min): Likewise. 1737*0a307195Smrg (_SimdImplFixedSize::_S_max): Likewise. 1738*0a307195Smrg (_SimdImplFixedSize::_S_complement): Likewise. 1739*0a307195Smrg (_SimdImplFixedSize::_S_unary_minus): Likewise. 1740*0a307195Smrg (_SimdImplFixedSize::_S_plus): Likewise. 1741*0a307195Smrg (_SimdImplFixedSize::_S_minus): Likewise. 1742*0a307195Smrg (_SimdImplFixedSize::_S_multiplies): Likewise. 1743*0a307195Smrg (_SimdImplFixedSize::_S_divides): Likewise. 1744*0a307195Smrg (_SimdImplFixedSize::_S_modulus): Likewise. 1745*0a307195Smrg (_SimdImplFixedSize::_S_bit_and): Likewise. 1746*0a307195Smrg (_SimdImplFixedSize::_S_bit_or): Likewise. 1747*0a307195Smrg (_SimdImplFixedSize::_S_bit_xor): Likewise. 1748*0a307195Smrg (_SimdImplFixedSize::_S_bit_shift_left): Likewise. 1749*0a307195Smrg (_SimdImplFixedSize::_S_bit_shift_right): Likewise. 1750*0a307195Smrg (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be 1751*0a307195Smrg explicit about not always-inline, yet). 1752*0a307195Smrg (_SimdImplFixedSize::_S_isinf): Likewise. 1753*0a307195Smrg (_SimdImplFixedSize::_S_isfinite): Likewise. 1754*0a307195Smrg (_SimdImplFixedSize::_S_isnan): Likewise. 1755*0a307195Smrg (_SimdImplFixedSize::_S_isnormal): Likewise. 1756*0a307195Smrg (_SimdImplFixedSize::_S_signbit): Likewise. 1757*0a307195Smrg 1758*0a307195Smrg2023-05-23 Matthias Kretz <m.kretz@gsi.de> 1759*0a307195Smrg 1760*0a307195Smrg Backported from master: 1761*0a307195Smrg 2023-02-24 Matthias Kretz <m.kretz@gsi.de> 1762*0a307195Smrg 1763*0a307195Smrg PR libstdc++/108856 1764*0a307195Smrg * include/experimental/bits/simd_builtin.h 1765*0a307195Smrg (_SimdImplBuiltin::_S_masked_unary): More efficient 1766*0a307195Smrg implementation of masked inc-/decrement for integers and floats 1767*0a307195Smrg without AVX2. 1768*0a307195Smrg * include/experimental/bits/simd_x86.h 1769*0a307195Smrg (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract 1770*0a307195Smrg builtins for masked inc-/decrement. 1771*0a307195Smrg 1772*0a307195Smrg2023-05-23 Matthias Kretz <m.kretz@gsi.de> 1773*0a307195Smrg 1774*0a307195Smrg Backported from master: 1775*0a307195Smrg 2023-02-23 Matthias Kretz <m.kretz@gsi.de> 1776*0a307195Smrg 1777*0a307195Smrg * testsuite/experimental/simd/tests/reductions.cc: Introduce 1778*0a307195Smrg max_distance as the type-dependent max error. 1779*0a307195Smrg 1780*0a307195Smrg2023-05-23 Matthias Kretz <m.kretz@gsi.de> 1781*0a307195Smrg 1782*0a307195Smrg Backported from master: 1783*0a307195Smrg 2023-02-23 Matthias Kretz <m.kretz@gsi.de> 1784*0a307195Smrg 1785*0a307195Smrg PR libstdc++/108030 1786*0a307195Smrg * include/experimental/bits/simd_detail.h 1787*0a307195Smrg (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for 1788*0a307195Smrg __clang__. 1789*0a307195Smrg 1790*0a307195Smrg2023-05-23 Matthias Kretz <m.kretz@gsi.de> 1791*0a307195Smrg 1792*0a307195Smrg Backported from master: 1793*0a307195Smrg 2023-02-16 Matthias Kretz <m.kretz@gsi.de> 1794*0a307195Smrg 1795*0a307195Smrg PR libstdc++/108030 1796*0a307195Smrg * include/experimental/bits/simd_detail.h: Define 1797*0a307195Smrg _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA. 1798*0a307195Smrg * include/experimental/bits/simd.h: Annotate lambdas with 1799*0a307195Smrg _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA. 1800*0a307195Smrg * include/experimental/bits/simd_builtin.h: Ditto. 1801*0a307195Smrg * include/experimental/bits/simd_converter.h: Ditto. 1802*0a307195Smrg * include/experimental/bits/simd_fixed_size.h: Ditto. 1803*0a307195Smrg * include/experimental/bits/simd_math.h: Ditto. 1804*0a307195Smrg * include/experimental/bits/simd_neon.h: Ditto. 1805*0a307195Smrg * include/experimental/bits/simd_x86.h: Ditto. 1806*0a307195Smrg 1807*0a307195Smrg2023-05-16 Jonathan Wakely <jwakely@redhat.com> 1808*0a307195Smrg 1809*0a307195Smrg Backported from master: 1810*0a307195Smrg 2022-11-28 Jonathan Wakely <jwakely@redhat.com> 1811*0a307195Smrg 1812*0a307195Smrg PR libstdc++/107801 1813*0a307195Smrg * src/c++17/memory_resource.cc (chunk::_M_bytes): Change type 1814*0a307195Smrg from uint32_t to bitset::size_type. Adjust static assertion. 1815*0a307195Smrg (__pool_resource::_Pool::replenish): Cast to size_t after 1816*0a307195Smrg multiplication instead of before. 1817*0a307195Smrg (__pool_resource::_M_alloc_pools): Ensure both arguments to 1818*0a307195Smrg std::max have type size_t. 1819*0a307195Smrg 1820*0a307195Smrg2023-05-11 Jonathan Wakely <jwakely@redhat.com> 1821*0a307195Smrg 1822*0a307195Smrg Backported from master: 1823*0a307195Smrg 2022-11-16 Jonathan Wakely <jwakely@redhat.com> 1824*0a307195Smrg 1825*0a307195Smrg * python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Make 1826*0a307195Smrg expansion of std::string in manager name more robust. 1827*0a307195Smrg 1828b1e83836Smrg2023-05-08 Release Manager 18297d4dc15bSmrg 1830b1e83836Smrg * GCC 12.3.0 released. 18317d4dc15bSmrg 1832b1e83836Smrg2023-05-03 Kefu Chai <kefu.chai@scylladb.com> 18337d4dc15bSmrg 18347d4dc15bSmrg Backported from master: 1835b1e83836Smrg 2023-05-03 Kefu Chai <kefu.chai@scylladb.com> 1836b1e83836Smrg Jonathan Wakely <jwakely@redhat.com> 18377d4dc15bSmrg 1838b1e83836Smrg PR libstdc++/109703 1839b1e83836Smrg * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)): 1840b1e83836Smrg Initialize _M_string_length. 18417d4dc15bSmrg 18427d4dc15bSmrg2023-05-03 Jonathan Wakely <jwakely@redhat.com> 18437d4dc15bSmrg 18447d4dc15bSmrg Backported from master: 18457d4dc15bSmrg 2023-04-28 Jonathan Wakely <jwakely@redhat.com> 18467d4dc15bSmrg 18477d4dc15bSmrg * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes 18487d4dc15bSmrg from header paths. 18497d4dc15bSmrg 1850b1e83836Smrg2023-04-29 Patrick Palka <ppalka@redhat.com> 18517d4dc15bSmrg 18527d4dc15bSmrg Backported from master: 1853b1e83836Smrg 2023-04-12 Patrick Palka <ppalka@redhat.com> 18547d4dc15bSmrg 1855b1e83836Smrg * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter): 1856b1e83836Smrg Propagate _M_trailing_empty in the const-converting constructor 1857b1e83836Smrg as per LWG 3904. 1858b1e83836Smrg * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test. 1859b1e83836Smrg 1860b1e83836Smrg2023-04-29 Patrick Palka <ppalka@redhat.com> 1861b1e83836Smrg 1862b1e83836Smrg Backported from master: 1863b1e83836Smrg 2023-03-14 Patrick Palka <ppalka@redhat.com> 1864b1e83836Smrg 1865b1e83836Smrg * include/bits/stl_iterator.h (move_iterator::_S_iter_concept): 1866b1e83836Smrg Define. 1867b1e83836Smrg (__cpp_lib_move_iterator_concept): Define for C++20. 1868b1e83836Smrg (move_iterator::iterator_concept): Strengthen as per P2520R0. 1869b1e83836Smrg * include/std/version (__cpp_lib_move_iterator_concept): Define 1870b1e83836Smrg for C++20. 1871b1e83836Smrg * testsuite/24_iterators/move_iterator/p2520r0.cc: New test. 1872b1e83836Smrg 1873b1e83836Smrg2023-04-29 Patrick Palka <ppalka@redhat.com> 1874b1e83836Smrg 1875b1e83836Smrg Backported from master: 1876b1e83836Smrg 2023-03-09 Patrick Palka <ppalka@redhat.com> 1877b1e83836Smrg 1878b1e83836Smrg PR libstdc++/108362 1879b1e83836Smrg * include/std/ranges (__detail::__can_single_view): New concept. 1880b1e83836Smrg (_Single::operator()): Constrain it. Move [[nodiscard]] to the 1881b1e83836Smrg end of the function declarator. 1882b1e83836Smrg (__detail::__can_iota_view): New concept. 1883b1e83836Smrg (_Iota::operator()): Constrain it. Move [[nodiscard]] to the 1884b1e83836Smrg end of the function declarator. 1885b1e83836Smrg (__detail::__can_istream_view): New concept. 1886b1e83836Smrg (_Istream::operator()): Constrain it. Move [[nodiscard]] to the 1887b1e83836Smrg end of the function declarator. 1888b1e83836Smrg * testsuite/std/ranges/iota/lwg3292_neg.cc: Prune "in 1889b1e83836Smrg requirements" diagnostic. 1890b1e83836Smrg * testsuite/std/ranges/iota/iota_view.cc (test07): New test. 1891b1e83836Smrg * testsuite/std/ranges/istream_view.cc (test08): New test. 1892b1e83836Smrg * testsuite/std/ranges/single_view.cc (test07): New test. 1893b1e83836Smrg 1894b1e83836Smrg2023-04-28 Patrick Palka <ppalka@redhat.com> 1895b1e83836Smrg 1896b1e83836Smrg Backported from master: 1897b1e83836Smrg 2023-04-24 Patrick Palka <ppalka@redhat.com> 1898b1e83836Smrg 1899b1e83836Smrg * include/bits/max_size_type.h (__max_diff_type::operator>>=): 1900b1e83836Smrg Fix propagation of sign bit. 1901b1e83836Smrg * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the 1902b1e83836Smrg non-standard 'signed typedef-name'. Add some compile-time tests 1903b1e83836Smrg for right-shifting a negative __max_diff_type value by more than 1904b1e83836Smrg one. 1905b1e83836Smrg 1906b1e83836Smrg2023-04-27 Jonathan Wakely <jwakely@redhat.com> 1907b1e83836Smrg 1908b1e83836Smrg * include/std/atomic: Add missing @endcond doxygen comment. 19097d4dc15bSmrg 19107d4dc15bSmrg2023-04-27 Jonathan Wakely <jwakely@redhat.com> 19117d4dc15bSmrg 19127d4dc15bSmrg Backported from master: 1913b1e83836Smrg 2022-11-25 Jonathan Wakely <jwakely@redhat.com> 19147d4dc15bSmrg 1915b1e83836Smrg PR libstdc++/107850 1916b1e83836Smrg * include/bits/erase_if.h (__erase_nodes_if): Use non-const 1917b1e83836Smrg reference to the container. 1918b1e83836Smrg * include/experimental/map (erase_if): Likewise. 1919b1e83836Smrg * include/experimental/set (erase_if): Likewise. 1920b1e83836Smrg * include/experimental/unordered_map (erase_if): Likewise. 1921b1e83836Smrg * include/experimental/unordered_set (erase_if): Likewise. 1922b1e83836Smrg * include/std/map (erase_if): Likewise. 1923b1e83836Smrg * include/std/set (erase_if): Likewise. 1924b1e83836Smrg * include/std/unordered_map (erase_if): Likewise. 1925b1e83836Smrg * include/std/unordered_set (erase_if): Likewise. 1926b1e83836Smrg * testsuite/23_containers/map/erasure.cc: Check with 1927b1e83836Smrg const-incorrect predicate. 1928b1e83836Smrg * testsuite/23_containers/set/erasure.cc: Likewise. 1929b1e83836Smrg * testsuite/23_containers/unordered_map/erasure.cc: Likewise. 1930b1e83836Smrg * testsuite/23_containers/unordered_set/erasure.cc: Likewise. 1931b1e83836Smrg * testsuite/experimental/map/erasure.cc: Likewise. 1932b1e83836Smrg * testsuite/experimental/set/erasure.cc: Likewise. 1933b1e83836Smrg * testsuite/experimental/unordered_map/erasure.cc: Likewise. 1934b1e83836Smrg * testsuite/experimental/unordered_set/erasure.cc: Likewise. 1935b1e83836Smrg 1936b1e83836Smrg2023-04-27 Jonathan Wakely <jwakely@redhat.com> 1937b1e83836Smrg 1938b1e83836Smrg Backported from master: 1939b1e83836Smrg 2022-11-28 Jonathan Wakely <jwakely@redhat.com> 1940b1e83836Smrg 1941b1e83836Smrg * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc: 1942b1e83836Smrg Replace non-ASCII character. 1943b1e83836Smrg 1944b1e83836Smrg2023-04-27 Jonathan Wakely <jwakely@redhat.com> 1945b1e83836Smrg 1946b1e83836Smrg Backported from master: 1947b1e83836Smrg 2023-02-28 Jonathan Wakely <jwakely@redhat.com> 1948b1e83836Smrg 1949b1e83836Smrg PR libstdc++/108952 1950b1e83836Smrg * include/bits/uses_allocator_args.h 1951b1e83836Smrg (uses_allocator_construction_args): Implement LWG 3527. 1952b1e83836Smrg * testsuite/20_util/pair/astuple/get-2.cc: New test. 1953b1e83836Smrg * testsuite/20_util/scoped_allocator/108952.cc: New test. 1954b1e83836Smrg * testsuite/20_util/uses_allocator/lwg3527.cc: New test. 1955b1e83836Smrg 1956b1e83836Smrg2023-04-27 Jonathan Wakely <jwakely@redhat.com> 1957b1e83836Smrg 1958b1e83836Smrg Backported from master: 1959b1e83836Smrg 2023-03-31 Jonathan Wakely <jwakely@redhat.com> 1960b1e83836Smrg 1961b1e83836Smrg PR libstdc++/109339 1962b1e83836Smrg * include/std/stop_token (_Stop_state_ptr(const stop_source&)): 1963b1e83836Smrg Add attribute access with access-mode 'none'. 1964b1e83836Smrg * testsuite/30_threads/stop_token/stop_source/109339.cc: New test. 1965b1e83836Smrg 1966b1e83836Smrg2023-04-27 Jonathan Wakely <jwakely@redhat.com> 1967b1e83836Smrg 1968b1e83836Smrg Backported from master: 1969b1e83836Smrg 2022-11-28 Jonathan Wakely <jwakely@redhat.com> 1970b1e83836Smrg 1971b1e83836Smrg PR libstdc++/107466 1972b1e83836Smrg * include/bits/random.h (subtract_with_carry_engine): Use 32-bit 1973b1e83836Smrg type for default seed. Use 0u as default argument for 1974b1e83836Smrg subtract_with_carry_engine(result_type) constructor and 1975b1e83836Smrg seed(result_type) member function. 1976b1e83836Smrg * include/bits/random.tcc (subtract_with_carry_engine): Use 1977b1e83836Smrg 32-bit type for default seed and engine used for initial state. 1978b1e83836Smrg * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc: 1979b1e83836Smrg New test. 1980b1e83836Smrg 1981b1e83836Smrg2023-04-27 Jonathan Wakely <jwakely@redhat.com> 1982b1e83836Smrg 1983b1e83836Smrg Backported from master: 1984b1e83836Smrg 2023-04-27 Jonathan Wakely <jwakely@redhat.com> 1985b1e83836Smrg 1986b1e83836Smrg * include/bits/mofunc_impl.h: Fix typo in doxygen comment. 19877d4dc15bSmrg 19887d4dc15bSmrg2023-04-27 Jonathan Wakely <jwakely@redhat.com> 19897d4dc15bSmrg 19907d4dc15bSmrg Backported from master: 19917d4dc15bSmrg 2023-04-27 Jonathan Wakely <jwakely@redhat.com> 19927d4dc15bSmrg 19937d4dc15bSmrg * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for 19947d4dc15bSmrg HTML docs. 19957d4dc15bSmrg * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit 19967d4dc15bSmrg from doxygen docs. 19977d4dc15bSmrg * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR): 19987d4dc15bSmrg Likewise. 19997d4dc15bSmrg * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR): 20007d4dc15bSmrg Likewise. 20017d4dc15bSmrg * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR): 20027d4dc15bSmrg Likewise. 20037d4dc15bSmrg * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR) 20047d4dc15bSmrg (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT) 20057d4dc15bSmrg (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT) 20067d4dc15bSmrg (_DEFINE_BINARY_OPERATOR): Likewise. 20077d4dc15bSmrg 2008b1e83836Smrg2023-04-21 Jonathan Wakely <jwakely@redhat.com> 2009b1e83836Smrg 2010b1e83836Smrg PR libstdc++/103755 2011b1e83836Smrg * include/bits/locale_classes.tcc (try_facet, use_facet): Do not 2012b1e83836Smrg check array index or dynamic type when accessing required 2013b1e83836Smrg specializations of std::ctype, std::num_get, or std::num_put. 2014b1e83836Smrg * testsuite/22_locale/ctype/is/string/89728_neg.cc: Adjust 2015b1e83836Smrg expected errors. 2016b1e83836Smrg 2017b1e83836Smrg2023-04-20 Jonathan Wakely <jwakely@redhat.com> 20187d4dc15bSmrg 20197d4dc15bSmrg Backported from master: 2020b1e83836Smrg 2022-11-29 Jonathan Wakely <jwakely@redhat.com> 20217d4dc15bSmrg 2022b1e83836Smrg PR libstdc++/107852 2023b1e83836Smrg PR libstdc++/106199 2024b1e83836Smrg PR libstdc++/100366 2025b1e83836Smrg * include/bits/vector.tcc (vector::_M_fill_insert): Copy 2026b1e83836Smrg _M_start and _M_finish members before allocating. 2027b1e83836Smrg (vector::_M_default_append): Likewise. 2028b1e83836Smrg (vector::_M_range_insert): Likewise. 20297d4dc15bSmrg 2030b1e83836Smrg2023-04-20 Jonathan Wakely <jwakely@redhat.com> 2031b1e83836Smrg 2032b1e83836Smrg Backported from master: 2033b1e83836Smrg 2023-04-04 Jonathan Wakely <jwakely@redhat.com> 2034b1e83836Smrg 2035b1e83836Smrg * doc/xml/manual/extensions.xml: Remove std::bad_exception from 2036b1e83836Smrg example program. 2037b1e83836Smrg * doc/html/manual/ext_demangling.html: Regenerate. 2038b1e83836Smrg 2039b1e83836Smrg2023-04-20 Jonathan Wakely <jwakely@redhat.com> 2040b1e83836Smrg 2041b1e83836Smrg Backported from master: 2042b1e83836Smrg 2023-04-05 Jonathan Wakely <jwakely@redhat.com> 2043b1e83836Smrg 2044b1e83836Smrg * include/bits/regex.h (sub_match::swap): New function. 2045b1e83836Smrg * testsuite/28_regex/sub_match/lwg3204.cc: New test. 2046b1e83836Smrg 2047b1e83836Smrg2023-04-20 Jonathan Wakely <jwakely@redhat.com> 2048b1e83836Smrg 2049b1e83836Smrg Backported from master: 2050b1e83836Smrg 2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2051b1e83836Smrg 2052b1e83836Smrg PR libstdc++/103387 2053b1e83836Smrg * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use 2054b1e83836Smrg std::use_facet instead of cached _M_num_get facet. 2055b1e83836Smrg (istream::operator>>(short&)): Likewise. 2056b1e83836Smrg (istream::operator>>(int&)): Likewise. 2057b1e83836Smrg * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use 2058b1e83836Smrg std::use_facet instead of cached _M_num_put facet. 2059b1e83836Smrg 2060b1e83836Smrg2023-04-20 Jonathan Wakely <jwakely@redhat.com> 2061b1e83836Smrg 2062b1e83836Smrg Backported from master: 2063b1e83836Smrg 2023-01-15 Jonathan Wakely <jwakely@redhat.com> 2064b1e83836Smrg 2065b1e83836Smrg * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from 2066b1e83836Smrg dg-options. 2067b1e83836Smrg 2068b1e83836Smrg2023-04-20 Jonathan Wakely <jwakely@redhat.com> 2069b1e83836Smrg 2070b1e83836Smrg Backported from master: 2071b1e83836Smrg 2023-03-22 Jonathan Wakely <jwakely@redhat.com> 2072b1e83836Smrg 2073b1e83836Smrg * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)): 2074b1e83836Smrg Add overload, as per LWG 3893. 2075b1e83836Smrg * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: 2076b1e83836Smrg Check assignment from nullptr. 2077b1e83836Smrg 2078b1e83836Smrg2023-04-20 Jonathan Wakely <jwakely@redhat.com> 2079b1e83836Smrg 2080b1e83836Smrg Backported from master: 2081b1e83836Smrg 2023-03-29 Jonathan Wakely <jwakely@redhat.com> 2082b1e83836Smrg 2083b1e83836Smrg * include/std/expected (expected::value() &): Use const lvalue 2084b1e83836Smrg for unex member passed to bad_expected_access constructor, as 2085b1e83836Smrg per LWG 3843. 2086b1e83836Smrg 2087b1e83836Smrg2023-04-20 Jonathan Wakely <jwakely@redhat.com> 2088b1e83836Smrg 2089b1e83836Smrg Backported from master: 2090b1e83836Smrg 2023-02-02 Jonathan Wakely <jwakely@redhat.com> 2091b1e83836Smrg 2092b1e83836Smrg * include/std/variant (variant::operator=): Implement resolution 2093b1e83836Smrg of LWG 3585. 2094b1e83836Smrg * testsuite/20_util/variant/lwg3585.cc: New test. 2095b1e83836Smrg 2096b1e83836Smrg2023-04-12 Patrick Palka <ppalka@redhat.com> 2097b1e83836Smrg 2098b1e83836Smrg Backported from master: 2099b1e83836Smrg 2023-04-12 Patrick Palka <ppalka@redhat.com> 2100b1e83836Smrg 2101b1e83836Smrg * src/c++17/floating_from_chars.cc: Include <algorithm>, 2102b1e83836Smrg <iterator>, <limits> and <cstdint>. 2103b1e83836Smrg 2104b1e83836Smrg2023-03-30 Jonathan Wakely <jwakely@redhat.com> 2105b1e83836Smrg 2106b1e83836Smrg Backported from master: 2107b1e83836Smrg 2023-03-29 Jonathan Wakely <jwakely@redhat.com> 2108b1e83836Smrg 2109b1e83836Smrg PR libstdc++/109242 2110b1e83836Smrg * include/std/optional (transform): Use std::remove_cv_t. 2111b1e83836Smrg * testsuite/20_util/optional/monadic/pr109242.cc: New test. 2112b1e83836Smrg 2113b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2114b1e83836Smrg 2115b1e83836Smrg Backported from master: 2116b1e83836Smrg 2022-12-16 Jonathan Wakely <jwakely@redhat.com> 2117b1e83836Smrg 2118b1e83836Smrg PR libstdc++/108118 2119b1e83836Smrg * include/bits/shared_ptr_base.h (weak_ptr::operator=): 2120b1e83836Smrg Implement as move-and-swap exactly as specified in the standard. 2121b1e83836Smrg * testsuite/20_util/weak_ptr/cons/self_move.cc: New test. 2122b1e83836Smrg 2123b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2124b1e83836Smrg 2125b1e83836Smrg Backported from master: 2126b1e83836Smrg 2022-11-03 Jonathan Wakely <jwakely@redhat.com> 2127b1e83836Smrg 2128b1e83836Smrg * include/bits/ranges_algobase.h (__detail::__copy_or_move): 2129b1e83836Smrg Move output iterator. 2130b1e83836Smrg * testsuite/25_algorithms/copy/constrained.cc: Check copying to 2131b1e83836Smrg move-only output iterator. 2132b1e83836Smrg 2133b1e83836Smrg2023-03-28 Björn Schäpers <bjoern@hazardy.de> 2134b1e83836Smrg 2135b1e83836Smrg Backported from master: 2136b1e83836Smrg 2023-01-14 Björn Schäpers <bjoern@hazardy.de> 2137b1e83836Smrg 2138b1e83836Smrg * include/std/stacktrace (stacktrace_entry::_S_demangle): Use 2139b1e83836Smrg raw __name if __cxa_demangle could not demangle it. 2140b1e83836Smrg 2141b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2142b1e83836Smrg 2143b1e83836Smrg Backported from master: 2144b1e83836Smrg 2022-12-12 Jonathan Wakely <jwakely@redhat.com> 2145b1e83836Smrg 2146b1e83836Smrg * include/std/stacktrace (operator<<): Only output to narrow 2147b1e83836Smrg ostreams (LWG 3515). 2148b1e83836Smrg * testsuite/19_diagnostics/stacktrace/synopsis.cc: 2149b1e83836Smrg 2150b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2151b1e83836Smrg 2152b1e83836Smrg Backported from master: 2153b1e83836Smrg 2022-12-09 Jonathan Wakely <jwakely@redhat.com> 2154b1e83836Smrg 2155b1e83836Smrg * include/bits/chrono.h (duration_cast, floor, round, abs, ceil) 2156b1e83836Smrg (time_point_cast): Add [[nodiscard]] attribute and doxygen 2157b1e83836Smrg comments. 2158b1e83836Smrg (treat_as_floating_point): Add doxygen commen. 2159b1e83836Smrg 2160b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2161b1e83836Smrg 2162b1e83836Smrg Backported from master: 2163b1e83836Smrg 2022-12-09 Jonathan Wakely <jwakely@redhat.com> 2164b1e83836Smrg 2165b1e83836Smrg * include/bits/chrono.h (duration, time_point): Change 'struct' 2166b1e83836Smrg to 'class'. 2167b1e83836Smrg 2168b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2169b1e83836Smrg 2170b1e83836Smrg Backported from master: 2171b1e83836Smrg 2023-01-26 Jonathan Wakely <jwakely@redhat.com> 2172b1e83836Smrg 2173b1e83836Smrg PR libstdc++/108554 2174b1e83836Smrg * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add 2175b1e83836Smrg nonnull attribute. 2176b1e83836Smrg (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull 2177b1e83836Smrg attributes. 2178b1e83836Smrg * testsuite/23_containers/map/modifiers/108554.cc: New test. 2179b1e83836Smrg 2180b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2181b1e83836Smrg 2182b1e83836Smrg Backported from master: 2183b1e83836Smrg 2022-09-23 Jonathan Wakely <jwakely@redhat.com> 2184b1e83836Smrg 2185b1e83836Smrg * include/std/bitset (bitset::_M_copy_to_string): Find set bits 2186b1e83836Smrg instead of iterating over individual bits. 2187b1e83836Smrg 2188b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2189b1e83836Smrg 2190b1e83836Smrg Backported from master: 2191b1e83836Smrg 2022-09-15 Jonathan Wakely <jwakely@redhat.com> 2192b1e83836Smrg 2193b1e83836Smrg * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_PRE_LOCK): 2194b1e83836Smrg Replace with ... 2195b1e83836Smrg (_GLIBCXX_TSAN_MUTEX_TRY_LOCK): ... this, add try_lock flag. 2196b1e83836Smrg (_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED): New macro using 2197b1e83836Smrg try_lock_failed flag 2198b1e83836Smrg (_GLIBCXX_TSAN_MUTEX_POST_LOCK): Rename to ... 2199b1e83836Smrg (_GLIBCXX_TSAN_MUTEX_LOCKED): ... this. 2200b1e83836Smrg (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK): Remove invalid flag. 2201b1e83836Smrg (_GLIBCXX_TSAN_MUTEX_POST_UNLOCK): Remove invalid flag. 2202b1e83836Smrg (_Sp_atomic::_Atomic_count::lock): Use new macros. 2203b1e83836Smrg 2204b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2205b1e83836Smrg 2206b1e83836Smrg Backported from master: 2207b1e83836Smrg 2022-09-14 Jonathan Wakely <jwakely@redhat.com> 2208b1e83836Smrg 2209b1e83836Smrg * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_DESTROY) 2210b1e83836Smrg (_GLIBCXX_TSAN_MUTEX_PRE_LOCK, _GLIBCXX_TSAN_MUTEX_POST_LOCK) 2211b1e83836Smrg (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK, _GLIBCXX_TSAN_MUTEX_POST_UNLOCK) 2212b1e83836Smrg (_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL, _GLIBCXX_TSAN_MUTEX_POST_SIGNAL): 2213b1e83836Smrg Define macros for TSan annotation functions. 2214b1e83836Smrg (_Sp_atomic::_Atomic_count): Add annotations. 2215b1e83836Smrg 2216b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2217b1e83836Smrg 2218b1e83836Smrg Backported from master: 2219b1e83836Smrg 2022-05-17 Jonathan Wakely <jwakely@redhat.com> 2220b1e83836Smrg 2221b1e83836Smrg * include/std/memory_resource (new_delete_resource): Add 2222b1e83836Smrg nodiscard, returns_nonnull and const attributes. 2223b1e83836Smrg (null_memory_resource): Likewise. 2224b1e83836Smrg (set_default_resource, get_default_resource): Add returns_nonnull 2225b1e83836Smrg attribute. 2226b1e83836Smrg (memory_resource::is_equal): Add nodiscard attribute. 2227b1e83836Smrg (operator==, operator!=): Likewise. 2228b1e83836Smrg 2229b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2230b1e83836Smrg 2231b1e83836Smrg Backported from master: 2232b1e83836Smrg 2022-09-14 Jonathan Wakely <jwakely@redhat.com> 2233b1e83836Smrg 2234b1e83836Smrg * include/std/future 2235b1e83836Smrg (_State_baseV2::__setter(exception_ptr&, promise&)): Add 2236b1e83836Smrg assertion for LWG 2276 precondition. 2237b1e83836Smrg * testsuite/30_threads/promise/members/set_exception_neg.cc: 2238b1e83836Smrg New test. 2239b1e83836Smrg 2240b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2241b1e83836Smrg 2242b1e83836Smrg Backported from master: 2243b1e83836Smrg 2022-09-08 Jonathan Wakely <jwakely@redhat.com> 2244b1e83836Smrg 2245b1e83836Smrg * include/c_global/cstddef (byte): Add always_inline attribute 2246b1e83836Smrg to all operator overloads. 2247b1e83836Smrg (to_integer): Add always_inline attribute. 2248b1e83836Smrg 2249b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2250b1e83836Smrg 2251b1e83836Smrg Backported from master: 2252b1e83836Smrg 2022-09-08 Jonathan Wakely <jwakely@redhat.com> 2253b1e83836Smrg 2254b1e83836Smrg * include/std/system_error (__adl_only::make_error_code): Add 2255b1e83836Smrg deleted function. 2256b1e83836Smrg (__adl_only::make_error_condition): Likewise. 2257b1e83836Smrg (error_code::error_code(ErrorCodeEnum)): Add using-declaration 2258b1e83836Smrg for deleted function. 2259b1e83836Smrg (error_condition::error_condition(ErrorConditionEnum)): 2260b1e83836Smrg Likewise. 2261b1e83836Smrg * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: New test. 2262b1e83836Smrg * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: New test. 2263b1e83836Smrg 2264b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2265b1e83836Smrg 2266b1e83836Smrg Backported from master: 2267b1e83836Smrg 2022-05-17 Jonathan Wakely <jwakely@redhat.com> 2268b1e83836Smrg 2269b1e83836Smrg * include/bits/ios_base.h (io_category): Add const and nodiscard 2270b1e83836Smrg attributes. 2271b1e83836Smrg (make_error_code, make_error_condition): Add nodiscard. 2272b1e83836Smrg * include/std/future (future_category): Add const and nodiscard. 2273b1e83836Smrg (make_error_code, make_error_condition): Add nodiscard. 2274b1e83836Smrg * include/std/system_error (generic_category system_category): 2275b1e83836Smrg Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute. 2276b1e83836Smrg (error_code::value, error_code::category, error_code::operator bool) 2277b1e83836Smrg (error_condition::value, error_condition::category) 2278b1e83836Smrg (error_condition::operator bool, make_error_code) 2279b1e83836Smrg (make_error_condition, operator==, operator!=, operator<=>): Add 2280b1e83836Smrg nodiscard. 2281b1e83836Smrg 2282b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2283b1e83836Smrg 2284b1e83836Smrg Backported from master: 2285b1e83836Smrg 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 2286b1e83836Smrg 2287b1e83836Smrg * include/bits/std_thread.h (thread, thread::id): Improve 2288b1e83836Smrg doxygen docs. 2289b1e83836Smrg * include/std/future: Likewise. 2290b1e83836Smrg * include/std/thread (jthread): Likewise. 2291b1e83836Smrg 2292b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2293b1e83836Smrg 2294b1e83836Smrg Backported from master: 2295b1e83836Smrg 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 2296b1e83836Smrg 2297b1e83836Smrg * include/std/system_error: Improve doxygen comments. 2298b1e83836Smrg 2299b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2300b1e83836Smrg 2301b1e83836Smrg Backported from master: 2302b1e83836Smrg 2023-02-16 Jonathan Wakely <jwakely@redhat.com> 2303b1e83836Smrg 2304b1e83836Smrg * include/ext/throw_allocator.h: Use reserved names for 2305b1e83836Smrg parameters. 2306b1e83836Smrg 2307b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2308b1e83836Smrg 2309b1e83836Smrg Backported from master: 2310b1e83836Smrg 2022-11-25 Jonathan Wakely <jwakely@redhat.com> 2311b1e83836Smrg 2312b1e83836Smrg * acinclude.m4 (GLIBCXX_CHECK_UCHAR_H): Don't use AC_MSG_RESULT 2313b1e83836Smrg unless the AC_MSG_CHECKING happened. 2314b1e83836Smrg * configure: Regenerate. 2315b1e83836Smrg 2316b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2317b1e83836Smrg 2318b1e83836Smrg Backported from master: 2319b1e83836Smrg 2023-01-12 Jonathan Wakely <jwakely@redhat.com> 2320b1e83836Smrg 2321b1e83836Smrg * doc/xml/manual/abi.xml: Add latest library versions. 2322b1e83836Smrg * doc/html/manual/abi.html: Regenerate. 2323b1e83836Smrg 2324b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2325b1e83836Smrg 2326b1e83836Smrg Backported from master: 2327b1e83836Smrg 2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2328b1e83836Smrg 2329b1e83836Smrg * include/bits/char_traits.h (char_traits::copy): Return without 2330b1e83836Smrg using memcpy if n==0. 2331b1e83836Smrg (char_traits::assign): Likewise for memset. 2332b1e83836Smrg 2333b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2334b1e83836Smrg 2335b1e83836Smrg Backported from master: 2336b1e83836Smrg 2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2337b1e83836Smrg 2338b1e83836Smrg PR libstdc++/109299 2339b1e83836Smrg * include/bits/basic_string.h (basic_string::_M_is_local()): Add 2340b1e83836Smrg hint for compiler that local strings fit in the local buffer. 2341b1e83836Smrg 2342b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2343b1e83836Smrg 2344b1e83836Smrg Backported from master: 2345b1e83836Smrg 2023-03-01 Jonathan Wakely <jwakely@redhat.com> 2346b1e83836Smrg 2347b1e83836Smrg * include/bits/cow_string.h: Fix typo in comment. 2348b1e83836Smrg 2349b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2350b1e83836Smrg 2351b1e83836Smrg Backported from master: 2352b1e83836Smrg 2023-02-16 Jonathan Wakely <jwakely@redhat.com> 2353b1e83836Smrg 2354b1e83836Smrg * include/experimental/optional: Fix header name in comment. 2355b1e83836Smrg 2356b1e83836Smrg2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2357b1e83836Smrg 2358b1e83836Smrg Backported from master: 2359b1e83836Smrg 2023-01-16 Jonathan Wakely <jwakely@redhat.com> 2360b1e83836Smrg 2361b1e83836Smrg PR libstdc++/108413 2362b1e83836Smrg * include/c_compatibility/stdatomic.h: Change copyright line to 2363b1e83836Smrg be consistent with other headers contributed under DCO terms. 2364b1e83836Smrg * include/std/expected: Add full stop to copyright line. 2365b1e83836Smrg 2366b1e83836Smrg2023-03-21 Matthias Kretz <m.kretz@gsi.de> 2367b1e83836Smrg 2368b1e83836Smrg Backported from master: 2369b1e83836Smrg 2023-03-21 Matthias Kretz <m.kretz@gsi.de> 2370b1e83836Smrg 2371b1e83836Smrg * include/experimental/bits/simd_x86.h 2372b1e83836Smrg (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0 2373b1e83836Smrg with __RECIPROCAL_MATH__. 2374b1e83836Smrg 2375b1e83836Smrg2023-03-21 Matthias Kretz <m.kretz@gsi.de> 2376b1e83836Smrg 2377b1e83836Smrg Backported from master: 2378b1e83836Smrg 2023-03-21 Matthias Kretz <m.kretz@gsi.de> 2379b1e83836Smrg 2380b1e83836Smrg * include/experimental/bits/simd_detail.h: Don't define 2381b1e83836Smrg _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang. 2382b1e83836Smrg * include/experimental/bits/simd_x86.h (_S_divides): Remove 2383b1e83836Smrg check for __clang__. 2384b1e83836Smrg 2385b1e83836Smrg2023-03-21 Matthias Kretz <m.kretz@gsi.de> 2386b1e83836Smrg 2387b1e83836Smrg Backported from master: 2388b1e83836Smrg 2023-03-21 Matthias Kretz <m.kretz@gsi.de> 2389b1e83836Smrg 2390b1e83836Smrg * testsuite/experimental/simd/tests/operators.cc: Clang doesn't 2391b1e83836Smrg define __GCC_IEC_559. Use __STDC_IEC_559__ instead. 2392b1e83836Smrg 2393b1e83836Smrg2023-03-20 François Dumont <fdumont@gcc.gnu.org> 2394b1e83836Smrg 2395b1e83836Smrg Backported from master: 2396b1e83836Smrg 2022-11-16 François Dumont <fdumont@gcc.gnu.org> 2397b1e83836Smrg 2398b1e83836Smrg * python/libstdcxx/v6/printers.py (FilteringTypePrinter): Rename 'match' field 2399b1e83836Smrg 'template'. Add self.targ1 to specify the first template parameter of the instantiation 2400b1e83836Smrg to match. 2401b1e83836Smrg (add_one_type_printer): Add targ1 optional parameter, default to None. 2402b1e83836Smrg Use gdb.types.get_basic_type to compare the type to recognize and the type 2403b1e83836Smrg returned from the typedef lookup. 2404b1e83836Smrg (register_type_printers): Adapt calls to add_one_type_printers. 2405b1e83836Smrg 2406b1e83836Smrg2023-03-20 François Dumont <fdumont@gcc.gnu.org> 2407b1e83836Smrg 2408b1e83836Smrg Backported from master: 2409b1e83836Smrg 2022-10-03 François Dumont <fdumont@gcc.gnu.org> 2410b1e83836Smrg 2411b1e83836Smrg * python/libstdcxx/v6/printers.py (Printer.add_version): Do not add version 2412b1e83836Smrg namespace for __cxx11 symbols. 2413b1e83836Smrg (add_one_template_type_printer): Likewise. 2414b1e83836Smrg (add_one_type_printer): Likewise. 2415b1e83836Smrg (FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al 2416b1e83836Smrg ambiguous typedef matching both std:: and std::__cxx11:: symbols. 2417b1e83836Smrg * testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete 2418b1e83836Smrg \#define _GLIBCXX_USE_CXX11_ABI 0. 2419b1e83836Smrg * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. Adapt test to accept 2420b1e83836Smrg std::__cxx11::list. 2421b1e83836Smrg * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. 2422b1e83836Smrg * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise. 2423b1e83836Smrg * testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove xfail for c++20 2424b1e83836Smrg and debug mode. 2425b1e83836Smrg * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise. 2426b1e83836Smrg 2427b1e83836Smrg2023-03-20 François Dumont <fdumont@gcc.gnu.org> 2428b1e83836Smrg 2429b1e83836Smrg Backported from master: 2430b1e83836Smrg 2022-09-22 François Dumont <fdumont@gcc.gnu.org> 2431b1e83836Smrg 2432b1e83836Smrg * python/libstdcxx/v6/printers.py: Remove ptinter registration for non-existing 2433b1e83836Smrg types std::__debug::unique_ptr, std::__debug::stack, std::__debug::queue, 2434b1e83836Smrg std::__debug::priority_queue. 2435b1e83836Smrg 2436b1e83836Smrg2023-03-20 Jonathan Wakely <jwakely@redhat.com> 2437b1e83836Smrg 2438b1e83836Smrg Backported from master: 2439b1e83836Smrg 2023-03-10 Jonathan Wakely <jwakely@redhat.com> 24407d4dc15bSmrg 24417d4dc15bSmrg PR libstdc++/109064 24427d4dc15bSmrg * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker): 24437d4dc15bSmrg Remove self-recursion in __init__. Add missing _supports. 24447d4dc15bSmrg * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count() 24457d4dc15bSmrg and unique(). 24467d4dc15bSmrg 2447b1e83836Smrg2023-03-20 Jonathan Wakely <jwakely@redhat.com> 2448b1e83836Smrg 2449b1e83836Smrg PR libstdc++/109182 2450b1e83836Smrg * include/std/expected (expected<void>::expected(in_place_t)): 2451b1e83836Smrg Remove template-head. 2452b1e83836Smrg 2453b1e83836Smrg2023-03-20 Jonathan Wakely <jwakely@redhat.com> 2454b1e83836Smrg 2455b1e83836Smrg PR libstdc++/109165 2456b1e83836Smrg * include/std/coroutine (hash<>::operator()): Add const. 2457b1e83836Smrg * testsuite/18_support/coroutines/hash.cc: New test. 2458b1e83836Smrg 2459b1e83836Smrg2023-03-10 Thomas W Rodgers <rodgert@twrodgers.com> 24607d4dc15bSmrg 24617d4dc15bSmrg Backported from master: 2462b1e83836Smrg 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com> 24637d4dc15bSmrg 2464b1e83836Smrg PR libstdc++/103934 2465b1e83836Smrg * include/std/atomic (atomic_flag_wait): Add. 2466b1e83836Smrg (atomic_flag_wait_explicit): Add. 2467b1e83836Smrg (atomic_flag_notify): Add. 2468b1e83836Smrg (atomic_flag_notify_explicit): Add. 2469b1e83836Smrg * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: 2470b1e83836Smrg Add test case to cover missing atomic_flag free functions. 24717d4dc15bSmrg 2472b1e83836Smrg2023-02-23 Matthias Kretz <m.kretz@gsi.de> 24737d4dc15bSmrg 24747d4dc15bSmrg Backported from master: 2475b1e83836Smrg 2023-02-23 Matthias Kretz <m.kretz@gsi.de> 24767d4dc15bSmrg 2477b1e83836Smrg PR libstdc++/108030 2478b1e83836Smrg * include/experimental/bits/simd.h (__vector_broadcast): 2479b1e83836Smrg Implement via __vector_broadcast_impl instead of 2480b1e83836Smrg __call_with_n_evaluations + 2 lambdas. 2481b1e83836Smrg (__vector_broadcast_impl): New. 24827d4dc15bSmrg 2483b1e83836Smrg2023-02-23 Matthias Kretz <m.kretz@gsi.de> 2484b1e83836Smrg 2485b1e83836Smrg Backported from master: 2486b1e83836Smrg 2023-02-23 Matthias Kretz <m.kretz@gsi.de> 2487b1e83836Smrg 2488b1e83836Smrg * include/experimental/bits/simd_builtin.h (_S_set): Compare as 2489b1e83836Smrg int. The actual range of these indexes is very small. 2490b1e83836Smrg 2491b1e83836Smrg2023-02-23 Matthias Kretz <m.kretz@gsi.de> 2492b1e83836Smrg 2493b1e83836Smrg Backported from master: 2494b1e83836Smrg 2023-02-23 Matthias Kretz <m.kretz@gsi.de> 2495b1e83836Smrg 2496b1e83836Smrg * include/experimental/bits/simd_x86.h (_S_bit_shift_left) 2497b1e83836Smrg (_S_bit_shift_right): Declare constexpr. The implementation was 2498b1e83836Smrg already expecting constexpr evaluation. 2499b1e83836Smrg 2500b1e83836Smrg2023-02-23 Matthias Kretz <m.kretz@gsi.de> 2501b1e83836Smrg 2502b1e83836Smrg Backported from master: 2503b1e83836Smrg 2023-02-20 Matthias Kretz <m.kretz@gsi.de> 2504b1e83836Smrg 2505b1e83836Smrg * include/experimental/bits/simd.h (__extract_part, split): 2506b1e83836Smrg Use reserved name for template parameter. 2507b1e83836Smrg 2508b1e83836Smrg2023-02-21 Jonathan Wakely <jwakely@redhat.com> 2509b1e83836Smrg 2510b1e83836Smrg Backported from master: 2511b1e83836Smrg 2022-08-31 Jonathan Wakely <jwakely@redhat.com> 2512b1e83836Smrg 2513b1e83836Smrg * include/bits/refwrap.h (reference_wrapper::operator()): Add 2514b1e83836Smrg noexcept-specifier and use __invoke_result instead of result_of. 2515b1e83836Smrg * testsuite/20_util/reference_wrapper/invoke-noexcept.cc: New test. 2516b1e83836Smrg 2517b1e83836Smrg2023-02-21 Jonathan Wakely <jwakely@redhat.com> 2518b1e83836Smrg 2519b1e83836Smrg Backported from master: 2520b1e83836Smrg 2023-02-02 Jonathan Wakely <jwakely@redhat.com> 2521b1e83836Smrg 2522b1e83836Smrg PR libstdc++/108636 2523b1e83836Smrg * include/bits/fs_path.h (path::path(string_view, _Type)) 2524b1e83836Smrg (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline 2525b1e83836Smrg definitions to ... 2526b1e83836Smrg * src/c++17/fs_path.cc: ... here. 2527b1e83836Smrg * testsuite/27_io/filesystem/path/108636.cc: New test. 2528b1e83836Smrg 2529b1e83836Smrg2023-02-16 Matthias Kretz <m.kretz@gsi.de> 2530b1e83836Smrg 2531b1e83836Smrg Backported from master: 2532b1e83836Smrg 2023-02-16 Matthias Kretz <m.kretz@gsi.de> 2533b1e83836Smrg 2534b1e83836Smrg * include/experimental/bits/simd_math.h (__hypot): Bitcasting 2535b1e83836Smrg between scalars requires the __bit_cast helper function instead 2536b1e83836Smrg of simd_bit_cast. 2537b1e83836Smrg 2538b1e83836Smrg2023-02-16 Matthias Kretz <m.kretz@gsi.de> 2539b1e83836Smrg 2540b1e83836Smrg Backported from master: 2541b1e83836Smrg 2023-02-16 Matthias Kretz <m.kretz@gsi.de> 2542b1e83836Smrg 2543b1e83836Smrg * include/experimental/bits/simd_x86.h 2544b1e83836Smrg (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less) 2545b1e83836Smrg (_SimdImplX86::_S_less_equal): Do not call 2546b1e83836Smrg __builtin_is_constant_evaluated in constexpr-if. 2547b1e83836Smrg 2548b1e83836Smrg2023-02-16 Matthias Kretz <m.kretz@gsi.de> 2549b1e83836Smrg 2550b1e83836Smrg Backported from master: 2551b1e83836Smrg 2023-02-16 Matthias Kretz <m.kretz@gsi.de> 2552b1e83836Smrg 2553b1e83836Smrg * testsuite/experimental/simd/tests/bits/verify.h 2554b1e83836Smrg (verify::verify): Use %zx for size_t in format string. 2555b1e83836Smrg 2556b1e83836Smrg2023-02-16 Matthias Kretz <m.kretz@gsi.de> 2557b1e83836Smrg 2558b1e83836Smrg Backported from master: 2559b1e83836Smrg 2023-02-16 Matthias Kretz <m.kretz@gsi.de> 2560b1e83836Smrg 2561b1e83836Smrg * testsuite/experimental/simd/README.md: Document the timeout 2562b1e83836Smrg and timeout-factor directives. Minor typo fixed. 2563b1e83836Smrg 2564b1e83836Smrg2023-02-16 Matthias Kretz <m.kretz@gsi.de> 2565b1e83836Smrg 2566b1e83836Smrg Backported from master: 2567b1e83836Smrg 2023-02-16 Matthias Kretz <m.kretz@gsi.de> 2568b1e83836Smrg 2569b1e83836Smrg * include/experimental/bits/simd.h 2570b1e83836Smrg (_SimdWrapper::_M_is_constprop_none_of) 2571b1e83836Smrg (_SimdWrapper::_M_is_constprop_all_of): Return false unless the 2572b1e83836Smrg computed result still satisfies __builtin_constant_p. 2573b1e83836Smrg 2574b1e83836Smrg2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com> 2575b1e83836Smrg 2576b1e83836Smrg Backported from master: 2577b1e83836Smrg 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com> 2578b1e83836Smrg 2579b1e83836Smrg PR libstdc++/103934 2580b1e83836Smrg * include/std/atomic (atomic_flag_test): Add. 2581b1e83836Smrg (atomic_flag_test_explicit): Add. 2582b1e83836Smrg * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add 2583b1e83836Smrg test case to cover missing atomic_flag free functions. 2584b1e83836Smrg * testsuite/29_atomics/atomic_flag/test/implicit.cc: 2585b1e83836Smrg Likewise. 2586b1e83836Smrg 2587b1e83836Smrg2023-02-10 Jakub Jelinek <jakub@redhat.com> 2588b1e83836Smrg 2589b1e83836Smrg Backported from master: 2590b1e83836Smrg 2022-11-24 Jakub Jelinek <jakub@redhat.com> 2591b1e83836Smrg 2592b1e83836Smrg PR libstdc++/107468 2593b1e83836Smrg * src/c++17/fast_float/fast_float.h: Partial merge from fast_float 2594b1e83836Smrg 2ef9abbcf6a11958b6fa685a89d0150022e82e78 commit. 2595b1e83836Smrg 2596b1e83836Smrg2023-02-10 Jakub Jelinek <jakub@redhat.com> 2597b1e83836Smrg 2598b1e83836Smrg Backported from master: 2599b1e83836Smrg 2022-11-07 Jakub Jelinek <jakub@redhat.com> 2600b1e83836Smrg 2601b1e83836Smrg PR libstdc++/107468 2602b1e83836Smrg * src/c++17/fast_float/fast_float.h: Partial merge from fast_float 2603b1e83836Smrg 662497742fea7055f0e0ee27e5a7ddc382c2c38e commit. 2604b1e83836Smrg * testsuite/20_util/from_chars/pr107468.cc: New test. 2605b1e83836Smrg 2606b1e83836Smrg2023-02-02 Jonathan Wakely <jwakely@redhat.com> 2607b1e83836Smrg 2608b1e83836Smrg Backported from master: 2609b1e83836Smrg 2023-02-01 Jonathan Wakely <jwakely@redhat.com> 2610b1e83836Smrg 2611b1e83836Smrg * src/c++11/random.cc (random_device::_M_fini): Do not try to 2612b1e83836Smrg close the file handle if the target doesn't support the 2613b1e83836Smrg /dev/random and /dev/urandom files. 2614b1e83836Smrg 2615b1e83836Smrg2023-02-02 Jonathan Wakely <jwakely@redhat.com> 2616b1e83836Smrg 2617b1e83836Smrg Backported from master: 2618b1e83836Smrg 2023-02-01 Jonathan Wakely <jwakely@redhat.com> 2619b1e83836Smrg 2620b1e83836Smrg * config/os/generic/error_constants.h (errc::value_too_large) 2621b1e83836Smrg [__AVR__]: Define. 2622b1e83836Smrg * src/c++11/system_error.cc 2623b1e83836Smrg (system_category::default_error_condition) [__AVR__]: Only match 2624b1e83836Smrg recognize values equal to EDOM, ERANGE, ENOSYS and EINTR. 2625b1e83836Smrg * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check 2626b1e83836Smrg for ENOENT etc. in switch. 2627b1e83836Smrg (fs::remove_all) [__AVR__]: Likewise. 2628b1e83836Smrg * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open, 2629b1e83836Smrg close etc. 2630b1e83836Smrg 2631b1e83836Smrg2023-02-02 Patrick Palka <ppalka@redhat.com> 2632b1e83836Smrg 2633b1e83836Smrg Backported from master: 2634b1e83836Smrg 2022-11-06 Patrick Palka <ppalka@redhat.com> 2635b1e83836Smrg 2636b1e83836Smrg * include/bits/atomic_wait.h (_detail::__platform_wait_alignment): 2637b1e83836Smrg Declare inline. Remove redundant static specifier. 2638b1e83836Smrg (__detail::__atomic_spin_count_relax): Declare inline. 2639b1e83836Smrg (__detail::__atomic_spin_count): Likewise. 2640b1e83836Smrg * include/bits/regex_automaton.h (__detail::_S_invalid_state_id): 2641b1e83836Smrg Declare inline for C++17. Declare constexpr. Remove 2642b1e83836Smrg redundant const and static specifiers. 2643b1e83836Smrg * include/bits/regex_error.h (regex_constants::error_collate): 2644b1e83836Smrg Declare inline for C++17 as per P0607R0. 2645b1e83836Smrg (regex_constants::error_ctype): Likewise. 2646b1e83836Smrg (regex_constants::error_escape): Likewise. 2647b1e83836Smrg (regex_constants::error_backref): Likewise. 2648b1e83836Smrg (regex_constants::error_brack): Likewise. 2649b1e83836Smrg (regex_constants::error_paren): Likewise. 2650b1e83836Smrg (regex_constants::error_brace): Likewise. 2651b1e83836Smrg (regex_constants::error_badbrace): Likewise. 2652b1e83836Smrg (regex_constants::error_range): Likewise. 2653b1e83836Smrg (regex_constants::error_space): Likewise. 2654b1e83836Smrg (regex_constants::error_badrepeat): Likewise. 2655b1e83836Smrg (regex_constants::error_complexity): Likewise. 2656b1e83836Smrg (regex_constants::error_stack): Likewise. 2657b1e83836Smrg * include/ext/concurrence.h (__gnu_cxx::__default_lock_policy): 2658b1e83836Smrg Likewise. Remove redundant static specifier. 2659b1e83836Smrg * include/pstl/execution_defs.h (execution::seq): Declare inline 2660b1e83836Smrg for C++17 as per P0607R0. 2661b1e83836Smrg (execution::par): Likewise. 2662b1e83836Smrg (execution::par_unseq): Likewise. 2663b1e83836Smrg (execution::unseq): Likewise. 2664b1e83836Smrg 2665b1e83836Smrg2023-01-18 Jonathan Wakely <jwakely@redhat.com> 2666b1e83836Smrg 2667b1e83836Smrg Backported from master: 2668b1e83836Smrg 2022-12-22 Jonathan Wakely <jwakely@redhat.com> 2669b1e83836Smrg 2670b1e83836Smrg PR libstdc++/105730 2671b1e83836Smrg * src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait): 2672b1e83836Smrg Access private data member of base class and call its wait 2673b1e83836Smrg member. 2674b1e83836Smrg 2675b1e83836Smrg2023-01-16 Jonathan Wakely <jwakely@redhat.com> 2676b1e83836Smrg 2677b1e83836Smrg Backported from master: 2678b1e83836Smrg 2022-08-04 Jonathan Wakely <jwakely@redhat.com> 2679b1e83836Smrg 2680b1e83836Smrg PR libstdc++/106183 2681b1e83836Smrg * include/bits/atomic_wait.h (__waiter_pool_base::_M_notify): 2682b1e83836Smrg Move increment of _M_ver here. 2683b1e83836Smrg [!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment. 2684b1e83836Smrg Use relaxed memory order and always notify all waiters. 2685b1e83836Smrg (__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]: 2686b1e83836Smrg Check value again after locking mutex. 2687b1e83836Smrg (__waiter_base::_M_notify): Remove increment of _M_ver. 2688b1e83836Smrg 2689b1e83836Smrg2023-01-05 Jonathan Wakely <jwakely@redhat.com> 2690b1e83836Smrg 2691b1e83836Smrg Backported from master: 2692b1e83836Smrg 2023-01-05 Jonathan Wakely <jwakely@redhat.com> 2693b1e83836Smrg 2694b1e83836Smrg PR libstdc++/108265 2695b1e83836Smrg * include/std/chrono (hh_mm_ss): Do not use chrono::abs if 2696b1e83836Smrg duration rep is unsigned. Remove incorrect noexcept-specifier. 2697b1e83836Smrg * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep. Check 2698b1e83836Smrg floating-point representations. Check default construction. 2699b1e83836Smrg 2700b1e83836Smrg2022-12-21 Jonathan Wakely <jwakely@redhat.com> 2701b1e83836Smrg 2702b1e83836Smrg Backported from master: 2703b1e83836Smrg 2022-11-23 Jonathan Wakely <jwakely@redhat.com> 2704b1e83836Smrg 2705b1e83836Smrg PR libstdc++/107814 2706b1e83836Smrg * testsuite/experimental/filesystem/iterators/error_reporting.cc: 2707b1e83836Smrg Use a static buffer with space after it. 2708b1e83836Smrg 2709b1e83836Smrg2022-12-21 Jonathan Wakely <jwakely@redhat.com> 2710b1e83836Smrg 2711b1e83836Smrg Backported from master: 2712b1e83836Smrg 2022-12-16 Jonathan Wakely <jwakely@redhat.com> 2713b1e83836Smrg 2714b1e83836Smrg * include/std/expected (expected::_M_swap_val_unex): Guard the 2715b1e83836Smrg correct object. 2716b1e83836Smrg (expected::swap): Move is_swappable 2717b1e83836Smrg requirement from static_assert to constraint. 2718b1e83836Smrg (swap): Likewise. 2719b1e83836Smrg (operator==): Remove noexcept-specifier. 2720b1e83836Smrg * testsuite/20_util/expected/swap.cc: Check swapping of 2721b1e83836Smrg types without non-throwing move constructor. Check constraints 2722b1e83836Smrg on swap. 2723b1e83836Smrg * testsuite/20_util/expected/unexpected.cc: Check constraints on 2724b1e83836Smrg swap. 2725b1e83836Smrg * testsuite/20_util/expected/equality.cc: New test. 2726b1e83836Smrg 2727b1e83836Smrg2022-12-14 Jonathan Wakely <jwakely@redhat.com> 2728b1e83836Smrg 2729b1e83836Smrg Backported from master: 2730b1e83836Smrg 2022-12-14 Jonathan Wakely <jwakely@redhat.com> 2731b1e83836Smrg 2732b1e83836Smrg PR libstdc++/108097 2733b1e83836Smrg * include/std/stacktrace (basic_stracktrace::_Impl): Do not 2734b1e83836Smrg multiply N by sizeof(value_type) when allocating. 2735b1e83836Smrg 2736b1e83836Smrg2022-11-24 Jonathan Wakely <jwakely@redhat.com> 2737b1e83836Smrg 2738b1e83836Smrg Backported from master: 2739b1e83836Smrg 2022-09-15 Jonathan Wakely <jwakely@redhat.com> 2740b1e83836Smrg 2741b1e83836Smrg * include/std/memory: Do not include <bits/stl_algobase.h>. 2742b1e83836Smrg 2743b1e83836Smrg2022-11-24 Jonathan Wakely <jwakely@redhat.com> 2744b1e83836Smrg 2745b1e83836Smrg Backported from master: 2746b1e83836Smrg 2022-11-11 Jonathan Wakely <jwakely@redhat.com> 2747b1e83836Smrg 2748b1e83836Smrg * testsuite/20_util/tuple/swap.cc (MoveOnly::operator==): Add 2749b1e83836Smrg const qualifier. 2750b1e83836Smrg * testsuite/26_numerics/valarray/87641.cc (X::operator==): 2751b1e83836Smrg Likewise. 2752b1e83836Smrg 2753b1e83836Smrg2022-11-24 Jonathan Wakely <jwakely@redhat.com> 2754b1e83836Smrg 2755b1e83836Smrg Backported from master: 2756b1e83836Smrg 2022-11-02 Jonathan Wakely <jwakely@redhat.com> 2757b1e83836Smrg 2758b1e83836Smrg * include/std/expected (expected::_M_invalid): Remove. 2759b1e83836Smrg 2760b1e83836Smrg2022-11-24 Jonathan Wakely <jwakely@redhat.com> 2761b1e83836Smrg 2762b1e83836Smrg Backported from master: 2763b1e83836Smrg 2022-11-21 Jonathan Wakely <jwakely@redhat.com> 2764b1e83836Smrg 2765b1e83836Smrg * include/bits/chrono.h (duration): Check preconditions on 2766b1e83836Smrg template arguments before using them. 2767b1e83836Smrg 2768b1e83836Smrg2022-11-24 Jonathan Wakely <jwakely@redhat.com> 2769b1e83836Smrg 2770b1e83836Smrg Backported from master: 2771b1e83836Smrg 2022-10-28 Jonathan Wakely <jwakely@redhat.com> 2772b1e83836Smrg 2773b1e83836Smrg * include/bits/fs_path.h (path::filename()): Fix dangling 2774b1e83836Smrg reference. 2775b1e83836Smrg 2776b1e83836Smrg2022-11-24 Jonathan Wakely <jwakely@redhat.com> 2777b1e83836Smrg 2778b1e83836Smrg Backported from master: 2779b1e83836Smrg 2022-09-14 Jonathan Wakely <jwakely@redhat.com> 2780b1e83836Smrg 2781b1e83836Smrg * doc/xml/manual/intro.xml: Document LWG 1203. 2782b1e83836Smrg * doc/html/*: Regenerate. 2783b1e83836Smrg 2784b1e83836Smrg2022-11-24 Jonathan Wakely <jwakely@redhat.com> 2785b1e83836Smrg 2786b1e83836Smrg Backported from master: 2787b1e83836Smrg 2022-09-07 Jonathan Wakely <jwakely@redhat.com> 2788b1e83836Smrg 2789b1e83836Smrg * include/std/barrier: Add missing runtime exception. 2790b1e83836Smrg 2791b1e83836Smrg2022-11-24 Jonathan Wakely <jwakely@redhat.com> 2792b1e83836Smrg 2793b1e83836Smrg Backported from master: 2794b1e83836Smrg 2022-08-04 Jonathan Wakely <jwakely@redhat.com> 2795b1e83836Smrg 2796b1e83836Smrg * include/bits/fs_dir.h (directory_iterator): Add comparison 2797b1e83836Smrg with std::default_sentinel_t. Remove redundant operator!= for 2798b1e83836Smrg C++20. 2799b1e83836Smrg * (recursive_directory_iterator): Likewise. 2800b1e83836Smrg * include/bits/iterator_concepts.h [!__cpp_lib_concepts] 2801b1e83836Smrg (default_sentinel_t, default_sentinel): Define even if concepts 2802b1e83836Smrg are not supported. 2803b1e83836Smrg * include/bits/regex.h (regex_iterator): Add comparison with 2804b1e83836Smrg std::default_sentinel_t. Remove redundant operator!= for C++20. 2805b1e83836Smrg (regex_token_iterator): Likewise. 2806b1e83836Smrg (regex_token_iterator::_M_end_of_seq()): Add noexcept. 2807b1e83836Smrg * testsuite/27_io/filesystem/iterators/lwg3719.cc: New test. 2808b1e83836Smrg * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc: 2809b1e83836Smrg New test. 2810b1e83836Smrg * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc: 2811b1e83836Smrg New test. 2812b1e83836Smrg 2813b1e83836Smrg2022-11-24 Jonathan Wakely <jwakely@redhat.com> 2814b1e83836Smrg 2815b1e83836Smrg Backported from master: 2816b1e83836Smrg 2022-09-23 Jonathan Wakely <jwakely@redhat.com> 2817b1e83836Smrg 2818b1e83836Smrg PR libstdc++/91456 2819b1e83836Smrg * include/std/type_traits (__is_nothrow_invocable): Remove. 2820b1e83836Smrg (__is_invocable_impl::__nothrow_type): New member type which 2821b1e83836Smrg checks if the conversion can throw. 2822b1e83836Smrg (__is_nt_invocable_impl): Replace class template with alias 2823b1e83836Smrg template to __is_nt_invocable_impl::__nothrow_type. 2824b1e83836Smrg * testsuite/20_util/is_nothrow_invocable/91456.cc: New test. 2825b1e83836Smrg * testsuite/20_util/is_nothrow_convertible/value.cc: Remove 2826b1e83836Smrg macro used by value_ext.cc test. 2827b1e83836Smrg * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove 2828b1e83836Smrg test for non-standard __is_nothrow_invocable trait. 2829b1e83836Smrg 2830b1e83836Smrg2022-11-22 Jonathan Wakely <jwakely@redhat.com> 2831b1e83836Smrg 2832b1e83836Smrg PR libstdc++/106201 2833b1e83836Smrg * include/bits/fs_path.h (filesystem::swap(path&, path&)): 2834b1e83836Smrg Replace with abbreviated function template. 2835b1e83836Smrg * include/experimental/bits/fs_path.h (filesystem::swap): 2836b1e83836Smrg Likewise. 2837b1e83836Smrg * testsuite/27_io/filesystem/iterators/106201.cc: New test. 2838b1e83836Smrg * testsuite/experimental/filesystem/iterators/106201.cc: New test. 2839b1e83836Smrg 2840b1e83836Smrg2022-11-22 Jonathan Wakely <jwakely@redhat.com> 2841b1e83836Smrg 2842b1e83836Smrg Backported from master: 2843b1e83836Smrg 2022-11-22 Jonathan Wakely <jwakely@redhat.com> 2844b1e83836Smrg 2845b1e83836Smrg PR libstdc++/107801 2846b1e83836Smrg * src/c++17/memory_resource.cc (pool_sizes): Disable large pools 2847b1e83836Smrg for targets with 16-bit int. 2848b1e83836Smrg 2849b1e83836Smrg2022-11-14 Jonathan Wakely <jwakely@redhat.com> 2850b1e83836Smrg 2851b1e83836Smrg * include/bits/mofunc_impl.h (move_only_function::__param_t): 2852b1e83836Smrg Use __is_scalar instead of is_trivially_copyable. 2853b1e83836Smrg * testsuite/20_util/move_only_function/call.cc: Check parameters 2854b1e83836Smrg involving incomplete types. 2855b1e83836Smrg 2856b1e83836Smrg2022-11-14 Jonathan Wakely <jwakely@redhat.com> 2857b1e83836Smrg 2858b1e83836Smrg Backported from master: 2859b1e83836Smrg 2022-11-11 Jonathan Wakely <jwakely@redhat.com> 2860b1e83836Smrg 2861b1e83836Smrg PR libstdc++/95048 2862b1e83836Smrg * include/bits/fs_path.h (path::_Codecvt): New class template 2863b1e83836Smrg that selects the kind of code conversion done. 2864b1e83836Smrg (path::_Codecvt<wchar_t>): Select based on sizeof(wchar_t). 2865b1e83836Smrg (_GLIBCXX_CONV_FROM_UTF8): New macro to allow the same code to 2866b1e83836Smrg be used for Windows and POSIX. 2867b1e83836Smrg (path::_S_convert(const EcharT*, const EcharT*)): Simplify by 2868b1e83836Smrg using _Codecvt and _GLIBCXX_CONV_FROM_UTF8 abstractions. 2869b1e83836Smrg (path::_S_str_convert(basic_string_view<value_type>, const A&)): 2870b1e83836Smrg Simplify nested conditions. 2871b1e83836Smrg * include/experimental/bits/fs_path.h (path::_Cvt): Define 2872b1e83836Smrg nested typedef controlling type of code conversion done. 2873b1e83836Smrg (path::_Cvt::_S_wconvert): Use new typedef. 2874b1e83836Smrg (path::string(const A&)): Likewise. 2875b1e83836Smrg * testsuite/27_io/filesystem/path/construct/95048.cc: New test. 2876b1e83836Smrg * testsuite/experimental/filesystem/path/construct/95048.cc: New 2877b1e83836Smrg test. 2878b1e83836Smrg 2879b1e83836Smrg2022-11-14 Nathaniel Shead <nathanieloshead@gmail.com> 2880b1e83836Smrg 2881b1e83836Smrg Backported from master: 2882b1e83836Smrg 2022-11-11 Nathaniel Shead <nathanieloshead@gmail.com> 2883b1e83836Smrg 2884b1e83836Smrg PR libstdc++/103295 2885b1e83836Smrg * include/bits/basic_string.h (_M_use_local_data): Set active 2886b1e83836Smrg member to _M_local_buf. 2887b1e83836Smrg 2888b1e83836Smrg2022-11-08 Jonathan Wakely <jwakely@redhat.com> 2889b1e83836Smrg 2890b1e83836Smrg Backported from master: 2891b1e83836Smrg 2022-11-08 Jonathan Wakely <jwakely@redhat.com> 2892b1e83836Smrg 2893b1e83836Smrg * doc/xml/authors.xml: Remove empty author element. 2894b1e83836Smrg * doc/xml/manual/spine.xml: Likewise. 2895b1e83836Smrg * doc/html/manual/index.html: Regenerate. 2896b1e83836Smrg 2897b1e83836Smrg2022-10-19 Alexandre Oliva <oliva@adacore.com> 2898b1e83836Smrg 2899b1e83836Smrg Backported from master: 2900b1e83836Smrg 2022-06-22 Alexandre Oliva <oliva@adacore.com> 2901b1e83836Smrg 2902b1e83836Smrg * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS] 2903b1e83836Smrg (__eh_globals_init::~__eh_globals_init): Clear _S_init first. 2904b1e83836Smrg 2905b1e83836Smrg2022-09-29 Jonathan Wakely <jwakely@redhat.com> 2906b1e83836Smrg 2907b1e83836Smrg Backported from master: 2908b1e83836Smrg 2022-09-28 Jonathan Wakely <jwakely@redhat.com> 2909b1e83836Smrg 2910b1e83836Smrg * doc/xml/manual/evolution.xml: Document std::bind API 2911b1e83836Smrg changes. 2912b1e83836Smrg * doc/xml/manual/intro.xml: Document LWG 2487 status. 2913b1e83836Smrg * doc/xml/manual/using.xml: Clarify default value of 2914b1e83836Smrg _GLIBCXX_USE_DEPRECATED. 2915b1e83836Smrg * doc/html/*: Regenerate. 2916b1e83836Smrg * include/std/functional (_Bind::operator()(Args&&...) volatile) 2917b1e83836Smrg (_Bind::operator()(Args&&...) const volatile) 2918b1e83836Smrg (_Bind_result::operator()(Args&&...) volatile) 2919b1e83836Smrg (_Bind_result::operator()(Args&&...) const volatile): Replace 2920b1e83836Smrg with deleted overload for C++20 and later. 2921b1e83836Smrg * testsuite/20_util/bind/cv_quals.cc: Check for deprecated 2922b1e83836Smrg warnings in C++17. 2923b1e83836Smrg * testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for 2924b1e83836Smrg ill-formed in C++20. 2925b1e83836Smrg 2926b1e83836Smrg2022-09-16 Jonathan Wakely <jwakely@redhat.com> 2927b1e83836Smrg 2928b1e83836Smrg * doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 version. 2929b1e83836Smrg * doc/html/manual/abi.html: Regenerate. 2930b1e83836Smrg 2931b1e83836Smrg2022-09-12 Patrick Palka <ppalka@redhat.com> 2932b1e83836Smrg 2933b1e83836Smrg Backported from master: 2934b1e83836Smrg 2022-09-12 Patrick Palka <ppalka@redhat.com> 2935b1e83836Smrg 2936b1e83836Smrg PR libstdc++/106320 2937b1e83836Smrg * testsuite/std/ranges/adaptors/join.cc (test13): New test. 2938b1e83836Smrg 2939b1e83836Smrg2022-09-07 Jonathan Wakely <jwakely@redhat.com> 2940b1e83836Smrg 2941b1e83836Smrg Backported from master: 2942b1e83836Smrg 2022-08-22 Jonathan Wakely <jwakely@redhat.com> 2943b1e83836Smrg 2944b1e83836Smrg PR libstdc++/106695 2945b1e83836Smrg * include/bits/std_thread.h (thread::_State_impl): Forward 2946b1e83836Smrg individual arguments to _Invoker constructor. 2947b1e83836Smrg (thread::_Invoker): Add constructor. Delete copies. 2948b1e83836Smrg * include/std/future (__future_base::_Deferred_state): Forward 2949b1e83836Smrg individual arguments to _Invoker constructor. 2950b1e83836Smrg (__future_base::_Async_state_impl): Likewise. 2951b1e83836Smrg * testsuite/30_threads/async/106695.cc: New test. 2952b1e83836Smrg * testsuite/30_threads/thread/106695.cc: New test. 2953b1e83836Smrg 2954b1e83836Smrg2022-09-07 Jonathan Wakely <jwakely@redhat.com> 2955b1e83836Smrg 2956b1e83836Smrg Backported from master: 2957b1e83836Smrg 2022-08-22 Jonathan Wakely <jwakely@redhat.com> 2958b1e83836Smrg 2959b1e83836Smrg PR libstdc++/106607 2960b1e83836Smrg * include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value): 2961b1e83836Smrg Use built-ins to check for integer overflow in back-reference 2962b1e83836Smrg number. 2963b1e83836Smrg * testsuite/28_regex/basic_regex/106607.cc: New test. 2964b1e83836Smrg 2965b1e83836Smrg2022-08-24 Jonathan Wakely <jwakely@redhat.com> 2966b1e83836Smrg 2967b1e83836Smrg Backported from master: 2968b1e83836Smrg 2022-08-23 Jonathan Wakely <jwakely@redhat.com> 2969b1e83836Smrg 2970b1e83836Smrg PR libstdc++/106589 2971b1e83836Smrg * include/std/variant (__do_visit): Handle is_void<R> for zero 2972b1e83836Smrg argument case. 2973b1e83836Smrg * testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v). 2974b1e83836Smrg 2975b1e83836Smrg2022-08-23 Jonathan Wakely <jwakely@redhat.com> 2976b1e83836Smrg 2977b1e83836Smrg Backported from master: 2978b1e83836Smrg 2022-08-22 Jonathan Wakely <jwakely@redhat.com> 2979b1e83836Smrg 2980b1e83836Smrg PR libstdc++/105678 2981b1e83836Smrg * doc/xml/manual/using.xml: Document -lstdc++_libbacktrace 2982b1e83836Smrg requirement for using std::stacktrace. Also adjust -frtti and 2983b1e83836Smrg -fexceptions to document non-default (i.e. negative) forms. 2984b1e83836Smrg * doc/html/*: Regenerate. 2985b1e83836Smrg 2986b1e83836Smrg2022-08-19 Release Manager 2987b1e83836Smrg 2988b1e83836Smrg * GCC 12.2.0 released. 2989b1e83836Smrg 2990b1e83836Smrg2022-08-05 Jonathan Wakely <jwakely@redhat.com> 2991b1e83836Smrg 2992b1e83836Smrg Backported from master: 2993b1e83836Smrg 2022-08-04 Jonathan Wakely <jwakely@redhat.com> 2994b1e83836Smrg 2995b1e83836Smrg * include/std/string_view (basic_string_view(Range&&)): Add 2996b1e83836Smrg explicit as per P2499R0. 2997b1e83836Smrg * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: 2998b1e83836Smrg Adjust implicit conversions. Check implicit conversions fail. 2999b1e83836Smrg * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: 3000b1e83836Smrg Likewise. 3001b1e83836Smrg 3002b1e83836Smrg2022-08-05 Jonathan Wakely <jwakely@redhat.com> 3003b1e83836Smrg 3004b1e83836Smrg Backported from master: 3005b1e83836Smrg 2022-08-04 Jonathan Wakely <jwakely@redhat.com> 3006b1e83836Smrg 3007b1e83836Smrg * include/std/expected (unexpected::_M_val): Rename to _M_unex. 3008b1e83836Smrg (bad_expected_access::_M_val): Likewise. 3009b1e83836Smrg 3010b1e83836Smrg2022-08-05 Jonathan Wakely <jwakely@redhat.com> 3011b1e83836Smrg 3012b1e83836Smrg Backported from master: 3013b1e83836Smrg 2022-08-04 Jonathan Wakely <jwakely@redhat.com> 3014b1e83836Smrg 3015b1e83836Smrg * include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update 3016b1e83836Smrg value to 202207L. 3017b1e83836Smrg * include/std/version (__cpp_lib_ios_noreplace): Likewise. 3018b1e83836Smrg * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check 3019b1e83836Smrg for new value. 3020b1e83836Smrg * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc: 3021b1e83836Smrg Likewise. 3022b1e83836Smrg 3023b1e83836Smrg2022-08-03 Jonathan Wakely <jwakely@redhat.com> 3024b1e83836Smrg 3025b1e83836Smrg Backported from master: 3026b1e83836Smrg 2022-06-28 Jonathan Wakely <jwakely@redhat.com> 3027b1e83836Smrg 3028b1e83836Smrg * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with 3029b1e83836Smrg current() returning _At_path. 3030b1e83836Smrg (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust. 3031b1e83836Smrg * src/filesystem/dir-common.h (_Dir_base::_At_path): New class. 3032b1e83836Smrg (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path. 3033b1e83836Smrg * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with 3034b1e83836Smrg current() returning _At_path. 3035b1e83836Smrg (_Dir::_Dir, _Dir::open_subdir): Adjust. 3036b1e83836Smrg 3037b1e83836Smrg2022-08-03 Jonathan Wakely <jwakely@redhat.com> 3038b1e83836Smrg 3039b1e83836Smrg Backported from master: 3040b1e83836Smrg 2022-07-29 Jonathan Wakely <jwakely@redhat.com> 3041b1e83836Smrg 3042b1e83836Smrg PR libstdc++/104443 3043b1e83836Smrg * include/bits/stl_iterator.h (common_iterator::operator->): 3044b1e83836Smrg Change return type to just auto. 3045b1e83836Smrg 3046b1e83836Smrg2022-08-03 Jonathan Wakely <jwakely@redhat.com> 3047b1e83836Smrg 3048b1e83836Smrg Backported from master: 3049b1e83836Smrg 2022-07-12 Jonathan Wakely <jwakely@redhat.com> 3050b1e83836Smrg 3051b1e83836Smrg PR libstdc++/106248 3052b1e83836Smrg * include/std/istream [C++17] (operator>>(istream&, char*)): 3053b1e83836Smrg Set eofbit if we stopped extracting at EOF. 3054b1e83836Smrg * testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc: 3055b1e83836Smrg New test. 3056b1e83836Smrg * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc: 3057b1e83836Smrg New test. 3058b1e83836Smrg 3059b1e83836Smrg2022-08-03 Jonathan Wakely <jwakely@redhat.com> 3060b1e83836Smrg 3061b1e83836Smrg Backported from master: 3062b1e83836Smrg 2022-07-01 Jonathan Wakely <jwakely@redhat.com> 3063b1e83836Smrg 3064b1e83836Smrg * include/bits/fs_ops.h: Add nodiscard to all pure functions. 3065b1e83836Smrg * include/experimental/bits/fs_ops.h: Likewise. 3066b1e83836Smrg * testsuite/27_io/filesystem/operations/all.cc: Do not discard 3067b1e83836Smrg results of absolute and canonical. 3068b1e83836Smrg * testsuite/27_io/filesystem/operations/absolute.cc: Cast 3069b1e83836Smrg discarded result to void. 3070b1e83836Smrg * testsuite/27_io/filesystem/operations/canonical.cc: Likewise. 3071b1e83836Smrg * testsuite/27_io/filesystem/operations/exists.cc: Likewise. 3072b1e83836Smrg * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise. 3073b1e83836Smrg * testsuite/27_io/filesystem/operations/read_symlink.cc: 3074b1e83836Smrg Likewise. 3075b1e83836Smrg * testsuite/27_io/filesystem/operations/status.cc: Likewise. 3076b1e83836Smrg * testsuite/27_io/filesystem/operations/symlink_status.cc: 3077b1e83836Smrg Likewise. 3078b1e83836Smrg * testsuite/27_io/filesystem/operations/temp_directory_path.cc: 3079b1e83836Smrg Likewise. 3080b1e83836Smrg * testsuite/experimental/filesystem/operations/canonical.cc: 3081b1e83836Smrg Likewise. 3082b1e83836Smrg * testsuite/experimental/filesystem/operations/exists.cc: 3083b1e83836Smrg Likewise. 3084b1e83836Smrg * testsuite/experimental/filesystem/operations/is_empty.cc: 3085b1e83836Smrg Likewise. 3086b1e83836Smrg * testsuite/experimental/filesystem/operations/read_symlink.cc: 3087b1e83836Smrg Likewise. 3088b1e83836Smrg * testsuite/experimental/filesystem/operations/temp_directory_path.cc: 3089b1e83836Smrg Likewise. 3090b1e83836Smrg 3091b1e83836Smrg2022-08-03 Jonathan Wakely <jwakely@redhat.com> 3092b1e83836Smrg 3093b1e83836Smrg Backported from master: 3094b1e83836Smrg 2022-06-16 Jonathan Wakely <jwakely@redhat.com> 3095b1e83836Smrg 3096b1e83836Smrg PR libstdc++/105995 3097b1e83836Smrg * include/bits/basic_string.h (_M_use_local_data): Initialize 3098b1e83836Smrg the entire SSO buffer. 3099b1e83836Smrg * testsuite/21_strings/basic_string/cons/char/105995.cc: New test. 3100b1e83836Smrg 3101b1e83836Smrg2022-08-03 Jonathan Wakely <jwakely@redhat.com> 3102b1e83836Smrg 3103b1e83836Smrg Backported from master: 3104b1e83836Smrg 2022-06-14 Jonathan Wakely <jwakely@redhat.com> 3105b1e83836Smrg 3106b1e83836Smrg * include/bits/new_allocator.h: Fix indentation. 3107b1e83836Smrg * include/ext/malloc_allocator.h: Likewise. 3108b1e83836Smrg 3109b1e83836Smrg2022-08-03 Jonathan Wakely <jwakely@redhat.com> 3110b1e83836Smrg 3111b1e83836Smrg Backported from master: 3112b1e83836Smrg 2022-06-14 Jonathan Wakely <jwakely@redhat.com> 3113b1e83836Smrg 3114b1e83836Smrg PR libstdc++/105957 3115b1e83836Smrg * include/bits/allocator.h (allocator::allocate): Check for 3116b1e83836Smrg overflow in constexpr allocation. 3117b1e83836Smrg * testsuite/20_util/allocator/105975.cc: New test. 3118b1e83836Smrg 3119b1e83836Smrg2022-08-03 Jonathan Wakely <jwakely@redhat.com> 3120b1e83836Smrg 3121b1e83836Smrg Backported from master: 3122b1e83836Smrg 2022-06-10 Jonathan Wakely <jwakely@redhat.com> 3123b1e83836Smrg 3124b1e83836Smrg PR libstdc++/105844 3125b1e83836Smrg * include/experimental/numeric (experimental::gcd): Simplify 3126b1e83836Smrg assertions. Use __abs_r instead of __absu. 3127b1e83836Smrg (experimental::lcm): Likewise. Remove use of __detail::__lcm so 3128b1e83836Smrg overflow can be detected. 3129b1e83836Smrg * include/std/numeric (__detail::__absu): Rename to __abs_r and 3130b1e83836Smrg change to allow signed result type, so overflow can be detected. 3131b1e83836Smrg (__detail::__lcm): Remove. 3132b1e83836Smrg (gcd): Simplify assertions. Use __abs_r instead of __absu. 3133b1e83836Smrg (lcm): Likewise. Remove use of __detail::__lcm so overflow can 3134b1e83836Smrg be detected. 3135b1e83836Smrg * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines. 3136b1e83836Smrg * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise. 3137b1e83836Smrg * testsuite/26_numerics/gcd/105844.cc: New test. 3138b1e83836Smrg * testsuite/26_numerics/lcm/105844.cc: New test. 3139b1e83836Smrg 3140b1e83836Smrg2022-07-26 Thomas Rodgers <trodgers@redhat.com> 3141b1e83836Smrg 3142b1e83836Smrg Backported from master: 3143b1e83836Smrg 2022-07-26 Thomas Rodgers <trodgers@redhat.com> 3144b1e83836Smrg 3145b1e83836Smrg * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops. 3146b1e83836Smrg 3147b1e83836Smrg2022-07-22 Jonathan Wakely <jwakely@redhat.com> 3148b1e83836Smrg 3149b1e83836Smrg Backported from master: 3150b1e83836Smrg 2022-06-28 Jonathan Wakely <jwakely@redhat.com> 3151b1e83836Smrg 3152b1e83836Smrg * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]: 3153b1e83836Smrg Always store pathname if we don't have openat or unlinkat, 3154b1e83836Smrg because the full path is needed to open sub-directories and 3155b1e83836Smrg remove entries. 3156b1e83836Smrg 3157b1e83836Smrg2022-07-22 Alexandre Oliva <oliva@adacore.com> 3158b1e83836Smrg 3159b1e83836Smrg Backported from master: 3160b1e83836Smrg 2022-06-27 Alexandre Oliva <oliva@adacore.com> 3161b1e83836Smrg 3162b1e83836Smrg * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if 3163b1e83836Smrg _GLIBCXX_HAVE_OPENAT. 3164b1e83836Smrg 3165b1e83836Smrg2022-07-22 Alexandre Oliva <oliva@adacore.com> 3166b1e83836Smrg 3167b1e83836Smrg Backported from master: 3168b1e83836Smrg 2022-06-24 Alexandre Oliva <oliva@adacore.com> 3169b1e83836Smrg 3170b1e83836Smrg * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for 3171b1e83836Smrg openat. 3172b1e83836Smrg * configure, config.h.in: Rebuilt. 3173b1e83836Smrg * src/filesystem/dir-common.h (openat): Use ::openat if 3174b1e83836Smrg _GLIBCXX_HAVE_OPENAT. 3175b1e83836Smrg * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if 3176b1e83836Smrg _GLIBCXX_HAVE_OPENAT. 3177b1e83836Smrg 3178b1e83836Smrg2022-07-22 Jonathan Wakely <jwakely@redhat.com> 3179b1e83836Smrg 3180b1e83836Smrg Backported from master: 3181b1e83836Smrg 2022-05-06 Jonathan Wakely <jwakely@redhat.com> 3182b1e83836Smrg 3183b1e83836Smrg * include/std/stacktrace: Do not include <cxxabi.h>. 3184b1e83836Smrg (__cxa_demangle): Declare. 3185b1e83836Smrg 3186b1e83836Smrg2022-07-21 Jonathan Wakely <jwakely@redhat.com> 31877d4dc15bSmrg 31887d4dc15bSmrg Backported from master: 31897d4dc15bSmrg 2022-07-20 Jonathan Wakely <jwakely@redhat.com> 31907d4dc15bSmrg 31917d4dc15bSmrg PR libstdc++/100823 31927d4dc15bSmrg * include/bits/stl_iterator.h (common_iterator): Define move 31937d4dc15bSmrg constructor and move assignment operator. 31947d4dc15bSmrg (common_iterator::_M_assign): New function implementing 31957d4dc15bSmrg assignment. 31967d4dc15bSmrg (common_iterator::operator=): Use _M_assign. 31977d4dc15bSmrg (common_iterator::_S_valueless): New constant. 31987d4dc15bSmrg * testsuite/24_iterators/common_iterator/100823.cc: New test. 31997d4dc15bSmrg 3200b1e83836Smrg2022-07-21 Jonathan Wakely <jwakely@redhat.com> 32017d4dc15bSmrg 32027d4dc15bSmrg Backported from master: 32037d4dc15bSmrg 2022-07-20 Jonathan Wakely <jwakely@redhat.com> 32047d4dc15bSmrg 32057d4dc15bSmrg * include/bits/stl_iterator.h (common_iterator): Fix incorrect 32067d4dc15bSmrg uses of is_nothrow_assignable_v. Fix inconsistent constraints on 32077d4dc15bSmrg friend declaration. Do not move argument in copy constructor. 32087d4dc15bSmrg * testsuite/24_iterators/common_iterator/1.cc: Check for 32097d4dc15bSmrg noexcept constructibnle/assignable. 32107d4dc15bSmrg 3211b1e83836Smrg2022-07-21 Nathan Sidwell <nathan@acm.org> 32127d4dc15bSmrg 32137d4dc15bSmrg Backported from master: 3214b1e83836Smrg 2022-05-26 Nathan Sidwell <nathan@acm.org> 32157d4dc15bSmrg 3216b1e83836Smrg * include/bits/hashtable.h: Include required headers. 3217b1e83836Smrg * include/bits/hashtable_policy.h: Likewise. 3218b1e83836Smrg * include/bits/stl_heap.h: Likewise. 3219b1e83836Smrg * include/bits/stl_iterator_base_funcs.h: Likewise. 32207d4dc15bSmrg 3221b1e83836Smrg2022-07-21 Jonathan Wakely <jwakely@redhat.com> 32227d4dc15bSmrg 32237d4dc15bSmrg Backported from master: 3224b1e83836Smrg 2022-06-30 Jonathan Wakely <jwakely@redhat.com> 32257d4dc15bSmrg 3226b1e83836Smrg * include/bits/utility.h: Fix comment typos. 32277d4dc15bSmrg 3228b1e83836Smrg2022-07-21 Jonathan Wakely <jwakely@redhat.com> 32297d4dc15bSmrg 32307d4dc15bSmrg Backported from master: 3231b1e83836Smrg 2022-06-28 Jonathan Wakely <jwakely@redhat.com> 32327d4dc15bSmrg 3233b1e83836Smrg * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math 3234b1e83836Smrg functions are available. 32357d4dc15bSmrg 3236b1e83836Smrg2022-07-21 Jonathan Wakely <jwakely@redhat.com> 32377d4dc15bSmrg 32387d4dc15bSmrg Backported from master: 3239b1e83836Smrg 2022-06-23 Jonathan Wakely <jwakely@redhat.com> 32407d4dc15bSmrg 3241b1e83836Smrg * testsuite/26_numerics/random/random_device/entropy.cc: Use 3242b1e83836Smrg numeric_limits<unsigned>::digits. 32437d4dc15bSmrg 3244b1e83836Smrg2022-07-21 Marco Falke <falke.marco@gmail.com> 32457d4dc15bSmrg 32467d4dc15bSmrg Backported from master: 3247b1e83836Smrg 2022-07-19 Marco Falke <falke.marco@gmail.com> 32487d4dc15bSmrg 3249b1e83836Smrg * include/std/charconv (__from_chars_alnum_to_val): Replace 3250b1e83836Smrg implicit conversion from int to unsigned char with explicit 3251b1e83836Smrg cast. 32527d4dc15bSmrg 3253b1e83836Smrg2022-07-21 Jonathan Wakely <jwakely@redhat.com> 32547d4dc15bSmrg 32557d4dc15bSmrg Backported from master: 3256b1e83836Smrg 2022-06-30 Jonathan Wakely <jwakely@redhat.com> 32577d4dc15bSmrg 3258b1e83836Smrg PR libstdc++/88881 3259b1e83836Smrg * src/filesystem/ops.cc (has_trailing_slash): New helper 3260b1e83836Smrg function. 3261b1e83836Smrg (fs::status): Strip trailing slashes. 3262b1e83836Smrg (fs::symlink_status): Likewise. 3263b1e83836Smrg * testsuite/experimental/filesystem/operations/temp_directory_path.cc: 3264b1e83836Smrg Clean the environment before each test and use TMP instead of 3265b1e83836Smrg TMPDIR so the test passes on Windows. 32667d4dc15bSmrg 3267b1e83836Smrg2022-07-21 Jonathan Wakely <jwakely@redhat.com> 32687d4dc15bSmrg 32697d4dc15bSmrg Backported from master: 3270b1e83836Smrg 2022-06-10 Jonathan Wakely <jwakely@redhat.com> 32717d4dc15bSmrg 3272b1e83836Smrg PR libstdc++/105880 3273b1e83836Smrg * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and 3274b1e83836Smrg prevent destruction during termination. 3275b1e83836Smrg (__eh_globals_init::_M_init): Replace with static member _S_init. 3276b1e83836Smrg (__cxxabiv1::__cxa_get_globals_fast): Update. 3277b1e83836Smrg (__cxxabiv1::__cxa_get_globals): Likewise. 32787d4dc15bSmrg 3279b1e83836Smrg2022-07-07 Jonathan Wakely <jwakely@redhat.com> 32807d4dc15bSmrg 32817d4dc15bSmrg Backported from master: 32827d4dc15bSmrg 2022-07-01 Jonathan Wakely <jwakely@redhat.com> 32837d4dc15bSmrg 32847d4dc15bSmrg PR libstdc++/106162 32857d4dc15bSmrg * include/Makefile.am (largefile-config.h): Add 32867d4dc15bSmrg stamp-${host_alias} prerequisite. 32877d4dc15bSmrg * include/Makefile.in: Regenerate. 32887d4dc15bSmrg 3289b1e83836Smrg2022-07-07 Jonathan Wakely <jwakely@redhat.com> 32907d4dc15bSmrg 32917d4dc15bSmrg Backported from master: 3292b1e83836Smrg 2022-06-23 Jonathan Wakely <jwakely@redhat.com> 32937d4dc15bSmrg 3294b1e83836Smrg * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use 3295b1e83836Smrg rmdir to remove directories. 3296b1e83836Smrg * testsuite/experimental/filesystem/iterators/error_reporting.cc: 3297b1e83836Smrg Likewise. 32987d4dc15bSmrg 3299b1e83836Smrg2022-06-14 Jonathan Wakely <jwakely@redhat.com> 3300a448f87cSmrg 3301a448f87cSmrg Backported from master: 3302a448f87cSmrg 2022-06-13 Jonathan Wakely <jwakely@redhat.com> 3303a448f87cSmrg 3304a448f87cSmrg * include/std/atomic (__atomic_val_t): Use __type_identity_t 3305a448f87cSmrg instead of atomic<T>::value_type, as per LWG 3220. 3306a448f87cSmrg * testsuite/29_atomics/atomic/lwg3220.cc: New test. 3307a448f87cSmrg 3308b1e83836Smrg2022-06-14 Mark Mentovai <mark@mentovai.com> 3309a448f87cSmrg 3310a448f87cSmrg Backported from master: 3311a448f87cSmrg 2022-06-13 Mark Mentovai <mark@mentovai.com> 3312a448f87cSmrg 3313a448f87cSmrg * include/experimental/bits/fs_path.h (__detail::__null_terminated): 3314a448f87cSmrg Rename to __nul_terminated to avoid colliding with a macro in 3315a448f87cSmrg Apple's SDK. 3316a448f87cSmrg 3317b1e83836Smrg2022-06-08 Jonathan Wakely <jwakely@redhat.com> 3318a448f87cSmrg 3319a448f87cSmrg Backported from master: 3320b1e83836Smrg 2022-05-27 Jonathan Wakely <jwakely@redhat.com> 3321a448f87cSmrg 3322b1e83836Smrg PR libstdc++/105671 3323b1e83836Smrg * include/std/sstream (basic_stringbuf::_M_high_mark): Add 3324b1e83836Smrg always_inline attribute. 3325a448f87cSmrg 3326b1e83836Smrg2022-06-08 Jonathan Wakely <jwakely@redhat.com> 3327a448f87cSmrg 3328a448f87cSmrg Backported from master: 3329b1e83836Smrg 2022-05-26 Jonathan Wakely <jwakely@redhat.com> 3330a448f87cSmrg 3331b1e83836Smrg PR libstdc++/105681 3332b1e83836Smrg * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp: 3333b1e83836Smrg Limit ga_sizes array to values that fit in size_t. 3334b1e83836Smrg * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243) 3335b1e83836Smrg (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091) 3336b1e83836Smrg (sfmt216091_64): Do not declare. 3337b1e83836Smrg 3338b1e83836Smrg2022-06-08 Jonathan Wakely <jwakely@redhat.com> 3339b1e83836Smrg 3340b1e83836Smrg Backported from master: 3341b1e83836Smrg 2022-05-19 Jonathan Wakely <jwakely@redhat.com> 3342b1e83836Smrg 3343b1e83836Smrg * include/bits/basic_string.h: Do not include <ext/atomicity.h> 3344b1e83836Smrg here. 3345b1e83836Smrg * include/bits/cow_string.h: Include it here. 3346b1e83836Smrg 3347b1e83836Smrg2022-05-27 Jonathan Wakely <jwakely@redhat.com> 3348b1e83836Smrg 3349b1e83836Smrg Backported from master: 3350b1e83836Smrg 2022-05-26 Jonathan Wakely <jwakely@redhat.com> 3351b1e83836Smrg 3352b1e83836Smrg * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make 3353b1e83836Smrg lookup for ios_errc and future_errc check versioned namespace. 3354b1e83836Smrg (StdAtomicPrinter): Strip versioned namespace from typename. 3355b1e83836Smrg 3356b1e83836Smrg2022-05-27 François Dumont <fdumont@gcc.gnu.org> 3357b1e83836Smrg 3358b1e83836Smrg Backported from master: 3359b1e83836Smrg 2022-05-26 François Dumont <fdumont@gcc.gnu.org> 3360b1e83836Smrg 3361b1e83836Smrg * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__): 3362b1e83836Smrg Strip typename from version namespace. 3363b1e83836Smrg 3364b1e83836Smrg2022-05-27 Jonathan Wakely <jwakely@redhat.com> 3365b1e83836Smrg 3366b1e83836Smrg Backported from master: 3367b1e83836Smrg 2022-05-26 Jonathan Wakely <jwakely@redhat.com> 3368b1e83836Smrg 3369b1e83836Smrg * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip 3370b1e83836Smrg versioned namespace from the template argument too. 3371b1e83836Smrg 3372b1e83836Smrg2022-05-27 Jonathan Wakely <jwakely@redhat.com> 3373b1e83836Smrg 3374b1e83836Smrg Backported from master: 3375b1e83836Smrg 2022-05-26 Jonathan Wakely <jwakely@redhat.com> 3376b1e83836Smrg 3377b1e83836Smrg * include/bits/stl_iterator.h (counted_iterator::operator++(int)): 3378b1e83836Smrg Add 'constexpr' as per LWG 3643. 3379b1e83836Smrg * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test. 3380b1e83836Smrg 3381b1e83836Smrg2022-05-27 Jonathan Wakely <jwakely@redhat.com> 3382b1e83836Smrg 3383b1e83836Smrg Backported from master: 3384b1e83836Smrg 2022-05-19 Jonathan Wakely <jwakely@redhat.com> 3385b1e83836Smrg 3386b1e83836Smrg * include/std/memory_resource (polymorphic_allocator): Add 3387b1e83836Smrg non-template equality operator, as proposed for LWG 3683. 3388b1e83836Smrg * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test. 3389b1e83836Smrg 3390b1e83836Smrg2022-05-27 Jonathan Wakely <jwakely@redhat.com> 3391b1e83836Smrg 3392b1e83836Smrg Backported from master: 3393b1e83836Smrg 2022-05-20 Jonathan Wakely <jwakely@redhat.com> 3394b1e83836Smrg 3395b1e83836Smrg * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc: 3396b1e83836Smrg Run fewer iterations for simulator targets. 3397b1e83836Smrg * testsuite/26_numerics/random/binomial_distribution/operators/values.cc: 3398b1e83836Smrg Likewise. 3399b1e83836Smrg * testsuite/26_numerics/random/discrete_distribution/operators/values.cc: 3400b1e83836Smrg Likewise. 3401b1e83836Smrg * testsuite/26_numerics/random/geometric_distribution/operators/values.cc: 3402b1e83836Smrg Likewise. 3403b1e83836Smrg * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc: 3404b1e83836Smrg Likewise. 3405b1e83836Smrg * testsuite/26_numerics/random/poisson_distribution/operators/values.cc: 3406b1e83836Smrg Likewise. 3407b1e83836Smrg * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc: 3408a448f87cSmrg Likewise. 3409a448f87cSmrg 3410b1e83836Smrg2022-05-27 Jonathan Wakely <jwakely@redhat.com> 3411a448f87cSmrg 3412a448f87cSmrg Backported from master: 3413b1e83836Smrg 2022-05-17 Jonathan Wakely <jwakely@redhat.com> 3414a448f87cSmrg 3415b1e83836Smrg * testsuite/20_util/expected/synopsis.cc: Skip for versioned 3416b1e83836Smrg namespace. 3417b1e83836Smrg * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise. 3418a448f87cSmrg 3419b1e83836Smrg2022-05-27 Jonathan Wakely <jwakely@redhat.com> 3420a448f87cSmrg 3421a448f87cSmrg Backported from master: 3422b1e83836Smrg 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 3423a448f87cSmrg 3424b1e83836Smrg * include/bits/mofunc_impl.h: Fix doxygen command. 3425a448f87cSmrg 3426b1e83836Smrg2022-05-27 Jonathan Wakely <jwakely@redhat.com> 3427a448f87cSmrg 3428a448f87cSmrg Backported from master: 3429b1e83836Smrg 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 3430a448f87cSmrg 3431b1e83836Smrg * include/std/future (launch): Make operators noexcept. 3432a448f87cSmrg 3433a448f87cSmrg2022-05-16 Jonathan Wakely <jwakely@redhat.com> 3434a448f87cSmrg 3435a448f87cSmrg Backported from master: 3436a448f87cSmrg 2022-05-16 Jonathan Wakely <jwakely@redhat.com> 3437a448f87cSmrg 3438a448f87cSmrg * doc/xml/manual/prerequisites.xml: Fix attributes for external 3439a448f87cSmrg hyperlink. 3440a448f87cSmrg * doc/html/manual/setup.html: Regenerate. 3441a448f87cSmrg 3442a448f87cSmrg2022-05-16 Jonathan Wakely <jwakely@redhat.com> 3443a448f87cSmrg 3444a448f87cSmrg Backported from master: 3445a448f87cSmrg 2022-05-16 Jonathan Wakely <jwakely@redhat.com> 3446a448f87cSmrg 3447b1e83836Smrg * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support. 3448b1e83836Smrg * doc/html/*: Regenerate. 3449b1e83836Smrg 3450b1e83836Smrg2022-05-16 Jonathan Wakely <jwakely@redhat.com> 3451b1e83836Smrg 3452b1e83836Smrg Backported from master: 3453b1e83836Smrg 2022-05-16 Jonathan Wakely <jwakely@redhat.com> 3454b1e83836Smrg 3455b1e83836Smrg * doc/xml/manual/intro.xml: Include new chapter. 3456b1e83836Smrg * doc/xml/manual/status_cxx2020.xml: Tweak release numbers. 3457b1e83836Smrg * doc/xml/manual/status_cxx2023.xml: New file. 3458b1e83836Smrg * doc/html/*: Regenerate. 3459b1e83836Smrg 3460b1e83836Smrg2022-05-16 Jonathan Wakely <jwakely@redhat.com> 3461b1e83836Smrg 3462b1e83836Smrg Backported from master: 3463b1e83836Smrg 2022-05-16 Jonathan Wakely <jwakely@redhat.com> 3464b1e83836Smrg 3465a448f87cSmrg * doc/html/manual/status.html: Regenerate. 3466a448f87cSmrg * doc/xml/manual/status_cxx2020.xml: Fix supported version for 3467a448f87cSmrg C++20 bit operations. 3468a448f87cSmrg 3469b1e83836Smrg2022-05-13 Alexandre Oliva <oliva@adacore.com> 3470b1e83836Smrg 3471b1e83836Smrg Backported from master: 3472b1e83836Smrg 2022-05-06 Alexandre Oliva <oliva@adacore.com> 3473b1e83836Smrg 3474b1e83836Smrg * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX 3475b1e83836Smrg for double, long long, and 64-bit long intrinsic types. 3476b1e83836Smrg [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in 3477b1e83836Smrg preexisting long double diagnostic, adjust no-VSX double 3478b1e83836Smrg diagnostic to cover 64-bit long double as well. 3479b1e83836Smrg 3480b1e83836Smrg2022-05-10 Jonathan Wakely <jwakely@redhat.com> 3481b1e83836Smrg 3482b1e83836Smrg Backported from master: 3483b1e83836Smrg 2022-05-10 Jonathan Wakely <jwakely@redhat.com> 3484b1e83836Smrg 3485b1e83836Smrg PR libstdc++/105284 3486b1e83836Smrg * include/std/iosfwd: Add declarations for <spanstream> class 3487b1e83836Smrg templates and typedefs. 3488b1e83836Smrg * include/std/spanstream (basic_spanbuf, basic_ispanstream) 3489b1e83836Smrg (basic_ospanstream, basic_spanstream): Remove default template 3490b1e83836Smrg arguments. 3491b1e83836Smrg * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream> 3492b1e83836Smrg declarations. 3493b1e83836Smrg * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream> 3494b1e83836Smrg default arguments. 3495b1e83836Smrg 3496b1e83836Smrg2022-05-10 Jonathan Wakely <jwakely@redhat.com> 3497b1e83836Smrg 3498b1e83836Smrg Backported from master: 3499b1e83836Smrg 2022-05-10 Jonathan Wakely <jwakely@redhat.com> 3500b1e83836Smrg 3501b1e83836Smrg PR libstdc++/105284 3502b1e83836Smrg * include/std/iosfwd: Add declarations for <synstream> class 3503b1e83836Smrg templates and typedefs. 3504b1e83836Smrg * include/std/syncstream (basic_syncbuf, basic_osyncstream): 3505b1e83836Smrg Remove default template arguments. 3506b1e83836Smrg * testsuite/27_io/headers/iosfwd/synopsis.cc: New test. 3507b1e83836Smrg * testsuite/27_io/headers/iosfwd/types.cc: New test. 3508b1e83836Smrg 3509a448f87cSmrg2022-05-09 Jonathan Wakely <jwakely@redhat.com> 3510a448f87cSmrg 3511a448f87cSmrg Backported from master: 3512b1e83836Smrg 2022-05-06 Jonathan Wakely <jwakely@redhat.com> 3513a448f87cSmrg 3514b1e83836Smrg PR libstdc++/104731 3515b1e83836Smrg * testsuite/27_io/filesystem/iterators/error_reporting.cc: 3516b1e83836Smrg Use a trailing char array as storage for dirent::d_name. 3517a448f87cSmrg 3518b1e83836Smrg2022-05-06 Jonathan Wakely <jwakely@redhat.com> 3519a448f87cSmrg 3520a448f87cSmrg Backported from master: 3521a448f87cSmrg 2022-05-06 Jonathan Wakely <jwakely@redhat.com> 3522a448f87cSmrg 3523a448f87cSmrg PR libstdc++/105502 3524a448f87cSmrg * include/bits/random.tcc 3525a448f87cSmrg (operator>>(basic_istream<C,T>&, normal_distribution<R>&)): 3526a448f87cSmrg Update state when __state_avail is false. 3527a448f87cSmrg * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc: 3528a448f87cSmrg Check that deserialized object equals serialized one. 3529a448f87cSmrg 3530b1e83836Smrg2022-05-06 Patrick Palka <ppalka@redhat.com> 3531a448f87cSmrg 3532a448f87cSmrg Backported from master: 3533b1e83836Smrg 2022-05-02 Patrick Palka <ppalka@redhat.com> 3534a448f87cSmrg 3535b1e83836Smrg PR libstdc++/103911 3536b1e83836Smrg * src/c++17/floating_from_chars.cc (find_end_of_float): Accept 3537b1e83836Smrg two delimeters for the exponent part in the form of a possibly 3538b1e83836Smrg NULL string of length two. Don't use std::tolower. 3539b1e83836Smrg (pattern): Adjust calls to find_end_of_float accordingly. 3540a448f87cSmrg 3541b1e83836Smrg2022-05-06 Alexandre Oliva <oliva@adacore.com> 3542a448f87cSmrg 3543a448f87cSmrg Backported from master: 3544b1e83836Smrg 2022-05-03 Alexandre Oliva <oliva@adacore.com> 3545a448f87cSmrg 3546b1e83836Smrg PR c++/105324 3547b1e83836Smrg * testsuite/20_util/from_chars/pr105324.cc: Guard test body 3548b1e83836Smrg with conditional for floating-point overloads of from_char. 3549b1e83836Smrg 3550b1e83836Smrg2022-05-06 Release Manager 3551b1e83836Smrg 3552b1e83836Smrg * GCC 12.1.0 released. 3553b1e83836Smrg 3554b1e83836Smrg2022-05-02 Patrick Palka <ppalka@redhat.com> 3555b1e83836Smrg 3556b1e83836Smrg Backported from master: 3557b1e83836Smrg 2022-05-02 Patrick Palka <ppalka@redhat.com> 3558b1e83836Smrg 3559b1e83836Smrg PR libstdc++/105441 3560b1e83836Smrg * src/c++17/floating_from_chars.cc (__floating_from_chars_hex): 3561b1e83836Smrg Also accept 'P' as the start of the exponent. 3562b1e83836Smrg * testsuite/20_util/from_chars/7.cc: Add corresponding testcase. 3563b1e83836Smrg 3564b1e83836Smrg2022-04-29 Jonathan Wakely <jwakely@redhat.com> 3565b1e83836Smrg 3566b1e83836Smrg Backported from master: 3567b1e83836Smrg 2022-04-29 Jonathan Wakely <jwakely@redhat.com> 3568b1e83836Smrg 3569b1e83836Smrg PR libstdc++/105417 3570b1e83836Smrg * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: 3571b1e83836Smrg Regenerate. 3572b1e83836Smrg * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]: 3573b1e83836Smrg Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I> 3574b1e83836Smrg symbols as aliases for corresponding symbols without abi-tag. 3575b1e83836Smrg 3576b1e83836Smrg2022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 3577b1e83836Smrg 3578b1e83836Smrg * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate. 3579b1e83836Smrg * config/abi/post/i386-solaris/amd64/baseline_symbols.txt: 3580b1e83836Smrg Likewise. 3581b1e83836Smrg * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise. 3582b1e83836Smrg * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt: 3583b1e83836Smrg Likewise. 3584b1e83836Smrg 3585b1e83836Smrg2022-04-28 Jonathan Wakely <jwakely@redhat.com> 3586b1e83836Smrg 3587b1e83836Smrg * doc/xml/manual/status_cxx1998.xml: Refer to GCC 12 not 3588b1e83836Smrg mainline. 3589b1e83836Smrg * doc/xml/manual/status_cxx2011.xml: Likewise. 3590b1e83836Smrg * doc/xml/manual/status_cxx2014.xml: Likewise. 3591b1e83836Smrg * doc/xml/manual/status_cxx2017.xml: Likewise. 3592b1e83836Smrg * doc/xml/manual/status_cxx2020.xml: Likewise. 3593b1e83836Smrg * doc/xml/manual/status_cxxtr1.xml: Likewise. 3594b1e83836Smrg * doc/xml/manual/status_cxxtr24733.xml: Likewise. 3595b1e83836Smrg * doc/html/manual/status.html: Regenerate. 3596b1e83836Smrg 3597b1e83836Smrg2022-04-28 Jonathan Wakely <jwakely@redhat.com> 3598b1e83836Smrg 3599b1e83836Smrg PR libstdc++/99290 3600b1e83836Smrg * src/c++17/fs_ops.cc (fs::copy): Pass error_code to 3601b1e83836Smrg directory_iterator constructor, and check on each iteration. 3602b1e83836Smrg * src/filesystem/ops.cc (fs::copy): Likewise. 3603b1e83836Smrg * testsuite/27_io/filesystem/operations/copy.cc: Check for 3604b1e83836Smrg errors during recursion. 3605b1e83836Smrg * testsuite/experimental/filesystem/operations/copy.cc: 3606b1e83836Smrg Likewise. 3607b1e83836Smrg 3608b1e83836Smrg2022-04-28 François Dumont <fdumont@gcc.gnu.org> 3609b1e83836Smrg 3610b1e83836Smrg * config/abi/pre/gnu-versioned-namespace.ver: Remove 3611b1e83836Smrg std::random_device::* pattern. 3612b1e83836Smrg 3613b1e83836Smrg2022-04-27 Jakub Jelinek <jakub@redhat.com> 3614b1e83836Smrg 3615b1e83836Smrg * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. 3616b1e83836Smrg * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. 3617b1e83836Smrg * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. 3618b1e83836Smrg * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. 3619b1e83836Smrg * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. 3620b1e83836Smrg * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update. 3621b1e83836Smrg * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. 3622b1e83836Smrg * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update. 3623b1e83836Smrg 3624b1e83836Smrg2022-04-27 Jonathan Wakely <jwakely@redhat.com> 3625b1e83836Smrg 3626b1e83836Smrg * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add 3627b1e83836Smrg support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>. 3628b1e83836Smrg (StdAtomicPrinter): New printer. 3629b1e83836Smrg (build_libstdcxx_dictionary): Register new printer. 3630b1e83836Smrg * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic. 3631b1e83836Smrg * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart 3632b1e83836Smrg pointers. 3633a448f87cSmrg 3634a448f87cSmrg2022-04-26 Jonathan Wakely <jwakely@redhat.com> 3635a448f87cSmrg 3636b1e83836Smrg * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add 3637b1e83836Smrg constructor for constant initialization from nullptr_t. 3638b1e83836Smrg * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: 3639b1e83836Smrg Check for new constructor. 3640a448f87cSmrg 3641a448f87cSmrg2022-04-26 Jonathan Wakely <jwakely@redhat.com> 3642a448f87cSmrg 3643b1e83836Smrg * include/bits/fs_path.h (hash<filesystem::path>): Define. 3644b1e83836Smrg * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: 3645b1e83836Smrg Check std::hash specialization. 3646a448f87cSmrg 3647b1e83836Smrg2022-04-25 Jonathan Wakely <jwakely@redhat.com> 3648a448f87cSmrg 3649b1e83836Smrg * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define 3650b1e83836Smrg conditionally. 3651b1e83836Smrg * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory): 3652b1e83836Smrg Define for C++23. 3653b1e83836Smrg (default_delete, default_delete<T[]>, __uniq_ptr_impl) 3654b1e83836Smrg (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member 3655b1e83836Smrg functions. 3656b1e83836Smrg * include/std/version (__cpp_lib_constexpr_memory): Define new 3657b1e83836Smrg value for C++23. 3658b1e83836Smrg * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test. 3659b1e83836Smrg * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test. 3660b1e83836Smrg * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test. 3661b1e83836Smrg * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test. 3662b1e83836Smrg * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test. 3663b1e83836Smrg * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc: 3664b1e83836Smrg New test. 3665a448f87cSmrg 3666b1e83836Smrg2022-04-25 Jonathan Wakely <jwakely@redhat.com> 3667b1e83836Smrg 3668b1e83836Smrg PR libstdc++/105375 3669b1e83836Smrg * include/std/future (packaged_task): Add deduction guides. 3670b1e83836Smrg * testsuite/30_threads/packaged_task/cons/deduction.cc: New test. 3671b1e83836Smrg 3672b1e83836Smrg2022-04-25 Philipp Fent <fent@in.tum.de> 3673b1e83836Smrg 3674b1e83836Smrg * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator): 3675b1e83836Smrg Rename as iterator. 3676b1e83836Smrg (StdInitializerListPrinter): Define new printer. 3677b1e83836Smrg (build_libstdcxx_dictionary): Register new printer. 3678b1e83836Smrg * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for 3679b1e83836Smrg initializer_list. 3680b1e83836Smrg 3681b1e83836Smrg2022-04-22 Thomas W Rodgers <trodgers@redhat.com> 3682b1e83836Smrg 3683b1e83836Smrg PR libstdc++/102994 3684b1e83836Smrg * include/bits/atomic_base.h (atomic_flag::notify_one, 3685b1e83836Smrg notify_all): Remove const qualification. 3686b1e83836Smrg (__atomic_base::notify_one, notify_all): Likewise. 3687b1e83836Smrg * include/std/atomic (atomic<bool>::notify_one, notify_all): 3688b1e83836Smrg Likewise. 3689b1e83836Smrg (atomic::notify_one, notify_all): Likewise. 3690b1e83836Smrg (atomic<T*>::notify_one, notify_all): Likewise. 3691b1e83836Smrg (atomic_notify_one, atomic_notify_all): Likewise. 3692b1e83836Smrg * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test 3693b1e83836Smrg to account for change in notify_one/notify_all signature. 3694b1e83836Smrg 3695b1e83836Smrg2022-04-21 Patrick Palka <ppalka@redhat.com> 3696b1e83836Smrg 3697b1e83836Smrg * include/std/charconv (__from_chars_alnum_to_val_table): 3698b1e83836Smrg Simplify initialization of __lower/__upper_letters. 3699b1e83836Smrg (__from_chars_alnum_to_val): Default the template parameter to 3700b1e83836Smrg false. 3701b1e83836Smrg * src/c++17/floating_from_chars.cc (starts_with_ci): Don't 3702b1e83836Smrg assume the uppercase and lowercase letters are contiguous. 3703b1e83836Smrg (__floating_from_chars_hex): Likewise. 3704b1e83836Smrg 3705b1e83836Smrg2022-04-21 Patrick Palka <ppalka@redhat.com> 3706b1e83836Smrg 3707b1e83836Smrg PR c++/105297 3708b1e83836Smrg PR c++/105322 3709b1e83836Smrg * include/std/charconv (__from_chars_alnum_to_val): Make 3710b1e83836Smrg initializer for __table dependent in an artificial way. 3711b1e83836Smrg 3712b1e83836Smrg2022-04-21 Jonathan Wakely <jwakely@redhat.com> 3713b1e83836Smrg 3714b1e83836Smrg PR libstdc++/105324 3715b1e83836Smrg * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate): 3716b1e83836Smrg Remove assertion. 3717b1e83836Smrg * testsuite/20_util/from_chars/pr105324.cc: New test. 3718b1e83836Smrg 3719b1e83836Smrg2022-04-20 Jonathan Wakely <jwakely@redhat.com> 3720b1e83836Smrg 3721b1e83836Smrg * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc: 3722b1e83836Smrg Check correct feature test macro. 3723b1e83836Smrg 3724b1e83836Smrg2022-04-20 Jonathan Wakely <jwakely@redhat.com> 3725b1e83836Smrg 3726b1e83836Smrg PR libstdc++/93602 3727b1e83836Smrg * doc/xml/manual/prerequisites.xml: Document libiconv 3728b1e83836Smrg workarounds. 3729b1e83836Smrg * doc/html/manual/setup.html: Regenerate. 3730b1e83836Smrg * src/Makefile.am (CXXLINK): Add $(LTLIBICONV). 3731b1e83836Smrg * src/Makefile.in: Regenerate. 3732b1e83836Smrg 3733b1e83836Smrg2022-04-19 Patrick Palka <ppalka@redhat.com> 3734b1e83836Smrg 3735b1e83836Smrg * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't 3736b1e83836Smrg define. 3737b1e83836Smrg (__floating_to_chars_shortest): Add __builtin_unreachable calls to 3738b1e83836Smrg squelch false-positive -Wmaybe-uninitialized and -Wreturn-type 3739b1e83836Smrg warnings. 3740b1e83836Smrg (__floating_to_chars_precision): Likewise. 3741b1e83836Smrg 3742b1e83836Smrg2022-04-19 Philipp Fent <fent@in.tum.de> 3743b1e83836Smrg 3744b1e83836Smrg * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define. 3745b1e83836Smrg * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it. 3746b1e83836Smrg 3747b1e83836Smrg2022-04-19 Jonathan Wakely <jwakely@redhat.com> 3748b1e83836Smrg 3749b1e83836Smrg * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators. 3750b1e83836Smrg * configure: Regenerate. 3751b1e83836Smrg 3752b1e83836Smrg2022-04-18 Patrick Palka <ppalka@redhat.com> 3753b1e83836Smrg 3754b1e83836Smrg * include/std/charconv (__from_chars_pow2_base): Manually 3755b1e83836Smrg unroll the first iteration of the main loop and simplify 3756b1e83836Smrg accordingly. 3757b1e83836Smrg 3758b1e83836Smrg2022-04-15 Patrick Palka <ppalka@redhat.com> 3759b1e83836Smrg 3760b1e83836Smrg PR libstdc++/104858 3761b1e83836Smrg * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing 3762b1e83836Smrg __first twice at the start. 3763b1e83836Smrg * testsuite/25_algorithms/minmax/constrained.cc (test06): New test. 3764b1e83836Smrg 3765b1e83836Smrg2022-04-15 Patrick Palka <ppalka@redhat.com> 3766b1e83836Smrg 3767b1e83836Smrg * include/std/charconv (__from_chars_alnum_to_val_table): Define. 3768b1e83836Smrg (__from_chars_alnum_to_val): Define. 3769b1e83836Smrg (__from_chars_binary): Rename to ... 3770b1e83836Smrg (__from_chars_pow2_base): ... this. Generalize to handle any 3771b1e83836Smrg power-of-two base using __from_chars_alnum_to_val. 3772b1e83836Smrg (__from_chars_digit): Optimize digit recognition to a single 3773b1e83836Smrg test instead of two tests. Use [[__unlikely___]] attribute. 3774b1e83836Smrg (__from_chars_alpha_to_num): Remove. 3775b1e83836Smrg (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a 3776b1e83836Smrg nested loop for the overflow case. Maintain a lower bound 3777b1e83836Smrg on the number of available bits in the result and use it to 3778b1e83836Smrg omit the overflow check. 3779b1e83836Smrg (from_chars): Adjust appropriately. 3780b1e83836Smrg * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove. 3781b1e83836Smrg (__floating_from_chars_hex): Use __from_chars_alnum_to_val 3782b1e83836Smrg to recognize a hex digit instead. 3783b1e83836Smrg 3784b1e83836Smrg2022-04-14 Palmer Dabbelt <palmer@rivosinc.com> 3785b1e83836Smrg 3786b1e83836Smrg * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex 3787b1e83836Smrg for RISC-V. 3788b1e83836Smrg * configure: Regenerate. 3789b1e83836Smrg 3790b1e83836Smrg2022-04-14 Jonathan Wakely <jwakely@redhat.com> 3791b1e83836Smrg 3792b1e83836Smrg * doc/xml/manual/intro.xml: Fix comment. 3793b1e83836Smrg 3794b1e83836Smrg2022-04-14 Jonathan Wakely <jwakely@redhat.com> 3795b1e83836Smrg 3796b1e83836Smrg * include/precompiled/stdc++.h: Include <stacktrace> and 3797b1e83836Smrg <stdatomic.h> for C++23. 3798b1e83836Smrg 3799b1e83836Smrg2022-04-14 Jonathan Wakely <jwakely@redhat.com> 3800b1e83836Smrg 3801b1e83836Smrg PR libstdc++/105269 3802b1e83836Smrg * include/bits/stl_vector.h (__cpp_lib_constexpr_vector): 3803b1e83836Smrg Define. 3804b1e83836Smrg * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h): 3805b1e83836Smrg Define. 3806b1e83836Smrg * include/std/optional (__cpp_lib_optional): Define new value 3807b1e83836Smrg for C++23. 3808b1e83836Smrg (__cpp_lib_monadic_optional): Remove. 3809b1e83836Smrg * include/std/version (__cpp_lib_constexpr_vector): Define. 3810b1e83836Smrg (__cpp_lib_stdatomic_h): Define. 3811b1e83836Smrg (__cpp_lib_optional): Define new value for C++23. 3812b1e83836Smrg (__cpp_lib_monadic_optional): Remove. 3813b1e83836Smrg * testsuite/20_util/optional/monadic/and_then.cc: Adjust. 3814b1e83836Smrg * testsuite/20_util/optional/requirements.cc: Adjust for C++23. 3815b1e83836Smrg * testsuite/20_util/optional/version.cc: Likewise. 3816b1e83836Smrg * testsuite/23_containers/vector/cons/constexpr.cc: Check 3817b1e83836Smrg feature test macro. 3818b1e83836Smrg * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: 3819b1e83836Smrg Likewise. 3820b1e83836Smrg * testsuite/20_util/optional/monadic/version.cc: Removed. 3821b1e83836Smrg * testsuite/23_containers/vector/requirements/version.cc: New test. 3822b1e83836Smrg * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test. 3823b1e83836Smrg 3824b1e83836Smrg2022-04-12 Jonathan Wakely <jwakely@redhat.com> 3825b1e83836Smrg 3826b1e83836Smrg * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap. 3827b1e83836Smrg * config.h.in: Regenerate. 3828b1e83836Smrg * configure: Regenerate. 3829b1e83836Smrg 3830b1e83836Smrg2022-04-12 Jonathan Wakely <jwakely@redhat.com> 3831b1e83836Smrg 3832b1e83836Smrg * include/std/stacktrace (basic_stacktrace::current): Reallocate 3833b1e83836Smrg a smaller container if the unused capacity is larger than the 3834b1e83836Smrg used size. 3835b1e83836Smrg 3836b1e83836Smrg2022-04-12 Jonathan Wakely <jwakely@redhat.com> 3837b1e83836Smrg 3838b1e83836Smrg * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone 3839b1e83836Smrg or _Impl::_M_assign to initialize elements in allocated storage. 3840b1e83836Smrg (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of 3841b1e83836Smrg _Impl::_M_destroy. 3842b1e83836Smrg (basic_stacktrace::_Impl::_M_destroy()): Replace with ... 3843b1e83836Smrg (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New 3844a448f87cSmrg function. 3845b1e83836Smrg (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct 3846b1e83836Smrg new element using allocator. 3847b1e83836Smrg (basic_stacktrace::_Impl::_M_clone): New function. 3848b1e83836Smrg (basic_stacktrace::_Impl::_M_xclone): New function. 3849b1e83836Smrg (basic_stacktrace::_Impl::_M_assign): New function. 3850a448f87cSmrg 3851b1e83836Smrg2022-04-12 Jonathan Wakely <jwakely@redhat.com> 3852a448f87cSmrg 3853b1e83836Smrg * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate): 3854b1e83836Smrg Use nothrow new instead of try block for std::allocator. 3855b1e83836Smrg (basic_stacktrace::_Impl::_M_deallocate): Use delete for 3856b1e83836Smrg std::allocator. 3857a448f87cSmrg 3858b1e83836Smrg2022-04-12 Jonathan Wakely <jwakely@redhat.com> 3859a448f87cSmrg 3860b1e83836Smrg * include/std/stacktrace (basic_stacktrace::current): Replace 3861b1e83836Smrg calls to _M_reserve and _S_curr_cb with call to _M_prepare. 3862b1e83836Smrg Check return value of backtrace_simple when max depth given. 3863b1e83836Smrg (basic_stacktrace::_M_reserve): Remove. 3864b1e83836Smrg (basic_stacktrace::_S_curr_cb): Remove. 3865b1e83836Smrg (basic_stacktrace::_M_prepare(size_type)): New function to 3866b1e83836Smrg reserve initial capacity and return callback. 3867b1e83836Smrg (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n 3868b1e83836Smrg and remove redundant zeroing of _M_frames and _M_capacity. 3869b1e83836Smrg (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]] 3870b1e83836Smrg attribute. Assign _Impl instead of swapping. 3871b1e83836Smrg * testsuite/19_diagnostics/stacktrace/current.cc: New test. 3872a448f87cSmrg 3873b1e83836Smrg2022-04-11 Jonathan Wakely <jwakely@redhat.com> 3874a448f87cSmrg 3875b1e83836Smrg * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate): 3876b1e83836Smrg Change [[unlikely]] attribute to [[likely]]. 3877a448f87cSmrg 3878b1e83836Smrg2022-04-11 Jonathan Wakely <jwakely@redhat.com> 3879a448f87cSmrg 3880b1e83836Smrg PR libstdc++/105031 3881b1e83836Smrg * include/std/stacktrace (basic_stacktrace::basic_stacktrace): 3882b1e83836Smrg Fix allocator usage in constructors. 3883b1e83836Smrg (basic_stacktrace::operator=(const basic_stacktrace&)): Do not 3884b1e83836Smrg try to reallocate using const allocator. 3885b1e83836Smrg (basic_stacktrace::operator=(basic_stacktrace&&)): Fix 3886b1e83836Smrg if-constexpr with non-constant condition. Do not allocate new 3887b1e83836Smrg storage if allocator propagates. Do not set _M_size if 3888b1e83836Smrg allocation fails. 3889b1e83836Smrg (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add 3890b1e83836Smrg assertion that non-propagating allocators are equal. 3891b1e83836Smrg * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test. 3892a448f87cSmrg 3893b1e83836Smrg2022-04-11 Jonathan Wakely <jwakely@redhat.com> 3894a448f87cSmrg 3895b1e83836Smrg * include/std/stacktrace (basic_stacktrace::current): Duplicate 3896b1e83836Smrg implementation into each overload. Add noinline attribute and 3897b1e83836Smrg skip current frame. 3898b1e83836Smrg (basic_stacktrace::max_size()): Call _Impl::_S_max_size. 3899b1e83836Smrg (basic_stacktrace::_S_curr_cb()): New function defining lambda. 3900b1e83836Smrg (basic_stacktrace::_Impl::_S_max_size): New function defining 3901b1e83836Smrg maximum size in terms of allocator and size_type. 3902b1e83836Smrg (basic_stacktrace::_Impl::_M_allocate): Check against 3903b1e83836Smrg max_size(). 3904b1e83836Smrg * testsuite/19_diagnostics/stacktrace/entry.cc: Call function 3905b1e83836Smrg for non-constexpr checks. Check line number is correct. 3906a448f87cSmrg 3907b1e83836Smrg2022-04-11 Jonathan Wakely <jwakely@redhat.com> 3908a448f87cSmrg 3909b1e83836Smrg * testsuite/20_util/stacktrace/entry.cc: Moved to... 3910b1e83836Smrg * testsuite/19_diagnostics/stacktrace/entry.cc: ...here. 3911b1e83836Smrg * testsuite/20_util/stacktrace/synopsis.cc: Moved to... 3912b1e83836Smrg * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here. 3913b1e83836Smrg * testsuite/20_util/stacktrace/version.cc: Moved to... 3914b1e83836Smrg * testsuite/19_diagnostics/stacktrace/version.cc: ...here. 3915a448f87cSmrg 3916b1e83836Smrg2022-04-11 Jonathan Wakely <jwakely@redhat.com> 3917a448f87cSmrg 3918b1e83836Smrg * include/experimental/bits/fs_path.h (path): Define special 3919b1e83836Smrg members after path::_Cmpt is complete. 3920a448f87cSmrg 3921b1e83836Smrg2022-04-08 Jonathan Wakely <jwakely@redhat.com> 3922a448f87cSmrg 3923b1e83836Smrg PR libstdc++/105153 3924b1e83836Smrg * include/std/expected 3925b1e83836Smrg (expected<void,E>::expected(expected<U,G>&&)): Fix constraints. 3926b1e83836Smrg * testsuite/20_util/expected/cons.cc: Check constructor. 3927a448f87cSmrg 3928b1e83836Smrg2022-04-08 Jonathan Wakely <jwakely@redhat.com> 3929a448f87cSmrg 3930b1e83836Smrg PR libstdc++/105154 3931b1e83836Smrg * include/std/expected (expected<void, E>::swap): Set 3932b1e83836Smrg _M_has_value to false for objects that previously had a value. 3933b1e83836Smrg * testsuite/20_util/expected/swap.cc: Fix test to check void 3934b1e83836Smrg specialization. 3935a448f87cSmrg 3936b1e83836Smrg2022-04-08 Jonathan Wakely <jwakely@redhat.com> 3937a448f87cSmrg 3938b1e83836Smrg PR libstdc++/105146 3939b1e83836Smrg * include/std/expected (bad_expected_access): Move constructor 3940b1e83836Smrg parameter. 3941b1e83836Smrg * testsuite/20_util/expected/bad.cc: New test. 3942a448f87cSmrg 3943b1e83836Smrg2022-04-07 Hans-Peter Nilsson <hp@axis.com> 3944b1e83836Smrg 3945b1e83836Smrg * testsuite/20_util/expected/requirements.cc: Correct minimal-size 3946b1e83836Smrg test. 3947b1e83836Smrg 3948b1e83836Smrg2022-04-02 Jakub Jelinek <jakub@redhat.com> 3949b1e83836Smrg 3950b1e83836Smrg PR libstdc++/105128 3951b1e83836Smrg * include/std/source_location (std::source_location::__impl): Move 3952b1e83836Smrg definition before using __builtin_ret_type. 3953b1e83836Smrg 3954b1e83836Smrg2022-04-01 Jonathan Wakely <jwakely@redhat.com> 3955b1e83836Smrg 3956b1e83836Smrg * include/std/utility (unreachable): Define for C++23. 3957b1e83836Smrg * include/std/version (__cpp_lib_unreachable): Define. 3958b1e83836Smrg * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid 3959b1e83836Smrg arguments. Handle only the function being given. 3960b1e83836Smrg * testsuite/20_util/unreachable/1.cc: New test. 3961b1e83836Smrg * testsuite/20_util/unreachable/version.cc: New test. 3962b1e83836Smrg 3963b1e83836Smrg2022-04-01 Jonathan Wakely <jwakely@redhat.com> 3964b1e83836Smrg 3965b1e83836Smrg * include/experimental/bits/fs_fwd.h (copy_file): Remove 3966b1e83836Smrg incorrect noexcept from declaration. 3967b1e83836Smrg * include/experimental/bits/fs_path.h (path::begin, path::end): 3968b1e83836Smrg Add noexcept to declarations, to match definitions. 3969b1e83836Smrg 3970b1e83836Smrg2022-04-01 Timm Bäder <tbaeder@redhat.com> 3971b1e83836Smrg 3972b1e83836Smrg * include/bits/fs_ops.h: Fix filename in Doxygen comment. 3973b1e83836Smrg * include/experimental/bits/fs_ops.h: Likewise. 3974b1e83836Smrg 3975b1e83836Smrg2022-03-31 Jonathan Wakely <jwakely@redhat.com> 3976b1e83836Smrg 3977b1e83836Smrg * libsupc++/new_opa.cc (aligned_alloc): Add comment. 3978b1e83836Smrg 3979b1e83836Smrg2022-03-29 Jonathan Wakely <jwakely@redhat.com> 3980b1e83836Smrg 3981b1e83836Smrg * testsuite/18_support/exception/38732.cc: Disable for C++23. 3982b1e83836Smrg * testsuite/18_support/headers/exception/synopsis.cc: Likewise. 3983b1e83836Smrg * testsuite/18_support/unexpected_handler.cc: Likewise. 3984b1e83836Smrg 3985b1e83836Smrg2022-03-29 Jonathan Wakely <jwakely@redhat.com> 3986b1e83836Smrg 3987b1e83836Smrg * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add 3988b1e83836Smrg static data members for _Fp_fmt enumerators. 3989b1e83836Smrg 3990b1e83836Smrg2022-03-29 Jonathan Wakely <jwakely@redhat.com> 3991b1e83836Smrg 3992b1e83836Smrg * include/std/version (__cpp_lib_variant): Fix conditions to 3993b1e83836Smrg match <variant>. 3994b1e83836Smrg (__cpp_lib_expected): Fix condition to match <expected>. 3995b1e83836Smrg 3996b1e83836Smrg2022-03-28 Jonathan Wakely <jwakely@redhat.com> 3997b1e83836Smrg 3998b1e83836Smrg * testsuite/20_util/optional/monadic/and_then.cc: Fix typo. 3999b1e83836Smrg * testsuite/20_util/optional/monadic/transform.cc: Likewise. 4000b1e83836Smrg * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise. 4001b1e83836Smrg * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise. 4002b1e83836Smrg * testsuite/22_locale/codecvt/in/char/1.cc: Likewise. 4003b1e83836Smrg * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise. 4004b1e83836Smrg * testsuite/22_locale/codecvt/out/char/1.cc: Likewise. 4005b1e83836Smrg * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise. 4006b1e83836Smrg 4007b1e83836Smrg2022-03-27 Jonathan Wakely <jwakely@redhat.com> 4008b1e83836Smrg 4009b1e83836Smrg * doc/doxygen/user.cfg.in: Add new header. 4010b1e83836Smrg * include/Makefile.am: Likewise. 4011a448f87cSmrg * include/Makefile.in: Regenerate. 4012b1e83836Smrg * include/precompiled/stdc++.h: Add new header. 4013b1e83836Smrg * include/std/version (__cpp_lib_expected): Define. 4014b1e83836Smrg * libsupc++/exception [__cplusplus > 202002] (unexpected) 4015b1e83836Smrg (unexpected_handler, set_unexpected): Do not declare for C++23. 4016b1e83836Smrg * include/std/expected: New file. 4017b1e83836Smrg * testsuite/20_util/expected/assign.cc: New test. 4018b1e83836Smrg * testsuite/20_util/expected/cons.cc: New test. 4019b1e83836Smrg * testsuite/20_util/expected/illformed_neg.cc: New test. 4020b1e83836Smrg * testsuite/20_util/expected/observers.cc: New test. 4021b1e83836Smrg * testsuite/20_util/expected/requirements.cc: New test. 4022b1e83836Smrg * testsuite/20_util/expected/swap.cc: New test. 4023b1e83836Smrg * testsuite/20_util/expected/synopsis.cc: New test. 4024b1e83836Smrg * testsuite/20_util/expected/unexpected.cc: New test. 4025b1e83836Smrg * testsuite/20_util/expected/version.cc: New test. 4026a448f87cSmrg 4027b1e83836Smrg2022-03-25 Jonathan Wakely <jwakely@redhat.com> 4028a448f87cSmrg 4029b1e83836Smrg * include/std/bit (bit_cast, byteswap, endian): Add doxygen 4030b1e83836Smrg comments. 4031b1e83836Smrg 4032b1e83836Smrg2022-03-23 Jonathan Wakely <jwakely@redhat.com> 4033b1e83836Smrg 4034b1e83836Smrg PR libstdc++/105027 4035b1e83836Smrg * include/std/bit (bit_cast): Add constraints. 4036b1e83836Smrg * testsuite/26_numerics/bit/bit.cast/105027.cc: New test. 4037b1e83836Smrg 4038b1e83836Smrg2022-03-23 Jonathan Wakely <jwakely@redhat.com> 4039b1e83836Smrg 4040b1e83836Smrg * include/std/version [!_GLIBCXX_HOSTED] 4041b1e83836Smrg (__cpp_lib_hardware_interference_size): Define for freestanding. 4042b1e83836Smrg (__cpp_lib_bit_cast): Likewise. 4043b1e83836Smrg (__cpp_lib_is_layout_compatible): Likewise. 4044b1e83836Smrg (__cpp_lib_is_pointer_interconvertible): Likewise. 4045b1e83836Smrg (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for 4046b1e83836Smrg freestanding. 4047b1e83836Smrg (__cpp_lib_invoke_r): Likewise. 4048b1e83836Smrg (__cpp_lib_ios_noreplace): Likewise. 4049b1e83836Smrg (__cpp_lib_monadic_optional): Likewise. 4050b1e83836Smrg (__cpp_lib_move_only_function): Likewise. 4051b1e83836Smrg (__cpp_lib_spanstream): Likewise. 4052b1e83836Smrg (__cpp_lib_stacktrace): Likewise. 4053b1e83836Smrg (__cpp_lib_string_contains): Likewise. 4054b1e83836Smrg (__cpp_lib_string_resize_and_overwrite): Likewise. 4055b1e83836Smrg (__cpp_lib_to_underlying): Likewise. 4056b1e83836Smrg 4057b1e83836Smrg2022-03-23 Jonathan Wakely <jwakely@redhat.com> 4058b1e83836Smrg 4059b1e83836Smrg PR libstdc++/105021 4060b1e83836Smrg * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include 4061b1e83836Smrg <bits/atomic_wait.h> for freestanding. 4062b1e83836Smrg 4063b1e83836Smrg2022-03-22 Hans-Peter Nilsson <hp@axis.com> 4064b1e83836Smrg 4065b1e83836Smrg * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]: 4066b1e83836Smrg Conditionalize call to fesetround. 4067b1e83836Smrg 4068b1e83836Smrg2022-03-21 Jakub Jelinek <jakub@redhat.com> 4069b1e83836Smrg 4070b1e83836Smrg PR libstdc++/104990 4071b1e83836Smrg * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get 4072b1e83836Smrg isn't overloaded if __clang__ is defined. 4073b1e83836Smrg 4074b1e83836Smrg2022-03-18 Jonathan Wakely <jwakely@redhat.com> 4075b1e83836Smrg 4076b1e83836Smrg PR libstdc++/104242 4077b1e83836Smrg * include/std/any (any(T&&)): Revert change to constraints. 4078b1e83836Smrg * testsuite/20_util/any/cons/104242.cc: New test. 4079b1e83836Smrg 4080b1e83836Smrg2022-03-18 Jonathan Wakely <jwakely@redhat.com> 4081b1e83836Smrg 4082b1e83836Smrg PR libstdc++/92546 4083b1e83836Smrg * include/pstl/glue_algorithm_defs.h: Replace <functional> with 4084b1e83836Smrg <bits/stl_pair.h>. 4085b1e83836Smrg * include/pstl/utils.h: Replace <iterator> with <type_traits>. 4086b1e83836Smrg (__pstl::__internal::__except_handler): Use std::__terminate 4087b1e83836Smrg instead of std::terminate. 4088b1e83836Smrg * src/c++17/fs_path.cc: Include <array>. 4089b1e83836Smrg * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include 4090b1e83836Smrg <functional>. 4091b1e83836Smrg * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise. 4092b1e83836Smrg * testsuite/25_algorithms/clamp/constrained.cc: Likewise. 4093b1e83836Smrg * testsuite/25_algorithms/equal/constrained.cc: Likewise. 4094b1e83836Smrg * testsuite/25_algorithms/for_each/constrained.cc: Likewise. 4095b1e83836Smrg * testsuite/25_algorithms/includes/constrained.cc: Likewise. 4096b1e83836Smrg * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise. 4097b1e83836Smrg * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise. 4098b1e83836Smrg * testsuite/25_algorithms/is_permutation/constrained.cc: Include 4099b1e83836Smrg <iterator>. 4100b1e83836Smrg * testsuite/25_algorithms/is_sorted/constexpr.cc: Include 4101b1e83836Smrg <functional>. 4102b1e83836Smrg * testsuite/25_algorithms/is_sorted_until/constexpr.cc: 4103b1e83836Smrg Likewise. 4104b1e83836Smrg * testsuite/25_algorithms/lexicographical_compare/constexpr.cc: 4105b1e83836Smrg Likewise. 4106b1e83836Smrg * testsuite/25_algorithms/lexicographical_compare/constrained.cc: 4107b1e83836Smrg Likewise. 4108b1e83836Smrg * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc: 4109b1e83836Smrg Include <array>. 4110b1e83836Smrg * testsuite/25_algorithms/lower_bound/constexpr.cc: Include 4111b1e83836Smrg <functional>. 4112b1e83836Smrg * testsuite/25_algorithms/max/constrained.cc: Likewise. 4113b1e83836Smrg * testsuite/25_algorithms/max_element/constrained.cc: Likewise. 4114b1e83836Smrg * testsuite/25_algorithms/min/constrained.cc: Likewise. 4115b1e83836Smrg * testsuite/25_algorithms/min_element/constrained.cc: Likewise. 4116b1e83836Smrg * testsuite/25_algorithms/minmax_element/constrained.cc: 4117b1e83836Smrg Likewise. 4118b1e83836Smrg * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise. 4119b1e83836Smrg * testsuite/25_algorithms/move/93872.cc: Likewise. 4120b1e83836Smrg * testsuite/25_algorithms/move_backward/93872.cc: Include 4121b1e83836Smrg <iterator>. 4122b1e83836Smrg * testsuite/25_algorithms/nth_element/constexpr.cc: Include 4123b1e83836Smrg <functional>. 4124b1e83836Smrg * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise. 4125b1e83836Smrg * testsuite/25_algorithms/partial_sort_copy/constexpr.cc: 4126b1e83836Smrg Likewise. 4127b1e83836Smrg * testsuite/25_algorithms/search/constexpr.cc: Likewise. 4128b1e83836Smrg * testsuite/25_algorithms/search_n/constrained.cc: Likewise. 4129b1e83836Smrg * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise. 4130b1e83836Smrg * testsuite/25_algorithms/set_difference/constrained.cc: 4131b1e83836Smrg Likewise. 4132b1e83836Smrg * testsuite/25_algorithms/set_intersection/constexpr.cc: 4133b1e83836Smrg Likewise. 4134b1e83836Smrg * testsuite/25_algorithms/set_intersection/constrained.cc: 4135b1e83836Smrg Likewise. 4136b1e83836Smrg * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc: 4137b1e83836Smrg Likewise. 4138b1e83836Smrg * testsuite/25_algorithms/set_union/constexpr.cc: Likewise. 4139b1e83836Smrg * testsuite/25_algorithms/set_union/constrained.cc: Likewise. 4140b1e83836Smrg * testsuite/25_algorithms/sort/constexpr.cc: Likewise. 4141b1e83836Smrg * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise. 4142b1e83836Smrg * testsuite/25_algorithms/transform/constrained.cc: Likewise. 4143b1e83836Smrg * testsuite/25_algorithms/unique/constexpr.cc: Likewise. 4144b1e83836Smrg * testsuite/25_algorithms/unique/constrained.cc: Likewise. 4145b1e83836Smrg * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise. 4146b1e83836Smrg * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise. 4147b1e83836Smrg * testsuite/std/ranges/adaptors/elements.cc: Include <vector>. 4148b1e83836Smrg * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise. 4149b1e83836Smrg * testsuite/std/ranges/adaptors/split.cc: Likewise. 4150b1e83836Smrg 4151b1e83836Smrg2022-03-17 Jonathan Wakely <jwakely@redhat.com> 4152b1e83836Smrg 4153b1e83836Smrg PR libstdc++/92546 4154b1e83836Smrg * include/bits/fs_path.h (path::make_preferred): Use 4155b1e83836Smrg handwritten loop instead of std::replace. 4156b1e83836Smrg 4157b1e83836Smrg2022-03-17 Jonathan Wakely <jwakely@redhat.com> 4158b1e83836Smrg 4159b1e83836Smrg PR middle-end/104966 4160b1e83836Smrg * include/bits/locale_facets_nonio.tcc 4161b1e83836Smrg (__moneypunct_cache::_M_cache): Replace try-catch with RAII and 4162b1e83836Smrg make all string copies before any stores to *this. 4163b1e83836Smrg 4164b1e83836Smrg2022-03-17 Jonathan Wakely <jwakely@redhat.com> 4165b1e83836Smrg 4166b1e83836Smrg * testsuite/util/testsuite_character.h: Fix comment. 4167b1e83836Smrg 4168b1e83836Smrg2022-03-16 Jonathan Wakely <jwakely@redhat.com> 4169b1e83836Smrg 4170b1e83836Smrg PR libstdc++/103407 4171b1e83836Smrg * config/abi/pre/gnu.ver: Make version for std::from_chars 4172b1e83836Smrg depend on HAVE_USELOCALE macro. 4173b1e83836Smrg * testsuite/util/testsuite_abi.cc (compare_symbols): Treat 4174b1e83836Smrg std::from_chars for floating-point types as undesignated if 4175b1e83836Smrg not found in the baseline symbols file. 4176b1e83836Smrg 4177b1e83836Smrg2022-03-16 Jonathan Wakely <jwakely@redhat.com> 4178b1e83836Smrg 4179b1e83836Smrg * include/std/charconv (__cpp_lib_to_chars): Only define when 4180b1e83836Smrg both from_chars and to_chars are supported for floating-point 4181b1e83836Smrg types. 4182b1e83836Smrg (from_chars, to_chars): Adjust preprocessor conditions guarding 4183b1e83836Smrg declarations. 4184b1e83836Smrg * include/std/version (__cpp_lib_to_chars): Adjust condition to 4185b1e83836Smrg match <charconv> definition. 4186b1e83836Smrg * src/c++17/floating_from_chars.cc (from_chars_strtod): New 4187b1e83836Smrg function template. 4188b1e83836Smrg (from_chars): Simplify preprocessor checks and use 4189b1e83836Smrg from_chars_strtod when appropriate. 4190b1e83836Smrg 4191b1e83836Smrg2022-03-14 Jonathan Wakely <jwakely@redhat.com> 4192b1e83836Smrg 4193b1e83836Smrg PR libstdc++/104875 4194b1e83836Smrg * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to 4195b1e83836Smrg hold octets that will be left-shifted. 4196b1e83836Smrg 4197b1e83836Smrg2022-03-10 Jonathan Wakely <jwakely@redhat.com> 4198b1e83836Smrg 4199b1e83836Smrg PR libstdc++/104870 4200b1e83836Smrg * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32 4201b1e83836Smrg before using fast_float. 4202b1e83836Smrg 4203b1e83836Smrg2022-03-10 Detlef Vollmann <dv@vollmann.ch> 4204b1e83836Smrg 4205b1e83836Smrg PR libstdc++/104866 4206b1e83836Smrg * include/bits/this_thread_sleep.h: Fix order of #endif and 4207b1e83836Smrg closing brace of namespace. 4208b1e83836Smrg 4209b1e83836Smrg2022-03-10 Jonathan Wakely <jwakely@redhat.com> 4210b1e83836Smrg 4211b1e83836Smrg * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]: 4212b1e83836Smrg Handle NaN. 4213b1e83836Smrg 4214b1e83836Smrg2022-03-10 Jonathan Wakely <jwakely@redhat.com> 4215b1e83836Smrg 4216b1e83836Smrg * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use 4217b1e83836Smrg <=> comparison. 4218b1e83836Smrg 4219b1e83836Smrg2022-03-09 Patrick Palka <ppalka@redhat.com> 4220b1e83836Smrg 4221b1e83836Smrg PR libstdc++/104859 4222b1e83836Smrg * src/c++17/floating_to_chars.cc (__floating_to_chars_hex): 4223b1e83836Smrg Be explicit when narrowing the shifted effective_mantissa, 4224b1e83836Smrg since it may have an integer-class type. 4225b1e83836Smrg 4226b1e83836Smrg2022-03-08 Jonathan Wakely <jwakely@redhat.com> 4227b1e83836Smrg 4228b1e83836Smrg * include/bits/uses_allocator_args.h: Remove incorrect copyright 4229b1e83836Smrg notice. 4230b1e83836Smrg 4231b1e83836Smrg2022-03-07 Jonathan Wakely <jwakely@redhat.com> 4232b1e83836Smrg 4233b1e83836Smrg PR libstdc++/104807 4234b1e83836Smrg * include/bits/c++config (__terminate, __glibcxx_assert_fail): 4235b1e83836Smrg Replace _GLIBCXX_VISIBILITY on function with visibility pragma. 4236b1e83836Smrg (__is_constant_evaluated): Add visibility pragma. 4237b1e83836Smrg 4238b1e83836Smrg2022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk> 4239b1e83836Smrg 4240b1e83836Smrg * config/locale/vxworks/ctype_members.cc: Remove <iostream> 4241b1e83836Smrg include. 4242b1e83836Smrg 4243b1e83836Smrg2022-03-05 Jonathan Wakely <jwakely@redhat.com> 4244b1e83836Smrg 4245b1e83836Smrg * include/bits/c++config (__glibcxx_assert_fail): Add visibility 4246b1e83836Smrg attribute. 4247b1e83836Smrg (__terminate): Likewise. 4248b1e83836Smrg 4249b1e83836Smrg2022-03-04 Jonathan Wakely <jwakely@redhat.com> 4250b1e83836Smrg 4251b1e83836Smrg * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef 4252b1e83836Smrg inside #if condition. 4253b1e83836Smrg 4254b1e83836Smrg2022-03-03 Jonathan Wakely <jwakely@redhat.com> 4255b1e83836Smrg 4256b1e83836Smrg PR libstdc++/104748 4257b1e83836Smrg * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for 4258b1e83836Smrg constexpr test. 4259b1e83836Smrg 4260b1e83836Smrg2022-03-03 Jonathan Wakely <jwakely@redhat.com> 4261b1e83836Smrg 4262b1e83836Smrg * testsuite/17_intro/names.cc (func): Undef on AIX. 4263b1e83836Smrg 4264b1e83836Smrg2022-03-03 Jonathan Wakely <jwakely@redhat.com> 4265b1e83836Smrg 4266b1e83836Smrg PR libstdc++/96526 4267b1e83836Smrg * libsupc++/compare (strong_order): Add missing support for 4268b1e83836Smrg floating-point types. 4269b1e83836Smrg * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc: 4270b1e83836Smrg New test. 4271b1e83836Smrg 4272b1e83836Smrg2022-03-01 Jonathan Wakely <jwakely@redhat.com> 4273b1e83836Smrg 4274b1e83836Smrg PR middle-end/103984 4275b1e83836Smrg * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use 4276b1e83836Smrg default member initializer. 4277b1e83836Smrg 4278b1e83836Smrg2022-02-24 Jonathan Wakely <jwakely@redhat.com> 4279b1e83836Smrg 4280b1e83836Smrg PR libstdc++/104602 4281b1e83836Smrg * include/std/source_location (source_location::current): Use 4282b1e83836Smrg deduced type of __builtin_source_location(). 4283b1e83836Smrg 4284b1e83836Smrg2022-02-22 Patrick Palka <ppalka@redhat.com> 4285b1e83836Smrg 4286b1e83836Smrg * include/bits/ranges_base.h (__detail::__is_initializer_list): 4287b1e83836Smrg Define. 4288b1e83836Smrg (viewable_range): Adjust as per P2415R2. 4289b1e83836Smrg * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value. 4290b1e83836Smrg * include/std/ranges (owning_view): Define as per P2415R2. 4291b1e83836Smrg (enable_borrowed_range<owning_view>): Likewise. 4292b1e83836Smrg (views::__detail::__can_subrange): Replace with ... 4293b1e83836Smrg (views::__detail::__can_owning_view): ... this. 4294b1e83836Smrg (views::_All::_S_noexcept): Sync with operator(). 4295b1e83836Smrg (views::_All::operator()): Use owning_view instead of subrange 4296b1e83836Smrg as per P2415R2. 4297b1e83836Smrg * include/std/version (__cpp_lib_ranges): Adjust value. 4298b1e83836Smrg * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that 4299b1e83836Smrg views::all uses owning_view instead of subrange. 4300b1e83836Smrg (test08): New test. 4301b1e83836Smrg * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust 4302b1e83836Smrg now that rvalue non-view non-borrowed ranges are viewable. 4303b1e83836Smrg * testsuite/std/ranges/adaptors/split.cc (test06): Likewise. 4304b1e83836Smrg 4305b1e83836Smrg2022-02-17 Jonathan Wakely <jwakely@redhat.com> 4306b1e83836Smrg 4307b1e83836Smrg PR libstdc++/104559 4308b1e83836Smrg * doc/xml/manual/evolution.xml: Document deprecation. 4309b1e83836Smrg * doc/html/manual/api.html: Regenerate. 4310b1e83836Smrg * include/bits/stl_bvector.h (insert(const_iterator, const bool&)): 4311b1e83836Smrg Remove default argument. 4312b1e83836Smrg (insert(const_iterator)): New overload with deprecated attribute. 4313b1e83836Smrg * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc: 4314b1e83836Smrg New test. 4315b1e83836Smrg 4316b1e83836Smrg2022-02-17 Jonathan Wakely <jwakely@redhat.com> 4317b1e83836Smrg 4318b1e83836Smrg * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace 4319b1e83836Smrg code that call cat->name() on std::error_category objects. 4320b1e83836Smrg Identify known categories by symbol name and use a hardcoded 4321b1e83836Smrg name. Print error code values as enumerators where appopriate. 4322b1e83836Smrg * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected 4323b1e83836Smrg name of custom category. Check io_errc and future_errc errors. 4324b1e83836Smrg 4325b1e83836Smrg2022-02-15 Jonathan Wakely <jwakely@redhat.com> 4326b1e83836Smrg 4327b1e83836Smrg PR libstdc++/104542 4328b1e83836Smrg * include/bits/uses_allocator_args.h (make_obj_using_allocator) 4329b1e83836Smrg (uninitialized_construct_using_allocator): Add constexpr. 4330b1e83836Smrg * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr. 4331b1e83836Smrg * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test. 4332b1e83836Smrg 4333b1e83836Smrg2022-02-14 Jonathan Wakely <jwakely@redhat.com> 4334b1e83836Smrg 4335b1e83836Smrg PR libstdc++/100912 4336b1e83836Smrg * config/locale/gnu/c_locale.h (__convert_from_v): Use inline 4337b1e83836Smrg namespace for IEEE128 long double mode. 4338b1e83836Smrg * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol 4339b1e83836Smrg version and export __gnu_cxx_ieee128::__convert_from_v. 4340b1e83836Smrg * include/bits/locale_facets_nonio.tcc (money_put::__do_put): 4341b1e83836Smrg Make __ibm128 overload use snprintf directly 4342b1e83836Smrg * testsuite/util/testsuite_abi.cc: Add new symbol version. 4343b1e83836Smrg Remove stable IEEE128/LDBL versions. 4344b1e83836Smrg 4345b1e83836Smrg2022-02-14 Jonathan Wakely <jwakely@redhat.com> 4346b1e83836Smrg 4347b1e83836Smrg PR libstdc++/103891 4348b1e83836Smrg * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS): 4349b1e83836Smrg Remove. 4350b1e83836Smrg * include/std/variant: Check feature test macros instead. 4351b1e83836Smrg * include/std/version: Likewise. 4352b1e83836Smrg 4353b1e83836Smrg2022-02-14 Jonathan Wakely <jwakely@redhat.com> 4354b1e83836Smrg 4355b1e83836Smrg * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: 4356b1e83836Smrg Fix typo. 4357b1e83836Smrg 4358b1e83836Smrg2022-02-14 Jonathan Wakely <jwakely@redhat.com> 4359b1e83836Smrg 4360b1e83836Smrg * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on 4361b1e83836Smrg LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128. 4362b1e83836Smrg 4363b1e83836Smrg2022-02-11 Jonathan Wakely <jwakely@redhat.com> 4364b1e83836Smrg 4365b1e83836Smrg * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target 4366b1e83836Smrg selector. 4367b1e83836Smrg 4368b1e83836Smrg2022-02-11 Jonathan Wakely <jwakely@redhat.com> 4369b1e83836Smrg 4370b1e83836Smrg * testsuite/20_util/monotonic_buffer_resource/allocate.cc: 4371b1e83836Smrg Ignore -Walloc-larger-than warning. 4372b1e83836Smrg * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: 4373b1e83836Smrg Likewise. 4374b1e83836Smrg * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1 4375b1e83836Smrg to avoid linker error for __atomic_is_lock_free. 4376b1e83836Smrg 4377b1e83836Smrg2022-02-10 Thomas Rodgers <rodgert@appliantology.com> 4378b1e83836Smrg 4379b1e83836Smrg * include/bits/atomic_wait.h (__waiter_base::_S_do_spin, 4380b1e83836Smrg __waiter_base::_S_do_spin_v): Change memory order from relaxed 4381b1e83836Smrg to acquire. 4382b1e83836Smrg 4383b1e83836Smrg2022-02-10 Jonathan Wakely <jwakely@redhat.com> 4384b1e83836Smrg 4385b1e83836Smrg * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add 4386b1e83836Smrg using-declaration. 4387b1e83836Smrg (atomic_fetch_xor_explicit): Likewise. 4388b1e83836Smrg * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check 4389b1e83836Smrg arithmetic and logical operations for atomic_int. 4390b1e83836Smrg 4391b1e83836Smrg2022-02-10 Jonathan Wakely <jwakely@redhat.com> 4392b1e83836Smrg 4393b1e83836Smrg * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine 4394b1e83836Smrg when <dirent.h> is not available. 4395b1e83836Smrg (_GLIBCXX_HAVE_UNLINKAT): Likewise. 4396b1e83836Smrg 4397b1e83836Smrg2022-02-09 Thomas Rodgers <rodgert@appliantology.com> 4398b1e83836Smrg 4399b1e83836Smrg PR libstdc++/104442 4400b1e83836Smrg * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin 4401b1e83836Smrg loop inside do loop so that threads failing the wait, reload 4402b1e83836Smrg _M_ver. 4403b1e83836Smrg 4404b1e83836Smrg2022-02-08 Jonathan Wakely <jwakely@redhat.com> 4405b1e83836Smrg 4406b1e83836Smrg * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first 4407b1e83836Smrg parameter to _Dir_base&&. 4408b1e83836Smrg * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove. 4409b1e83836Smrg * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first 4410b1e83836Smrg parameter to _Dir_base&&. 4411b1e83836Smrg 4412b1e83836Smrg2022-02-08 Jonathan Wakely <jwakely@redhat.com> 4413b1e83836Smrg 4414b1e83836Smrg * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about 4415b1e83836Smrg checking for CAS on correct word size. 4416b1e83836Smrg 4417b1e83836Smrg2022-02-08 Jonathan Wakely <jwakely@redhat.com> 4418b1e83836Smrg 4419b1e83836Smrg * testsuite/experimental/filesystem/operations/create_directories.cc: 4420b1e83836Smrg Adjust expected results for Windows. 4421b1e83836Smrg 4422b1e83836Smrg2022-02-08 Jonathan Wakely <jwakely@redhat.com> 4423b1e83836Smrg 4424b1e83836Smrg PR libstdc++/104161 4425b1e83836Smrg * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase): 4426b1e83836Smrg [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member, 4427b1e83836Smrg instead of checking for errno values indicating a directory. 4428b1e83836Smrg * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar 4429b1e83836Smrg logic to non-throwing overload. 4430b1e83836Smrg (fs::remove_all(const path&, error_code&)): Add comments. 4431b1e83836Smrg * src/filesystem/ops-common.h: Likewise. 4432b1e83836Smrg 4433b1e83836Smrg2022-02-04 Jonathan Wakely <jwakely@redhat.com> 4434b1e83836Smrg 4435b1e83836Smrg * src/filesystem/dir-common.h (_Dir_base::openat): Change return 4436b1e83836Smrg type to use portable posix::DIR alias. 4437b1e83836Smrg 4438b1e83836Smrg2022-02-04 Jonathan Wakely <jwakely@redhat.com> 4439b1e83836Smrg 4440b1e83836Smrg * include/c_compatibility/stdatomic.h [__clang__]: Use 4441b1e83836Smrg #include_next <stdatomic.h>. 4442b1e83836Smrg 4443a448f87cSmrg2022-02-04 Jonathan Wakely <jwakely@redhat.com> 4444a448f87cSmrg 4445a448f87cSmrg * include/experimental/bits/fs_ops.h (fs::copy_file): Remove 4446a448f87cSmrg noexcept. 4447a448f87cSmrg (fs::create_directories): Likewise. 4448a448f87cSmrg (fs::remove_all): Likewise. 4449a448f87cSmrg * src/filesystem/ops.cc (fs::copy_file): Remove noexcept. 4450a448f87cSmrg (fs::create_directories): Likewise. 4451a448f87cSmrg (fs::remove_all): Likewise. 4452a448f87cSmrg 4453b1e83836Smrg2022-02-04 Jonathan Wakely <jwakely@redhat.com> 4454a448f87cSmrg 4455b1e83836Smrg PR libstdc++/104161 4456b1e83836Smrg * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd 4457b1e83836Smrg and unlinkat. 4458b1e83836Smrg * config.h.in: Regenerate. 4459b1e83836Smrg * configure: Regenerate. 4460b1e83836Smrg * include/bits/fs_dir.h (recursive_directory_iterator): Declare 4461b1e83836Smrg remove_all overloads as friends. 4462b1e83836Smrg (recursive_directory_iterator::__erase): Declare new member 4463b1e83836Smrg function. 4464b1e83836Smrg * include/bits/fs_fwd.h (remove, remove_all): Declare. 4465b1e83836Smrg * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to 4466b1e83836Smrg constructor. Pass file descriptor argument to base constructor. 4467b1e83836Smrg (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink) 4468b1e83836Smrg (_Dir::unlink, _Dir::rmdir): Define new member functions. 4469b1e83836Smrg (directory_iterator): Pass filename_only argument to _Dir 4470b1e83836Smrg constructor. 4471b1e83836Smrg (recursive_directory_iterator::_Dir_stack): Adjust constructor 4472b1e83836Smrg parameters to take a _Dir rvalue instead of creating one. 4473b1e83836Smrg (_Dir_stack::orig): Add data member for storing original path. 4474b1e83836Smrg (_Dir_stack::report_error): Define new member function. 4475b1e83836Smrg (__directory_iterator_nofollow): Move here from dir-common.h and 4476b1e83836Smrg fix value to be a power of two. 4477b1e83836Smrg (__directory_iterator_filename_only): Define new constant. 4478b1e83836Smrg (recursive_directory_iterator): Construct _Dir object and move 4479b1e83836Smrg into _M_dirs stack. Pass skip_permission_denied argument to first 4480b1e83836Smrg advance call. 4481b1e83836Smrg (recursive_directory_iterator::increment): Use _Dir::open_subdir. 4482b1e83836Smrg (recursive_directory_iterator::__erase): Define new member 4483b1e83836Smrg function. 4484b1e83836Smrg * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove. 4485b1e83836Smrg (fs::remove_all): Use new recursive_directory_iterator::__erase 4486b1e83836Smrg member function. 4487b1e83836Smrg * src/filesystem/dir-common.h (_Dir_base): Add int parameter to 4488b1e83836Smrg constructor and use openat to implement nofollow semantics. 4489b1e83836Smrg (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat): 4490b1e83836Smrg Define new member functions. 4491b1e83836Smrg (__directory_iterator_nofollow): Move to fs_dir.cc. 4492b1e83836Smrg * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to 4493b1e83836Smrg base constructor. 4494b1e83836Smrg (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member 4495b1e83836Smrg functions. 4496b1e83836Smrg (recursive_directory_iterator::_Dir_stack): Adjust constructor 4497b1e83836Smrg parameters to take a _Dir rvalue instead of creating one. 4498b1e83836Smrg (recursive_directory_iterator): Check for new nofollow option. 4499b1e83836Smrg Construct _Dir object and move into _M_dirs stack. Pass 4500b1e83836Smrg skip_permission_denied argument to first advance call. 4501b1e83836Smrg (recursive_directory_iterator::increment): Use _Dir::open_subdir. 4502b1e83836Smrg * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all. 4503a448f87cSmrg 4504b1e83836Smrg2022-02-04 Jonathan Wakely <jwakely@redhat.com> 4505a448f87cSmrg 4506b1e83836Smrg * include/bits/allocator.h: Qualify std::allocator_traits in 4507b1e83836Smrg deprecated warnings. 4508b1e83836Smrg * libsupc++/exception (uncaught_exception): Add suggestion to 4509b1e83836Smrg deprecated warning. 4510a448f87cSmrg 4511b1e83836Smrg2022-02-02 Jonathan Wakely <jwakely@redhat.com> 4512a448f87cSmrg 4513b1e83836Smrg * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop): 4514b1e83836Smrg Add [[maybe_unused]] attribute. 4515b1e83836Smrg * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop): 4516b1e83836Smrg Likewise. 4517a448f87cSmrg 4518b1e83836Smrg2022-02-02 Jonathan Wakely <jwakely@redhat.com> 4519a448f87cSmrg 4520b1e83836Smrg * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use 4521b1e83836Smrg custom comparison function for multiset. 4522b1e83836Smrg * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom 4523b1e83836Smrg comparison function for set. 4524a448f87cSmrg 4525b1e83836Smrg2022-02-02 Jonathan Wakely <jwakely@redhat.com> 4526a448f87cSmrg 4527b1e83836Smrg * include/bits/boost_concept_check.h (_OutputIteratorConcept): 4528b1e83836Smrg Change member function to data member of function pointer type. 4529a448f87cSmrg 4530b1e83836Smrg2022-02-02 Martin Sebor <msebor@redhat.com> 4531a448f87cSmrg 4532b1e83836Smrg PR libstdc++/101831 4533b1e83836Smrg * include/std/array (begin): Declare const member function attribute 4534b1e83836Smrg const. 4535b1e83836Smrg (end, rbegin, rend, size, max_size, empty, data): Same. 4536b1e83836Smrg * testsuite/23_containers/array/capacity/empty.cc: Add test cases. 4537b1e83836Smrg * testsuite/23_containers/array/capacity/max_size.cc: Same. 4538b1e83836Smrg * testsuite/23_containers/array/capacity/size.cc: Same. 4539b1e83836Smrg * testsuite/23_containers/array/iterators/begin_end.cc: New test. 4540a448f87cSmrg 4541b1e83836Smrg2022-02-02 Jonathan Wakely <jwakely@redhat.com> 4542a448f87cSmrg 4543b1e83836Smrg * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use 4544b1e83836Smrg autoconf macro to check whether d_type is present. 4545b1e83836Smrg * testsuite/experimental/filesystem/iterators/error_reporting.cc: 4546b1e83836Smrg Likewise. 4547a448f87cSmrg 4548b1e83836Smrg2022-02-01 Jonathan Wakely <jwakely@redhat.com> 4549a448f87cSmrg 4550b1e83836Smrg * testsuite/27_io/filesystem/iterators/97731.cc: New test. 4551b1e83836Smrg * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc: 4552b1e83836Smrg Check follow_directory_symlink option. 4553b1e83836Smrg * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc: 4554b1e83836Smrg Likewise. 4555a448f87cSmrg 4556b1e83836Smrg2022-02-01 Jonathan Wakely <jwakely@redhat.com> 4557b1e83836Smrg 4558b1e83836Smrg * src/c++17/fs_dir.cc (recursive_directory_iterator::increment): 4559b1e83836Smrg Reset state to past-the-end iterator on error. 4560b1e83836Smrg (fs::recursive_directory_iterator::pop(error_code&)): Likewise. 4561b1e83836Smrg (fs::recursive_directory_iterator::pop()): Check _M_dirs before 4562b1e83836Smrg it might get reset. 4563b1e83836Smrg * src/filesystem/dir.cc (recursive_directory_iterator): Likewise, 4564b1e83836Smrg for the TS implementation. 4565b1e83836Smrg * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test. 4566b1e83836Smrg * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test. 4567b1e83836Smrg 4568b1e83836Smrg2022-02-01 Jonathan Wakely <jwakely@redhat.com> 4569b1e83836Smrg 4570b1e83836Smrg * include/bits/fs_fwd.h (filesystem::perms): Fix comment. 4571b1e83836Smrg 4572b1e83836Smrg2022-02-01 Jonathan Wakely <jwakely@redhat.com> 4573b1e83836Smrg 4574b1e83836Smrg PR libstdc++/104301 4575b1e83836Smrg * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages 4576b1e83836Smrg for stdio_pure and stdio_posix options. 4577b1e83836Smrg * configure: Regenerate. 4578b1e83836Smrg 4579b1e83836Smrg2022-02-01 Thomas Rodgers <rodgert@appliantology.com> 4580b1e83836Smrg 4581b1e83836Smrg * include/bits/atomic_wait.h: Change memory order from 4582b1e83836Smrg Acquire/Release with relaxed loads to SeqCst+Release for 4583b1e83836Smrg accesses to the waiter's count. 4584b1e83836Smrg 4585b1e83836Smrg2022-01-31 Martin Liska <mliska@suse.cz> 4586b1e83836Smrg 4587b1e83836Smrg * acinclude.m4: Detect *_ld_is_mold and use it. 4588b1e83836Smrg * configure: Regenerate. 4589b1e83836Smrg 4590b1e83836Smrg2022-01-30 Hans-Peter Nilsson <hp@axis.com> 4591b1e83836Smrg 4592b1e83836Smrg * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on 4593b1e83836Smrg simulator targets. 4594b1e83836Smrg * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise. 4595b1e83836Smrg 4596a448f87cSmrg2022-01-27 Jonathan Wakely <jwakely@redhat.com> 4597a448f87cSmrg 4598b1e83836Smrg PR libstdc++/100516 4599b1e83836Smrg * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>): 4600b1e83836Smrg Add __builtin_unreachable to loop. 4601b1e83836Smrg * testsuite/23_containers/deque/100516.cc: New test. 4602b1e83836Smrg 4603b1e83836Smrg2022-01-27 Jonathan Wakely <jwakely@redhat.com> 4604b1e83836Smrg 4605b1e83836Smrg * include/bits/ranges_base.h (ranges::advance): Avoid signed 4606a448f87cSmrg overflow. Do nothing if already equal to desired result. 4607a448f87cSmrg * testsuite/24_iterators/range_operations/advance_overflow.cc: 4608a448f87cSmrg New test. 4609a448f87cSmrg 4610b1e83836Smrg2022-01-27 Martin Liska <mliska@suse.cz> 4611a448f87cSmrg 4612b1e83836Smrg PR libstdc++/104259 4613b1e83836Smrg * acinclude.m4: Fix typo. 4614b1e83836Smrg * configure: Regenerate. 4615b1e83836Smrg 4616b1e83836Smrg2022-01-25 Jonathan Wakely <jwakely@redhat.com> 4617b1e83836Smrg 4618b1e83836Smrg PR libstdc++/104019 4619b1e83836Smrg * include/bits/istream.tcc (basic_istream::sentry): Add braces 4620b1e83836Smrg around try-block. 4621b1e83836Smrg * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init): 4622b1e83836Smrg Add pragmas to disable bogus warnings from PR 61596. 4623b1e83836Smrg 4624b1e83836Smrg2022-01-25 Jonathan Wakely <jwakely@redhat.com> 4625b1e83836Smrg 4626b1e83836Smrg PR libstdc++/104217 4627b1e83836Smrg * src/c++17/fs_ops.cc (_GNU_SOURCE): Define. 4628b1e83836Smrg * src/filesystem/dir.cc (_GNU_SOURCE): Define. 4629b1e83836Smrg * src/filesystem/ops.cc (_GNU_SOURCE): Define. 4630b1e83836Smrg 4631b1e83836Smrg2022-01-25 Jonathan Wakely <jwakely@redhat.com> 4632b1e83836Smrg 4633b1e83836Smrg PR libstdc++/104161 4634b1e83836Smrg * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for 4635b1e83836Smrg fdopendir. 4636b1e83836Smrg * config.h.in: Regenerate. 4637b1e83836Smrg * configure: Regenerate. 4638b1e83836Smrg * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor 4639b1e83836Smrg and pass it to base class constructor. 4640b1e83836Smrg (directory_iterator): Pass nofollow flag to _Dir constructor. 4641b1e83836Smrg (fs::recursive_directory_iterator::increment): Likewise. 4642b1e83836Smrg * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for 4643b1e83836Smrg directory_iterator constructor. Move error check outside loop. 4644b1e83836Smrg * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to 4645b1e83836Smrg constructor and when it's set use ::open with O_NOFOLLOW and 4646b1e83836Smrg O_DIRECTORY. 4647b1e83836Smrg * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor 4648b1e83836Smrg and pass it to base class constructor. 4649b1e83836Smrg (directory_iterator): Pass nofollow flag to _Dir constructor. 4650b1e83836Smrg (fs::recursive_directory_iterator::increment): Likewise. 4651b1e83836Smrg * src/filesystem/ops.cc (remove_all): Use nofollow option for 4652b1e83836Smrg directory_iterator constructor. Move error check outside loop. 4653b1e83836Smrg 4654b1e83836Smrg2022-01-23 Jonathan Wakely <jwakely@redhat.com> 4655b1e83836Smrg 4656b1e83836Smrg PR libstdc++/104032 4657b1e83836Smrg * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use 4658b1e83836Smrg mem-initializer for _M_buf. 4659b1e83836Smrg (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed 4660b1e83836Smrg member access. 4661b1e83836Smrg * testsuite/27_io/spanstream/2.cc: New test. 4662b1e83836Smrg 4663b1e83836Smrg2022-01-23 Jonathan Wakely <jwakely@redhat.com> 4664b1e83836Smrg 4665b1e83836Smrg * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS): 4666b1e83836Smrg Define macro for case where std::from_chars is implemented in 4667b1e83836Smrg terms of strtod, strtof or strtold. 4668b1e83836Smrg (buffer_resource, valid_fmt, find_end_of_float, pattern) 4669b1e83836Smrg (from_chars_impl, make_result, reserve_string): Do not define 4670b1e83836Smrg unless USE_STRTOD_FOR_FROM_CHARS is defined. 4671b1e83836Smrg (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and 4672b1e83836Smrg USE_STRTOD_FOR_FROM_CHARS is defined, instead of 4673b1e83836Smrg _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it 4674b1e83836Smrg is binary64. 4675b1e83836Smrg 4676b1e83836Smrg2022-01-23 Jonathan Wakely <jwakely@redhat.com> 4677b1e83836Smrg 4678b1e83836Smrg PR libstdc++/104174 4679b1e83836Smrg * include/bits/hashtable_policy.h (_Map_base): Add partial 4680b1e83836Smrg specialization for maps with const key types. 4681b1e83836Smrg * testsuite/23_containers/unordered_map/104174.cc: New test. 4682b1e83836Smrg 4683b1e83836Smrg2022-01-23 Jonathan Wakely <jwakely@redhat.com> 4684b1e83836Smrg 4685b1e83836Smrg PR libstdc++/104019 4686b1e83836Smrg * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release): 4687b1e83836Smrg Set members to zero without type punning. 4688b1e83836Smrg 4689b1e83836Smrg2022-01-21 Jonathan Wakely <jwakely@redhat.com> 4690b1e83836Smrg 4691b1e83836Smrg * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment. 4692b1e83836Smrg 4693b1e83836Smrg2022-01-21 Jonathan Wakely <jwakely@redhat.com> 4694b1e83836Smrg 4695b1e83836Smrg PR libstdc++/87193 4696b1e83836Smrg PR libstdc++/104019 4697b1e83836Smrg * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal): 4698b1e83836Smrg Define as type long. 4699b1e83836Smrg * include/bits/allocator.h (__cpp_lib_incomplete_container_elements): 4700b1e83836Smrg Likewise. 4701b1e83836Smrg * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise. 4702b1e83836Smrg * include/bits/chrono.h (__cpp_lib_chrono): Likewise. 4703b1e83836Smrg (__cpp_lib_chrono_udls): Likewise. 4704b1e83836Smrg * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise. 4705b1e83836Smrg * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise. 4706b1e83836Smrg * include/bits/range_access.h (__cpp_lib_nonmember_container_access): 4707b1e83836Smrg Likewise. 4708b1e83836Smrg * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this): 4709b1e83836Smrg Likewise. 4710b1e83836Smrg * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise. 4711b1e83836Smrg (__cpp_lib_sample): Likewise. 4712b1e83836Smrg * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops): 4713b1e83836Smrg Likewise. 4714b1e83836Smrg * include/bits/stl_function.h (__cpp_lib_transparent_operators): 4715b1e83836Smrg Likewise. 4716b1e83836Smrg * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator): 4717b1e83836Smrg Likewise. 4718b1e83836Smrg * include/bits/stl_map.h (__cpp_lib_map_try_emplace): 4719b1e83836Smrg Likewise. 4720b1e83836Smrg * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup): 4721b1e83836Smrg Likewise. 4722b1e83836Smrg * include/bits/unique_ptr.h (__cpp_lib_make_unique): 4723b1e83836Smrg Likewise. 4724b1e83836Smrg * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace): 4725b1e83836Smrg Likewise. 4726b1e83836Smrg * include/c_global/cmath (__cpp_lib_hypot): Likewise. 4727b1e83836Smrg * include/c_global/cstddef (__cpp_lib_byte): Likewise. 4728b1e83836Smrg * include/std/atomic (__cpp_lib_atomic_is_always_lock_free): 4729b1e83836Smrg Likewise. 4730b1e83836Smrg * include/std/complex (__cpp_lib_complex_udls): Likewise. 4731b1e83836Smrg * include/std/filesystem (__cpp_lib_filesystem): Likewise. 4732b1e83836Smrg * include/std/functional (__cpp_lib_not_fn): Likewise. 4733b1e83836Smrg (__cpp_lib_boyer_moore_searcher): Likewise. 4734b1e83836Smrg * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise. 4735b1e83836Smrg * include/std/mutex (__cpp_lib_scoped_lock): Likewise. 4736b1e83836Smrg * include/std/numeric (__cpp_lib_gcd_lcm): Likewise. 4737b1e83836Smrg (__cpp_lib_gcd, __cpp_lib_lcm): Likewise. 4738b1e83836Smrg * include/std/tuple (__cpp_lib_apply): Likewise. 4739b1e83836Smrg (__cpp_lib_make_from_tuple): Likewise. 4740b1e83836Smrg * include/std/type_traits (__cpp_lib_integral_constant_callable) 4741b1e83836Smrg (__cpp_lib_bool_constant, __cpp_lib_logical_traits) 4742b1e83836Smrg (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases) 4743b1e83836Smrg (__cpp_lib_result_of_sfinae, __cpp_lib_void_t) 4744b1e83836Smrg (__cpp_lib_is_swappable, __cpp_lib_is_invocable) 4745b1e83836Smrg (__cpp_lib_has_unique_object_representations) 4746b1e83836Smrg (__cpp_lib_is_aggregate): Likewise. 4747b1e83836Smrg * include/std/version: Likewise. 4748b1e83836Smrg * libsupc++/new (__cpp_lib_launder): Likewise. 4749b1e83836Smrg 4750b1e83836Smrg2022-01-21 Jonathan Wakely <jwakely@redhat.com> 4751b1e83836Smrg 4752b1e83836Smrg * include/std/version (__cpp_lib_shared_ptr_arrays): Fix 4753b1e83836Smrg condition for C++17 definition. 4754b1e83836Smrg 4755b1e83836Smrg2022-01-21 Jonathan Wakely <jwakely@redhat.com> 4756b1e83836Smrg 4757b1e83836Smrg * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count): 4758b1e83836Smrg Add constexpr. 4759b1e83836Smrg (_Sp_atomic::_M_ptr): Add default member-initializer. 4760b1e83836Smrg * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: 4761b1e83836Smrg Check constant initialization. 4762b1e83836Smrg * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise. 4763b1e83836Smrg 4764b1e83836Smrg2022-01-20 Jonathan Wakely <jwakely@redhat.com> 4765b1e83836Smrg 4766b1e83836Smrg * src/c++11/cxx11-ios_failure.cc (__constinit): Define as 4767b1e83836Smrg equivalent attribute for Clang. 4768b1e83836Smrg * src/c++11/future.cc (__constinit): Likewise. 4769b1e83836Smrg * src/c++11/system_error.cc (__constinit): Likewise. 4770b1e83836Smrg * src/c++17/memory_resource.cc (__constinit): Likewise. 4771b1e83836Smrg 4772b1e83836Smrg2022-01-20 Jonathan Wakely <jwakely@redhat.com> 4773b1e83836Smrg 4774b1e83836Smrg * scripts/testsuite_flags.in: Only add src/filesystem/.libs and 4775b1e83836Smrg src/libbacktrace/.libs to LDFLAGS if those directories exist. 4776b1e83836Smrg 4777b1e83836Smrg2022-01-19 Jonathan Wakely <jwakely@redhat.com> 4778b1e83836Smrg 4779b1e83836Smrg * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4 4780b1e83836Smrg from default flags. 4781b1e83836Smrg * configure: Regenerate. 4782b1e83836Smrg 4783b1e83836Smrg2022-01-19 Jonathan Wakely <jwakely@redhat.com> 4784b1e83836Smrg 4785b1e83836Smrg PR libstdc++/104123 4786b1e83836Smrg * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include 4787b1e83836Smrg <stddef.h>. 4788b1e83836Smrg 4789b1e83836Smrg2022-01-19 Jonathan Wakely <jwakely@redhat.com> 4790b1e83836Smrg 4791b1e83836Smrg * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to 4792b1e83836Smrg linker search paths. 4793b1e83836Smrg * src/Makefile.am: Fix src/debug/libbacktrace build. 4794b1e83836Smrg * src/Makefile.in: Regenerate. 4795b1e83836Smrg * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS 4796b1e83836Smrg variable. Use symlinks for the source files. 4797b1e83836Smrg * src/libbacktrace/Makefile.in: Regenerate. 4798b1e83836Smrg 4799b1e83836Smrg2022-01-19 Matthias Kretz <m.kretz@gsi.de> 4800b1e83836Smrg 4801b1e83836Smrg * include/experimental/bits/simd.h (__floating_point_flags): Do 4802b1e83836Smrg not rely on math_errhandling to expand to a constant expression. 4803b1e83836Smrg 4804b1e83836Smrg2022-01-19 Jonathan Wakely <jwakely@redhat.com> 4805b1e83836Smrg 4806b1e83836Smrg * doc/xml/manual/evolution.xml: Document deprecations. 4807b1e83836Smrg * doc/xml/manual/status_cxx2017.xml: Update status. 4808b1e83836Smrg * doc/html/*: Regenerate. 4809b1e83836Smrg 4810b1e83836Smrg2022-01-19 Jonathan Wakely <jwakely@redhat.com> 4811b1e83836Smrg 4812b1e83836Smrg * include/bits/stl_tempbuf.h (get_temporary_buffer): Change 4813b1e83836Smrg _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED. 4814b1e83836Smrg 4815b1e83836Smrg2022-01-19 Jonathan Wakely <jwakely@redhat.com> 4816b1e83836Smrg 4817b1e83836Smrg * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused 4818b1e83836Smrg function. 4819b1e83836Smrg 4820b1e83836Smrg2022-01-19 Jonathan Wakely <jwakely@redhat.com> 4821b1e83836Smrg 4822b1e83836Smrg PR libstdc++/104101 4823b1e83836Smrg * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock): 4824b1e83836Smrg Only use __thread_relax if __cpp_lib_atomic_wait is defined. 4825b1e83836Smrg 4826b1e83836Smrg2022-01-18 Jonathan Wakely <jwakely@redhat.com> 4827b1e83836Smrg 4828b1e83836Smrg PR libstdc++/104099 4829b1e83836Smrg * include/bits/basic_string.h (basic_string(nullptr_t)): Only 4830b1e83836Smrg define for C++23. 4831b1e83836Smrg (operator=(nullptr_t)): Likewise. 4832b1e83836Smrg * include/bits/cow_string.h: Likewise. 4833b1e83836Smrg * include/std/string_view (basic_string_view(nullptr_t)): 4834b1e83836Smrg Likewise. 4835b1e83836Smrg * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust 4836b1e83836Smrg expected error. Add examples that become ill-formed in C++23. 4837b1e83836Smrg * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: 4838b1e83836Smrg Adjust expected errors. 4839b1e83836Smrg * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc: 4840b1e83836Smrg Likewise. 4841b1e83836Smrg 4842b1e83836Smrg2022-01-18 Jonathan Wakely <jwakely@redhat.com> 4843b1e83836Smrg 4844b1e83836Smrg PR libstdc++/104098 4845b1e83836Smrg * include/bits/stl_iterator.h (reverse_iterator): Check 4846b1e83836Smrg __cpp_lib_concepts instead of __cplusplus. 4847b1e83836Smrg 4848b1e83836Smrg2022-01-18 Jonathan Wakely <jwakely@redhat.com> 4849b1e83836Smrg 4850b1e83836Smrg PR libstdc++/101124 4851b1e83836Smrg * include/bits/stl_pair.h (pair): Adjust constraints on 4852b1e83836Smrg deprecated constructors accepting literal zero as null pointer 4853b1e83836Smrg constant. Improve wording of deprecated attribute. 4854b1e83836Smrg * testsuite/20_util/pair/cons/99957.cc: Check that deprecated 4855b1e83836Smrg constructors do not cause ambiguities for copyable types. 4856b1e83836Smrg 4857b1e83836Smrg2022-01-18 Jonathan Wakely <jwakely@redhat.com> 4858b1e83836Smrg 4859b1e83836Smrg * include/bits/stl_function.h (ptr_fun): Fix suggestion for 4860b1e83836Smrg non-deprecated alternative. 4861b1e83836Smrg 4862b1e83836Smrg2022-01-18 Tom Honermann <tom@honermann.net> 4863b1e83836Smrg 4864b1e83836Smrg * acinclude.m4: Define config macros if uchar.h provides 4865b1e83836Smrg c8rtomb() and mbrtoc8(). 4866b1e83836Smrg * config.h.in: Regenerate. 4867b1e83836Smrg * configure: Regenerate. 4868b1e83836Smrg * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define. 4869b1e83836Smrg * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise. 4870b1e83836Smrg * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise. 4871b1e83836Smrg * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc: 4872b1e83836Smrg New test. 4873b1e83836Smrg * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc: 4874b1e83836Smrg New test. 4875b1e83836Smrg 4876b1e83836Smrg2022-01-18 Jonathan Wakely <jwakely@redhat.com> 4877b1e83836Smrg 4878b1e83836Smrg * include/Makefile.am: Install new header. 4879b1e83836Smrg * include/Makefile.in: Regenerate. 4880b1e83836Smrg * include/c_compatibility/stdatomic.h: New file. 4881b1e83836Smrg * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test. 4882b1e83836Smrg 4883b1e83836Smrg2022-01-18 Jonathan Wakely <jwakely@redhat.com> 4884b1e83836Smrg 4885b1e83836Smrg PR libstdc++/104080 4886b1e83836Smrg * src/c++17/fast_float/LOCAL_PATCHES: Update. 4887b1e83836Smrg * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN): 4888b1e83836Smrg Define in terms of __BYTE_ORDER__. 4889b1e83836Smrg 4890b1e83836Smrg2022-01-18 Jonathan Wakely <jwakely@redhat.com> 4891b1e83836Smrg 4892b1e83836Smrg PR libstdc++/104080 4893b1e83836Smrg * src/c++17/fast_float/LOCAL_PATCHES: UPDATE. 4894b1e83836Smrg * src/c++17/fast_float/fast_float.h (round): Use explicit 4895b1e83836Smrg template argument list for std::min. 4896b1e83836Smrg 4897b1e83836Smrg2022-01-18 Jonathan Wakely <jwakely@redhat.com> 4898b1e83836Smrg 4899b1e83836Smrg * doc/xml/manual/status_cxx2017.xml: Update C++17 status. 4900b1e83836Smrg * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for 4901b1e83836Smrg upcoming release. 4902b1e83836Smrg * doc/html/manual/status.html: Regenerate. 4903b1e83836Smrg 4904b1e83836Smrg2022-01-18 Jonathan Wakely <jwakely@redhat.com> 4905b1e83836Smrg 4906b1e83836Smrg * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve 4907b1e83836Smrg comments. 4908b1e83836Smrg * configure: Regenerate. 4909b1e83836Smrg 4910b1e83836Smrg2022-01-17 Patrick Palka <ppalka@redhat.com> 4911b1e83836Smrg 4912b1e83836Smrg * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT): 4913b1e83836Smrg Conditionally define, and use it to conditionally include 4914b1e83836Smrg fast_float. 4915b1e83836Smrg (from_chars): Use fast_float for float and double when 4916b1e83836Smrg USE_LIB_FAST_FLOAT. 4917b1e83836Smrg 4918b1e83836Smrg2022-01-17 Patrick Palka <ppalka@redhat.com> 4919b1e83836Smrg 4920b1e83836Smrg * src/c++17/fast_float/LOCAL_PATCHES: Update. 4921b1e83836Smrg * src/c++17/fast_float/fast_float.h (from_chars_advanced): In 4922b1e83836Smrg case of over/underflow, return errc::result_out_of_range and don't 4923b1e83836Smrg modify 'value'. 4924b1e83836Smrg 4925b1e83836Smrg2022-01-17 Patrick Palka <ppalka@redhat.com> 4926b1e83836Smrg 4927b1e83836Smrg * src/c++17/fast_float/LOCAL_PATCHES: Update. 4928b1e83836Smrg * src/c++17/fast_float/fast_float.h: Apply local modifications. 4929b1e83836Smrg 4930b1e83836Smrg2022-01-17 Patrick Palka <ppalka@redhat.com> 4931b1e83836Smrg 4932b1e83836Smrg * src/c++17/fast_float/LOCAL_PATCHES: New file. 4933b1e83836Smrg * src/c++17/fast_float/MERGE: New file. 4934b1e83836Smrg * src/c++17/fast_float/README.md: New file, copied from the 4935b1e83836Smrg fast_float repository. 4936b1e83836Smrg * src/c++17/fast_float/fast_float.h: New file, an amalgamation 4937b1e83836Smrg of the fast_float library. 4938b1e83836Smrg 4939b1e83836Smrg2022-01-17 Patrick Palka <ppalka@redhat.com> 4940b1e83836Smrg 4941b1e83836Smrg * src/c++17/floating_from_chars.cc: Include <bit>. 4942b1e83836Smrg (ascii_to_hexit, starts_with_ci): Conditionally define. 4943b1e83836Smrg (__floating_from_chars_hex): Conditionally define. 4944b1e83836Smrg (from_chars): Use __floating_from_chars_hex for 4945b1e83836Smrg chars_format::hex parsing of binary32/64 float/double. 4946b1e83836Smrg (testsuite/20_util/from_chars/7.cc): New test. 4947b1e83836Smrg * testsuite/20_util/from_chars/7.cc: New file. 4948b1e83836Smrg 4949b1e83836Smrg2022-01-17 Jonathan Wakely <jwakely@redhat.com> 4950b1e83836Smrg 4951b1e83836Smrg * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro. 4952b1e83836Smrg * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE. 4953b1e83836Smrg * include/Makefile.am: Add new header. 4954b1e83836Smrg * include/Makefile.in: Regenerate. 4955b1e83836Smrg * include/std/stacktrace: New header. 4956b1e83836Smrg * include/std/version (__cpp_lib_stacktrace): Define. 4957b1e83836Smrg * Makefile.in: Regenerate. 4958b1e83836Smrg * config.h.in: Regenerate. 4959b1e83836Smrg * configure: Regenerate. 4960b1e83836Smrg * doc/Makefile.in: Regenerate. 4961b1e83836Smrg * libsupc++/Makefile.in: Regenerate. 4962b1e83836Smrg * po/Makefile.in: Regenerate. 4963b1e83836Smrg * python/Makefile.in: Regenerate. 4964b1e83836Smrg * src/Makefile.am: Regenerate. 4965b1e83836Smrg * src/Makefile.in: Regenerate. 4966b1e83836Smrg * src/c++11/Makefile.in: Regenerate. 4967b1e83836Smrg * src/c++17/Makefile.in: Regenerate. 4968b1e83836Smrg * src/c++20/Makefile.in: Regenerate. 4969b1e83836Smrg * src/c++98/Makefile.in: Regenerate. 4970b1e83836Smrg * src/filesystem/Makefile.in: Regenerate. 4971b1e83836Smrg * testsuite/Makefile.in: Regenerate. 4972b1e83836Smrg * src/libbacktrace/Makefile.am: New file. 4973b1e83836Smrg * src/libbacktrace/Makefile.in: New file. 4974b1e83836Smrg * src/libbacktrace/backtrace-rename.h: New file. 4975b1e83836Smrg * src/libbacktrace/backtrace-supported.h.in: New file. 4976b1e83836Smrg * src/libbacktrace/config.h.in: New file. 4977b1e83836Smrg * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace): 4978b1e83836Smrg New proc. 4979b1e83836Smrg * testsuite/20_util/stacktrace/entry.cc: New test. 4980b1e83836Smrg * testsuite/20_util/stacktrace/synopsis.cc: New test. 4981b1e83836Smrg * testsuite/20_util/stacktrace/version.cc: New test. 4982b1e83836Smrg 4983b1e83836Smrg2022-01-17 Jonathan Wakely <jwakely@redhat.com> 4984b1e83836Smrg 4985b1e83836Smrg * doc/xml/manual/status_cxx2020.xml: Use final C++20 option 4986b1e83836Smrg names. 4987b1e83836Smrg * doc/html/manual/status.html: Regenerate. 4988b1e83836Smrg 4989b1e83836Smrg2022-01-17 Jonathan Wakely <jwakely@redhat.com> 4990b1e83836Smrg 4991b1e83836Smrg PR libstdc++/103650 4992b1e83836Smrg * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS. 4993b1e83836Smrg * include/Makefile.in: Regenerate. 4994b1e83836Smrg * testsuite/17_intro/headers/c++1998/103650.cc: New test. 4995b1e83836Smrg 4996b1e83836Smrg2022-01-17 Matthias Kretz <m.kretz@gsi.de> 4997b1e83836Smrg 4998b1e83836Smrg * include/experimental/bits/simd.h (__floating_point_flags): Do 4999b1e83836Smrg not rely on the presence of the math_errhandling macro. 5000b1e83836Smrg 5001b1e83836Smrg2022-01-17 Jonathan Wakely <jwakely@redhat.com> 5002b1e83836Smrg 5003b1e83836Smrg * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename 5004b1e83836Smrg to qualified-id for dependent type. 5005b1e83836Smrg 5006b1e83836Smrg2022-01-17 Jonathan Wakely <jwakely@redhat.com> 5007b1e83836Smrg 5008b1e83836Smrg * doc/xml/manual/status_cxx2020.xml: Update. 5009b1e83836Smrg * doc/html/manual/status.html: Regenerate. 5010b1e83836Smrg 5011b1e83836Smrg2022-01-17 Jonathan Wakely <jwakely@redhat.com> 5012b1e83836Smrg Thomas Rodgers <trodgers@redhat.com> 5013b1e83836Smrg 5014b1e83836Smrg * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr): 5015b1e83836Smrg New macro. 5016b1e83836Smrg (_Sp_atomic): New class template. 5017b1e83836Smrg (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial 5018b1e83836Smrg specializations. 5019b1e83836Smrg * include/bits/shared_ptr_base.h (__shared_count, __weak_count) 5020b1e83836Smrg (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend. 5021b1e83836Smrg * include/std/version (__cpp_lib_atomic_shared_ptr): New macro. 5022b1e83836Smrg * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New 5023b1e83836Smrg test. 5024b1e83836Smrg * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test. 5025b1e83836Smrg 5026b1e83836Smrg2022-01-15 Matthias Kretz <m.kretz@gsi.de> 5027b1e83836Smrg 5028b1e83836Smrg * include/experimental/bits/simd.h: Move feature detection bools 5029b1e83836Smrg and add __have_avx512bitalg, __have_avx512vbmi2, 5030b1e83836Smrg __have_avx512vbmi, __have_avx512ifma, __have_avx512cd, 5031b1e83836Smrg __have_avx512vnni, __have_avx512vpopcntdq. 5032b1e83836Smrg (__detail::__machine_flags): New function which returns a unique 5033b1e83836Smrg uint64 depending on relevant -m and -f flags. 5034b1e83836Smrg (__detail::__odr_helper): New type alias for either an anonymous 5035b1e83836Smrg type or a type specialized with the __machine_flags number. 5036b1e83836Smrg (_SimdIntOperators): Change template parameters from _Impl to 5037b1e83836Smrg _Tp, _Abi because _Impl now has an __odr_helper parameter which 5038b1e83836Smrg may be _OdrEnforcer from the anonymous namespace, which makes 5039b1e83836Smrg for a bad base class. 5040b1e83836Smrg (many): Either add __odr_helper template parameter or mark as 5041b1e83836Smrg always_inline. 5042b1e83836Smrg * include/experimental/bits/simd_detail.h: Add defines for 5043b1e83836Smrg AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD, 5044b1e83836Smrg AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT. 5045b1e83836Smrg * include/experimental/bits/simd_builtin.h: Add __odr_helper 5046b1e83836Smrg template parameter or mark as always_inline. 5047b1e83836Smrg * include/experimental/bits/simd_fixed_size.h: Ditto. 5048b1e83836Smrg * include/experimental/bits/simd_math.h: Ditto. 5049b1e83836Smrg * include/experimental/bits/simd_scalar.h: Ditto. 5050b1e83836Smrg * include/experimental/bits/simd_neon.h: Add __odr_helper 5051b1e83836Smrg template parameter. 5052b1e83836Smrg * include/experimental/bits/simd_ppc.h: Ditto. 5053b1e83836Smrg * include/experimental/bits/simd_x86.h: Ditto. 5054b1e83836Smrg 5055b1e83836Smrg2022-01-14 Uroš Bizjak <ubizjak@gmail.com> 5056b1e83836Smrg 5057b1e83836Smrg * testsuite/22_locale/numpunct/members/char/3.cc: 5058b1e83836Smrg Require pt_PT locale instead of nl_NL. 5059b1e83836Smrg (test02): Use pt_PT locale instead of nl_NL. 5060b1e83836Smrg 5061b1e83836Smrg2022-01-14 Jonathan Wakely <jwakely@redhat.com> 5062b1e83836Smrg 5063b1e83836Smrg PR libstdc++/91260 5064b1e83836Smrg PR libstdc++/91383 5065b1e83836Smrg PR libstdc++/95065 5066b1e83836Smrg * include/backward/binders.h (bind1st, bind2nd): Add deprecated 5067b1e83836Smrg attribute. 5068b1e83836Smrg * include/bits/refwrap.h (_Maybe_unary_or_binary_function): 5069b1e83836Smrg Disable deprecated warnings for base classes. 5070b1e83836Smrg (_Reference_wrapper_base): Likewise. 5071b1e83836Smrg * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise. 5072b1e83836Smrg * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise. 5073b1e83836Smrg * include/bits/stl_function.h (unary_function, binary_function): 5074b1e83836Smrg Add deprecated attribute. 5075b1e83836Smrg (unary_negate, not1, binary_negate, not2, ptr_fun) 5076b1e83836Smrg (pointer_to_unary_function, pointer_to_binary_function) 5077b1e83836Smrg (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t) 5078b1e83836Smrg (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t) 5079b1e83836Smrg (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated 5080b1e83836Smrg attributes. 5081b1e83836Smrg * include/bits/stl_iterator.h: Disable deprecated warnings for 5082b1e83836Smrg std::iterator base classes. 5083b1e83836Smrg * include/bits/stl_iterator_base_types.h (iterator): Add 5084b1e83836Smrg deprecated attribute. 5085b1e83836Smrg * include/bits/stl_map.h (map::value_compare): Disable 5086b1e83836Smrg deprecated warnings for base class. 5087b1e83836Smrg * include/bits/stl_multimap.h (multimap::value_compare): 5088b1e83836Smrg Likewise. 5089b1e83836Smrg * include/bits/stl_raw_storage_iter.h (raw_storage_iterator): 5090b1e83836Smrg Add deprecated attribute. 5091b1e83836Smrg * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise. 5092b1e83836Smrg * include/bits/stream_iterator.h: Disable deprecated warnings. 5093b1e83836Smrg * include/bits/streambuf_iterator.h: Likewise. 5094b1e83836Smrg * include/ext/bitmap_allocator.h: Remove unary_function base 5095b1e83836Smrg classes. 5096b1e83836Smrg * include/ext/functional: Disable deprecated warnings. 5097b1e83836Smrg * include/ext/rope: Likewise. 5098b1e83836Smrg * include/ext/throw_allocator.h: Likewise. 5099b1e83836Smrg * include/std/type_traits (result_of): Add deprecated attribute. 5100b1e83836Smrg * include/tr1/functional: Disable deprecated warnings. 5101b1e83836Smrg * include/tr1/functional_hash.h: Likewise. 5102b1e83836Smrg * testsuite/20_util/function_objects/binders/1.cc: Add 5103b1e83836Smrg -Wno-disable-deprecations. 5104b1e83836Smrg * testsuite/20_util/function_objects/binders/3113.cc: Likewise. 5105b1e83836Smrg * testsuite/20_util/function_objects/constexpr.cc: Add 5106b1e83836Smrg dg-warning. 5107b1e83836Smrg * testsuite/20_util/raw_storage_iterator/base.cc: Likewise. 5108b1e83836Smrg * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise. 5109b1e83836Smrg * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc: 5110b1e83836Smrg Likewise. 5111b1e83836Smrg * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc: 5112b1e83836Smrg Likewise. 5113b1e83836Smrg * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc: 5114b1e83836Smrg Likewise. 5115b1e83836Smrg * testsuite/20_util/reference_wrapper/24803.cc: 5116b1e83836Smrg Likewise. 5117b1e83836Smrg * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for 5118b1e83836Smrg C++20 and check for absence of nested types. 5119b1e83836Smrg * testsuite/20_util/shared_ptr/comparison/less.cc: Remove 5120b1e83836Smrg std::binary_function base class. 5121b1e83836Smrg * testsuite/20_util/temporary_buffer.cc: Add dg-warning. 5122b1e83836Smrg * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove 5123b1e83836Smrg std::iterator base class. 5124b1e83836Smrg * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc: 5125b1e83836Smrg Likewise. 5126b1e83836Smrg * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc: 5127b1e83836Smrg Likewise. 5128b1e83836Smrg * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc: 5129b1e83836Smrg Likewise. 5130b1e83836Smrg * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc: 5131b1e83836Smrg Likewise. 5132b1e83836Smrg * testsuite/24_iterators/istreambuf_iterator/92285.cc: 5133b1e83836Smrg Likewise. 5134b1e83836Smrg * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc: 5135b1e83836Smrg Likewise. 5136b1e83836Smrg * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc: 5137b1e83836Smrg Likewise. 5138b1e83836Smrg * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc: 5139b1e83836Smrg Likewise. 5140b1e83836Smrg * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc: 5141b1e83836Smrg Likewise. 5142b1e83836Smrg * testsuite/25_algorithms/copy/34595.cc: 5143b1e83836Smrg Likewise. 5144b1e83836Smrg * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function 5145b1e83836Smrg base class. 5146b1e83836Smrg * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc: 5147b1e83836Smrg Disable deprecated warnings. 5148b1e83836Smrg * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc: 5149b1e83836Smrg Likewise. 5150b1e83836Smrg * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc: 5151b1e83836Smrg Likewise. 5152b1e83836Smrg * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc: 5153b1e83836Smrg Likewise. 5154b1e83836Smrg * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc: 5155b1e83836Smrg Likewise. 5156b1e83836Smrg * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc: 5157b1e83836Smrg Likewise. 5158b1e83836Smrg * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc: 5159b1e83836Smrg Likewise. 5160b1e83836Smrg * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc: 5161b1e83836Smrg Likewise. 5162b1e83836Smrg * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc: 5163b1e83836Smrg Likewise. 5164b1e83836Smrg * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc: 5165b1e83836Smrg Likewise. 5166b1e83836Smrg * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc: 5167b1e83836Smrg Likewise. 5168b1e83836Smrg * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc: 5169b1e83836Smrg Likewise. 5170b1e83836Smrg * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc: 5171b1e83836Smrg Likewise. 5172b1e83836Smrg * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc: 5173b1e83836Smrg Likewise. 5174b1e83836Smrg * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc: 5175b1e83836Smrg Likewise. 5176b1e83836Smrg * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc: 5177b1e83836Smrg Likewise. 5178b1e83836Smrg * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc: 5179b1e83836Smrg Likewise. 5180b1e83836Smrg * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc: 5181b1e83836Smrg Likewise. 5182b1e83836Smrg * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc: 5183b1e83836Smrg Likewise. 5184b1e83836Smrg * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc: 5185b1e83836Smrg Likewise. 5186b1e83836Smrg * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc: 5187b1e83836Smrg Likewise. 5188b1e83836Smrg * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc: 5189b1e83836Smrg Likewise. 5190b1e83836Smrg * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc: 5191b1e83836Smrg Likewise. 5192b1e83836Smrg * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc: 5193b1e83836Smrg Likewise. 5194b1e83836Smrg * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc: 5195b1e83836Smrg Likewise. 5196b1e83836Smrg * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc: 5197b1e83836Smrg Likewise. 5198b1e83836Smrg * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc: 5199b1e83836Smrg Likewise. 5200b1e83836Smrg * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc: 5201b1e83836Smrg Likewise. 5202b1e83836Smrg * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc: 5203b1e83836Smrg Likewise. 5204b1e83836Smrg * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc: 5205b1e83836Smrg Likewise. 5206b1e83836Smrg * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc: 5207b1e83836Smrg Likewise. 5208b1e83836Smrg * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc: 5209b1e83836Smrg Likewise. 5210b1e83836Smrg * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc: 5211b1e83836Smrg Likewise. 5212b1e83836Smrg * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc: 5213b1e83836Smrg Likewise. 5214b1e83836Smrg * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc: 5215b1e83836Smrg Likewise. 5216b1e83836Smrg * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc: 5217b1e83836Smrg Likewise. 5218b1e83836Smrg * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc: 5219b1e83836Smrg Likewise. 5220b1e83836Smrg * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc: 5221b1e83836Smrg Likewise. 5222b1e83836Smrg * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc: 5223b1e83836Smrg Likewise. 5224b1e83836Smrg * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc: 5225b1e83836Smrg Likewise. 5226b1e83836Smrg * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc: 5227b1e83836Smrg Likewise. 5228b1e83836Smrg * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc: 5229b1e83836Smrg Likewise. 5230b1e83836Smrg * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc: 5231b1e83836Smrg Likewise. 5232b1e83836Smrg * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc: 5233b1e83836Smrg Likewise. 5234b1e83836Smrg * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc: 5235b1e83836Smrg Likewise. 5236b1e83836Smrg * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc: 5237b1e83836Smrg Likewise. 5238b1e83836Smrg * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc: 5239b1e83836Smrg Likewise. 5240b1e83836Smrg * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc: 5241b1e83836Smrg Likewise. 5242b1e83836Smrg * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add 5243b1e83836Smrg dg-warning. 5244b1e83836Smrg * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc: 5245b1e83836Smrg Likewise. 5246b1e83836Smrg * testsuite/ext/pb_ds/example/priority_queue_split_join.cc: 5247b1e83836Smrg Likewise. 5248b1e83836Smrg * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc: 5249b1e83836Smrg Disable deprecated warnings. 5250b1e83836Smrg * testsuite/tr1/6_containers/hash/requirements/base_classes.cc: 5251b1e83836Smrg Likewise. 5252b1e83836Smrg * testsuite/util/regression/trait/erase_if_fn.hpp: Remove 5253b1e83836Smrg std::unary_function base classes. 5254b1e83836Smrg * testsuite/util/testsuite_iterators.h (output_iterator_wrapper): 5255b1e83836Smrg Remove std::iterator base classes. 5256b1e83836Smrg 5257b1e83836Smrg2022-01-14 Jonathan Wakely <jwakely@redhat.com> 5258b1e83836Smrg 5259b1e83836Smrg * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type): 5260b1e83836Smrg Correct type of macro value. 5261b1e83836Smrg (shared_ptr): Add additional friend declarations. 5262b1e83836Smrg (make_shared, allocate_shared): Constrain existing overloads and 5263b1e83836Smrg remove static_assert. 5264b1e83836Smrg * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite): 5265b1e83836Smrg New macro. 5266b1e83836Smrg (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial 5267b1e83836Smrg specialization for use with make_shared_for_overwrite. 5268b1e83836Smrg (__cpp_lib_shared_ptr_arrays): Update value for C++20. 5269b1e83836Smrg (_Sp_counted_array_base): New class template. 5270b1e83836Smrg (_Sp_counted_array): New class template. 5271b1e83836Smrg (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)): 5272b1e83836Smrg New constructor for allocating shared arrays. 5273b1e83836Smrg (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise. 5274b1e83836Smrg * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct 5275b1e83836Smrg type. 5276b1e83836Smrg (__cpp_lib_shared_ptr_arrays): Update value for C++20. 5277b1e83836Smrg (__cpp_lib_smart_ptr_for_overwrite): New macro. 5278b1e83836Smrg * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust 5279b1e83836Smrg expected errors. 5280b1e83836Smrg * testsuite/20_util/shared_ptr/creation/array.cc: New test. 5281b1e83836Smrg * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test. 5282b1e83836Smrg * testsuite/20_util/shared_ptr/creation/version.cc: New test. 5283b1e83836Smrg * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check 5284b1e83836Smrg feature test macro. Test non-trivial default-initialization. 5285b1e83836Smrg 5286b1e83836Smrg2022-01-14 Jonathan Wakely <jwakely@redhat.com> 5287b1e83836Smrg 5288b1e83836Smrg * include/bits/stl_construct.h (_Construct, _Construct_novalue): 5289b1e83836Smrg Also cast away cv-qualifiers when converting pointer to void. 5290b1e83836Smrg * testsuite/20_util/allocator/void.cc: Test construct function 5291b1e83836Smrg with cv-qualified types. 5292b1e83836Smrg 5293b1e83836Smrg2022-01-14 Jonathan Wakely <jwakely@redhat.com> 5294b1e83836Smrg 5295b1e83836Smrg PR libstdc++/103992 5296b1e83836Smrg * include/bits/stl_iterator.h (common_iterator): Use 5297b1e83836Smrg std::construct_at instead of placement new. 5298b1e83836Smrg * testsuite/24_iterators/common_iterator/1.cc: Check copy 5299b1e83836Smrg construction is usable in constant expressions. 5300b1e83836Smrg 5301b1e83836Smrg2022-01-14 Jonathan Wakely <jwakely@redhat.com> 5302b1e83836Smrg 5303b1e83836Smrg * doc/xml/manual/status_cxx2011.xml: Document new tokens 5304b1e83836Smrg accepted by std::random_device constructor. 5305b1e83836Smrg * doc/html/manual/status.html: Regenerate. 5306b1e83836Smrg 5307b1e83836Smrg2022-01-12 Patrick Palka <ppalka@redhat.com> 5308b1e83836Smrg 5309b1e83836Smrg * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do 5310b1e83836Smrg directive. 5311b1e83836Smrg 5312b1e83836Smrg2022-01-12 Patrick Palka <ppalka@redhat.com> 5313b1e83836Smrg 5314b1e83836Smrg PR libstdc++/103955 5315b1e83836Smrg * src/c++17/floating_to_chars.cc (__floating_to_chars_hex): 5316b1e83836Smrg Track the excess precision separately from the effective 5317b1e83836Smrg precision. Avoid overflow in bounds check by splitting it into 5318b1e83836Smrg two checks. 5319b1e83836Smrg (__floating_to_chars_precision): Avoid overflow in bounds checks 5320b1e83836Smrg similarly. 5321b1e83836Smrg * testsuite/20_util/to_chars/103955.cc: New test. 5322b1e83836Smrg 5323b1e83836Smrg2022-01-11 Jonathan Wakely <jwakely@redhat.com> 5324b1e83836Smrg 5325b1e83836Smrg PR libstdc++/103726 5326b1e83836Smrg * include/Makefile.am: Install <source_location> for 5327b1e83836Smrg freestanding. 5328b1e83836Smrg * include/Makefile.in: Regenerate. 5329b1e83836Smrg * include/std/version (__cpp_lib_source_location): Define for 5330b1e83836Smrg freestanding. 5331b1e83836Smrg 5332b1e83836Smrg2022-01-11 Jonathan Wakely <jwakely@redhat.com> 5333b1e83836Smrg 5334b1e83836Smrg * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()): 5335b1e83836Smrg Add neoxcept (LWG 3593). 5336b1e83836Smrg 5337b1e83836Smrg2022-01-11 Jonathan Wakely <jwakely@redhat.com> 5338b1e83836Smrg 5339b1e83836Smrg * include/std/ranges (ranges::__detail::__box): Add constexpr to 5340b1e83836Smrg assignment operators (LWG 3572). 5341b1e83836Smrg * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a 5342b1e83836Smrg view that uses copyable-box. 5343b1e83836Smrg 5344b1e83836Smrg2022-01-11 Jonathan Wakely <jwakely@redhat.com> 5345b1e83836Smrg 5346b1e83836Smrg PR libstdc++/103726 5347b1e83836Smrg * include/Makefile.am: Install <coroutine> for freestanding. 5348b1e83836Smrg * include/Makefile.in: Regenerate. 5349b1e83836Smrg * include/std/coroutine: Adjust headers and preprocessor 5350b1e83836Smrg conditions. 5351b1e83836Smrg (__coroutine_traits_impl): Use concepts when available. 5352b1e83836Smrg [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define. 5353b1e83836Smrg 5354b1e83836Smrg2022-01-11 Jonathan Wakely <jwakely@redhat.com> 5355b1e83836Smrg 5356b1e83836Smrg * include/std/ostream (operator<<(basic_ostream&, charT)): 5357b1e83836Smrg Use unformatted input if no padding is needed. 5358b1e83836Smrg (operator<<(basic_ostream<char>&, char)): Likewise. 5359b1e83836Smrg 5360b1e83836Smrg2022-01-11 Jonathan Wakely <jwakely@redhat.com> 5361b1e83836Smrg 5362b1e83836Smrg PR libstdc++/103891 5363b1e83836Smrg * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS): 5364b1e83836Smrg Define. 5365b1e83836Smrg * include/std/variant (__cpp_lib_variant): Only define C++20 5366b1e83836Smrg value when the compiler is known to support conditionally 5367b1e83836Smrg trivial destructors. 5368b1e83836Smrg * include/std/version (__cpp_lib_variant): Likewise. 5369b1e83836Smrg 5370b1e83836Smrg2022-01-11 Jonathan Wakely <jwakely@redhat.com> 5371b1e83836Smrg 5372b1e83836Smrg * include/bits/stl_iterator.h (common_iterator): Add constexpr 5373b1e83836Smrg to all member functions (LWG 3574). 5374b1e83836Smrg * testsuite/24_iterators/common_iterator/1.cc: Evaluate some 5375b1e83836Smrg tests as constant expressions. 5376b1e83836Smrg * testsuite/24_iterators/common_iterator/2.cc: Likewise. 5377b1e83836Smrg 5378b1e83836Smrg2022-01-10 Jakub Jelinek <jakub@redhat.com> 5379b1e83836Smrg 5380b1e83836Smrg PR libstdc++/77760 5381b1e83836Smrg * include/bits/locale_facets_nonio.h (__time_get_state): New struct. 5382b1e83836Smrg (time_get::_M_extract_via_format): Declare new method with 5383b1e83836Smrg __time_get_state& as an extra argument. 5384b1e83836Smrg * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add 5385b1e83836Smrg __state argument, set various fields in it while parsing. Handle %j, 5386b1e83836Smrg %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour 5387b1e83836Smrg for %p immediately. Add a wrapper around the method without the 5388b1e83836Smrg __state argument for backwards compatibility. 5389b1e83836Smrg (_M_extract_num): Remove all __len == 4 special cases. 5390b1e83836Smrg (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero 5391b1e83836Smrg initialize __state, pass it to _M_extract_via_format and finalize it 5392b1e83836Smrg at the end. 5393b1e83836Smrg (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068, 5394b1e83836Smrg 69-99 to 1969-1999. For 3-4 digit parsed years use that as year. 5395b1e83836Smrg (get): If do_get isn't overloaded from the locale_facets_nonio.tcc 5396b1e83836Smrg version, don't call do_get but call _M_extract_via_format instead to 5397b1e83836Smrg pass around state. 5398b1e83836Smrg * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format 5399b1e83836Smrg with extra __time_get_state and __time_get_state::_M_finalize_state. 5400b1e83836Smrg * src/c++98/locale_facets.cc (is_leap, day_of_the_week, 5401b1e83836Smrg day_of_the_year): New functions in anon namespace. 5402b1e83836Smrg (mon_yday): New var in anon namespace. 5403b1e83836Smrg (__time_get_state::_M_finalize_state): Define. 5404b1e83836Smrg * testsuite/22_locale/time_get/get/char/4.cc: New test. 5405b1e83836Smrg * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test. 5406b1e83836Smrg * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197 5407b1e83836Smrg as year 197AD instead of error. 5408b1e83836Smrg * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as 5409b1e83836Smrg year 2001 instead of error. 5410b1e83836Smrg * testsuite/22_locale/time_get/get_year/char/6.cc: New test. 5411b1e83836Smrg * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse 5412b1e83836Smrg 197 as year 197AD instead of error. 5413b1e83836Smrg * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse 5414b1e83836Smrg 1 as year 2001 instead of error. 5415b1e83836Smrg * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test. 5416b1e83836Smrg 5417b1e83836Smrg2022-01-10 Jonathan Wakely <jwakely@redhat.com> 5418b1e83836Smrg 5419b1e83836Smrg PR libstdc++/103866 5420b1e83836Smrg * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do 5421b1e83836Smrg nothing for freestanding builds. 5422b1e83836Smrg (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS. 5423b1e83836Smrg * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured 5424b1e83836Smrg with --without-headers. Do not use GCC_HEADER_STDINT for 5425b1e83836Smrg freestanding builds. 5426b1e83836Smrg * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding 5427b1e83836Smrg for freestanding builds. 5428b1e83836Smrg * configure: Regenerate. 5429b1e83836Smrg * Makefile.in: Regenerate. 5430b1e83836Smrg * doc/Makefile.in: Regenerate. 5431b1e83836Smrg * include/Makefile.in: Regenerate. 5432b1e83836Smrg * libsupc++/Makefile.in: Regenerate. 5433b1e83836Smrg * po/Makefile.in: Regenerate. 5434b1e83836Smrg * python/Makefile.in: Regenerate. 5435b1e83836Smrg * src/Makefile.in: Regenerate. 5436b1e83836Smrg * src/c++11/Makefile.in: Regenerate. 5437b1e83836Smrg * src/c++17/Makefile.in: Regenerate. 5438b1e83836Smrg * src/c++20/Makefile.in: Regenerate. 5439b1e83836Smrg * src/c++98/Makefile.in: Regenerate. 5440b1e83836Smrg * src/filesystem/Makefile.in: Regenerate. 5441b1e83836Smrg * testsuite/Makefile.in: Regenerate. 5442b1e83836Smrg 5443b1e83836Smrg2022-01-10 Jonathan Wakely <jwakely@redhat.com> 5444b1e83836Smrg 5445b1e83836Smrg * testsuite/28_regex/algorithms/regex_replace/char/103664.cc: 5446b1e83836Smrg Add dg-timeout-factor directive. 5447b1e83836Smrg * testsuite/28_regex/basic_regex/84110.cc: Likewise. 5448b1e83836Smrg * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise. 5449b1e83836Smrg * testsuite/28_regex/match_results/102667.cc: Likewise. 5450b1e83836Smrg 5451b1e83836Smrg2022-01-10 Jonathan Wakely <jwakely@redhat.com> 5452b1e83836Smrg 5453b1e83836Smrg * doc/xml/manual/using.xml: Update documentation around default 5454b1e83836Smrg -std option. 5455b1e83836Smrg * doc/html/*: Regenerate. 5456b1e83836Smrg 5457b1e83836Smrg2022-01-10 Jonathan Wakely <jwakely@redhat.com> 5458b1e83836Smrg 5459b1e83836Smrg PR libstdc++/100017 5460b1e83836Smrg * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++. 5461b1e83836Smrg * src/c++17/Makefile.in: Regenerate. 5462b1e83836Smrg 5463b1e83836Smrg2022-01-09 Sandra Loosemore <sandra@codesourcery.com> 5464b1e83836Smrg 5465b1e83836Smrg * testsuite/18_support/type_info/constexpr.cc: Add explicit 5466b1e83836Smrg -fdelete-null-pointer-checks option. 5467b1e83836Smrg 5468b1e83836Smrg2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu> 5469b1e83836Smrg Jonathan Wakely <jwakely@redhat.com> 5470b1e83836Smrg 5471b1e83836Smrg PR libstdc++/103853 5472b1e83836Smrg * include/bits/forward_list.tcc (forward_list::merge): Check for 5473b1e83836Smrg self-merge. 5474b1e83836Smrg * testsuite/23_containers/forward_list/operations/merge.cc: New test. 5475b1e83836Smrg 5476b1e83836Smrg2022-01-06 Jonathan Wakely <jwakely@redhat.com> 5477b1e83836Smrg 5478b1e83836Smrg * include/bits/regex.h (basic_regex, match_results): Qualify 5479b1e83836Smrg name in friend declaration, to work around Clang bug. 5480b1e83836Smrg 5481a448f87cSmrg2022-01-06 Jonathan Wakely <jwakely@redhat.com> 5482a448f87cSmrg 5483a448f87cSmrg * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor. 5484a448f87cSmrg 5485a448f87cSmrg2022-01-06 Jonathan Wakely <jwakely@redhat.com> 5486a448f87cSmrg 5487a448f87cSmrg PR libstdc++/103911 5488a448f87cSmrg * include/std/charconv (__from_chars_alpha_to_num): Return 5489a448f87cSmrg char instead of unsigned char. Change invalid return value to 5490a448f87cSmrg 127 instead of using numeric trait. 5491a448f87cSmrg (__from_chars_alnum): Fix comment. Do not use std::isdigit. 5492a448f87cSmrg Change type of variable to char. 5493a448f87cSmrg 5494b1e83836Smrg2022-01-05 François Dumont <fdumont@gcc.gnu.org> 5495a448f87cSmrg 5496b1e83836Smrg PR libstdc++/68303 5497b1e83836Smrg * include/bits/hashtable_policy.h 5498b1e83836Smrg (_Hashtable_hash_traits<_Hash>): New. 5499b1e83836Smrg (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New. 5500b1e83836Smrg (_Hashtable_base<>::_M_key_equals): New. 5501b1e83836Smrg (_Hashtable_base<>::_M_equals): Use latter. 5502b1e83836Smrg (_Hashtable_base<>::_M_key_equals_tr): New. 5503b1e83836Smrg (_Hashtable_base<>::_M_equals_tr): Use latter. 5504b1e83836Smrg * include/bits/hashtable.h 5505b1e83836Smrg (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits. 5506b1e83836Smrg (_Hashtable<>::find): Loop through elements to look for key if size is lower 5507b1e83836Smrg than __small_size_threshold(). 5508b1e83836Smrg (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise. 5509b1e83836Smrg (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise. 5510b1e83836Smrg (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New. 5511b1e83836Smrg (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter. 5512b1e83836Smrg (_Hashtable<>::_M_find_before_node(const key_type&)): New. 5513b1e83836Smrg (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter. 5514b1e83836Smrg (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise. 5515b1e83836Smrg * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>. 5516b1e83836Smrg * testsuite/util/testsuite_performance.h 5517b1e83836Smrg (report_performance): Use 9 width to display memory. 5518b1e83836Smrg * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc: 5519b1e83836Smrg New performance test case. 5520a448f87cSmrg 5521a448f87cSmrg2022-01-05 Jonathan Wakely <jwakely@redhat.com> 5522a448f87cSmrg 5523b1e83836Smrg PR libstdc++/103919 5524b1e83836Smrg * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)): 5525b1e83836Smrg Relax constraints on string_view parameter. 5526b1e83836Smrg * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)): 5527b1e83836Smrg Likewise. 5528b1e83836Smrg * testsuite/21_strings/basic_string/cons/char/103919.cc: New test. 5529a448f87cSmrg 5530a448f87cSmrg2022-01-05 Jonathan Wakely <jwakely@redhat.com> 5531a448f87cSmrg 5532b1e83836Smrg * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for 5533b1e83836Smrg ARM EABI. 5534b1e83836Smrg * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define. 5535b1e83836Smrg * include/std/version (__cpp_lib_constexpr_typeinfo): Define. 5536b1e83836Smrg * libsupc++/tinfo.cc: Add #error to ensure non-inline definition 5537b1e83836Smrg is emitted. 5538b1e83836Smrg (type_info::__equal): Define alias symbol. 5539b1e83836Smrg * libsupc++/typeinfo (type_info::before): Combine different 5540b1e83836Smrg implementations into one. 5541b1e83836Smrg (type_info::operator==): Likewise. Use address equality for 5542b1e83836Smrg constant evaluation. Call __equal for targets that require the 5543b1e83836Smrg definition to be non-inline. 5544b1e83836Smrg * testsuite/18_support/type_info/constexpr.cc: New test. 5545b1e83836Smrg 5546b1e83836Smrg2022-01-05 Jonathan Wakely <jwakely@redhat.com> 5547b1e83836Smrg 5548b1e83836Smrg * src/c++11/cxx11-ios_failure.cc (io_error_category): Define 5549b1e83836Smrg class and virtual functions as 'final'. 5550b1e83836Smrg (io_category_instance): Use constinit union to make the object 5551b1e83836Smrg immortal. 5552b1e83836Smrg * src/c++11/future.cc (future_error_category): Define class and 5553b1e83836Smrg virtual functions as 'final'. 5554b1e83836Smrg (future_category_instance): Use constinit union. 5555b1e83836Smrg 5556b1e83836Smrg2022-01-05 Jonathan Wakely <jwakely@redhat.com> 5557b1e83836Smrg 5558b1e83836Smrg * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip 5559b1e83836Smrg versioned namespace from the type name that is printed. 5560b1e83836Smrg 5561b1e83836Smrg2022-01-05 Jonathan Wakely <jwakely@redhat.com> 5562b1e83836Smrg 5563b1e83836Smrg * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New 5564b1e83836Smrg printer for std::regex NFA states. 5565b1e83836Smrg 5566b1e83836Smrg2022-01-05 Jonathan Wakely <jwakely@redhat.com> 5567b1e83836Smrg 5568b1e83836Smrg * testsuite/23_containers/forward_list/operations/1.cc: Fill in 5569b1e83836Smrg placeholders in comments. 5570b1e83836Smrg * testsuite/23_containers/forward_list/operations/2.cc: 5571b1e83836Smrg Likewise. 5572b1e83836Smrg * testsuite/23_containers/forward_list/operations/3.cc: 5573b1e83836Smrg Likewise. 5574b1e83836Smrg * testsuite/23_containers/forward_list/operations/4.cc: 5575b1e83836Smrg Likewise. 5576b1e83836Smrg * testsuite/23_containers/forward_list/operations/5.cc: 5577b1e83836Smrg Likewise. 5578b1e83836Smrg * testsuite/23_containers/forward_list/operations/6.cc: 5579b1e83836Smrg Likewise. 5580b1e83836Smrg * testsuite/23_containers/forward_list/operations/7.cc: 5581b1e83836Smrg Likewise. 5582b1e83836Smrg 5583b1e83836Smrg2022-01-05 Jonathan Wakely <jwakely@redhat.com> 5584b1e83836Smrg 5585b1e83836Smrg PR libstdc++/103848 5586b1e83836Smrg * include/bits/stl_deque.h (operator-): Do not use 0 as null 5587b1e83836Smrg pointer constant. 5588b1e83836Smrg 5589b1e83836Smrg2022-01-05 Jonathan Wakely <jwakely@redhat.com> 5590b1e83836Smrg 5591b1e83836Smrg * include/bits/alloc_traits.h (allocator_traits<allocator<void>>): 5592b1e83836Smrg Use std::_Construct for construct. 5593b1e83836Smrg 5594a448f87cSmrg2022-01-05 Jonathan Wakely <jwakely@redhat.com> 5595a448f87cSmrg 5596a448f87cSmrg PR libstdc++/103877 5597a448f87cSmrg * doc/xml/faq.xml: Add '-x c++' to preprocessor command. 5598a448f87cSmrg * doc/html/faq.html: Regenerate. 5599a448f87cSmrg 5600a448f87cSmrg2022-01-05 Jonathan Wakely <jwakely@redhat.com> 5601a448f87cSmrg 5602b1e83836Smrg * include/bits/regex.h (__regex_algo_impl): Change __policy and 5603b1e83836Smrg __match_mode template parameters to be function parameters. 5604b1e83836Smrg (regex_match, regex_search): Pass policy and match mode as 5605b1e83836Smrg function arguments. 5606b1e83836Smrg * include/bits/regex.tcc (__regex_algo_impl): Change template 5607b1e83836Smrg parameters to function parameters. 5608b1e83836Smrg * include/bits/regex_compiler.h (_RegexTranslatorBase): Use 5609b1e83836Smrg 'if constexpr' for conditions using template parameters. 5610b1e83836Smrg (_RegexTranslator): Likewise. 5611b1e83836Smrg * include/bits/regex_executor.tcc (_Executor::_M_handle_accept): 5612b1e83836Smrg Likewise. 5613b1e83836Smrg * testsuite/util/testsuite_regex.h (regex_match_debug) 5614b1e83836Smrg (regex_search_debug): Move template arguments to function 5615b1e83836Smrg arguments. 5616a448f87cSmrg 5617a448f87cSmrg2022-01-05 Jonathan Wakely <jwakely@redhat.com> 5618a448f87cSmrg 5619b1e83836Smrg * testsuite/util/testsuite_regex.h (regex_match_debug): Compare 5620b1e83836Smrg results even if the match failed. 5621a448f87cSmrg 5622a448f87cSmrg2022-01-05 Jonathan Wakely <jwakely@redhat.com> 5623a448f87cSmrg 5624b1e83836Smrg * include/bits/regex_compiler.tcc: Adjust all calls to 5625b1e83836Smrg __throw_regex_error. 5626b1e83836Smrg * include/bits/regex_error.h (__throw_regex_error): Add noreturn 5627b1e83836Smrg attribute. 5628b1e83836Smrg * include/bits/regex_scanner.tcc: Likewise. 5629b1e83836Smrg * src/c++11/regex.cc (desc): New helper function. 5630b1e83836Smrg (regex_error::regex_error(error_type)): Use desc to get a string 5631b1e83836Smrg corresponding to the error code. 56324d5abbe8Smrg 563348fb7bfaSmrg 5634b1e83836SmrgCopyright (C) 2022 Free Software Foundation, Inc. 56354fee23f9Smrg 563648fb7bfaSmrgCopying and distribution of this file, with or without modification, 563748fb7bfaSmrgare permitted in any medium without royalty provided the copyright 563848fb7bfaSmrgnotice and this notice are preserved. 5639