]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
Daily bump.
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2023-05-22 Matthias Kretz <m.kretz@gsi.de>
2
3 * include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
4 __infn into #ifdef'ed block.
5 * testsuite/experimental/simd/tests/fpclassify.cc: Declare
6 constants only when used.
7 * testsuite/experimental/simd/tests/frexp.cc: Likewise.
8 * testsuite/experimental/simd/tests/logarithm.cc: Likewise.
9 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
10 Likewise.
11 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
12 Move totest and expect1 into #ifdef'ed block.
13
14 2023-05-19 Gerald Pfeifer <gerald@pfeifer.com>
15
16 * doc/xml/manual/strings.xml: Move lafstern.org reference to https.
17 * doc/html/manual/strings.html: Regenerate.
18
19 2023-05-17 Jakub Jelinek <jakub@redhat.com>
20
21 PR libstdc++/109883
22 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc: New test.
23
24 2023-05-17 Jakub Jelinek <jakub@redhat.com>
25
26 PR libstdc++/109883
27 * include/c_global/cmath (atan2, fmod, pow): Move
28 __gnu_cxx::__promote_2 using templates after _Float{16,32,64,128} and
29 __gnu_cxx::__bfloat16_t overloads.
30 (copysign, fdim, fmax, fmin, hypot, nextafter, remainder, remquo):
31 Likewise.
32 (fma): Move __gnu_cxx::__promote_3 using template after
33 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
34
35 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
36
37 * testsuite/18_support/headers/limits/synopsis.cc: Uncomment
38 checks for float_round_style and float_denorm_style.
39
40 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
41
42 * include/bits/c++config: Add system_header pragma.
43
44 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
45
46 * include/std/expected (expected::and_then, expected::or_else)
47 (expected::transform, expected::transform_error): Fix exception
48 specifications as per LWG 3877.
49 (expected<void, E>::and_then, expected<void, E>::transform):
50 Likewise.
51 * testsuite/20_util/expected/lwg3877.cc: New test.
52
53 2023-05-17 Ken Matsui <kmatsui@cs.washington.edu>
54
55 * include/std/type_traits: Use __bool_constant instead of
56 integral_constant.
57
58 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
59
60 * configure: Regenerate.
61
62 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
63
64 PR libstdc++/109741
65 * acinclude.m4 (GLIBCXX_CHECK_ALIGNAS_CACHELINE): Define.
66 * config.h.in: Regenerate.
67 * configure: Regenerate.
68 * configure.ac: Use GLIBCXX_CHECK_ALIGNAS_CACHELINE.
69 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex): Do not
70 align lock table if not supported. use __GCC_DESTRUCTIVE_SIZE
71 instead of hardcoded 64.
72
73 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
74
75 * acinclude.m4 (GLIBCXX_USE_C99): Check for isblank in C++11
76 mode and define _GLIBCXX_USE_C99_CTYPE. Check for <fenv.h>
77 functions in C++11 mode and define _GLIBCXX_USE_C99_FENV.
78 * config.h.in: Regenerate.
79 * configure: Regenerate.
80 * include/c_compatibility/fenv.h: Check _GLIBCXX_USE_C99_FENV
81 instead of _GLIBCXX_USE_C99_FENV_TR1.
82 * include/c_global/cfenv: Likewise.
83 * include/c_global/cctype: Check _GLIBCXX_USE_C99_CTYPE instead
84 of _GLIBCXX_USE_C99_CTYPE_TR1.
85
86 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
87
88 * acinclude.m4 (GLIBCXX_USE_C99): Check for <stdint.h> types in
89 C++11 mode and define _GLIBCXX_USE_C99_STDINT. Check for
90 <inttypes.h> features in C++11 mode and define
91 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T.
92 * config.h.in: Regenerate.
93 * configure: Regenerate.
94 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
95 * include/bits/chrono.h: Check _GLIBCXX_USE_C99_STDINT instead
96 of _GLIBCXX_USE_C99_STDINT_TR1.
97 * include/c_compatibility/inttypes.h: Check
98 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T
99 instead of _GLIBCXX_USE_C99_INTTYPES_TR1 and
100 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
101 * include/c_compatibility/stdatomic.h: Check
102 _GLIBCXX_USE_C99_STDINT instead of _GLIBCXX_USE_C99_STDINT_TR1.
103 * include/c_compatibility/stdint.h: Likewise.
104 * include/c_global/cinttypes: Check _GLIBCXX_USE_C99_INTTYPES
105 and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T instead of
106 _GLIBCXX_USE_C99_INTTYPES_TR1 and
107 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
108 * include/c_global/cstdint: Check _GLIBCXX_USE_C99_STDINT
109 instead of _GLIBCXX_USE_C99_STDINT_TR1.
110 * include/std/atomic: Likewise.
111 * src/c++11/cow-stdexcept.cc: Likewise.
112 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
113 Likewise.
114 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
115 Likewise.
116
117 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
118
119 * acinclude.m4 (GLIBCXX_USE_C99): Check for complex inverse trig
120 functions in C++11 mode and define _GLIBCXX_USE_C99_COMPLEX_ARC.
121 * config.h.in: Regenerate.
122 * configure: Regenerate.
123 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macro.
124 * include/std/complex: Check _GLIBCXX_USE_C99_COMPLEX_ARC
125 instead of _GLIBCXX_USE_C99_COMPLEX_TR1.
126
127 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
128
129 * testsuite/ext/debug_allocator/check_deallocate_null.cc: Add
130 assertion to ensure expected exception is throw.
131
132 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
133
134 * testsuite/libstdc++-prettyprinters/chrono.cc: Only test
135 printer for chrono::zoned_time for cx11 ABI and tzdb effective
136 target.
137
138 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
139
140 * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Define
141 _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK in terms of _GLIBCXX_TSAN.
142 * configure: Regenerate.
143
144 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
145
146 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer
147 to check for nan, nanf, and nanl.
148 * configure: Regenerate.
149
150 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
151
152 * include/bits/char_traits.h (char_traits<char16_t>): Do not
153 depend on _GLIBCXX_USE_C99_STDINT_TR1.
154 (char_traits<char32_t>): Likewise.
155 * include/experimental/source_location: Likewise.
156
157 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
158
159 * include/std/atomic (atomic_int_least8_t, atomic_uint_least8_t)
160 (atomic_int_least16_t, atomic_uint_least16_t)
161 (atomic_int_least32_t, atomic_uint_least32_t)
162 (atomic_int_least64_t, atomic_uint_least64_t)
163 (atomic_int_fast16_t, atomic_uint_fast16_t)
164 (atomic_int_fast32_t, atomic_uint_fast32_t)
165 (atomic_int_fast64_t, atomic_uint_fast64_t)
166 (atomic_intmax_t, atomic_uintmax_t): Define unconditionally.
167 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Adjust.
168
169 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
170
171 * include/bits/algorithmfwd.h (shuffle): Do not depend on
172 _GLIBCXX_USE_C99_STDINT_TR1.
173 * include/bits/ranges_algo.h (shuffle): Likewise.
174 * include/bits/stl_algo.h (shuffle): Likewise.
175 * include/ext/random: Likewise.
176 * include/ext/throw_allocator.h (random_condition): Likewise.
177 * include/std/random: Likewise.
178 * src/c++11/cow-string-inst.cc: Likewise.
179 * src/c++11/random.cc: Likewise.
180
181 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
182
183 * testsuite/experimental/feat-cxx14.cc: Remove dependency on
184 _GLIBCXX_USE_C99_STDINT_TR1.
185
186 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
187
188 * testsuite/22_locale/locale/cons/unicode.cc: Remove dependency
189 on _GLIBCXX_USE_C99_STDINT_TR1.
190
191 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
192
193 * testsuite/21_strings/basic_string_view/typedefs.cc: Remove
194 dependency on _GLIBCXX_USE_C99_STDINT_TR1.
195 * testsuite/experimental/string_view/typedefs.cc: Likewise.
196
197 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
198
199 * src/c++17/floating_from_chars.cc [USE_STRTOD_FOR_FROM_CHARS]
200 (auto_locale, auto_ferounding): New class types.
201 (from_chars_impl): Use auto_locale and auto_ferounding.
202
203 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
204
205 PR libstdc++/109772
206 * include/std/chrono (hh_mm_ss::__fits): Remove variable
207 template.
208 (hh_mm_ss::__subseconds): Remove __fits from constraints.
209 * testsuite/std/time/hh_mm_ss/109772.cc: New test.
210 * testsuite/std/time/hh_mm_ss/1.cc: Adjust expected size for
211 hh_mm_ss<duration<int, std::pico>>.
212
213 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
214
215 * config/abi/pre/gnu.ver: Export basic_string::_S_allocate.
216 * include/bits/basic_ios.h: Add static assertion checking
217 traits_type::value_type.
218 * include/bits/basic_string.h: Likewise. Do not rebind
219 allocator, and add static assertion checking its value_type.
220 (basic_string::_Alloc_traits_impl): Remove class template.
221 (basic_string::_S_allocate): New static member function.
222 (basic_string::assign): Use _S_allocate.
223 * include/bits/basic_string.tcc (basic_string::_M_create)
224 (basic_string::reserve, basic_string::_M_replace): Likewise.
225 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc:
226 Disable for C++20 and later.
227 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
228 Likweise.
229
230 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
231
232 PR libstdc++/109758
233 * include/bits/std_abs.h (abs(__float128)): Handle negative NaN
234 and negative zero correctly.
235 * testsuite/26_numerics/headers/cmath/109758.cc: New test.
236
237 2023-05-10 François Dumont <fdumont@gcc.gnu.org>
238
239 * include/bits/hashtable_policy.h
240 (_NodeBuilder<>::_S_build): Use __node_ptr.
241 (_ReuseOrAllocNode<>): Use __node_ptr in place of __node_type*.
242 (_AllocNode<>): Likewise.
243 (_Equality<>::_M_equal): Remove const_iterator usages. Only preserved
244 to call std::is_permutation in the non-unique key implementation.
245 * include/bits/hashtable.h (_Hashtable<>::_M_update_begin()): Capture
246 _M_begin() once.
247 (_Hashtable<>::_M_bucket_begin(size_type)): Implement implicitly inline.
248 (_Hashtable<>::_M_insert_bucket_begin): Likewise.
249 (_Hashtable<>::_M_remove_bucket_begin): Likewise.
250 (_Hashtable<>::_M_compute_hash_code): Use __node_ptr rather than
251 const_iterator.
252 (_Hashtable<>::find): Likewise.
253 (_Hashtable<>::_M_emplace): Likewise.
254 (_Hashtable<>::_M_insert_unique): Likewise.
255
256 2023-05-09 Jonathan Wakely <jwakely@redhat.com>
257
258 * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter):
259 Print floating-point durations correctly.
260 (StdChronoTimePointPrinter): Support printing only the value,
261 not the type name. Uncomment handling for known clocks.
262 (StdChronoZonedTimePrinter): Remove type names from output.
263 (StdChronoCalendarPrinter): Fix hh_mm_ss member access.
264 (StdChronoTimeZonePrinter): Add equals sign to output.
265 * testsuite/libstdc++-prettyprinters/chrono.cc: New test.
266
267 2023-05-05 Alexandre Oliva <oliva@adacore.com>
268
269 * testsuite/20_util/from_chars/4.cc: Skip long double test06
270 on aarch64-vxworks.
271 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
272 aarch64-vxworks.
273
274 2023-05-04 Jonathan Wakely <jwakely@redhat.com>
275
276 * doc/xml/manual/abi.xml (abi.versioning.history): Document
277 libstdc++.so.6.0.32 and GLIBCXX_3.4.32 version.
278 * doc/html/manual/abi.html: Regenerate.
279
280 2023-05-04 Florian Weimer <fweimer@redhat.com>
281
282 * doc/xml/manual/abi.xml (abi.versioning.history): Add
283 GCC_7.0.0, GCC_9.0.0, GCC_11.0, GCC_12.0.0, GCC_13.0.0 for
284 libgcc_s.
285
286 2023-05-03 Jakub Jelinek <jakub@redhat.com>
287
288 * src/c++17/floating_from_chars.cc
289 (_ZSt10from_charsPKcS0_RDF128_St12chars_format): New alias to
290 _ZSt10from_charsPKcS0_Ru9__ieee128St12chars_format.
291 * src/c++17/floating_to_chars.cc (_ZSt8to_charsPcS_DF128_): New alias to
292 _ZSt8to_charsPcS_u9__ieee128.
293 (_ZSt8to_charsPcS_DF128_St12chars_format): New alias to
294 _ZSt8to_charsPcS_u9__ieee128St12chars_format.
295 (_ZSt8to_charsPcS_DF128_St12chars_formati): New alias to
296 _ZSt8to_charsPcS_u9__ieee128St12chars_formati.
297 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Updated.
298
299 2023-05-03 Jakub Jelinek <jakub@redhat.com>
300
301 * configure.host (abi_baseline_pair): Use powerpc64le-linux-gnu
302 rather than powerpc64-linux-gnu for powerpc64le*-linux*.
303 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Remove
304 _ZTI*DF128_, _ZTI*DF64x symbols and symbols in
305 GLIBCXX_IEEE128_3.4.{29,30,31} and CXXABI_IEEE128_1.3.13 symbol
306 versions.
307 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: New
308 file.
309
310 2023-05-03 Kefu Chai <kefu.chai@scylladb.com>
311 Jonathan Wakely <jwakely@redhat.com>
312
313 PR libstdc++/109703
314 * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
315 Initialize _M_string_length.
316
317 2023-05-02 Jakub Jelinek <jakub@redhat.com>
318
319 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
320 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
321 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
322 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
323 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
324 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
325 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
326 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
327
328 2023-05-02 Jakub Jelinek <jakub@redhat.com>
329
330 PR libstdc++/109694
331 * src/c++98/ios_init.cc: Add #pragma GCC diagnostic ignored for
332 -Wattribute-alias.
333
334 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
335
336 * include/bits/random.h (gamma_distribution): Add to the right
337 doxygen group.
338 (discrete_distribution, piecewise_constant_distribution)
339 (piecewise_linear_distribution): Create a new doxygen group and
340 fix the incomplete doxygen comments.
341 * include/bits/uniform_int_dist.h (uniform_int_distribution):
342 Add to doxygen group.
343
344 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
345
346 * include/bits/uses_allocator.h: Add missing @file comment.
347 * include/bits/regex.tcc: Remove stray doxygen comments.
348 * include/experimental/memory_resource: Likewise.
349 * include/std/bit: Tweak doxygen @cond comments.
350 * include/std/expected: Likewise.
351 * include/std/numbers: Likewise.
352
353 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
354
355 * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
356 from header paths.
357
358 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
359
360 * include/bits/move.h: Simplify opening/closing namespace std.
361
362 2023-04-28 Jakub Jelinek <jakub@redhat.com>
363
364 PR libstdc++/108969
365 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export
366 _ZSt21ios_base_library_initv.
367 * testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.32
368 symver and make it the latestp.
369 * src/c++98/ios_init.cc (ios_base_library_init): New alias.
370 * acinclude.m4 (libtool_VERSION): Change to 6:32:0.
371 * include/std/iostream: If init_priority attribute is supported
372 and _GLIBCXX_SYMVER_GNU, force undefined _ZSt21ios_base_library_initv
373 symbol into the object.
374 * configure: Regenerated.
375
376 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
377
378 * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
379 * include/std/format: Likewise.
380
381 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
382
383 * doc/doxygen/user.cfg.in (FORMULA_TRANSPARENT, DOT_FONTNAME)
384 (DOT_FONTSIZE, DOT_TRANSPARENT): Remove obsolete options.
385
386 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
387
388 * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
389 HTML docs.
390 * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
391 from doxygen docs.
392 * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
393 Likewise.
394 * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
395 Likewise.
396 * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
397 Likewise.
398 * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
399 (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
400 (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
401 (_DEFINE_BINARY_OPERATOR): Likewise.
402
403 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
404
405 * include/bits/memory_resource.h: Improve doxygen comments.
406 * include/std/memory_resource: Likewise.
407
408 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
409
410 PR libstdc++/40380
411 * include/bits/basic_string.h: Improve doxygen comments.
412 * include/bits/cow_string.h: Likewise.
413 * include/bits/forward_list.h: Likewise.
414 * include/bits/fs_dir.h: Likewise.
415 * include/bits/fs_path.h: Likewise.
416 * include/bits/quoted_string.h: Likewise.
417 * include/bits/stl_bvector.h: Likewise.
418 * include/bits/stl_map.h: Likewise.
419 * include/bits/stl_multimap.h: Likewise.
420 * include/bits/stl_multiset.h: Likewise.
421 * include/bits/stl_set.h: Likewise.
422 * include/bits/stl_vector.h: Likewise.
423 * include/bits/unordered_map.h: Likewise.
424 * include/bits/unordered_set.h: Likewise.
425 * include/std/filesystem: Likewise.
426 * include/std/iomanip: Likewise.
427
428 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
429
430 PR libstdc++/105081
431 * src/c++11/random.cc (__throw_syserr): New function.
432 (random_device::_M_init, random_device::_M_init_pretr1): Use new
433 function for bad tokens.
434 (random_device::_M_getval): Use new function for read errors.
435 * testsuite/util/testsuite_random.h (random_device_available):
436 Change catch handler to use std::system_error.
437
438 2023-04-24 Patrick Palka <ppalka@redhat.com>
439
440 * include/bits/max_size_type.h (__max_diff_type::operator>>=):
441 Fix propagation of sign bit.
442 * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
443 non-standard 'signed typedef-name'. Add some compile-time tests
444 for right-shifting a negative __max_diff_type value by more than
445 one.
446
447 2023-04-19 Patrick Palka <ppalka@redhat.com>
448 Jonathan Wakely <jwakely@redhat.com>
449
450 PR c++/100157
451 * include/bits/utility.h (_Nth_type): Conditionally define in
452 terms of __type_pack_element if available.
453 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
454 additional errors from the new built-in.
455
456 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
457
458 Revert:
459 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
460
461 PR libstdc++/108969
462 * src/Makefile.am: Move globals_io.cc to here.
463 * src/Makefile.in: Regenerate.
464 * src/c++98/Makefile.am: Remove globals_io.cc from here.
465 * src/c++98/Makefile.in: Regenerate.
466 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
467 symbol name and then export with GLIBCXX_3.4.31 symver.
468 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
469 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
470 Regenerate.
471 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
472 Regenerate.
473 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
474 Regenerate.
475 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
476 Regenerate.
477 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
478 Regenerate.
479 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
480 Regenerate.
481 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
482 Regenerate.
483 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
484 Regenerate.
485 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
486
487 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
488
489 Revert:
490 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
491
492 PR libstdc++/108969
493 * config/abi/pre/gnu.ver: Fix preprocessor condition.
494
495 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
496
497 * doc/xml/manual/extensions.xml: Fix example to declare and
498 qualify std::free, and use NULL instead of 0.
499 * doc/html/manual/ext_demangling.html: Regenerate.
500 * libsupc++/cxxabi.h: Adjust doxygen comments.
501
502 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
503
504 PR libstdc++/108969
505 * config/abi/pre/gnu.ver: Fix preprocessor condition.
506
507 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
508
509 PR libstdc++/108969
510 * src/Makefile.am: Move globals_io.cc to here.
511 * src/Makefile.in: Regenerate.
512 * src/c++98/Makefile.am: Remove globals_io.cc from here.
513 * src/c++98/Makefile.in: Regenerate.
514 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
515 symbol name and then export with GLIBCXX_3.4.31 symver.
516 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
517 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
518 Regenerate.
519 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
520 Regenerate.
521 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
522 Regenerate.
523 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
524 Regenerate.
525 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
526 Regenerate.
527 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
528 Regenerate.
529 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
530 Regenerate.
531 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
532 Regenerate.
533 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
534
535 2023-04-18 Patrick Palka <ppalka@redhat.com>
536
537 PR libstdc++/108827
538 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Bump value
539 for C++23.
540 * include/std/ranges (range_adaptor_closure): Define for C++23.
541 * include/std/version (__cpp_lib_ranges): Bump value for
542 C++23.
543 * testsuite/std/ranges/version_c++23.cc: Bump expected value
544 of __cpp_lib_ranges.
545 * testsuite/std/ranges/range_adaptor_closure.cc: New test.
546
547 2023-04-18 Patrick Palka <ppalka@redhat.com>
548
549 * include/bits/ranges_algo.h (__cpp_lib_ranges_contains):
550 Define for C++23.
551 (__cpp_lib_ranges_iota): Likewise.
552 (__cpp_lib_ranges_find_last): Likewise.
553 (__cpp_lib_fold): Rename to ...
554 (__cpp_lib_ranges_fold): ... this.
555 * include/std/version: As above.
556 * testsuite/25_algorithms/fold_left/1.cc: Adjust after
557 renaming __cpp_lib_fold.
558 * testsuite/std/ranges/version_c++23.cc: Verify values
559 of the above feature-test macros.
560
561 2023-04-18 Patrick Palka <ppalka@redhat.com>
562
563 PR libstdc++/109525
564 * include/std/ranges (views::_AsConst::operator()): Add
565 missing const to constant_range test.
566 * testsuite/std/ranges/adaptors/as_const/1.cc (test02):
567 Improve formatting. Adjust expected type of v2.
568 (test03): New test.
569
570 2023-04-14 Patrick Palka <ppalka@redhat.com>
571
572 * include/bits/ranges_base.h (const_iterator_t): Define for C++23.
573 (const_sentinel_t): Likewise.
574 (range_const_reference_t): Likewise.
575 (constant_range): Likewise.
576 (__cust_access::__possibly_const_range): Likewise, replacing ...
577 (__cust_access::__as_const): ... this.
578 (__cust_access::_CBegin::operator()): Redefine for C++23 as per P2278R4.
579 (__cust_access::_CEnd::operator()): Likewise.
580 (__cust_access::_CRBegin::operator()): Likewise.
581 (__cust_access::_CREnd::operator()): Likewise.
582 (__cust_access::_CData::operator()): Likewise.
583 * include/bits/ranges_util.h (ranges::__detail::__different_from):
584 Make it an alias of std::__detail::__different_from.
585 (view_interface::cbegin): Define for C++23.
586 (view_interface::cend): Likewise.
587 * include/bits/stl_iterator.h (__detail::__different_from): Define.
588 (iter_const_reference_t): Define for C++23.
589 (__detail::__constant_iterator): Likewise.
590 (__detail::__is_const_iterator): Likewise.
591 (__detail::__not_a_const_iterator): Likewise.
592 (__detail::__iter_const_rvalue_reference_t): Likewise.
593 (__detail::__basic_const_iter_cat):: Likewise.
594 (const_iterator): Likewise.
595 (__detail::__const_sentinel): Likewise.
596 (const_sentinel): Likewise.
597 (basic_const_iterator): Likewise.
598 (common_type<basic_const_iterator<_Tp>, _Up>): Likewise.
599 (common_type<_Up, basic_const_iterator<_Tp>>): Likewise.
600 (common_type<basic_const_iterator<_Tp>, basic_const_iterator<Up>>):
601 Likewise.
602 (make_const_iterator): Define for C++23.
603 (make_const_sentinel): Likewise.
604 * include/std/ranges (__cpp_lib_ranges_as_const): Likewise.
605 (as_const_view): Likewise.
606 (enable_borrowed_range<as_const_view>): Likewise.
607 (views::__detail::__is_ref_view): Likewise.
608 (views::__detail::__can_is_const_view): Likewise.
609 (views::_AsConst, views::as_const): Likewise.
610 * include/std/span (span::const_iterator): Likewise.
611 (span::const_reverse_iterator): Likewise.
612 (span::cbegin): Likewise.
613 (span::cend): Likewise.
614 (span::crbegin): Likewise.
615 (span::crend): Likewise.
616 * include/std/version (__cpp_lib_ranges_as_const): Likewise.
617 * testsuite/std/ranges/adaptors/join.cc (test06): Adjust to
618 behave independently of C++20 vs C++23.
619 * testsuite/std/ranges/version_c++23.cc: Verify value of
620 __cpp_lib_ranges_as_const macro.
621 * testsuite/24_iterators/const_iterator/1.cc: New test.
622 * testsuite/std/ranges/adaptors/as_const/1.cc: New test.
623
624 2023-04-14 Patrick Palka <ppalka@redhat.com>
625
626 * include/bits/ranges_base.h (__cust_access::__as_const)
627 (__cust_access::_CBegin, __cust::cbegin)
628 (__cust_access::_CEnd, __cust::cend)
629 (__cust_access::_CRBegin, __cust::crbegin)
630 (__cust_access::_CREnd, __cust::crend)
631 (__cust_access::_CData, __cust::cdata): Move down definitions to
632 shortly after the definition of input_range.
633
634 2023-04-14 Patrick Palka <ppalka@redhat.com>
635
636 * include/bits/ranges_algo.h: Include <optional> for C++23.
637 (__cpp_lib_fold): Define for C++23.
638 (in_value_result): Likewise.
639 (__detail::__flipped): Likewise.
640 (__detail::__indirectly_binary_left_foldable_impl): Likewise.
641 (__detail::__indirectly_binary_left_foldable): Likewise.
642 (___detail:__indirectly_binary_right_foldable): Likewise.
643 (fold_left_with_iter_result): Likewise.
644 (__fold_left_with_iter_fn, fold_left_with_iter): Likewise.
645 (__fold_left_fn, fold_left): Likewise.
646 (__fold_left_first_with_iter_fn, fold_left_first_with_iter):
647 Likewise.
648 (__fold_left_first_fn, fold_left_first): Likewise.
649 (__fold_right_fn, fold_right): Likewise.
650 (__fold_right_last_fn, fold_right_last): Likewise.
651 * include/std/version (__cpp_lib_fold): Likewise.
652 * testsuite/25_algorithms/fold_left/1.cc: New test.
653 * testsuite/25_algorithms/fold_right/1.cc: New test.
654
655 2023-04-14 Jonathan Wakely <jwakely@redhat.com>
656
657 * include/std/format (formatter): Add comment to deleted default
658 constructor of primary template.
659 (_Checking_scanner): Add static_assert.
660
661 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
662
663 * doc/xml/manual/using.xml: Document libstdc++exp.a library.
664 * doc/html/*: Regenerate.
665
666 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
667
668 * testsuite/17_intro/names.cc [_AIX]: Do not define policy.
669 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Rename
670 namespace to avoid clashing with libc struct.
671 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
672 Likewise.
673 * testsuite/23_containers/unordered_map/96088.cc: Skip on AIX.
674 * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
675 * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
676 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
677 * testsuite/experimental/synchronized_value.cc: Require gthreads
678 and add missing option for pthreads targets.
679
680 2023-04-12 Patrick Palka <ppalka@redhat.com>
681
682 * include/std/ranges (__cpp_lib_ranges_enumerate): Define
683 for C++23.
684 (__detail::__range_with_movable_reference): Likewise.
685 (enumerate_view): Likewise.
686 (enumerate_view::_Iterator): Likewise.
687 (enumerate_view::_Sentinel): Likewise.
688 (views::__detail::__can_enumerate_view): Likewise.
689 (views::_Enumerate, views::enumerate): Likewise.
690 * include/std/version (__cpp_lib_ranges_enumerate): Likewise.
691 * testsuite/std/ranges/version_c++23.cc: Verify value of
692 __cpp_lib_ranges_enumerate.
693 * testsuite/std/ranges/adaptors/enumerate/1.cc: New test.
694
695 2023-04-12 Patrick Palka <ppalka@redhat.com>
696
697 * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
698 Propagate _M_trailing_empty in the const-converting constructor
699 as per LWG 3904.
700 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): Correct
701 assertion.
702 * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
703
704 2023-04-12 Patrick Palka <ppalka@redhat.com>
705
706 * src/c++17/floating_from_chars.cc: Include <algorithm>,
707 <iterator>, <limits> and <cstdint>.
708
709 2023-04-12 Patrick Palka <ppalka@redhat.com>
710
711 PR libstdc++/108291
712 * include/std/ranges (chunk_by_view::_M_find_next): Generalize
713 parameter types of the lambda wrapper passed to adjacent_find.
714 (chunk_by_view::_M_find_prev): Likewise.
715 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test04, test05):
716 New tests.
717
718 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
719
720 PR libstdc++/109482
721 * include/experimental/internet (basic_endpoint::basic_endpoint()):
722 Ensure that the required union members are active. Only define
723 as constexpr for C++20 and later.
724 (basic_endpoint::basic_endpoint(const protocol_type&, port_type)):
725 Likewise.
726 * testsuite/experimental/net/internet/endpoint/cons.cc: Only
727 check constexpr default constructor for C++20 and later.
728 * testsuite/experimental/net/internet/endpoint/extensible.cc:
729 Likewise.
730
731 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
732
733 * src/c++20/tzdata.zi: Import new file from 2023c release.
734
735 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
736
737 * include/precompiled/stdc++.h (C++17): Don't double-include
738 <charconv>, once with wrong conditions.
739 * testsuite/18_support/96817.cc: Require hosted.
740 * testsuite/18_support/bad_exception/59392.cc: Ditto.
741 * testsuite/20_util/scoped_allocator/108952.cc: Ditto.
742 * testsuite/20_util/uses_allocator/lwg3527.cc: Ditto.
743 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
744 Ditto.
745
746 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
747
748 * include/bits/c++config: When __STDC_HOSTED__ is zero,
749 disable _GLIBCXX_DEBUG and, if it was set, enable
750 _GLIBCXX_ASSERTIONS.
751 * testsuite/lib/libstdc++.exp (check_v3_target_debug_mode):
752 Include <bits/c++config.h> when determining whether debug is
753 set, in order to inherit the logic from above
754
755 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
756
757 * testsuite/17_intro/versionconflict.cc: New test.
758 * include/std/version: Allow disabling the system_header pragma
759 via _GLIBCXX_TESTING_SYSHDR.
760
761 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
762
763 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
764 Synchronize the definition block with...
765 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory):
766 ... this one here. Also define the 202202L value, rather than
767 leaving it up to purely unique_ptr.h, so that the value is
768 synchronized across all headers.
769 (__gnu_debug::_Safe_iterator_base): Move into new conditional
770 block.
771 * include/std/memory (__cpp_lib_atomic_value_initialization):
772 Define on freestanding under the same conditions as in
773 atomic_base.h.
774 * include/std/version (__cpp_lib_robust_nonmodifying_seq_ops):
775 Also define on freestanding.
776 (__cpp_lib_to_chars): Ditto.
777 (__cpp_lib_gcd): Ditto.
778 (__cpp_lib_gcd_lcm): Ditto.
779 (__cpp_lib_raw_memory_algorithms): Ditto.
780 (__cpp_lib_array_constexpr): Ditto.
781 (__cpp_lib_nonmember_container_access): Ditto.
782 (__cpp_lib_clamp): Ditto.
783 (__cpp_lib_constexpr_char_traits): Ditto.
784 (__cpp_lib_constexpr_string): Ditto.
785 (__cpp_lib_sample): Ditto.
786 (__cpp_lib_lcm): Ditto.
787 (__cpp_lib_constexpr_iterator): Ditto.
788 (__cpp_lib_constexpr_char_traits): Ditto.
789 (__cpp_lib_interpolate): Ditto.
790 (__cpp_lib_constexpr_utility): Ditto.
791 (__cpp_lib_shift): Ditto.
792 (__cpp_lib_ranges): Ditto.
793 (__cpp_lib_move_iterator_concept): Ditto.
794 (__cpp_lib_constexpr_numeric): Ditto.
795 (__cpp_lib_constexpr_functional): Ditto.
796 (__cpp_lib_constexpr_algorithms): Ditto.
797 (__cpp_lib_constexpr_tuple): Ditto.
798 (__cpp_lib_constexpr_memory): Ditto.
799
800 2023-04-05 John David Anglin <danglin@gcc.gnu.org>
801
802 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Double
803 timeout factor on hppa*-*-*.
804
805 2023-04-05 Jonathan Wakely <jwakely@redhat.com>
806
807 * include/bits/regex.h (sub_match::swap): New function.
808 * testsuite/28_regex/sub_match/lwg3204.cc: New test.
809
810 2023-04-04 Jonathan Wakely <jwakely@redhat.com>
811
812 * doc/xml/manual/extensions.xml: Remove std::bad_exception from
813 example program.
814 * doc/html/manual/ext_demangling.html: Regenerate.
815
816 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
817
818 PR tree-optimization/107087
819 * include/bits/cow_string.h (basic_string::size()): Add
820 optimizer hint that _S_empty_rep()._M_length is always zero.
821 (basic_string::length()): Call size().
822
823 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
824
825 PR libstdc++/109339
826 * include/std/stop_token (_Stop_state_ptr(const stop_source&)):
827 Add attribute access with access-mode 'none'.
828 * testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
829
830 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
831
832 * include/experimental/internet (ip::basic_endpoint::_M_if_v6):
833 Revert change from member function to data member. Fix for
834 constant evaluation by detecting which union member is active.
835 (ip::basic_endpoint::resize): Revert changes to update _M_is_v6
836 flag.
837
838 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
839
840 PR libstdc++/109242
841 * testsuite/20_util/optional/monadic/pr109340.cc: Moved to...
842 * testsuite/20_util/optional/monadic/pr109242.cc: ...here.
843
844 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
845
846 * include/experimental/internet (ip::make_address): Implement
847 missing overload.
848 (ip::address_v4::broadcast()): Avoid undefined shift.
849 (ip::basic_endpoint): Fix member functions for constexpr.
850 (ip::basic_endpoint::_M_is_v6): Replace member function with
851 data member, adjust member functions using it.
852 (ip::basic_endpoint::resize): Update _M_is_v6 based on sockaddr
853 content.
854 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
855 constexpr checks to work in C++14.
856 * testsuite/experimental/net/internet/address/v4/creation.cc:
857 Likewise.
858 * testsuite/experimental/net/internet/endpoint/cons.cc:
859 Likewise.
860 * testsuite/experimental/net/internet/network/v4/cons.cc:
861 Likewise.
862 * testsuite/experimental/net/internet/network/v4/members.cc:
863 Likewise.
864 * testsuite/experimental/net/internet/endpoint/extensible.cc: New test.
865
866 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
867
868 * include/std/expected (expected::value() &): Use const lvalue
869 for unex member passed to bad_expected_access constructor, as
870 per LWG 3843.
871
872 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
873
874 PR libstdc++/109340
875 * include/std/expected (expected::transform): Use
876 std::remove_cv_t instead of std::remove_cvref_t.
877 (expected::transform_error): Likewise.
878 (expected<cv void, E>::transform): Likewise.
879 (expected<cv void, E>::transform_error): Likewise.
880 * include/std/optional (transform): Use std::remove_cv_t.
881 * testsuite/20_util/optional/monadic/pr109340.cc: New test.
882
883 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
884
885 * include/std/optional (optional): Adjust static assertion to
886 reject arrays and functions as well as references.
887 * testsuite/20_util/optional/requirements_neg.cc: New test.
888
889 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
890
891 PR libstdc++/103387
892 * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
893 std::use_facet instead of cached _M_num_get facet.
894 (istream::operator>>(short&)): Likewise.
895 (istream::operator>>(int&)): Likewise.
896 * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
897 std::use_facet instead of cached _M_num_put facet.
898
899 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
900
901 * include/bits/char_traits.h (char_traits::copy): Return without
902 using memcpy if n==0.
903 (char_traits::assign): Likewise for memset.
904
905 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
906
907 PR libstdc++/109299
908 * include/bits/basic_string.h (basic_string::_M_is_local()): Add
909 hint for compiler that local strings fit in the local buffer.
910
911 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
912
913 PR libstdc++/109288
914 * include/std/chrono (__detail::__get_leap_second_info): Update
915 expiry date of hardcoded leapseconds list.
916 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds()):
917 Likewise.
918 * src/c++20/tzdata.zi: Import new file from 2023a release.
919 * testsuite/std/time/time_zone/get_info_local.cc: Only check
920 transitions for Egypt up to 2014.
921
922 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
923
924 * include/experimental/bits/simd.h (is_simd_flag_type): New.
925 (_IsSimdFlagType): New.
926 (copy_from, copy_to, load ctors): Constrain _Flags using
927 _IsSimdFlagType.
928
929 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
930
931 * include/experimental/bits/simd_x86.h (_SimdImplX86): Use
932 _Base::_S_divides if the optimized _S_divides function is hidden
933 via the preprocessor.
934
935 2023-03-27 Jakub Jelinek <jakub@redhat.com>
936
937 * testsuite/experimental/net/timer/waitable/dest.cc: Avoid -Wformat
938 warning if size_t is not unsigned long.
939
940 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
941
942 * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
943 Add overload, as per LWG 3893.
944 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
945 Check assignment from nullptr.
946
947 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
948
949 * include/std/format (formatter<const charT[N], charT>): Do not
950 define partial speclialization, as per LWG 3833.
951 * testsuite/std/format/formatter/requirements.cc: Check it.
952
953 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
954
955 * include/std/utility (__cpp_lib_constexpr_algorithms): Define,
956 as per LWG 3792.
957 * testsuite/20_util/exchange/constexpr.cc: Check for it.
958
959 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
960
961 * include/std/version (__cpp_lib_format): Define.
962 * testsuite/std/format/functions/format.cc: Check it.
963
964 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
965
966 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
967 Pass rvalues to the callback, as now allowed by LWG 3645.
968 Enforce preconditions on the return value.
969 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
970 Adjust.
971
972 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
973
974 * include/std/format: Add a comment noting that the resolution
975 of LWG 3720 has been applied..
976
977 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
978
979 * include/bits/regex.h (match_results): Add allocator-extended
980 copy and move constructors, as per LWG 2195.
981 * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test.
982
983 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
984
985 * include/bits/stream_iterator.h (istream_iterator): Add
986 constexpr to copy constructor, as per LWG 3600.
987 * testsuite/24_iterators/istream_iterator/cons/constexpr.cc:
988 Check copy construction.
989
990 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
991
992 * include/experimental/bits/simd_x86.h
993 (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
994 with __RECIPROCAL_MATH__.
995
996 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
997
998 * include/experimental/bits/simd_detail.h: Don't define
999 _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
1000 * include/experimental/bits/simd_x86.h (_S_divides): Remove
1001 check for __clang__.
1002
1003 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
1004
1005 * include/experimental/bits/simd_detail.h: Don't declare the
1006 simd API as constexpr with Clang.
1007 * include/experimental/bits/simd_x86.h (__movm): New.
1008 (_S_blend_avx512): Resolve FIXME. Implement blend using __movm
1009 and ?:.
1010 (_SimdImplX86::_S_masked_unary): Clang does not implement the
1011 same builtins. Implement the function using __movm, ?:, and -
1012 operators on vector_size types instead.
1013
1014 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
1015
1016 * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
1017 define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
1018
1019 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
1020
1021 * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
1022 formatting.
1023
1024 2023-03-20 Marek Polacek <polacek@redhat.com>
1025
1026 PR c++/109159
1027 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust dg-error.
1028 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
1029 * testsuite/23_containers/span/explicit.cc: Likewise.
1030
1031 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
1032
1033 PR libstdc++/109182
1034 * include/std/expected (expected<void>::expected(in_place_t)):
1035 Remove template-head.
1036
1037 2023-03-18 Jonathan Wakely <jwakely@redhat.com>
1038
1039 PR libstdc++/109165
1040 * testsuite/18_support/coroutines/hash.cc: Use const object
1041 in second call.
1042
1043 2023-03-17 Jonathan Wakely <jwakely@redhat.com>
1044
1045 PR libstdc++/109165
1046 * include/std/coroutine (hash<>::operator()): Add const.
1047 * testsuite/18_support/coroutines/hash.cc: New test.
1048
1049 2023-03-14 Patrick Palka <ppalka@redhat.com>
1050
1051 PR libstdc++/109111
1052 * include/std/ranges (repeat_view): Remove redundant parentheses
1053 in requires-clause.
1054 (repeat_view::_Iterator): Correct the requires-clause.
1055
1056 2023-03-14 Patrick Palka <ppalka@redhat.com>
1057
1058 * include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
1059 Define.
1060 (__cpp_lib_move_iterator_concept): Define for C++20.
1061 (move_iterator::iterator_concept): Strengthen as per P2520R0.
1062 * include/std/version (__cpp_lib_move_iterator_concept): Define
1063 for C++20.
1064 * testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
1065
1066 2023-03-14 Patrick Palka <ppalka@redhat.com>
1067
1068 * include/bits/ranges_util.h (view_interface::empty): Add
1069 preferred overloads that use ranges::size when the range is
1070 sized as per LWG 3715.
1071 * testsuite/std/ranges/adaptors/lwg3715.cc: New test.
1072
1073 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
1074
1075 * include/bits/chrono.h (__is_duration_v, __is_time_point_v):
1076 Only define for C++17 and later.
1077
1078 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
1079
1080 * src/Makefile.am: Add comment about linker script fragments.
1081 * src/Makefile.in: Regenerate.
1082
1083 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
1084
1085 PR libstdc++/62196
1086 * include/bits/mask_array.h (mask_array): Add assertions to
1087 assignment operators.
1088 * include/std/valarray (valarray::operator[](valarray<bool>)):
1089 Add assertions.
1090 * testsuite/26_numerics/valarray/mask-1_neg.cc: New test.
1091 * testsuite/26_numerics/valarray/mask-2_neg.cc: New test.
1092 * testsuite/26_numerics/valarray/mask-3_neg.cc: New test.
1093 * testsuite/26_numerics/valarray/mask-4_neg.cc: New test.
1094 * testsuite/26_numerics/valarray/mask-5_neg.cc: New test.
1095 * testsuite/26_numerics/valarray/mask-6_neg.cc: New test.
1096 * testsuite/26_numerics/valarray/mask-7_neg.cc: New test.
1097 * testsuite/26_numerics/valarray/mask-8_neg.cc: New test.
1098 * testsuite/26_numerics/valarray/mask.cc: New test.
1099
1100 2023-03-13 Jakub Jelinek <jakub@redhat.com>
1101
1102 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1103 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
1104
1105 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
1106
1107 * doc/Makefile.am: Add comment referring to documentation.
1108 * doc/Makefile.in: Regenerate.
1109
1110 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
1111
1112 * doc/html/*: Regenerate.
1113
1114 2023-03-13 Jonny Grant <jg@jguk.org>
1115
1116 * doc/xml/faq.xml: Update copyright year.
1117
1118 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
1119
1120 * include/bits/allocator.h: Fix typo in comment.
1121
1122 2023-03-12 Jakub Jelinek <jakub@redhat.com>
1123
1124 * config/abi/pre/gnu.ver (CXXABI_1.3.14): Also export __bf16 tinfos
1125 if it isn't mangled as DF16b but u6__bf16.
1126
1127 2023-03-12 Gerald Pfeifer <gerald@pfeifer.com>
1128
1129 * doc/xml/manual/documentation_hacking.xml: Move www.graphviz.org
1130 to https.
1131 * doc/html/manual/documentation_hacking.html: Regenerate.
1132
1133 2023-03-10 Jonathan Wakely <jwakely@redhat.com>
1134
1135 PR libstdc++/109064
1136 * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
1137 Remove self-recursion in __init__. Add missing _supports.
1138 * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
1139 and unique().
1140
1141 2023-03-09 Patrick Palka <ppalka@redhat.com>
1142
1143 * include/std/ranges
1144 (cartesian_product_view::_Iterator::_Iterator): Remove
1145 constraint on default constructor as per LWG 3849.
1146 (cartesian_product_view::_Iterator::_M_prev): Adjust position
1147 of _Nm > 0 test as per LWG 3820.
1148 (cartesian_product_view::_Iterator::_M_advance): Perform bounds
1149 checking only on sized cartesian products.
1150 * testsuite/std/ranges/cartesian_product/1.cc (test08): New test.
1151
1152 2023-03-09 Patrick Palka <ppalka@redhat.com>
1153
1154 PR libstdc++/109024
1155 * include/std/ranges (chunk_by_view::_M_pred): Remove DMI as per
1156 LWG 3796.
1157 (repeat_view::_M_pred): Likewise.
1158 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test03): New test.
1159 * testsuite/std/ranges/repeat/1.cc (test05): New test.
1160
1161 2023-03-09 Patrick Palka <ppalka@redhat.com>
1162
1163 PR libstdc++/108362
1164 * include/std/ranges (__detail::__can_single_view): New concept.
1165 (_Single::operator()): Constrain it. Move [[nodiscard]] to the
1166 end of the function declarator.
1167 (__detail::__can_iota_view): New concept.
1168 (_Iota::operator()): Constrain it. Move [[nodiscard]] to the
1169 end of the function declarator.
1170 (__detail::__can_istream_view): New concept.
1171 (_Istream::operator()): Constrain it. Move [[nodiscard]] to the
1172 end of the function declarator.
1173 * testsuite/std/ranges/iota/iota_view.cc (test07): New test.
1174 * testsuite/std/ranges/istream_view.cc (test08): New test.
1175 * testsuite/std/ranges/single_view.cc (test07): New test.
1176
1177 2023-03-09 Patrick Palka <ppalka@redhat.com>
1178
1179 PR libstdc++/107572
1180 * include/std/ranges (cartesian_product_view::end): When
1181 building the tuple of iterators, avoid calling ranges::begin on
1182 the first range if __empty_tail is false.
1183 * testsuite/std/ranges/cartesian_product/1.cc (test07): New test.
1184
1185 2023-03-09 Jonathan Wakely <jwakely@redhat.com>
1186
1187 PR libstdc++/108882
1188 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Fix incorrect
1189 patterns.
1190
1191 2023-03-07 Jakub Jelinek <jakub@redhat.com>
1192
1193 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1194 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1195 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1196 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1197 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
1198
1199 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
1200
1201 PR libstdc++/108882
1202 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Adjust patterns to
1203 not match symbols in namespace std::__gnu_cxx11_ieee128.
1204 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add patterns for
1205 std::__gnu_cxx11_ieee128::money_{get,put}.
1206
1207 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
1208
1209 * libsupc++/eh_personality.cc: Fix spelling in comment.
1210
1211 2023-03-03 Alexandre Oliva <oliva@adacore.com>
1212
1213 * testsuite/30_threads/async/async.cc (test04): Initialize
1214 steady_start, renamed from steady_begin, next to slow_start.
1215 Increase tolerance for final wait.
1216
1217 2023-03-03 Alexandre Oliva <oliva@adacore.com>
1218
1219 * testsuite/libstdc++-prettyprinters/80276.cc: Add
1220 std::string to debug info.
1221 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
1222
1223 2023-03-03 Alexandre Oliva <oliva@adacore.com>
1224
1225 PR libstdc++/104852
1226 PR libstdc++/95989
1227 PR libstdc++/52590
1228 * include/bits/std_thread.h (thread::_M_thread_deps): New
1229 static implicitly-inline member function.
1230 (std::thread template ctor): Pass it to _M_start_thread.
1231 * src/c++11/thread.cc (thread::_M_start_thread): Name depend
1232 parameter, force it live on entry.
1233
1234 2023-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1235
1236 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
1237 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
1238 Likewise.
1239 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
1240 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
1241 Likewise.
1242
1243 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
1244
1245 * include/bits/cow_string.h: Fix typo in comment.
1246
1247 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
1248
1249 * src/c++20/tzdb.cc (chrono::tzdb::current_zone()) Use "UTC" if
1250 current time zone cannot be determined.
1251 * testsuite/std/time/tzdb/1.cc: Remove conditions based on
1252 HAVE_TZDB macro and test all members unconditionally.
1253
1254 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
1255
1256 PR libstdc++/108952
1257 * include/bits/uses_allocator_args.h
1258 (uses_allocator_construction_args): Implement LWG 3527.
1259 * testsuite/20_util/pair/astuple/get-2.cc: New test.
1260 * testsuite/20_util/scoped_allocator/108952.cc: New test.
1261 * testsuite/20_util/uses_allocator/lwg3527.cc: New test.
1262
1263 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
1264
1265 PR libstdc++/108846
1266 * include/bits/stl_algobase.h (__copy_move<false, false, RA>)
1267 Add __assign_one static member function.
1268 (__copy_move<true, false, RA>): Likewise.
1269 (__copy_move<IsMove, true, RA>): Do not use memmove for a single
1270 value.
1271 (__copy_move_backward<IsMove, true, RA>): Likewise.
1272 * testsuite/25_algorithms/copy/108846.cc: New test.
1273 * testsuite/25_algorithms/copy_backward/108846.cc: New test.
1274 * testsuite/25_algorithms/copy_n/108846.cc: New test.
1275 * testsuite/25_algorithms/move/108846.cc: New test.
1276 * testsuite/25_algorithms/move_backward/108846.cc: New test.
1277
1278 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
1279
1280 * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
1281 attributes.
1282
1283 2023-02-27 Jonathan Wakely <jwakely@redhat.com>
1284
1285 * include/bits/basic_ios.h (basic_ios::_M_setstate): Add
1286 caveat to comment.
1287 * include/bits/basic_string.h (resize_and_overwrite): Add
1288 doxygen comment.
1289
1290 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
1291
1292 * include/experimental/bits/simd.h: Line breaks and indenting
1293 fixed to follow the libstdc++ standard.
1294 * include/experimental/bits/simd_builtin.h: Likewise.
1295 * include/experimental/bits/simd_fixed_size.h: Likewise.
1296 * include/experimental/bits/simd_neon.h: Likewise.
1297 * include/experimental/bits/simd_ppc.h: Likewise.
1298 * include/experimental/bits/simd_scalar.h: Likewise.
1299 * include/experimental/bits/simd_x86.h: Likewise.
1300
1301 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
1302
1303 PR libstdc++/108030
1304 * include/experimental/bits/simd_fixed_size.h
1305 (_SimdImplFixedSize::_S_broadcast): Replace inline with
1306 _GLIBCXX_SIMD_INTRINSIC.
1307 (_SimdImplFixedSize::_S_generate): Likewise.
1308 (_SimdImplFixedSize::_S_load): Likewise.
1309 (_SimdImplFixedSize::_S_masked_load): Likewise.
1310 (_SimdImplFixedSize::_S_store): Likewise.
1311 (_SimdImplFixedSize::_S_masked_store): Likewise.
1312 (_SimdImplFixedSize::_S_min): Likewise.
1313 (_SimdImplFixedSize::_S_max): Likewise.
1314 (_SimdImplFixedSize::_S_complement): Likewise.
1315 (_SimdImplFixedSize::_S_unary_minus): Likewise.
1316 (_SimdImplFixedSize::_S_plus): Likewise.
1317 (_SimdImplFixedSize::_S_minus): Likewise.
1318 (_SimdImplFixedSize::_S_multiplies): Likewise.
1319 (_SimdImplFixedSize::_S_divides): Likewise.
1320 (_SimdImplFixedSize::_S_modulus): Likewise.
1321 (_SimdImplFixedSize::_S_bit_and): Likewise.
1322 (_SimdImplFixedSize::_S_bit_or): Likewise.
1323 (_SimdImplFixedSize::_S_bit_xor): Likewise.
1324 (_SimdImplFixedSize::_S_bit_shift_left): Likewise.
1325 (_SimdImplFixedSize::_S_bit_shift_right): Likewise.
1326 (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
1327 explicit about not always-inline, yet).
1328 (_SimdImplFixedSize::_S_isinf): Likewise.
1329 (_SimdImplFixedSize::_S_isfinite): Likewise.
1330 (_SimdImplFixedSize::_S_isnan): Likewise.
1331 (_SimdImplFixedSize::_S_isnormal): Likewise.
1332 (_SimdImplFixedSize::_S_signbit): Likewise.
1333
1334 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
1335
1336 PR libstdc++/108856
1337 * include/experimental/bits/simd_builtin.h
1338 (_SimdImplBuiltin::_S_masked_unary): More efficient
1339 implementation of masked inc-/decrement for integers and floats
1340 without AVX2.
1341 * include/experimental/bits/simd_x86.h
1342 (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
1343 builtins for masked inc-/decrement.
1344
1345 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1346
1347 * include/experimental/executor (executor): Constrain template
1348 constructors.
1349
1350 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1351
1352 * include/experimental/internet (basic_endpoint): Add missing
1353 constexpr to comparison operators.
1354 * testsuite/experimental/net/internet/endpoint/cons.cc: New test.
1355
1356 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1357
1358 * include/experimental/internet (network_v4::netmask()): Avoid
1359 undefined shift.
1360 (network_v4::broadcast()): Optimize and fix for targets with
1361 uint_least32_t wider than 32 bits.
1362 (network_v4::to_string(const Allocator&)): Fix for custom
1363 allocators and optimize using to_chars.
1364 (operator==(const network_v4&, const network_v4&)): Add missing
1365 constexpr.
1366 (operator==(const network_v6&, const network_v6&)): Likewise.
1367 * testsuite/experimental/net/internet/network/v4/cons.cc: New test.
1368 * testsuite/experimental/net/internet/network/v4/members.cc: New test.
1369
1370 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1371
1372 * include/experimental/internet (address_4(const bytes_type&)):
1373 Use __builtin_bit_cast if available, otherwise convert to
1374 network byte order.
1375 (address_v4::to_bytes()): Likewise, but convert from network
1376 byte order.
1377 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
1378 incorrect tests. Check for constexpr too.
1379 * testsuite/experimental/net/internet/address/v4/creation.cc:
1380 Likewise.
1381 * testsuite/experimental/net/internet/address/v4/members.cc:
1382 Check that bytes_type is a standard-layout type.
1383
1384 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1385
1386 * include/experimental/internet (address_v4::to_string):
1387 Optimize.
1388 * testsuite/experimental/net/internet/address/v4/members.cc:
1389 Check more addresses.
1390
1391 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1392
1393 * include/ext/aligned_buffer.h (__aligned_buffer): Add
1394 diagnostic pragmas.
1395
1396 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1397
1398 * testsuite/std/format/arguments/lwg3810.cc: Move dg-options
1399 before dg-do.
1400
1401 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
1402
1403 * testsuite/experimental/simd/tests/reductions.cc: Introduce
1404 max_distance as the type-dependent max error.
1405
1406 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
1407
1408 * include/experimental/bits/simd_builtin.h (_S_set): Compare as
1409 int. The actual range of these indexes is very small.
1410
1411 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
1412
1413 * include/experimental/bits/simd_x86.h (_S_bit_shift_left)
1414 (_S_bit_shift_right): Declare constexpr. The implementation was
1415 already expecting constexpr evaluation.
1416
1417 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
1418
1419 PR libstdc++/108030
1420 * include/experimental/bits/simd_detail.h
1421 (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
1422 __clang__.
1423
1424 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
1425
1426 PR libstdc++/108030
1427 * include/experimental/bits/simd.h (__vector_broadcast):
1428 Implement via __vector_broadcast_impl instead of
1429 __call_with_n_evaluations + 2 lambdas.
1430 (__vector_broadcast_impl): New.
1431
1432 2023-02-22 Alexandre Oliva <oliva@adacore.com>
1433
1434 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex):
1435 Avoid destruction of the mutex pool.
1436
1437 2023-02-22 Alexandre Oliva <oliva@adacore.com>
1438
1439 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: xfail
1440 on vxworks.
1441 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
1442 Likewise.
1443
1444 2023-02-22 Alexandre Oliva <oliva@adacore.com>
1445
1446 * testsuite/17_intro/names.cc: Undef func on vxworks >= 7 in
1447 kernel mode.
1448
1449 2023-02-20 Andreas Schwab <schwab@linux-m68k.org>
1450
1451 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1452
1453 2023-02-20 Matthias Kretz <m.kretz@gsi.de>
1454
1455 * include/experimental/bits/simd.h (__extract_part, split):
1456 Use reserved name for template parameter.
1457
1458 2023-02-20 Andreas Schwab <schwab@suse.de>
1459
1460 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
1461
1462 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
1463
1464 * doc/xml/faq.xml: Switch two links to www.open-std.org to https.
1465 * doc/html/faq.html: Regenerate.
1466
1467 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
1468
1469 * include/experimental/bits/simd_math.h (__hypot): Bitcasting
1470 between scalars requires the __bit_cast helper function instead
1471 of simd_bit_cast.
1472
1473 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
1474
1475 * include/experimental/bits/simd_x86.h
1476 (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
1477 (_SimdImplX86::_S_less_equal): Do not call
1478 __builtin_is_constant_evaluated in constexpr-if.
1479
1480 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
1481
1482 * testsuite/experimental/simd/tests/bits/verify.h
1483 (verify::verify): Use %zx for size_t in format string.
1484
1485 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
1486
1487 * testsuite/experimental/simd/generate_makefile.sh: Generate and
1488 pre-compile pch.h, which includes all headers that do not depend
1489 on command-line macros.
1490 * testsuite/experimental/simd/tests/bits/main.h: New file.
1491 (iterate_abis, main): Moved from verify.h.
1492 * testsuite/experimental/simd/tests/bits/verify.h
1493 (iterate_abis, main): Moved to main.h.
1494 * testsuite/experimental/simd/tests/bits/conversions.h: Add
1495 include guard.
1496 (genHalfBits): Simplify.
1497 * testsuite/experimental/simd/tests/bits/make_vec.h: Add include
1498 guard.
1499 (make_alternating_mask): Moved from mask_loadstore.
1500 * testsuite/experimental/simd/tests/bits/mathreference.h: Add
1501 include guard.
1502 * testsuite/experimental/simd/tests/bits/test_values.h: Ditto.
1503 * testsuite/experimental/simd/tests/mask_loadstore.cc
1504 (make_mask, make_alternating_mask): Removed.
1505 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
1506 * testsuite/experimental/simd/tests/operators.cc (genHalfBits):
1507 Removed.
1508 * testsuite/experimental/simd/tests/abs.cc: Only include
1509 bits/main.h.
1510 Ditto.
1511 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
1512 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
1513 * testsuite/experimental/simd/tests/casts.cc: Ditto.
1514 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto.
1515 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
1516 * testsuite/experimental/simd/tests/generator.cc: Ditto.
1517 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
1518 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
1519 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
1520 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
1521 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
1522 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
1523 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
1524 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
1525 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
1526 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
1527 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
1528 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
1529 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
1530 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
1531 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
1532 * testsuite/experimental/simd/tests/simd.cc: Ditto.
1533 * testsuite/experimental/simd/tests/sincos.cc: Ditto.
1534 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
1535 * testsuite/experimental/simd/tests/splits.cc: Ditto.
1536 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
1537 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
1538 * testsuite/experimental/simd/tests/where.cc: Ditto.
1539
1540 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
1541
1542 * testsuite/experimental/simd/README.md: Document the timeout
1543 and timeout-factor directives. Minor typo fixed.
1544
1545 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
1546
1547 PR libstdc++/108030
1548 * include/experimental/bits/simd_detail.h: Define
1549 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
1550 * include/experimental/bits/simd.h: Annotate lambdas with
1551 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
1552 * include/experimental/bits/simd_builtin.h: Ditto.
1553 * include/experimental/bits/simd_converter.h: Ditto.
1554 * include/experimental/bits/simd_fixed_size.h: Ditto.
1555 * include/experimental/bits/simd_math.h: Ditto.
1556 * include/experimental/bits/simd_neon.h: Ditto.
1557 * include/experimental/bits/simd_x86.h: Ditto.
1558
1559 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
1560
1561 * include/experimental/bits/simd.h
1562 (_SimdWrapper::_M_is_constprop_none_of)
1563 (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
1564 computed result still satisfies __builtin_constant_p.
1565
1566 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1567
1568 * testsuite/std/format/arguments/lwg3810.cc: Replace UTF-8
1569 ellipsis character.
1570
1571 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1572
1573 * include/Makefile.am: Add new header.
1574 * include/Makefile.in: Regenerate.
1575 * include/experimental/synchronized_value: New file.
1576 * testsuite/experimental/synchronized_value.cc: New test.
1577
1578 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1579
1580 * include/experimental/optional: Fix header name in comment.
1581
1582 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1583
1584 * include/std/format (__format::_Arg_store): New class template.
1585 (basic_format_args): Remove nested type _Store and add deduction
1586 guide from _Arg_store.
1587 (basic_format_arg, make_format_args): Adjust.
1588 * testsuite/std/format/arguments/lwg3810.cc: New test.
1589
1590 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1591
1592 * include/bits/stl_pair.h (pair) [C++20]: Add non-dangling
1593 constraints to constructors and add deleted overloads for the
1594 dangling cases, as per P2255R2.
1595 (pair) [!C++20 && _GLIBCXX_DEBUG]: Add static assertions to
1596 make dangling cases ill-formed.
1597 * testsuite/20_util/pair/dangling_ref.cc: New test.
1598
1599 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1600
1601 * testsuite/17_intro/names_pstl.cc: Require et tbb_backend.
1602
1603 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1604
1605 * include/ext/throw_allocator.h: Use reserved names for
1606 parameters.
1607
1608 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1609
1610 * testsuite/17_intro/names_pstl.cc: Add space after effective
1611 target name.
1612
1613 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1614
1615 * include/pstl/algorithm_fwd.h (__pattern_search_n)
1616 (__brick_unique_copy, __brick_adjacent_find)
1617 (__brick_generate_n, __pattern_generate_n): Use reserved names
1618 for parameters.
1619 * include/pstl/algorithm_impl.h (__brick_unique_copy)
1620 (__pattern_reverse, __brick_generate_n): Likewise.
1621 * include/pstl/execution_impl.h (__prefer_unsequenced_tag)
1622 (__prefer_parallel_tag): Likewise.
1623 * include/pstl/glue_algorithm_impl.h (transform): Likewise.
1624 * include/pstl/glue_numeric_defs.h (adjacent_difference):
1625 Likewise.
1626 * include/pstl/numeric_impl.h (__brick_adjacent_difference):
1627 Likewise.
1628 * include/pstl/parallel_backend_tbb.h (__merge_func): Likewise.
1629 * include/pstl/unseq_backend_simd.h (_Combiner)
1630 (__simd_min_element, __simd_minmax_element): Likewise.
1631 * testsuite/17_intro/names_pstl.cc: New test.
1632
1633 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1634
1635 * include/bits/fs_ops.h (create_directory): Use reserved name
1636 for parameter.
1637 * include/bits/ranges_algo.h (__contains_subrange_fn):
1638 Likewise.
1639 * include/bits/regex_automaton.h (_State_base::_M_print):
1640 Likewise.
1641 * include/bits/regex_automaton.tcc(_State_base::_M_print):
1642 Likewise.
1643 * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
1644 * include/experimental/bits/fs_ops.h (create_directory):
1645 Likewise.
1646 * include/std/mutex (timed_mutex::_M_clocklock): Likewise.
1647 (recursive_timed_mutex:_M_clocklock): Likewise.
1648 * include/std/tuple (basic_common_reference): Likewise.
1649 * libsupc++/cxxabi_init_exception.h
1650 (__cxa_init_primary_exception): Likewise.
1651 * testsuite/17_intro/names.cc: Add checks.
1652
1653 2023-02-14 Gerald Pfeifer <gerald@pfeifer.com>
1654
1655 * doc/xml/manual/status_cxx2017.xml: Update an open-std.org link
1656 to www.open-std.org and https.
1657 * doc/html/manual/status.html: Regenerate.
1658
1659 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
1660
1661 PR libstdc++/103934
1662 * include/std/atomic (atomic_flag_wait): Add.
1663 (atomic_flag_wait_explicit): Add.
1664 (atomic_flag_notify): Add.
1665 (atomic_flag_notify_explicit): Add.
1666 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
1667 Add test case to cover missing atomic_flag free functions.
1668
1669 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
1670
1671 PR libstdc++/103934
1672 * include/std/atomic (atomic_flag_test): Add.
1673 (atomic_flag_test_explicit): Add.
1674 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
1675 test case to cover missing atomic_flag free functions.
1676 * testsuite/29_atomics/atomic_flag/test/implicit.cc:
1677 Likewise.
1678
1679 2023-02-13 Gerald Pfeifer <gerald@pfeifer.com>
1680
1681 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust
1682 "The Component Object Model" reference.
1683 * doc/html/manual/policy_data_structures.html: Regenerate.
1684
1685 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
1686
1687 * doc/xml/manual/containers.xml: Tweak a link to N1780
1688 (C++ standard).
1689 * doc/html/manual/associative.html: Regenerate.
1690
1691 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
1692
1693 * doc/xml/manual/ctype.xml: Change www.unix.org to unix.org.
1694 * doc/html/manual/facets.html: Regenerate.
1695
1696 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
1697
1698 * doc/xml/manual/policy_data_structures_biblio.xml: Update
1699 link to "Worst-case efficient priority queues".
1700 * doc/html/manual/policy_data_structures.html: Regenerate.
1701
1702 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
1703
1704 * doc/xml/manual/using.xml: Document newly-freestanding
1705 headers and the effect of the -ffreestanding flag.
1706 * doc/xml/manual/status_cxx2023.xml: Document P1642R11 as
1707 completed.
1708 * doc/xml/manual/configure.xml: Document that hosted installs
1709 respect __STDC_HOSTED__.
1710 * doc/xml/manual/test.xml: Document how to run tests in
1711 freestanding mode.
1712 * doc/html/*: Regenerate.
1713
1714 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
1715
1716 * include/bits/ranges_algo.h (__find_last_fn): Rename T to _Tp.
1717 (__find_last_if_fn): Likewise.
1718
1719 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
1720
1721 * include/std/type_traits: Add diagnostic pragmas around
1722 references to deprecated std::aligned_storage and
1723 std::aligned_union traits.
1724 * testsuite/20_util/aligned_storage/requirements/alias_decl.cc:
1725 Add dg-warning for et c++23.
1726 * testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc:
1727 Likewise.
1728 * testsuite/20_util/aligned_storage/value.cc: Likewise.
1729 * testsuite/20_util/aligned_union/1.cc: Likewise.
1730 * testsuite/20_util/aligned_union/requirements/alias_decl.cc:
1731 Likewise.
1732
1733 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
1734
1735 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
1736 * include/bits/c++config (_GLIBCXX23_DEPRECATED)
1737 (_GLIBCXX23_DEPRECATED_SUGGEST): New macros.
1738 * include/std/type_traits (aligned_storage, aligned_union)
1739 (aligned_storage_t, aligned_union_t): Deprecate for C++23.
1740 * testsuite/20_util/aligned_storage/deprecated-2b.cc: New test.
1741 * testsuite/20_util/aligned_union/deprecated-2b.cc: New test.
1742
1743 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
1744
1745 * doc/doxygen/user.cfg.in (PREDEFINED): Update macros.
1746 * include/bits/c++config (_GLIBCXX20_DEPRECATED): Make
1747 consistent with other 'deprecated' macros.
1748 * include/std/type_traits (is_pod, is_pod_v): Use
1749 _GLIBCXX20_DEPRECATED_SUGGEST instead.
1750
1751 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
1752
1753 * Makefile.am [!_GLIBCXX_HOSTED]: Enable src/ subdirectory.
1754 * Makefile.in: Regenerate.
1755 * src/Makefile.am [!_GLIBCXX_HOSTED]: Omit compatibility files.
1756 There's no history to be compatible with.
1757 * src/c++11/Makefile.am [!_GLIBCXX_HOSTED]: Omit hosted-only
1758 source files from the build.
1759 * src/c++17/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
1760 * src/c++20/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
1761 * src/c++98/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
1762 * src/Makefile.in: Regenerate.
1763 * src/c++11/Makefile.in: Regenerate.
1764 * src/c++17/Makefile.in: Regenerate.
1765 * src/c++20/Makefile.in: Regenerate.
1766 * src/c++98/Makefile.in: Regenerate.
1767
1768 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
1769
1770 * src/Makefile.am [GLIBCXX_HOSTED] (SUBDIRS): Do not add
1771 filesystem, libbacktrace and experimental.
1772 * src/Makefile.in: Regenerate.
1773
1774 2023-02-04 Hans-Peter Nilsson <hp@axis.com>
1775
1776 PR libstdc++/108672
1777 * include/pstl/unseq_backend_simd.h (__simd_or): Use __INT32_TYPE__
1778 instead of int32_t.
1779
1780 2023-02-04 Gerald Pfeifer <gerald@pfeifer.com>
1781
1782 * doc/xml/manual/documentation_hacking.xml: Adjust link to pdftex.
1783 * doc/html/manual/documentation_hacking.html: Regenerate.
1784
1785 2023-02-04 François Dumont <fdumont@gcc.gnu.org>
1786
1787 * include/bits/basic_string.h (operator=(basic_string&&)): Transfer move-to
1788 storage to the move-from instance when allocators are equal.
1789 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test04):
1790 New test case.
1791
1792 2023-02-03 Samuel Thibault <samuel.thibault@gnu.org>
1793
1794 * config/os/gnu-linux/os_defines.h [!__linux__]
1795 (_GLIBCXX_NATIVE_THREAD_ID, _GLIBCXX_GTHREAD_USE_WEAK): Do not define.
1796
1797 2023-02-03 Patrick Palka <ppalka@redhat.com>
1798
1799 * include/bits/ranges_algo.h (__find_last_fn, find_last):
1800 Define.
1801 (__find_last_if_fn, find_last_if): Define.
1802 (__find_last_if_not_fn, find_last_if_not): Define.
1803 * testsuite/25_algorithms/find_last/1.cc: New test.
1804 * testsuite/25_algorithms/find_last_if/1.cc: New test.
1805 * testsuite/25_algorithms/find_last_if_not/1.cc: New test.
1806
1807 2023-02-03 Patrick Palka <ppalka@redhat.com>
1808
1809 * include/bits/ranges_algo.h (out_value_result): Define.
1810 (iota_result): Define.
1811 (__iota_fn, iota): Define.
1812 * testsuite/25_algorithms/iota/1.cc: New test.
1813
1814 2023-02-03 Patrick Palka <ppalka@redhat.com>
1815
1816 * include/bits/ranges_algo.h (__contains_fn, contains): Define.
1817 (__contains_subrange_fn, contains_subrange): Define.
1818 * testsuite/25_algorithms/contains/1.cc: New test.
1819 * testsuite/25_algorithms/contains_subrange/1.cc: New test.
1820
1821 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
1822
1823 * doc/xml/manual/abi.xml: Tweak link to ABIcheck project.
1824 * doc/html/manual/abi.html: Regenerate.
1825
1826 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
1827
1828 * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
1829 errc::function_not_supported instead of errc::not_supported.
1830
1831 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
1832
1833 * include/std/sstream (basic_stringbuf::view): Define for old
1834 std::string ABI.
1835 (basic_istringstream::view, basic_0stringstream::view)
1836 (basic_stringstream::view): Likewise.
1837 * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove
1838 { dg-require-effective-target cxx11_abi }.
1839 * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
1840 Likewise.
1841 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
1842 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
1843 Likewise.
1844 * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
1845 * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
1846 * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
1847 * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
1848 Likewise.
1849
1850 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
1851
1852 PR libstdc++/108636
1853 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export shared_ptr
1854 conversion operators for directory iterator comparisons with
1855 std::default_sentinel_t.
1856 * include/bits/fs_path.h (path::path(string_view, _Type))
1857 (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
1858 definitions to ...
1859 * src/c++17/fs_path.cc: ... here.
1860 * testsuite/27_io/filesystem/path/108636.cc: New test.
1861
1862 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
1863
1864 * include/std/variant (variant::operator=): Implement resolution
1865 of LWG 3585.
1866 * testsuite/20_util/variant/lwg3585.cc: New test.
1867
1868 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
1869
1870 * doc/xml/manual/using_exceptions.xml: Update a www.open-std.org
1871 link to https.
1872 * doc/html/manual/using_exceptions.html: Regenerate.
1873
1874 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
1875
1876 * doc/xml/manual/debug.xml: Fix link to online GDB manual.
1877 * doc/html/manual/debug.html: Regenerate.
1878
1879 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
1880
1881 * src/c++11/random.cc (random_device::_M_fini): Do not try to
1882 close the file handle if the target doesn't support the
1883 /dev/random and /dev/urandom files.
1884
1885 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
1886
1887 * config/os/generic/error_constants.h (errc::value_too_large)
1888 [__AVR__]: Define.
1889 * src/c++11/system_error.cc
1890 (system_category::default_error_condition) [__AVR__]: Only match
1891 recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
1892 * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
1893 for ENOENT etc. in switch.
1894 (fs::remove_all) [__AVR__]: Likewise.
1895 * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
1896 close etc.
1897
1898 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
1899
1900 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR) [avr-*-*, msp430-*-*]: Set
1901 embed_zoneinfo=no
1902 * configure: Regenerate.
1903
1904 2023-02-01 Hans-Peter Nilsson <hp@axis.com>
1905
1906 PR testsuite/108632
1907 * testsuite/std/time/hh_mm_ss/1.cc (size): Add empty
1908 struct at end of S0.
1909
1910 2023-01-30 Gerald Pfeifer <gerald@pfeifer.com>
1911
1912 * doc/xml/manual/shared_ptr.xml: Move links from both
1913 http://open-std.org and http://www.open-std.org to
1914 https://www.open-std.org.
1915 * doc/html/manual/memory.html: Regenerate.
1916
1917 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
1918
1919 * doc/xml/manual/appendix_contributing.xml: Adjust link to
1920 ISO C++ standard at ANSI.
1921 Move link to www.open-std.org to https.
1922 * doc/html/manual/appendix_contributing.html: Regenerate.
1923
1924 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
1925
1926 * doc/xml/manual/documentation_hacking.xml: Move sourceforge.net
1927 links to https.
1928 * doc/html/manual/documentation_hacking.html: Regenerate.
1929
1930 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
1931
1932 * doc/xml/manual/abi.xml: Update www.open-std.org link to https.
1933 * doc/html/manual/abi.html: Regenerate.
1934
1935 2023-01-27 Jakub Jelinek <jakub@redhat.com>
1936
1937 PR libstdc++/108568
1938 * testsuite/17_intro/names.cc (__unused): For linux or GNU hurd
1939 include features.h if present and then check __GLIBC__ and
1940 __GLIBC_MINOR__ macros for glibc prior to 2.19, instead of testing
1941 __GLIBC_PREREQ which isn't defined yet.
1942
1943 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
1944
1945 * src/c++20/tzdb.cc (tzdata_stream): Use constant instead of
1946 string literal.
1947
1948 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
1949
1950 PR libstdc++/108554
1951 * testsuite/23_containers/map/modifiers/108554.cc: Use dg-bogus.
1952
1953 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
1954
1955 * src/c++20/tzdb.cc (operator>>(istream&, ZoneInfo&)): Allow
1956 rules named "+" for compatibility with older tzdata.zi files.
1957
1958 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
1959
1960 PR libstdc++/108554
1961 * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
1962 nonnull attribute.
1963 (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
1964 attributes.
1965 * testsuite/23_containers/map/modifiers/108554.cc: New test.
1966
1967 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
1968
1969 PR libstdc++/108530
1970 * src/c++20/tzdb.cc (current_zone): Look for TIMEZONE or ZONE in
1971 /etc/sysconfig/clock, not DEFAULT_TIMEZONE.
1972
1973 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
1974
1975 * doc/xml/manual/intro.xml: Update links to www.open-std.org to
1976 use https.
1977 * doc/html/manual/bugs.html: Regenerate.
1978
1979 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
1980
1981 PR libstdc++/108530
1982 * src/c++20/tzdb.cc (current_zone): Look for DEFAULT_TIMEZONE in
1983 /etc/sysconfig/clock.
1984
1985 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
1986
1987 PR libstdc++/102301
1988 * include/bits/ranges_base.h: Include <bits/stl_iterator.h> for
1989 std::make_reverse_iterator.
1990 * include/std/tuple: Include <bits/ranges_util.h> for subrange.
1991 (make_from_tuple): Add static assertion from P2255 to diagnose
1992 dangling references.
1993 * testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc: New test.
1994 * testsuite/20_util/tuple/make_from_tuple/tuple_like.cc: New test.
1995
1996 2023-01-23 François Dumont <fdumont@gcc.gnu.org>
1997
1998 * include/debug/safe_iterator.h (_Safe_iterator<>::_Unchecked): New.
1999 (_Safe_iterator(const _Safe_iterator&, _Unchecked)): New.
2000 (_Safe_iterator::operator++(int)): Use latter.
2001 (_Safe_iterator::operator--(int)): Likewise.
2002 (_Safe_iterator(_Iterator, const _Safe_sequence_base*)): Remove !_M_insular()
2003 check.
2004 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_Unchecked):
2005 New.
2006 (_Safe_local_iterator(const _Safe_local_iterator&, _Unchecked)): New.
2007 (_Safe_local_iterator::operator++(int)): Use latter.
2008 * src/c++11/debug.cc (_S_debug_messages): Add as comment the _Debug_msg_id
2009 entry associated to the array entry.
2010
2011 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
2012
2013 * include/bits/fs_path.h (u8path): Add deprecated attribute.
2014 * testsuite/27_io/filesystem/path/construct/90281.cc: Add
2015 -Wno-deprecated-declarations for C++20 and later.
2016 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
2017 Likewise.
2018 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
2019 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
2020 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: New test.
2021
2022 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
2023
2024 * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
2025 Always call _M_fini and _M_getentropy.
2026
2027 2023-01-18 Gerald Pfeifer <gerald@pfeifer.com>
2028
2029 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust links
2030 to www.open-std.org to use https.
2031 (COM: Component Model Object Technologies): Rename from...
2032 (The Component Object Model): ...to.
2033 * doc/html/manual/policy_data_structures.html: Regenerate.
2034
2035 2023-01-18 Dimitrij Mijoski <dmjpp@hotmail.com>
2036
2037 * testsuite/22_locale/codecvt/codecvt_unicode.cc: Simplify.
2038 * testsuite/22_locale/codecvt/codecvt_unicode.h: Simplify.
2039 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Simplify.
2040
2041 2023-01-17 Jonathan Wakely <jwakely@redhat.com>
2042
2043 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Check $target_os instead
2044 of $host. Fix check for file being present during native build.
2045 * configure: Regenerate.
2046
2047 2023-01-17 Martin Liska <mliska@suse.cz>
2048
2049 * src/libbacktrace/Makefile.in: Regenerate.
2050
2051 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
2052
2053 * src/c++20/tzdb.cc (_GLIBCXX_USE_CXX11_ABI): Define to 1.
2054
2055 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
2056
2057 PR libstdc++/108413
2058 * include/c_compatibility/stdatomic.h: Change copyright line to
2059 be consistent with other headers contributed under DCO terms.
2060 * include/std/expected: Add full stop to copyright line.
2061 * src/c++20/tzdb.cc: Likewise.
2062
2063 2023-01-15 Gerald Pfeifer <gerald@pfeifer.com>
2064
2065 * doc/xml/manual/status_cxx2014.xml: Switch www.open-std.org to
2066 https.
2067 * doc/xml/manual/status_cxx2017.xml: Ditto.
2068 * doc/xml/manual/status_cxx2020.xml: Ditto.
2069 * doc/xml/manual/status_cxx2023.xml: Ditto.
2070 * doc/html/manual/status.html: Regenerate.
2071
2072 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
2073
2074 * testsuite/std/time/tzdb_list/1.cc: Remove dg-xfail-run-if
2075 and fail gracefully if defining the weak symbol doesn't work.
2076
2077 2023-01-15 François Dumont <fdumont@gcc.gnu.org>
2078
2079 PR libstdc++/108288
2080 * include/debug/safe_iterator.h (_Safe_iterator<>::operator++(int)): Extend deadlock
2081 fix to other iterator category.
2082 (_Safe_iterator<>::operator--(int)): Likewise.
2083 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::operator++(int)):
2084 Fix deadlock.
2085 * testsuite/util/debug/unordered_checks.h (invalid_local_iterator_pre_increment): New.
2086 (invalid_local_iterator_post_increment): New.
2087 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc:
2088 New test.
2089 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc:
2090 New test.
2091
2092 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
2093
2094 * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
2095 dg-options.
2096
2097 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
2098
2099 * testsuite/std/time/clock/utc/io.cc: Use ctype to widen char.
2100
2101 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
2102
2103 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Add check for
2104 windows.h. Add pecoff as FORMAT_FILE.
2105 * config.h.in: Regenerate.
2106 * configure: Regenerate.
2107 * src/libbacktrace/Makefile.am: Regenerate.
2108 * src/libbacktrace/Makefile.in: Add pecoff.c as FORMAT_FILE.
2109
2110 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
2111
2112 * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
2113 raw __name if __cxa_demangle could not demangle it.
2114
2115 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
2116
2117 PR libstdc++/108409
2118 * src/c++20/tzdb.cc (current_zone()) [_AIX]: Use TZ environment
2119 variable.
2120
2121 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
2122
2123 * src/c++20/tzdb.cc (TZDB_DISABLED): Disable all code for
2124 loading tzdb.
2125 * testsuite/std/time/tzdb/leap_seconds.cc: Require tzdb
2126 effective target.
2127 * testsuite/std/time/tzdb_list/1.cc: Likewise.
2128
2129 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
2130
2131 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Replace the
2132 --with-libstdcxx-zoneinfo-dir configure option with
2133 --with-libstdcxx-zoneinfo with yes/no/static choices as well as
2134 a directory.
2135 * config.h.in: Regenerate.
2136 * configure: Regenerate.
2137 * doc/xml/manual/configure.xml: Document configure option.
2138 * doc/html/manual/configure.html: Regenerate.
2139 * src/c++20/Makefile.am: Generate tzdata.zi.h header.
2140 * src/c++20/Makefile.in: Regenerate.
2141 * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Return a
2142 null pointer if no directory is configured.
2143 (zoneinfo_dir): Replace with ...
2144 (zoneinfo_file): New function.
2145 (tzdata_stream): New istream class.
2146 (remote_version, reload_tzdb): Use tzdata_stream.
2147 * testsuite/lib/libstdc++.exp (check_effective_target_tzdb):
2148 Check new _GLIBCXX_STATIC_TZDATA macro and ignore presence of
2149 tzdata.zi file in default location.
2150 * src/c++20/tzdata.zi: New file.
2151
2152 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
2153
2154 * include/bits/chrono_io.h (operator<<): Fix syntax errors.
2155 * testsuite/std/time/month_day/io.cc: New test.
2156 * testsuite/std/time/month_day_last/io.cc: New test.
2157 * testsuite/std/time/month_weekday/io.cc: New test.
2158 * testsuite/std/time/month_weekday_last/io.cc: New test.
2159 * testsuite/std/time/weekday_indexed/io.cc: New test.
2160 * testsuite/std/time/weekday_last/io.cc: New test.
2161 * testsuite/std/time/year_month/io.cc: New test.
2162 * testsuite/std/time/year_month_day_last/io.cc: New test.
2163 * testsuite/std/time/year_month_weekday/io.cc: New test.
2164 * testsuite/std/time/year_month_weekday_last/io.cc: New test.
2165
2166 2023-01-14 François Dumont <fdumont@gcc.gnu.org>
2167
2168 * include/std/format [_GLIBCXX_INLINE_VERSION](to_chars): Adapt __asm symbol
2169 specifications.
2170 * config/abi/pre/gnu-versioned-namespace.ver: Add to_chars/from_chars symbols
2171 export.
2172
2173 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
2174
2175 * include/bits/std_mutex.h: Include <errno.h>.
2176
2177 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
2178
2179 * testsuite/20_util/to_chars/version.cc: Mark hosted-only.
2180 * testsuite/20_util/uses_allocator/lwg3677.cc: Ditto.
2181 * testsuite/20_util/weak_ptr/cons/self_move.cc: Ditto.
2182 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Replace usage of
2183 std::make_unique with a freestanding-compatible wrapper around
2184 unique_ptr.
2185 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
2186 Don't test for presence of __cpp_lib_string_contains on !HOSTED.
2187 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
2188 Ditto.
2189 * testsuite/std/ranges/version_c++23.cc: Don't test for presence
2190 of __cpp_lib_ranges in !HOSTED.
2191
2192 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
2193
2194 * include/Makefile.am: Install bits/char_traits.h,
2195 std/string_view
2196 * include/Makefile.in: Regenerate.
2197 * include/bits/char_traits.h: Gate hosted-only, wchar-only and
2198 mbstate-only bits behind appropriate #ifs.
2199 * include/std/string_view: Gate <iostream> functionality behind
2200 HOSTED.
2201 * include/std/version: Enable __cpp_lib_constexpr_string_view
2202 and __cpp_lib_starts_ends_with in !HOSTED.
2203 * include/std/ranges: Re-enable __is_basic_string_view on
2204 freestanding, include <string_view> directly.
2205 * include/precompiled/stdc++.h: Include <string_view> when
2206 !HOSTED too.
2207 * testsuite/20_util/function_objects/searchers.cc: Skip testing
2208 boyer_moore searchers on freestanding
2209 * testsuite/21_strings/basic_string_view/capacity/1.cc: Guard
2210 <string>-related tests behind __STDC_HOSTED__.
2211 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Ditto.
2212 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Remove
2213 unused <stdexcept> include.
2214 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Remove
2215 unused <vector> include.
2216 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
2217 Guard <string> related testing behind __STDC_HOSTED__.
2218 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
2219 Guard <stdexcept> related tests behind __STDC_HOSTED__.
2220 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2221 Ditto.
2222 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2223 Guard <stdexcept> tests behind __STDC_HOSTED__.
2224 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
2225 Enable test on freestanding, guard <stdexcept> bits behind
2226 __STDC_HOSTED__.
2227 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
2228 Guard <stdexcept> bits behind __STDC_HOSTED__.
2229 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
2230 Ditto.
2231
2232 2023-01-13 Dimitrij Mijoski <dmjpp@hotmail.com>
2233
2234 PR libstdc++/86419
2235 * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect
2236 errors in incomplete multibyte sequences.
2237 (utf16_in): Remove surrogates parameter. Fix conditions for
2238 returning partial.
2239 (utf16_out): Fix condition for returning partial.
2240 (ucs2_in): Do not pass surrogates argument to utf16_in.
2241 * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test.
2242 * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for
2243 tests.
2244 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
2245 test.
2246
2247 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
2248
2249 PR libstdc++/108331
2250 * config/io/c_io_stdio.h (__c_lock): Define as a typedef for
2251 __GTHREAD_LEGACY_MUTEX_T if defined.
2252
2253 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
2254
2255 PR libstdc++/108327
2256 * config/os/gnu-linux/ldbl-extra.ver (GLIBCXX_LDBL_3.4.31):
2257 Export __try_use_facet specializations for facets in namespace
2258 __gnu_cxx_ldbl128.
2259 * config/os/gnu-linux/ldbl-ieee128-extra.ver
2260 (GLIBCXX_IEEE128_3.4.31): Likewise for facets in namespace
2261 __gnu_cxx_ieee128.
2262 * testsuite/util/testsuite_abi.cc: Add to lists of known and
2263 latest versions.
2264
2265 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
2266
2267 * include/bits/std_mutex.h: Remove <system_error> include.
2268 * include/std/condition_variable: Add <bits/error_constants.h>
2269 include.
2270 * include/std/mutex: Likewise.
2271 * include/std/shared_mutex: Likewise.
2272
2273 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
2274
2275 PR libstdc++/77691
2276 * include/experimental/memory_resource
2277 (_GLIBCXX_MAX_ALIGN_MATCHES_MALLOC): Define.
2278 (do_allocate, do_deallocate): Check it.
2279 * testsuite/experimental/memory_resource/new_delete_resource.cc:
2280 Relax expected behaviour for 64-bit hppa-hp-hpux11.11.
2281
2282 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
2283
2284 * doc/xml/manual/abi.xml: Add latest library versions.
2285 * doc/html/manual/abi.html: Regenerate.
2286
2287 2023-01-12 François Dumont <fdumont@gcc.gnu.org>
2288
2289 PR libstdc++/107189
2290 * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_range_equal): Remove
2291 unused _Alloc_node instance.
2292
2293 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
2294
2295 * include/bits/atomic_wait.h (__detail::__platform_wait_t):
2296 Define as unsigned long if always lock-free, and unsigned int
2297 otherwise.
2298
2299 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
2300
2301 * src/c++20/tzdb.cc (tzdb_list::_S_init_tzdb): Use __try and
2302 __catch macros for exception handling.
2303
2304 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
2305
2306 PR libstdc++/108221
2307 * include/bits/stl_algobase.h (__lg): Replace six overloads with
2308 a single function template for all integer types.
2309 * include/bits/stl_algo.h (__merge_adaptive_resize): Cast
2310 arithmetic results back to _Distance.
2311
2312 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
2313
2314 PR libstdc++/108221
2315 * include/std/span (span::span()): Un-simplify constraint to
2316 work for size_t of lesser rank than int.
2317
2318 2023-01-07 LIU Hao <lh_mouse@126.com>
2319
2320 PR middle-end/108300
2321 * src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before
2322 <windows.h>.
2323 * src/c++11/thread.cc: Likewise.
2324 * src/c++17/fs_ops.cc: Likewise.
2325 * src/filesystem/ops.cc: Likewise.
2326
2327 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
2328
2329 PR libstdc++/108228
2330 * src/c++20/tzdb.cc (zoneinfo_dir): Add diagnostic pragma.
2331
2332 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
2333
2334 PR libstdc++/108235
2335 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): New class
2336 template and partial specialization for synchronizing access to
2337 time_zone::_Impl::infos.
2338 (time_zone::_M_get_sys_info, reload_tzdb): Adjust uses of
2339 rules_counter.
2340
2341 2023-01-06 Patrick Palka <ppalka@redhat.com>
2342
2343 PR libstdc++/108260
2344 * include/bits/utility.h (__cpp_lib_ranges_zip): Define for C++23.
2345 * include/std/ranges (__cpp_lib_ranges_zip): Likewise.
2346 (__cpp_lib_ranges_chunk): Likewise.
2347 (__cpp_lib_ranges_slide): Likewise.
2348 (__cpp_lib_ranges_chunk_by): Likewise.
2349 (__cpp_lib_ranges_join_with): Likewise.
2350 (__cpp_lib_ranges_repeat): Likewise.
2351 (__cpp_lib_ranges_stride): Likewise.
2352 (__cpp_lib_ranges_cartesian_product): Likewise.
2353 (__cpp_lib_ranges_as_rvalue): Likewise.
2354 * include/std/version: Ditto.
2355 * testsuite/20_util/tuple/p2321r2.cc: Verify value of
2356 feature-test macro.
2357 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
2358 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
2359 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
2360 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
2361 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
2362 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
2363 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
2364 * testsuite/std/ranges/repeat/1.cc: Likewise.
2365 * testsuite/std/ranges/zip/1.cc: Likewise.
2366 * testsuite/std/ranges/version_c++23.cc: New test.
2367
2368 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
2369
2370 PR libstdc++/108214
2371 * include/std/bitset (operator>>): Use alloca in the right
2372 scope, not in a constructor.
2373 * testsuite/20_util/bitset/io/input.cc: Check case from PR.
2374
2375 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
2376
2377 PR libstdc++/108221
2378 * include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
2379 Disable visiting floating-point types.
2380
2381 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
2382
2383 PR libstdc++/108288
2384 * include/debug/safe_iterator.h (_Safe_iterator::operator++(int))
2385 (_Safe_iterator::operator--(int)): Do not hold lock around
2386 construction of return value.
2387
2388 2023-01-05 John David Anglin <danglin@gcc.gnu.org>
2389
2390 * config/cpu/hppa/atomicity.h (_PA_LDCW_INSN): Define.
2391 (__exchange_and_add): Use _PA_LDCW_INSN. Use ordered store for
2392 lock release. Revise loop.
2393 (__atomic_add): Likewise.
2394
2395 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
2396
2397 PR libstdc++/108212
2398 * python/libstdcxx/v6/printers.py (_utc_timezone): New global
2399 variable.
2400 (StdChronoTimePointPrinter::to_string): Use it.
2401
2402 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
2403
2404 PR libstdc++/108290
2405 * include/std/functional (_Bind_front): Add no_unique_address
2406 attribute to data members.
2407 * testsuite/20_util/function_objects/bind_front/107784.cc: Check
2408 size of call wrappers with empty types for targets and bound
2409 arguments.
2410
2411 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
2412
2413 PR libstdc++/108211
2414 * src/c++20/tzdb.cc (chrono::current_zone()): Check for zone
2415 using only last component of the name.
2416
2417 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
2418
2419 PR libstdc++/108228
2420 PR libstdc++/108235
2421 * config/abi/pre/gnu.ver: Move zoneinfo_dir_override export to
2422 the latest symbol version.
2423 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define to 0 if
2424 atomic<_Node*> is not always lock free.
2425 (USE_ATOMIC_LIST_HEAD): New macro.
2426 [__hpux__] (__gnu_cxx::zoneinfo_dir_override()): Provide
2427 definition of weak symbol.
2428 (tzdb_list::_Node::_S_head): Rename to _S_head_cache.
2429 (tzdb_list::_Node::_S_list_head): New function for accessing
2430 list head efficiently.
2431 (tzdb_list::_Node::_S_cache_list_head): New function for
2432 updating _S_list_head.
2433
2434 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
2435
2436 PR libstdc++/108265
2437 * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
2438 duration rep is unsigned.
2439 * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep.
2440
2441 2023-01-04 Iain Sandoe <iain@sandoe.co.uk>
2442
2443 PR libstdc++/108228
2444 * config/abi/pre/gnu.ver (GLIBCXX_3.4):
2445 Add __gnu_cxx::zoneinfo_dir_override().
2446
2447 2023-01-04 Jonathan Wakely <jwakely@redhat.com>
2448
2449 PR libstdc++/108258
2450 * include/std/array (__array_traits<T, 0>::operator T*()): Add
2451 constexpr.
2452 * testsuite/23_containers/array/element_access/constexpr_c++17.cc: Check
2453 std::array<T, 0>::data().
2454
2455 \f
2456 Copyright (C) 2023 Free Software Foundation, Inc.
2457
2458 Copying and distribution of this file, with or without modification,
2459 are permitted in any medium without royalty provided the copyright
2460 notice and this notice are preserved.