]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
Daily bump.
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2023-11-21 Jonathan Wakely <jwakely@redhat.com>
2
3 * include/bits/version.def (freestanding_cstring): Add.
4 * include/bits/version.h: Regenerate.
5 * include/c_compatibility/string.h (strtok): Do not declare for
6 C++26 freestanding.
7 * include/c_global/cstring (strtok): Likewise.
8 * testsuite/21_strings/headers/cstring/version.cc: New test.
9
10 2023-11-21 Jonathan Wakely <jwakely@redhat.com>
11
12 * include/bits/version.def (freestanding_algorithm)
13 (freestanding_array, freestanding_optional)
14 (freestanding_string_view, freestanding_variant): Add.
15 * include/bits/version.h: Regenerate.
16 * include/std/algorithm (__glibcxx_want_freestanding_algorithm):
17 Define.
18 * include/std/array (__glibcxx_want_freestanding_array):
19 Define.
20 * include/std/optional (__glibcxx_want_freestanding_optional):
21 Define.
22 * include/std/string_view
23 (__glibcxx_want_freestanding_string_view): Define.
24 * include/std/variant (__glibcxx_want_freestanding_variant):
25 Define.
26 * testsuite/20_util/optional/version.cc: Add checks for
27 __cpp_lib_freestanding_optional.
28 * testsuite/20_util/variant/version.cc: Add checks for
29 __cpp_lib_freestanding_variant.
30 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
31 Adjust dg-error line numbers.
32 * testsuite/21_strings/basic_string_view/requirements/version.cc:
33 New test.
34 * testsuite/23_containers/array/requirements/version.cc: New
35 test.
36 * testsuite/25_algorithms/fill_n/requirements/version.cc: New
37 test.
38 * testsuite/25_algorithms/swap_ranges/requirements/version.cc:
39 New test.
40
41 2023-11-21 Jonathan Wakely <jwakely@redhat.com>
42
43 * include/bits/version.def (freestanding_expected): New macro.
44 (span): Add C++26 value.
45 * include/bits/version.h: Regenerate.
46 * include/std/expected (__glibcxx_want_freestanding_expected):
47 Define.
48 * include/std/span (span::at): New member function.
49 * testsuite/20_util/expected/version.cc: Add checks for
50 __cpp_lib_freestanding_expected.
51 * testsuite/23_containers/span/2.cc: Moved to...
52 * testsuite/23_containers/span/version.cc: ...here. Add checks
53 for __cpp_lib_span in <span> as well as in <version>.
54 * testsuite/23_containers/span/1.cc: Removed.
55 * testsuite/23_containers/span/at.cc: New test.
56
57 2023-11-21 Jonathan Wakely <jwakely@redhat.com>
58
59 * include/tr2/dynamic_bitset (dynamic_bitset): Pass zero and one
60 characters to _M_copy_from_string.
61 * testsuite/tr2/dynamic_bitset/string.cc: New test.
62
63 2023-11-21 Jonathan Wakely <jwakely@redhat.com>
64
65 * doc/html/*: Regenerate.
66 * doc/xml/faq.xml: Remove reference to buildstat.html pages.
67 * doc/xml/manual/test.xml: Likewise
68
69 2023-11-21 Jan Hubicka <jh@suse.cz>
70
71 PR libstdc++/110287
72 PR middle-end/109811
73 PR middle-end/109849
74 * include/bits/stl_vector.h (_M_realloc_append): New member function.
75 (push_back): Use it.
76 * include/bits/vector.tcc: (emplace_back): Use it.
77 (_M_realloc_insert): Let compiler know that new vector size is non-zero.
78 (_M_realloc_append): New member function.
79
80 2023-11-18 Jonathan Wakely <jwakely@redhat.com>
81
82 PR libstdc++/112607
83 * include/std/format (basic_format_arg::_S_to_arg_type): Check
84 value_type for basic_string_view and basic_string
85 specializations.
86 * testsuite/std/format/arguments/112607.cc: New test.
87
88 2023-11-18 Jonathan Wakely <jwakely@redhat.com>
89
90 PR libstdc++/110801
91 * include/std/format (_Sink_iter::_M_reserve): New member
92 function.
93 (_Sink::_Reservation): New nested class.
94 (_Sink::_M_reserve, _Sink::_M_bump): New virtual functions.
95 (_Seq_sink::_M_reserve, _Seq_sink::_M_bump): New virtual
96 overrides.
97 (_Iter_sink<O, ContigIter>::_M_reserve): Likewise.
98 (__do_vformat_to): Use new functions to optimize "{}" case.
99
100 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
101
102 * config.h.in: Regenerate.
103
104 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
105
106 * include/Makefile.am: Add new header.
107 * include/Makefile.in: Regenerate.
108 * include/bits/version.def (saturation_arithmetic): Define.
109 * include/bits/version.h: Regenerate.
110 * include/std/numeric: Include new header.
111 * include/bits/sat_arith.h: New file.
112 * testsuite/26_numerics/saturation/add.cc: New test.
113 * testsuite/26_numerics/saturation/cast.cc: New test.
114 * testsuite/26_numerics/saturation/div.cc: New test.
115 * testsuite/26_numerics/saturation/mul.cc: New test.
116 * testsuite/26_numerics/saturation/sub.cc: New test.
117 * testsuite/26_numerics/saturation/version.cc: New test.
118
119 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
120
121 * include/std/utility (in_range): Rename _Up parameter to _Res.
122
123 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
124
125 * include/bits/out_ptr.h: Add Doxygen comments. Remove a
126 redundant preprocessor condition.
127 * testsuite/20_util/smartptr.adapt/version.cc: New test.
128
129 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
130
131 * include/bits/chrono_io.h: Fix Doxygen markup.
132
133 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
134
135 PR libstdc++/112564
136 * include/std/stacktrace (formatter::format): Format according
137 to format-spec.
138 * include/std/thread (formatter::format): Use _Align_right as
139 default.
140 * testsuite/19_diagnostics/stacktrace/output.cc: Check
141 fill-and-align handling. Change compile test to run.
142 * testsuite/30_threads/thread/id/output.cc: Check fill-and-align
143 handling.
144
145 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
146
147 PR libstdc++/111667
148 * include/Makefile.am: Add new header.
149 * include/Makefile.in: Regenerate.
150 * include/bits/out_ptr.h: New file.
151 * include/bits/shared_ptr.h (__is_shared_ptr): Move definition
152 to here ...
153 * include/bits/shared_ptr_atomic.h (__is_shared_ptr): ... from
154 here.
155 * include/bits/shared_ptr_base.h (__shared_count): Declare
156 out_ptr_t as a friend.
157 (_Sp_counted_deleter, __shared_ptr): Likewise.
158 * include/bits/unique_ptr.h (unique_ptr, unique_ptr<T[], D>):
159 Declare out_ptr_t and inout_ptr_t as friends.
160 (__is_unique_ptr): Define new variable template.
161 * include/bits/version.def (out_ptr): Define.
162 * include/bits/version.h: Regenerate.
163 * include/std/memory: Include new header.
164 * testsuite/20_util/smartptr.adapt/inout_ptr/1.cc: New test.
165 * testsuite/20_util/smartptr.adapt/inout_ptr/2.cc: New test.
166 * testsuite/20_util/smartptr.adapt/inout_ptr/shared_ptr_neg.cc:
167 New test.
168 * testsuite/20_util/smartptr.adapt/inout_ptr/void_ptr.cc: New
169 test.
170 * testsuite/20_util/smartptr.adapt/out_ptr/1.cc: New test.
171 * testsuite/20_util/smartptr.adapt/out_ptr/2.cc: New test.
172 * testsuite/20_util/smartptr.adapt/out_ptr/shared_ptr_neg.cc:
173 New test.
174 * testsuite/20_util/smartptr.adapt/out_ptr/void_ptr.cc: New
175 test.
176
177 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
178
179 * include/bits/algorithmfwd.h: Do not define standard feature
180 test macro here.
181 * include/bits/align.h: Likewise. Test internal macros instead
182 of standard macros.
183 * include/bits/alloc_traits.h: Likewise.
184 * include/bits/allocator.h: Likewise.
185 * include/bits/atomic_base.h: Likewise.
186 * include/bits/atomic_timed_wait.h: Likewise.
187 * include/bits/atomic_wait.h: Likewise.
188 * include/bits/basic_string.h: Likewise.
189 * include/bits/basic_string.tcc: Likewise.
190 * include/bits/char_traits.h: Likewise.
191 * include/bits/chrono.h: Likewise.
192 * include/bits/cow_string.h: Likewise.
193 * include/bits/forward_list.h: Likewise.
194 * include/bits/hashtable.h: Likewise.
195 * include/bits/ios_base.h: Likewise.
196 * include/bits/memory_resource.h: Likewise.
197 * include/bits/move.h: Likewise.
198 * include/bits/move_only_function.h: Likewise.
199 * include/bits/node_handle.h: Likewise.
200 * include/bits/ptr_traits.h: Likewise.
201 * include/bits/range_access.h: Likewise.
202 * include/bits/ranges_algo.h: Likewise.
203 * include/bits/ranges_cmp.h: Likewise.
204 * include/bits/ranges_util.h: Likewise.
205 * include/bits/semaphore_base.h: Likewise.
206 * include/bits/shared_ptr.h: Likewise.
207 * include/bits/shared_ptr_atomic.h: Likewise.
208 * include/bits/shared_ptr_base.h: Likewise.
209 * include/bits/stl_algo.h: Likewise.
210 * include/bits/stl_algobase.h: Likewise.
211 * include/bits/stl_function.h: Likewise.
212 * include/bits/stl_iterator.h: Likewise.
213 * include/bits/stl_list.h: Likewise.
214 * include/bits/stl_map.h: Likewise.
215 * include/bits/stl_pair.h: Likewise.
216 * include/bits/stl_queue.h: Likewise.
217 * include/bits/stl_stack.h: Likewise.
218 * include/bits/stl_tree.h: Likewise.
219 * include/bits/stl_uninitialized.h: Likewise.
220 * include/bits/stl_vector.h: Likewise.
221 * include/bits/unique_ptr.h: Likewise.
222 * include/bits/unordered_map.h: Likewise.
223 * include/bits/uses_allocator_args.h: Likewise.
224 * include/bits/utility.h: Likewise.
225 * include/bits/erase_if.h: Add comment.
226 * include/std/algorithm: Define standard feature test macros
227 here.
228 * include/std/atomic: Likewise.
229 * include/std/array: Likewise.
230 * include/std/chrono: Likewise.
231 * include/std/condition_variable: Likewise.
232 * include/std/deque: Likewise.
233 * include/std/format: Likewise.
234 * include/std/functional: Likewise.
235 * include/std/forward_list: Likewise.
236 * include/std/ios: Likewise.
237 * include/std/iterator: Likewise.
238 * include/std/list: Likewise.
239 * include/std/map: Likewise.
240 * include/std/memory: Likewise.
241 * include/std/numeric: Likewise.
242 * include/std/queue: Likewise.
243 * include/std/ranges: Likewise.
244 * include/std/regex: Likewise.
245 * include/std/set: Likewise.
246 * include/std/stack: Likewise.
247 * include/std/stop_token: Likewise.
248 * include/std/string: Likewise.
249 * include/std/string_view:
250 * include/std/tuple: Likewise.
251 * include/std/unordered_map:
252 * include/std/unordered_set:
253 * include/std/utility: Likewise.
254 * include/std/vector: Likewise.
255 * include/std/scoped_allocator: Query internal macros instead of
256 standard macros.
257
258 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
259
260 * testsuite/18_support/byte/requirements.cc: Disable PCH.
261 * testsuite/18_support/destroying_delete.cc: Likewise.
262 * testsuite/18_support/source_location/1.cc: Likewise.
263 * testsuite/18_support/source_location/version.cc: Likewise.
264 * testsuite/18_support/type_info/constexpr.cc: Likewise.
265 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
266 Likewise.
267 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
268 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
269 * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
270 * testsuite/20_util/addressof/requirements/constexpr.cc:
271 Likewise.
272 * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
273 * testsuite/20_util/allocator_traits/header.cc: Likewise.
274 * testsuite/20_util/as_const/1.cc: Likewise. Likewise.
275 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
276 * testsuite/20_util/bitset/version.cc: Likewise.
277 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
278 Likewise.
279 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
280 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
281 Likewise.
282 * testsuite/20_util/exchange/constexpr.cc: Likewise.
283 * testsuite/20_util/expected/synopsis.cc: Likewise.
284 * testsuite/20_util/expected/version.cc: Likewise.
285 * testsuite/20_util/function_objects/bind_front/1.cc: Likewise.
286 * testsuite/20_util/function_objects/bind_front/2.cc: Likewise.
287 * testsuite/20_util/function_objects/invoke/3.cc: Likewise.
288 * testsuite/20_util/function_objects/invoke/4.cc: Likewise.
289 * testsuite/20_util/function_objects/invoke/constexpr.cc:
290 Likewise.
291 * testsuite/20_util/function_objects/invoke/version.cc:
292 Likewise.
293 * testsuite/20_util/function_objects/searchers.cc: Likewise.
294 * testsuite/20_util/integer_comparisons/1.cc: Likewise.
295 * testsuite/20_util/integer_comparisons/2.cc: Likewise.
296 * testsuite/20_util/is_bounded_array/value.cc: Likewise.
297 * testsuite/20_util/is_layout_compatible/value.cc: Likewise.
298 * testsuite/20_util/is_layout_compatible/version.cc: Likewise.
299 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
300 Likewise.
301 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
302 Likewise.
303 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
304 * testsuite/20_util/is_nothrow_swappable/value.h: Likewise.
305 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
306 Remove redundant checks already tested elsewhere.
307 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
308 Likewise.
309 * testsuite/20_util/is_nothrow_swappable_with/value.cc: Disable
310 PCH.
311 * testsuite/20_util/is_pointer_interconvertible/value.cc:
312 Likewise.
313 * testsuite/20_util/is_pointer_interconvertible/version.cc:
314 Likewise.
315 * testsuite/20_util/is_scoped_enum/value.cc: Likewise.
316 * testsuite/20_util/is_scoped_enum/version.cc: Likewise.
317 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
318 Remove redundant checks already tested elsewhere.
319 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
320 Remove redundant checks already tested elsewhere.
321 * testsuite/20_util/is_swappable/value.cc: Disable PCH.
322 * testsuite/20_util/is_swappable/value.h: Reorder headers.
323 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
324 Remove redundant checks already tested elsewhere.
325 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
326 Remove redundant checks already tested elsewhere.
327 * testsuite/20_util/is_swappable_with/value.cc: Disable PCH.
328 * testsuite/20_util/is_unbounded_array/value.cc: Likewise.
329 * testsuite/20_util/move_only_function/cons.cc: Likewise.
330 * testsuite/20_util/move_only_function/version.cc: Likewise.
331 * testsuite/20_util/optional/monadic/and_then.cc: Likewise.
332 * testsuite/20_util/optional/requirements.cc: Likewise.
333 * testsuite/20_util/optional/version.cc: Likewise.
334 * testsuite/20_util/owner_less/void.cc: Likewise.
335 * testsuite/20_util/reference_from_temporary/value.cc: Likewise.
336 * testsuite/20_util/reference_from_temporary/version.cc:
337 Likewise.
338 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
339 Likewise.
340 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
341 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
342 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
343 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
344 * testsuite/20_util/to_chars/constexpr.cc: Likewise.
345 * testsuite/20_util/to_chars/result.cc: Likewise.
346 * testsuite/20_util/to_chars/version.cc: Likewise.
347 * testsuite/20_util/to_underlying/1.cc: Likewise.
348 * testsuite/20_util/to_underlying/version.cc: Likewise.
349 * testsuite/20_util/tuple/apply/1.cc: Likewise.
350 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
351 Likewise.
352 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
353 * testsuite/20_util/tuple/p2321r2.cc: Likewise.
354 * testsuite/20_util/tuple/tuple_element_t.cc: Likewise.
355 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc:
356 Likewise.
357 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
358 Likewise.
359 * testsuite/20_util/unreachable/1.cc: Likewise.
360 * testsuite/20_util/unreachable/version.cc: Likewise.
361 * testsuite/20_util/unwrap_reference/1.cc: Likewise.
362 * testsuite/20_util/unwrap_reference/3.cc: Likewise.
363 * testsuite/20_util/variant/constexpr.cc: Likewise.
364 * testsuite/20_util/variant/version.cc: Likewise.
365 * testsuite/20_util/variant/visit_inherited.cc: Likewise.
366 * testsuite/20_util/void_t/1.cc: Likewise.
367 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
368 Likewise.
369 * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
370 Likewise.
371 * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
372 Likewise.
373 * testsuite/21_strings/basic_string/erasure.cc: Likewise.
374 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc:
375 Likewise.
376 * testsuite/21_strings/basic_string/numeric_conversions/version.cc:
377 Likewise.
378 * testsuite/21_strings/basic_string/version.cc: Likewise.
379 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
380 Likewise.
381 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
382 Likewise.
383 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
384 Likewise.
385 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
386 Likewise.
387 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
388 Likewise.
389 * testsuite/21_strings/char_traits/requirements/version.cc:
390 Likewise.
391 * testsuite/23_containers/array/comparison_operators/constexpr.cc:
392 Likewise.
393 * testsuite/23_containers/array/creation/1.cc: Likewise.
394 * testsuite/23_containers/array/creation/2.cc: Likewise.
395 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
396 Likewise.
397 * testsuite/23_containers/array/requirements/constexpr_fill.cc:
398 Likewise.
399 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
400 Likewise.
401 * testsuite/23_containers/deque/erasure.cc: Likewise.
402 * testsuite/23_containers/forward_list/erasure.cc: Likewise.
403 * testsuite/23_containers/list/erasure.cc: Likewise.
404 * testsuite/23_containers/map/erasure.cc: Likewise.
405 * testsuite/23_containers/queue/cons_from_iters.cc: Likewise.
406 * testsuite/23_containers/set/erasure.cc: Likewise.
407 * testsuite/23_containers/span/1.cc: Likewise.
408 * testsuite/23_containers/span/2.cc: Likewise.
409 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
410 * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
411 * testsuite/23_containers/unordered_map/operations/1.cc:
412 Likewise.
413 * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
414 * testsuite/23_containers/unordered_set/operations/1.cc:
415 Likewise.
416 * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
417 * testsuite/23_containers/vector/erasure.cc: Likewise.
418 * testsuite/23_containers/vector/requirements/version.cc:
419 Likewise.
420 * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
421 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
422 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
423 Remove redundant checks already tested elsewhere.
424 * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
425 * testsuite/25_algorithms/cpp_lib_constexpr.cc: Likewise.
426 * testsuite/25_algorithms/fold_left/1.cc: Likewise.
427 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
428 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
429 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
430 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
431 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
432 * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: Likewise.
433 * testsuite/26_numerics/bit/bit.byteswap/version.cc: Likewise.
434 * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Likewise.
435 * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise.
436 * testsuite/26_numerics/bit/header-2.cc: Likewise.
437 * testsuite/26_numerics/bit/header.cc: Likewise.
438 * testsuite/26_numerics/complex/1.cc: Likewise.
439 * testsuite/26_numerics/complex/2.cc: Likewise.
440 * testsuite/26_numerics/endian/2.cc: Likewise.
441 * testsuite/26_numerics/endian/3.cc: Likewise.
442 * testsuite/26_numerics/gcd/1.cc: Likewise.
443 * testsuite/26_numerics/lcm/1.cc: Likewise.
444 * testsuite/26_numerics/lerp/1.cc: Likewise.
445 * testsuite/26_numerics/lerp/version.cc: Likewise.
446 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
447 * testsuite/26_numerics/midpoint/version.cc: Likewise.
448 * testsuite/26_numerics/numbers/1.cc: Likewise.
449 * testsuite/26_numerics/numbers/2.cc: Likewise.
450 * testsuite/27_io/basic_filebuf/native_handle/char/1.cc:
451 Likewise.
452 * testsuite/27_io/basic_filebuf/native_handle/version.cc:
453 Likewise.
454 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc:
455 Likewise.
456 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
457 Likewise.
458 * testsuite/27_io/basic_syncbuf/1.cc: Likewise.
459 * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
460 * testsuite/27_io/basic_syncstream/1.cc: Likewise.
461 * testsuite/27_io/basic_syncstream/2.cc: Likewise.
462 * testsuite/27_io/spanstream/1.cc: Likewise.
463 * testsuite/27_io/spanstream/version.cc: Likewise.
464 * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
465 * testsuite/29_atomics/atomic/lock_free_aliases.cc: Likewise.
466 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
467 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
468 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
469 Likewise.
470 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
471 * testsuite/30_threads/barrier/1.cc: Likewise.
472 * testsuite/30_threads/barrier/2.cc: Likewise.
473 * testsuite/30_threads/condition_variable_any/stop_token/1.cc:
474 Likewise.
475 * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
476 Likewise.
477 * testsuite/30_threads/jthread/1.cc: Likewise.
478 * testsuite/30_threads/jthread/version.cc: Likewise.
479 * testsuite/30_threads/latch/1.cc: Likewise.
480 * testsuite/30_threads/latch/2.cc: Likewise.
481 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
482 Likewise.
483 * testsuite/30_threads/semaphore/1.cc: Likewise.
484 * testsuite/30_threads/semaphore/2.cc: Likewise.
485 * testsuite/30_threads/stop_token/1.cc: Likewise.
486 * testsuite/30_threads/stop_token/2.cc: Likewise.
487 * testsuite/experimental/feat-char8_t.cc: Likewise.
488 * testsuite/experimental/iterator/ostream_joiner.cc: Likewise.
489 * testsuite/experimental/numeric/gcd.cc: Likewise.
490 * testsuite/experimental/scopeguard/uniqueres.cc: Likewise.
491 * testsuite/std/concepts/1.cc: Likewise.
492 * testsuite/std/concepts/2.cc: Likewise.
493 * testsuite/std/ranges/adaptors/as_const/1.cc: Likewise.
494 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
495 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
496 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
497 * testsuite/std/ranges/adaptors/enumerate/1.cc: Likewise.
498 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
499 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
500 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
501 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
502 * testsuite/std/ranges/headers/ranges/synopsis.cc: Likewise.
503 * testsuite/std/ranges/repeat/1.cc: Likewise.
504 * testsuite/std/ranges/version_c++23.cc: Likewise.
505 * testsuite/std/ranges/zip/1.cc: Likewise.
506 * testsuite/std/time/syn_c++20.cc: Likewise.
507 * testsuite/experimental/feat-cxx14.cc: Likewise. Include
508 <algorithm> and <iterator>.
509 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
510 Adjust dg-error line numbers.
511
512 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
513
514 * include/bits/version.def (stds): Use >= 202100 for C++23
515 condition.
516 * include/bits/version.h: Regenerate.
517 * include/std/thread: Use > C++20 instead of >= C++23 for
518 __cplusplus condition.
519
520 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
521
522 * include/std/istream (__rvalue_stream_extraction_t): Test
523 __cpp_concepts instead of __cpp_lib_concepts.
524 * include/std/ostream (__derived_from_ios_base): Likewise.
525 (__rvalue_stream_insertion_t): Likewise.
526
527 2023-11-15 Jonathan Wakely <jwakely@redhat.com>
528
529 PR libstdc++/112491
530 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index):
531 Correctly handle unused capacity at the start of the first node.
532 * testsuite/libstdc++-xmethods/deque.cc: Check index operator
533 when elements have been removed from the front.
534
535 2023-11-15 Jonathan Wakely <jwakely@redhat.com>
536
537 * include/std/stacktrace (basic_stacktrace::at): Fix class name
538 in exception message.
539 * testsuite/19_diagnostics/stacktrace/hash.cc: Do not fail if
540 current() returns a non-empty stacktrace.
541
542 2023-11-15 Alexandre Oliva <oliva@gnu.org>
543
544 Revert:
545 2023-11-15 Alexandre Oliva <oliva@adacore.com>
546
547 * include/bits/stl_bvector.h (_GLIBCXX_ALWAYS_INLINE): Undef.
548
549 2023-11-15 Alexandre Oliva <oliva@adacore.com>
550
551 * include/bits/stl_bvector.h (_GLIBCXX_ALWAYS_INLINE): Undef.
552
553 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
554
555 * include/std/chrono (operator-(const weekday&, const weekday&)):
556 Optimize.
557
558 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
559
560 * include/std/chrono (weekday::_S_from_days): Fix UB.
561 * testsuite/std/time/weekday/1.cc: Add test for overflow.
562
563 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
564
565 * include/std/chrono (year::is_leap): Clear code.
566
567 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
568
569 * include/std/chrono (year_month_day_last::day): Remove &1.
570
571 2023-11-14 Jonathan Wakely <jwakely@redhat.com>
572
573 * include/std/charconv (__from_chars_pow2_base): Convert base to
574 unsigned for call to __countr_zero.
575 (__from_chars_alnum): Likewise for call to __bit_width.
576
577 2023-11-14 Jonathan Wakely <jwakely@redhat.com>
578
579 PR libstdc++/112348
580 * include/std/stacktrace (hash<basic_stacktrace<Alloc>>): Fix
581 type of hash functio nfor entries.
582 * testsuite/19_diagnostics/stacktrace/hash.cc: New test.
583
584 2023-11-14 Jonathan Wakely <jwakely@redhat.com>
585
586 PR libstdc++/112491
587 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.size): Fix
588 calculation to use _M_start._M_cur.
589 * testsuite/libstdc++-xmethods/deque.cc: Check failing cases.
590
591 2023-11-13 Arsen Arsenović <arsen@aarsen.me>
592
593 * configure: Regenerate.
594
595 2023-11-13 Jonathan Wakely <jwakely@redhat.com>
596
597 * testsuite/std/time/clock/file/io.cc: Double timeout using
598 dg-timeout-factor.
599 * testsuite/std/time/clock/gps/io.cc: Likewise.
600 * testsuite/std/time/clock/local/io.cc: Likewise.
601 * testsuite/std/time/clock/system/io.cc: Likewise.
602 * testsuite/std/time/clock/tai/io.cc: Likewise.
603 * testsuite/std/time/clock/utc/io.cc: Likewise.
604
605 2023-11-13 Jonathan Wakely <jwakely@redhat.com>
606
607 PR libstdc++/112480
608 * include/std/optional (_Optional_payload_base::_M_reset): Set
609 _M_engaged to false unconditionally.
610
611 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
612
613 PR libstdc++/112467
614 * include/bits/stl_bvector.h (_M_assume_normalized): Do not use
615 statement form of assume attribute for Clang.
616
617 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
618
619 * include/std/string_view (operator==, operator<=>): Remove
620 redundant overloads (LWG 3950).
621
622 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
623
624 * testsuite/26_numerics/headers/complex.h/std_c++11.h: Moved to...
625 * testsuite/26_numerics/headers/complex.h/std_c++11.cc: ...here.
626 * testsuite/26_numerics/headers/complex.h/std_c++98.h: Moved to...
627 * testsuite/26_numerics/headers/complex.h/std_c++98.cc: ...here.
628 Check macro first and then #undef.
629 * testsuite/26_numerics/headers/complex.h/std_gnu++11.h: Moved to...
630 * testsuite/26_numerics/headers/complex.h/std_gnu++11.cc: ...here.
631
632 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
633
634 PR libstdc++/112473
635 * include/bits/utility.h (integer_sequence): Add static_assert.
636 * testsuite/20_util/integer_sequence/112473.cc: New test.
637
638 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
639
640 * testsuite/20_util/pair/dangling_ref.cc: Add hosted effective
641 target for specifiers using c++17_down.
642
643 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
644
645 * include/bits/shared_ptr_atomic.h (atomic_is_lock_free)
646 (atomic_load_explicit, atomic_load, atomic_store_explicit)
647 (atomic_store, atomic_exchange_explicit, atomic_exchange)
648 (atomic_compare_exchange_strong, atomic_compare_exchange_weak)
649 (atomic_compare_exchange_strong_explicit)
650 (atomic_compare_exchange_weak_explicit): Add deprecated
651 attribute for C++20 and later.
652 * testsuite/20_util/shared_ptr/atomic/1.cc: Suppress deprecated
653 warnings.
654 * testsuite/20_util/shared_ptr/atomic/2.cc: Likewise.
655 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
656 * testsuite/29_atomics/atomic/lwg3220.cc: Likewise.
657
658 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
659
660 * include/bits/std_mutex.h (lock_guard): Add [[nodiscard]]
661 attribute to constructors.
662 * include/bits/unique_lock.h (unique_lock): Likewise.
663 * include/std/mutex (scoped_lock, scoped_lock<Mutex>): Likewise.
664 * testsuite/30_threads/lock_guard/cons/nodiscard.cc: New test.
665 * testsuite/30_threads/scoped_lock/cons/nodiscard.cc: New test.
666 * testsuite/30_threads/unique_lock/cons/nodiscard.cc: New test.
667
668 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
669
670 * include/std/span (span, as_bytes, as_writable_bytes): Add
671 [[nodiscard]] attribute on all non-void functions.
672 * testsuite/23_containers/span/back_assert_neg.cc: Suppress
673 nodiscard warning.
674 * testsuite/23_containers/span/back_neg.cc: Likewise.
675 * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
676 * testsuite/23_containers/span/first_assert_neg.cc: Likewise.
677 * testsuite/23_containers/span/first_neg.cc: Likewise.
678 * testsuite/23_containers/span/front_assert_neg.cc: Likewise.
679 * testsuite/23_containers/span/front_neg.cc: Likewise.
680 * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
681 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
682 * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
683 * testsuite/23_containers/span/last_assert_neg.cc: Likewise.
684 * testsuite/23_containers/span/last_neg.cc: Likewise.
685 * testsuite/23_containers/span/subspan_2_assert_neg.cc:
686 Likewise.
687 * testsuite/23_containers/span/subspan_3_assert_neg.cc:
688 Likewise.
689 * testsuite/23_containers/span/subspan_4_assert_neg.cc:
690 Likewise.
691 * testsuite/23_containers/span/subspan_5_assert_neg.cc:
692 Likewise.
693 * testsuite/23_containers/span/subspan_6_assert_neg.cc:
694 Likewise.
695 * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
696 * testsuite/23_containers/span/subspan_neg.cc: Likewise.
697 * testsuite/23_containers/span/nodiscard.cc: New test.
698
699 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
700
701 PR libstdc++/111638
702 * config.h.in: Regenerate.
703 * configure: Regenerate.
704 * linkage.m4 (GLIBCXX_MAYBE_UNDERSCORED_FUNCS): Remove.
705 (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1): Do not check for _foo.
706 (GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1): Likewise.
707 (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2): Likewise.
708 (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3): Likewise.
709 (GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2): Do not use
710 GLIBCXX_MAYBE_UNDERSCORED_FUNCS.
711
712 2023-11-11 Nathaniel Shead <nathanieloshead@gmail.com>
713
714 PR libstdc++/79700
715 * include/c_global/cmath (acosf, acosl, asinf, asinl, atanf)
716 (atanl, atan2f, atan2l, ceilf, ceill, cosf, cosl, coshf, coshl)
717 (expf, expl, fabsf, fabsl, floorf, floorl, fmodf, fmodl, frexpf)
718 (frexpl, ldexpf, ldexpl, logf, logl, log10f, log10l, modff)
719 (modfl, powf, powl, sinf, sinl, sinhf, sinhl, sqrtf, sqrtl, tanf)
720 (tanl, tanhf, tanhl): Add using-declarations in namespace std.
721 * testsuite/26_numerics/headers/cmath/equivalent_functions.cc:
722 New test.
723 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
724 Add checks for existence of above names.
725
726 2023-11-09 Arsen Arsenović <arsen@aarsen.me>
727
728 * testsuite/20_util/scoped_allocator/noexcept.cc: Mark as
729 requiring hosted.
730
731 2023-11-09 Arsen Arsenović <arsen@aarsen.me>
732
733 * include/bits/memoryfwd.h: Remove HOSTED check around allocator
734 and its specializations.
735
736 2023-11-09 Patrick Palka <ppalka@redhat.com>
737
738 PR libstdc++/112453
739 * include/std/ranges (__detail::__box<_Tp>::operator*): Define
740 && overloads as well.
741 (__detail::__take_of_repeat_view): Forward __r when accessing
742 its _M_value member.
743 (__detail::__drop_of_repeat_view): Likewise.
744 * testsuite/std/ranges/repeat/1.cc (test07): New test.
745
746 2023-11-09 François Dumont <fdumont@gcc.gnu.org>
747
748 * include/bits/hashtable_policy.h (_RehashStateGuard): New.
749 (_Insert_base<>::_M_insert_range(_IIt, _IIt, const _NodeGet&, false_type)):
750 Adapt.
751 * include/bits/hashtable.h (__rehash_guard_t): New.
752 (__rehash_state): Remove.
753 (_M_rehash): Remove.
754 (_M_rehash_aux): Rename into _M_rehash.
755 (_M_assign_elements, _M_insert_unique_node, _M_insert_multi_node): Adapt.
756 (rehash): Adapt.
757
758 2023-11-09 François Dumont <fdumont@gcc.gnu.org>
759
760 * include/bits/hashtable_policy.h
761 (struct _NodePtrGuard<_HashtableAlloc, _NodePtr>): New.
762 (_ReuseAllocNode::operator()(_Args&&...)): Use latter to guard allocated node
763 pointer while constructing in place the value_type instance.
764
765 2023-11-09 Alexandre Oliva <oliva@adacore.com>
766
767 PR libstdc++/110807
768 * include/bits/stl_bvector.h (_Bit_iterator_base): Add
769 _M_assume_normalized member function. Call it in _M_bump_up,
770 _M_bump_down, _M_incr, operator==, operator<=>, operator<, and
771 operator-.
772 (_Bit_iterator): Also call it in operator*.
773 (_Bit_const_iterator): Likewise.
774
775 2023-11-07 François Dumont <fdumont@gcc.gnu.org>
776
777 * include/bits/hashtable_policy.h
778 (_Hashtable_alloc<>::_M_allocate_node): Add missing call to node destructor
779 on construct exception.
780
781 2023-11-07 Richard Biener <rguenther@suse.de>
782
783 PR libstdc++/112351
784 * src/c++98/locale.cc (locale::facet::_S_initialize_once):
785 Check whether _S_c_locale is already initialized.
786 (locale::facet::_S_get_c_locale): Always perform non-threadsafe
787 init when threadsafe init failed.
788
789 2023-11-06 Ian Lance Taylor <iant@golang.org>
790
791 PR libbacktrace/111315
792 PR libbacktrace/112263
793 * acinclude.m4: Set -D_GNU_SOURCE in BACKTRACE_CPPFLAGS and when
794 grepping link.h for dl_iterate_phdr.
795 * configure: Regenerate.
796
797 2023-11-06 Jonathan Wakely <jwakely@redhat.com>
798
799 * include/std/expected (expected::and_then, expected::or_else):
800 Add string literals to static assertions.
801 * include/std/optional (optional::and_then, optional::or_else):
802 Likewise.
803
804 2023-11-04 Feng Jisen <J1senn@outlook.com>
805
806 * include/bits/utility.h (_Nth_type): Remove redundant partial
807 specialization.
808
809 2023-11-04 Jonathan Wakely <jwakely@redhat.com>
810
811 PR libstdc++/110133
812 * include/std/system_error (system_error::system_error): Group
813 arguments so that concatenation can reuse rvalue's capacity.
814 * src/c++11/system_error.cc (strerror_string): New function.
815 [_GLIBCXX_HAVE_STRERROR_R] (use_strerror_result): New functions.
816 (generic_error_category::message): Use strerror_string.
817 (system_error_category::message): Likewise.
818
819 2023-11-04 Jonathan Wakely <jwakely@redhat.com>
820
821 * doc/xml/manual/appendix_contributing.xml: Replace example that
822 uses a BADNAME.
823 * doc/html/manual/source_code_style.html: Regenerate.
824
825 2023-11-02 Jonathan Wakely <jwakely@redhat.com>
826
827 PR libstdc++/112314
828 * include/std/string_view (string_view::remove_suffix): Add
829 debug assertion.
830 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc:
831 New test.
832 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc:
833 New test.
834
835 2023-11-02 Jonathan Wakely <jwakely@redhat.com>
836
837 * acinclude.m4 (GLIBCXX_ENABLE_C99): Fix snprintf checks.
838 * configure: Regenerate.
839
840 2023-10-30 François Dumont <fdumont@gcc.gnu.org>
841
842 * config/abi/pre/gnu-versioned-namespace.ver: Add comment on recently
843 added emul TLS symbols.
844
845 2023-10-30 François Dumont <fdumont@gcc.gnu.org>
846
847 * src/experimental/contract.cc
848 [_GLIBCXX_INLINE_VERSION](handle_contract_violation): Rework comment.
849 Remove weak attribute.
850
851 2023-10-29 François Dumont <fdumont@gcc.gnu.org>
852
853 * config/abi/pre/gnu-versioned-namespace.ver: Add missing emul TLS
854 symbols.
855
856 2023-10-29 François Dumont <fdumont@gcc.gnu.org>
857
858 * src/experimental/contract.cc
859 [_GLIBCXX_INLINE_VERSION](handle_contract_violation): Provide symbol
860 without version namespace decoration for gcc.
861
862 2023-10-26 Jonathan Wakely <jwakely@redhat.com>
863
864 PR libstdc++/112089
865 * include/std/shared_mutex (shared_lock::unlock): Change errc
866 constant to operation_not_permitted.
867 * testsuite/30_threads/shared_lock/locking/112089.cc: New test.
868
869 2023-10-26 Jonathan Wakely <jwakely@redhat.com>
870
871 * testsuite/20_util/duration/io.cc: Double timeout using
872 dg-timeout-factor.
873 * testsuite/std/time/day/io.cc: Likewise.
874 * testsuite/std/time/format.cc: Likewise.
875 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
876 * testsuite/std/time/month/io.cc: Likewise.
877 * testsuite/std/time/month_day/io.cc: Likewise.
878 * testsuite/std/time/month_day_last/io.cc: Likewise.
879 * testsuite/std/time/month_weekday/io.cc: Likewise.
880 * testsuite/std/time/month_weekday_last/io.cc: Likewise.
881 * testsuite/std/time/weekday/io.cc: Likewise.
882 * testsuite/std/time/weekday_indexed/io.cc: Likewise.
883 * testsuite/std/time/weekday_last/io.cc: Likewise.
884 * testsuite/std/time/year/io.cc: Likewise.
885 * testsuite/std/time/year_month/io.cc: Likewise.
886 * testsuite/std/time/year_month_day/io.cc: Likewise.
887 * testsuite/std/time/year_month_day_last/io.cc: Likewise.
888 * testsuite/std/time/year_month_weekday/io.cc: Likewise.
889 * testsuite/std/time/year_month_weekday_last/io.cc: Likewise.
890 * testsuite/std/time/zoned_time/io.cc: Likewise.
891
892 2023-10-25 Jonathan Wakely <jwakely@redhat.com>
893
894 PR libstdc++/111936
895 * src/libbacktrace/Makefile.am: Add -prefer-pic to libtool
896 compile commands.
897 * src/libbacktrace/Makefile.in: Regenerate.
898
899 2023-10-24 Paul M. Bendixen <paulbendixen@gmail.com>
900
901 * include/Makefile.am: Move cstdarg, cstdalign and cstdbool to
902 freestanding.
903 * include/Makefile.in: Regenerate.
904
905 2023-10-22 Iain Sandoe <iain@sandoe.co.uk>
906
907 * configure: Regenerate.
908 * configure.ac: Handle Darwin rpaths.
909 * src/Makefile.am: Handle Darwin rpaths.
910 * src/Makefile.in: Regenerate.
911
912 2023-10-21 Jonathan Wakely <jwakely@redhat.com>
913
914 * include/bits/basic_string.h (_M_init_local_buf()): New
915 function.
916 (_M_use_local_data()): Use _M_init_local_buf.
917 (basic_string(), basic_string(const Alloc&))
918 (basic_string(basic_string&&))
919 (basic_string(basic_string&&, const Alloc&)): Use
920 _M_init_local_buf instead of _M_use_local_data().
921 * include/bits/basic_string.tcc (swap(basic_string&))
922 (_M_construct(InIter, InIter, input_iterator_tag))
923 (_M_construct(InIter, InIter, forward_iterator_tag))
924 (_M_construct(size_type, CharT), reserve()): Likewise.
925
926 2023-10-21 Benjamin Brock <brock@cs.berkeley.edu>
927
928 * include/std/ranges (zip_view, adjacent_view): Implement
929 workaround for LLVM-61763.
930
931 2023-10-21 Dimitrij Mijoski <dmjpp@hotmail.com>
932
933 * testsuite/22_locale/codecvt/codecvt_unicode.h: Test length()
934
935 2023-10-21 Jonathan Wakely <jwakely@redhat.com>
936
937 * include/bits/fs_dir.h (operator==(default_sentinel_t)): Fix
938 indentation.
939
940 2023-10-20 Marek Polacek <polacek@redhat.com>
941
942 PR testsuite/111883
943 * include/std/charconv (from_chars): Add explicit casts.
944
945 2023-10-19 François Dumont <fdumont@gcc.gnu.org>
946
947 * include/bits/hashtable_policy.h
948 (_Hash_code_base::_M_hash_code(const _Hash&, const _Hash_node_value<>&)): Remove.
949 (_Hash_code_base::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): Remove.
950 * include/bits/hashtable.h
951 (_M_src_hash_code<_H2>(const _H2&, const key_type&, const __node_value_type&)): New.
952 (_M_merge_unique<>, _M_merge_multi<>): Use latter.
953 * testsuite/23_containers/unordered_map/modifiers/merge.cc
954 (test04, test05, test06): New test cases.
955
956 2023-10-13 Jakub Jelinek <jakub@redhat.com>
957
958 * testsuite/tr1/8_c_compatibility/cstdio/functions.cc (test01):
959 Initialize stream to va_arg(ap, FILE*) rather than 0.
960 * testsuite/tr1/8_c_compatibility/cwchar/functions.cc (test01):
961 Likewise.
962
963 2023-10-13 Hans-Peter Nilsson <hp@axis.com>
964
965 * testsuite/29_atomics/atomic/compare_exchange_padding.cc,
966 testsuite/29_atomics/atomic_flag/clear/1.cc,
967 testsuite/29_atomics/atomic_flag/cons/value_init.cc,
968 testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc,
969 testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc,
970 testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc,
971 testsuite/29_atomics/atomic_ref/generic.cc,
972 testsuite/29_atomics/atomic_ref/integral.cc,
973 testsuite/29_atomics/atomic_ref/pointer.cc: Replace
974 dg-require-thread-fence with dg-require-atomic-cmpxchg-word.
975
976 2023-10-13 Hans-Peter Nilsson <hp@axis.com>
977
978 * testsuite/lib/dg-options.exp (dg-require-atomic-cmpxchg-word):
979 New proc.
980 * testsuite/lib/libstdc++.exp (check_v3_target_atomic_cmpxchg_word):
981 Ditto.
982
983 2023-10-05 François Dumont <fdumont@gcc.gnu.org>
984
985 * config/abi/pre/gnu-versioned-namespace.ver: Add missing symbols
986 for _Float{16,32,64,128,32x,64x,128x}.
987
988 2023-10-04 Tom Tromey <tromey@adacore.com>
989
990 * python/libstdcxx/v6/printers.py
991 (StdExpAnyPrinter.__init__): Qualify call to
992 _string_types.
993
994 2023-10-04 Tom Tromey <tromey@adacore.com>
995
996 * python/libstdcxx/v6/printers.py: Assume that
997 _versioned_namespace is non-None.
998 * python/libstdcxx/v6/xmethods.py (is_specialization_of):
999 Assume that _versioned_namespace is non-None.
1000
1001 2023-10-04 Tom Tromey <tromey@adacore.com>
1002
1003 * python/libstdcxx/v6/xmethods.py (_versioned_namespace):
1004 Define.
1005
1006 2023-09-29 Dimitrij Mijoski <dmjpp@hotmail.com>
1007
1008 PR libstdc++/108976
1009 * src/c++11/codecvt.cc (read_utf8_code_point): Fix handing of
1010 surrogates in UTF-8.
1011 (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-8.
1012 (ucs4_in): Fix handling of range with odd number of bytes.
1013 (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-16.
1014 (ucs2_out): Fix handling of surrogates in UCS-2 -> UTF-16.
1015 (ucs2_in): Fix handling of range with odd number of bytes.
1016 (__codecvt_utf16_base<char16_t>::do_in): Likewise.
1017 (__codecvt_utf16_base<char32_t>::do_in): Likewise.
1018 (__codecvt_utf16_base<wchar_t>::do_in): Likewise.
1019 * testsuite/22_locale/codecvt/codecvt_unicode.cc: Renames, add
1020 tests for codecvt_utf16<char16_t> and codecvt_utf16<char32_t>.
1021 * testsuite/22_locale/codecvt/codecvt_unicode.h: Refactor UTF-8
1022 testing functions for char8_t, add more test cases for errors,
1023 add testing functions for codecvt_utf16.
1024 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc:
1025 Renames, add tests for codecvt_utf16<whchar_t>.
1026 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc (test06):
1027 Fix test.
1028 * testsuite/22_locale/codecvt/codecvt_unicode_char8_t.cc: New
1029 test.
1030
1031 2023-09-29 Nathaniel Shead <nathanieloshead@gmail.com>
1032
1033 * include/bits/basic_string.h: (basic_string(basic_string&&)):
1034 Activate _M_local_buf when needed.
1035 (basic_string(basic_string&&, const _Alloc&)): Likewise.
1036 * include/bits/basic_string.tcc: (basic_string::swap): Likewise.
1037 * include/std/variant: (__detail::__variant::__construct_n): New.
1038 (__detail::__variant::__emplace): Use __construct_n.
1039
1040 2023-09-28 Tom Tromey <tromey@adacore.com>
1041
1042 * python/libstdcxx/v6/printers.py (Printer.add_version)
1043 (add_one_template_type_printer)
1044 (FilteringTypePrinter.add_one_type_printer): Use Python
1045 "not in" operator.
1046
1047 2023-09-28 Tom Tromey <tromey@adacore.com>
1048
1049 * python/libstdcxx/v6/printers.py (std_ratio_t_tuple):
1050 Remove.
1051
1052 2023-09-28 Tom Tromey <tromey@adacore.com>
1053
1054 * python/libstdcxx/v6/printers.py
1055 (StdExpOptionalPrinter.__init__, lookup_node_type):
1056 Remove unused variables.
1057
1058 2023-09-28 Tom Tromey <tromey@adacore.com>
1059
1060 * python/libstdcxx/v6/printers.py: Don't import 'os'.
1061 * python/libstdcxx/v6/__init__.py: Don't import 'gdb'.
1062
1063 2023-09-28 Tom Tromey <tromey@adacore.com>
1064
1065 * python/libstdcxx/v6/printers.py: Use gdb.ValuePrinter
1066 everywhere. Rename members to start with "_".
1067
1068 2023-09-28 Tom Tromey <tromey@adacore.com>
1069
1070 * testsuite/lib/gdb-test.exp (gdb-test): Enable Python
1071 stack traces from gdb.
1072
1073 2023-09-28 Jonathan Wakely <jwakely@redhat.com>
1074
1075 * python/libstdcxx/v6/xmethods.py (is_specialization_of): Define
1076 new function.
1077 (ArrayMethodsMatcher, DequeMethodsMatcher)
1078 (ForwardListMethodsMatcher, ListMethodsMatcher)
1079 (VectorMethodsMatcher, AssociativeContainerMethodsMatcher)
1080 (UniquePtrGetWorker, UniquePtrMethodsMatcher)
1081 (SharedPtrSubscriptWorker, SharedPtrMethodsMatcher): Use
1082 is_specialization_of instead of re.match.
1083
1084 2023-09-28 Jonathan Wakely <jwakely@redhat.com>
1085
1086 * python/libstdcxx/v6/printers.py: Break long lines. Use raw
1087 strings for regular expressions. Add whitespace around
1088 operators.
1089 (is_member_of_namespace): Use isinstance to check type.
1090 (is_specialization_of): Likewise. Adjust template_name
1091 for versioned namespace instead of duplicating the re.match
1092 call.
1093 (StdExpAnyPrinter._string_types): New static method.
1094 (StdExpAnyPrinter.to_string): Use _string_types.
1095
1096 2023-09-28 Jonathan Wakely <jwakely@redhat.com>
1097
1098 * python/libstdcxx/v6/printers.py: Format docstrings according
1099 to PEP 257.
1100 * python/libstdcxx/v6/xmethods.py: Likewise.
1101
1102 2023-09-28 Tim Song <t.canens.cpp@gmail.com>
1103
1104 PR libstdc++/111050
1105 * include/bits/hashtable_policy.h
1106 (_Hash_node_value_base<>::_M_valptr(), _Hash_node_value_base<>::_M_v())
1107 Add [[__gnu__::__always_inline__]].
1108
1109 2023-09-27 Jonathan Wakely <jwakely@redhat.com>
1110
1111 * python/libstdcxx/v6/printers.py (StdChronoTimeZoneRulePrinter):
1112 Fix incorrect number of replacement fields.
1113
1114 2023-09-26 Hans-Peter Nilsson <hp@axis.com>
1115
1116 * testsuite/29_atomics/atomic_flag/cons/value_init.cc: Add
1117 dg-require-thread-fence.
1118
1119 2023-09-25 Patrick Palka <ppalka@redhat.com>
1120
1121 * include/std/charconv (__detail::__integer_to_chars_result_type):
1122 Remove.
1123 (__detail::__to_chars_16): Use to_chars_result as return type.
1124 (__detail::__to_chars_10): Likewise.
1125 (__detail::__to_chars_8): Likewise.
1126 (__detail::__to_chars_2): Likewise.
1127 (__detail::__to_chars_i): Likewise.
1128 (__detail::__integer_from_chars_result_type): Inline the
1129 constraint into ...
1130 (from_chars): ... here. Use __is_standard_integer in the
1131 constraint. Encode constraint as a defaulted non-type template
1132 parameter instead of within the return type.
1133
1134 2023-09-25 John David Anglin <danglin@gcc.gnu.org>
1135
1136 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
1137
1138 2023-09-25 Jonathan Wakely <jwakely@redhat.com>
1139
1140 PR libstdc++/111511
1141 PR c++/111512
1142 * include/std/array (to_array): Cast memcpy arguments to void*.
1143 * testsuite/23_containers/array/creation/111512.cc: New test.
1144
1145 2023-09-25 Jonathan Wakely <jwakely@redhat.com>
1146
1147 * include/bits/move.h (forward_list): Define for C++23.
1148 * include/bits/version.def (forward_like): Define.
1149 * include/bits/version.h: Regenerate.
1150 * include/std/utility (__glibcxx_want_forward_like): Define.
1151 * testsuite/20_util/forward_like/1.cc: New test.
1152 * testsuite/20_util/forward_like/2_neg.cc: New test.
1153 * testsuite/20_util/forward_like/version.cc: New test.
1154
1155 2023-09-19 Marek Polacek <polacek@redhat.com>
1156
1157 * testsuite/20_util/allocator/105975.cc: Add dg-error.
1158
1159 2023-09-18 Patrick Palka <ppalka@redhat.com>
1160
1161 PR c++/63198
1162 PR c++/18474
1163 * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
1164 Make data member seed_seq::called mutable.
1165 * testsuite/26_numerics/random/independent_bits_engine/cons/seed_seq2.cc:
1166 Likewise.
1167 * testsuite/26_numerics/random/linear_congruential_engine/cons/seed_seq2.cc:
1168 Likewise.
1169 * testsuite/26_numerics/random/mersenne_twister_engine/cons/seed_seq2.cc:
1170 Likewise.
1171 * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
1172 Likewise.
1173 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed_seq2.cc:
1174 Likewise.
1175 * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed_seq2.cc:
1176 Likewise.
1177
1178 2023-09-18 Jonathan Wakely <jwakely@redhat.com>
1179
1180 * doc/xml/manual/status_cxx2020.xml: Tweak P1466R3 status.
1181 * doc/html/manual/status.html: Regenerate.
1182
1183 2023-09-18 Jonathan Wakely <jwakely@redhat.com>
1184
1185 * doc/xml/manual/configure.xml: Use conventional option name.
1186 * doc/xml/manual/status_cxx2020.xml: Update.
1187 * doc/xml/manual/status_cxx2023.xml: Update.
1188 * doc/html/*: Regenerate.
1189
1190 2023-09-18 Jonathan Wakely <jwakely@redhat.com>
1191
1192 * doc/xml/manual/intro.xml: Clarify that building libstdc++
1193 separately from GCC is not supported.
1194 * doc/xml/manual/prerequisites.xml: Note msgfmt prerequisite for
1195 testing.
1196 * doc/html/manual/setup.html: Regenerate.
1197
1198 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1199
1200 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Do not
1201 restrict to pthreads targets.
1202 * testsuite/30_threads/jthread/3.cc: Likewise.
1203 * testsuite/30_threads/semaphore/100806.cc: Likewise.
1204 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
1205 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
1206 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Likewise.
1207
1208 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1209
1210 * testsuite/18_support/coroutines/95917.cc: Remove dg-options
1211 -std=gnu++2a.
1212 * testsuite/18_support/coroutines/hash.cc: Likewise.
1213 * testsuite/18_support/coroutines/lwg3460.cc: Likewise.
1214 * testsuite/18_support/destroying_delete.cc: Likewise.
1215 * testsuite/18_support/source_location/1.cc: Likewise.
1216 * testsuite/18_support/source_location/consteval.cc: Likewise.
1217 * testsuite/18_support/source_location/version.cc: Likewise.
1218 * testsuite/19_diagnostics/error_category/operators/three_way.cc:
1219 Likewise.
1220 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
1221 Likewise.
1222 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
1223 Likewise.
1224 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
1225 * testsuite/26_numerics/adjacent_difference/lwg2055.cc:
1226 Likewise.
1227 * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
1228 * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
1229 * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
1230 * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
1231 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
1232 * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
1233 Likewise.
1234 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
1235 Likewise.
1236 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
1237 Likewise.
1238 * testsuite/28_regex/sub_match/compare_c++20.cc: Likewise.
1239 * testsuite/experimental/filesystem/iterators/106201.cc:
1240 Likewise.
1241 * testsuite/experimental/scopeguard/exit.cc: Likewise.
1242 * testsuite/experimental/scopeguard/uniqueres.cc: Likewise.
1243
1244 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1245
1246 * testsuite/30_threads/barrier/1.cc: Remove dg-options
1247 -std=gnu++20.
1248 * testsuite/30_threads/barrier/2.cc: Likewise.
1249 * testsuite/30_threads/barrier/arrive.cc: Likewise.
1250 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1251 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1252 * testsuite/30_threads/barrier/completion.cc: Likewise.
1253 * testsuite/30_threads/condition_variable/members/clock_neg.cc:
1254 Likewise.
1255 * testsuite/30_threads/condition_variable_any/members/clock_neg.cc:
1256 Likewise.
1257 * testsuite/30_threads/condition_variable_any/stop_token/1.cc:
1258 Likewise.
1259 * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
1260 Likewise.
1261 * testsuite/30_threads/future/members/clock_neg.cc: Likewise.
1262 * testsuite/30_threads/headers/stop_token/synopsis.cc: Likewise.
1263 * testsuite/30_threads/headers/thread/types_std_c++20.cc:
1264 Likewise.
1265 * testsuite/30_threads/jthread/1.cc: Likewise.
1266 * testsuite/30_threads/jthread/100612.cc: Likewise.
1267 * testsuite/30_threads/jthread/95989.cc: Likewise.
1268 * testsuite/30_threads/jthread/jthread.cc: Likewise.
1269 * testsuite/30_threads/jthread/version.cc: Likewise.
1270 * testsuite/30_threads/latch/1.cc: Likewise.
1271 * testsuite/30_threads/latch/2.cc: Likewise.
1272 * testsuite/30_threads/latch/3.cc: Likewise.
1273 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc:
1274 Likewise.
1275 * testsuite/30_threads/semaphore/1.cc: Likewise.
1276 * testsuite/30_threads/semaphore/2.cc: Likewise.
1277 * testsuite/30_threads/semaphore/least_max_value_neg.cc:
1278 Likewise.
1279 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
1280 * testsuite/30_threads/shared_future/members/clock_neg.cc:
1281 Likewise.
1282 * testsuite/30_threads/shared_lock/locking/clock_neg.cc:
1283 Likewise.
1284 * testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc:
1285 Likewise.
1286 * testsuite/30_threads/stop_token/1.cc: Likewise.
1287 * testsuite/30_threads/stop_token/2.cc: Likewise.
1288 * testsuite/30_threads/stop_token/stop_callback.cc: Likewise.
1289 * testsuite/30_threads/stop_token/stop_callback/deadlock.cc:
1290 Likewise.
1291 * testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
1292 Likewise.
1293 * testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc:
1294 Likewise.
1295 * testsuite/30_threads/stop_token/stop_callback/invoke.cc:
1296 Likewise.
1297 * testsuite/30_threads/stop_token/stop_source.cc: Likewise.
1298 * testsuite/30_threads/stop_token/stop_source/assign.cc:
1299 Likewise.
1300 * testsuite/30_threads/stop_token/stop_token.cc: Likewise.
1301 * testsuite/30_threads/stop_token/stop_token/stop_possible.cc:
1302 Likewise.
1303 * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise.
1304 * testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc:
1305 Likewise.
1306 * testsuite/30_threads/unique_lock/locking/clock_neg.cc:
1307 Likewise.
1308
1309 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1310
1311 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc:
1312 Remove dg-options -std=gnu++2a.
1313 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
1314 Likewise.
1315 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc:
1316 Likewise.
1317 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
1318 Likewise.
1319 * testsuite/27_io/basic_istringstream/cons/char/1.cc: Likewise.
1320 * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc:
1321 Likewise.
1322 * testsuite/27_io/basic_istringstream/str/char/2.cc: Likewise.
1323 * testsuite/27_io/basic_istringstream/str/wchar_t/2.cc:
1324 Likewise.
1325 * testsuite/27_io/basic_istringstream/view/char/1.cc: Likewise.
1326 * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
1327 Likewise.
1328 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
1329 * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
1330 Likewise.
1331 * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
1332 Likewise.
1333 * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
1334 * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc:
1335 Likewise.
1336 * testsuite/27_io/basic_ostringstream/str/char/3.cc: Likewise.
1337 * testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc:
1338 Likewise.
1339 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
1340 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
1341 Likewise.
1342 * testsuite/27_io/basic_stringbuf/cons/char/2.cc: Likewise.
1343 * testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise.
1344 * testsuite/27_io/basic_stringbuf/str/char/4.cc: Likewise.
1345 * testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc: Likewise.
1346 * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
1347 * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
1348 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
1349 * testsuite/27_io/basic_stringstream/cons/char/97719.cc:
1350 Likewise.
1351 * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc:
1352 Likewise.
1353 * testsuite/27_io/basic_stringstream/str/char/5.cc: Likewise.
1354 * testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc:
1355 Likewise.
1356 * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
1357 * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
1358 Likewise.
1359 * testsuite/27_io/basic_syncbuf/1.cc: Likewise.
1360 * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
1361 * testsuite/27_io/basic_syncbuf/basic_ops/1.cc: Likewise.
1362 * testsuite/27_io/basic_syncbuf/requirements/types.cc: Likewise.
1363 * testsuite/27_io/basic_syncbuf/sync_ops/1.cc: Likewise.
1364 * testsuite/27_io/basic_syncstream/1.cc: Likewise.
1365 * testsuite/27_io/basic_syncstream/2.cc: Likewise.
1366 * testsuite/27_io/basic_syncstream/basic_ops/1.cc: Likewise.
1367 * testsuite/27_io/basic_syncstream/requirements/types.cc:
1368 Likewise.
1369 * testsuite/27_io/filesystem/iterators/106201.cc: Likewise.
1370 * testsuite/27_io/filesystem/iterators/lwg3719.cc: Likewise.
1371 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc:
1372 Likewise.
1373 * testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc:
1374 Likewise.
1375
1376 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1377
1378 * testsuite/26_numerics/accumulate/constexpr.cc: Remove
1379 dg-options -std=gnu++2a.
1380 * testsuite/26_numerics/accumulate/lwg2055.cc: Likewise.
1381 * testsuite/26_numerics/adjacent_difference/constexpr.cc:
1382 Likewise.
1383 * testsuite/26_numerics/bit/bit.cast/105027.cc: Likewise.
1384 * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Likewise.
1385 * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise.
1386 * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
1387 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc:
1388 Likewise.
1389 * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
1390 * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
1391 * testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc: Likewise.
1392 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
1393 * testsuite/26_numerics/bit/bit.rotate/rotr.cc: Likewise.
1394 * testsuite/26_numerics/bit/header-2.cc: Likewise.
1395 * testsuite/26_numerics/bit/header.cc: Likewise.
1396 * testsuite/26_numerics/complex/1.cc: Likewise.
1397 * testsuite/26_numerics/complex/2.cc: Likewise.
1398 * testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc:
1399 Likewise.
1400 * testsuite/26_numerics/complex/operators/more_constexpr.cc:
1401 Likewise.
1402 * testsuite/26_numerics/complex/requirements/more_constexpr.cc:
1403 Likewise.
1404 * testsuite/26_numerics/complex/value_operations/more_constexpr.cc:
1405 Likewise.
1406 * testsuite/26_numerics/endian/1.cc: Likewise.
1407 * testsuite/26_numerics/endian/2.cc: Likewise.
1408 * testsuite/26_numerics/endian/3.cc: Likewise.
1409 * testsuite/26_numerics/exclusive_scan/constexpr.cc: Likewise.
1410 * testsuite/26_numerics/inclusive_scan/constexpr.cc: Likewise.
1411 * testsuite/26_numerics/inner_product/constexpr.cc: Likewise.
1412 * testsuite/26_numerics/inner_product/lwg2055.cc: Likewise.
1413 * testsuite/26_numerics/iota/constexpr.cc: Likewise.
1414 * testsuite/26_numerics/lerp/1.cc: Likewise.
1415 * testsuite/26_numerics/lerp/constexpr.cc: Likewise.
1416 * testsuite/26_numerics/lerp/version.cc: Likewise.
1417 * testsuite/26_numerics/midpoint/floating.cc: Likewise.
1418 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
1419 * testsuite/26_numerics/midpoint/pointer.cc: Likewise.
1420 * testsuite/26_numerics/midpoint/pointer_neg.cc: Likewise.
1421 * testsuite/26_numerics/midpoint/version.cc: Likewise.
1422 * testsuite/26_numerics/numbers/1.cc: Likewise.
1423 * testsuite/26_numerics/numbers/2.cc: Likewise.
1424 * testsuite/26_numerics/numbers/3.cc: Likewise.
1425 * testsuite/26_numerics/numbers/float128.cc: Likewise.
1426 * testsuite/26_numerics/numbers/nonfloat_neg.cc: Likewise.
1427 * testsuite/26_numerics/partial_sum/constexpr.cc: Likewise.
1428 * testsuite/26_numerics/partial_sum/lwg2055.cc: Likewise.
1429 * testsuite/26_numerics/random/concept.cc: Likewise.
1430 * testsuite/26_numerics/reduce/constexpr.cc: Likewise.
1431 * testsuite/26_numerics/slice/compare.cc: Likewise.
1432 * testsuite/26_numerics/transform_exclusive_scan/constexpr.cc:
1433 Likewise.
1434 * testsuite/26_numerics/transform_inclusive_scan/constexpr.cc:
1435 Likewise.
1436 * testsuite/26_numerics/transform_reduce/constexpr.cc: Likewise.
1437
1438 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1439
1440 * testsuite/24_iterators/aliases.cc: Remove dg-options
1441 -std=gnu++2a.
1442 * testsuite/24_iterators/associated_types/incrementable.traits.cc:
1443 Likewise.
1444 * testsuite/24_iterators/associated_types/iterator.traits.cc:
1445 Likewise.
1446 * testsuite/24_iterators/associated_types/readable.traits.cc:
1447 Likewise.
1448 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
1449 Likewise.
1450 * testsuite/24_iterators/back_insert_iterator/pr93884.cc:
1451 Likewise.
1452 * testsuite/24_iterators/bidirectional/concept.cc: Likewise.
1453 * testsuite/24_iterators/common_iterator/1.cc: Likewise.
1454 * testsuite/24_iterators/common_iterator/100823.cc: Likewise.
1455 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
1456 * testsuite/24_iterators/contiguous/concept.cc: Likewise.
1457 * testsuite/24_iterators/contiguous/tag.cc: Likewise.
1458 * testsuite/24_iterators/counted_iterator/1.cc: Likewise.
1459 * testsuite/24_iterators/counted_iterator/lwg3389.cc: Likewise.
1460 * testsuite/24_iterators/counted_iterator/lwg3643.cc: Likewise.
1461 * testsuite/24_iterators/customization_points/92894.cc:
1462 Likewise.
1463 * testsuite/24_iterators/customization_points/iter_move.cc:
1464 Likewise.
1465 * testsuite/24_iterators/customization_points/iter_swap.cc:
1466 Likewise.
1467 * testsuite/24_iterators/customization_points/lwg3420.cc:
1468 Likewise.
1469 * testsuite/24_iterators/forward/concept.cc: Likewise.
1470 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
1471 Likewise.
1472 * testsuite/24_iterators/front_insert_iterator/pr93884.cc:
1473 Likewise.
1474 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
1475 Likewise.
1476 * testsuite/24_iterators/indirect_callable/92894.cc: Likewise.
1477 * testsuite/24_iterators/indirect_callable/projected-adl.cc:
1478 Likewise.
1479 * testsuite/24_iterators/indirect_callable/projected.cc:
1480 Likewise.
1481 * testsuite/24_iterators/input/concept.cc: Likewise.
1482 * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
1483 * testsuite/24_iterators/istream_iterator/cons/sentinel.cc:
1484 Likewise.
1485 * testsuite/24_iterators/istream_iterator/sentinel.cc: Likewise.
1486 * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
1487 Likewise.
1488 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
1489 Likewise.
1490 * testsuite/24_iterators/move_iterator/cust.cc: Likewise.
1491 * testsuite/24_iterators/move_iterator/dr3435.cc: Likewise.
1492 * testsuite/24_iterators/move_iterator/input_iterator.cc:
1493 Likewise.
1494 * testsuite/24_iterators/move_iterator/lwg3390.cc: Likewise.
1495 * testsuite/24_iterators/move_iterator/lwg3391.cc: Likewise.
1496 * testsuite/24_iterators/move_iterator/move_only.cc: Likewise.
1497 * testsuite/24_iterators/move_iterator/p2520r0.cc: Likewise.
1498 * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
1499 Likewise.
1500 * testsuite/24_iterators/move_iterator/sentinel.cc: Likewise.
1501 * testsuite/24_iterators/normal_iterator/cmp_c++20.cc: Likewise.
1502 * testsuite/24_iterators/output/concept.cc: Likewise.
1503 * testsuite/24_iterators/random_access/concept.cc: Likewise.
1504 * testsuite/24_iterators/range_access/range_access_cpp20.cc:
1505 Likewise.
1506 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
1507 Likewise.
1508 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
1509 * testsuite/24_iterators/range_operations/advance.cc: Likewise.
1510 * testsuite/24_iterators/range_operations/advance_overflow.cc:
1511 Likewise.
1512 * testsuite/24_iterators/range_operations/distance.cc: Likewise.
1513 * testsuite/24_iterators/range_operations/lwg3392.cc: Likewise.
1514 * testsuite/24_iterators/range_operations/next.cc: Likewise.
1515 * testsuite/24_iterators/range_operations/prev.cc: Likewise.
1516 * testsuite/24_iterators/reverse_iterator/cust.cc: Likewise.
1517 * testsuite/24_iterators/reverse_iterator/dr3435.cc: Likewise.
1518 * testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc:
1519 Likewise.
1520
1521 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1522
1523 * testsuite/23_containers/array/comparison_operators/96851.cc:
1524 Remove dg-options -std=gnu++2a.
1525 * testsuite/23_containers/array/comparison_operators/constexpr.cc:
1526 Likewise.
1527 * testsuite/23_containers/array/creation/1.cc: Likewise.
1528 * testsuite/23_containers/array/creation/110167.cc: Likewise.
1529 * testsuite/23_containers/array/creation/2.cc: Likewise.
1530 * testsuite/23_containers/array/creation/3_neg.cc: Likewise.
1531 * testsuite/23_containers/array/requirements/constexpr_fill.cc:
1532 Likewise.
1533 * testsuite/23_containers/array/requirements/constexpr_swap.cc:
1534 Likewise.
1535 * testsuite/23_containers/deque/48101-3_neg.cc: Likewise.
1536 * testsuite/23_containers/deque/erasure.cc: Likewise.
1537 * testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc:
1538 Likewise.
1539 * testsuite/23_containers/deque/operators/cmp_c++20.cc:
1540 Likewise.
1541 * testsuite/23_containers/forward_list/48101-3_neg.cc: Likewise.
1542 * testsuite/23_containers/forward_list/cmp_c++20.cc: Likewise.
1543 * testsuite/23_containers/forward_list/erasure.cc: Likewise.
1544 * testsuite/23_containers/forward_list/modifiers/92878_92947.cc:
1545 Likewise.
1546 * testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc:
1547 Likewise.
1548 * testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc:
1549 Likewise.
1550 * testsuite/23_containers/list/48101-3_neg.cc: Likewise.
1551 * testsuite/23_containers/list/cmp_c++20.cc: Likewise.
1552 * testsuite/23_containers/list/erasure.cc: Likewise.
1553 * testsuite/23_containers/list/modifiers/emplace/92878_92947.cc:
1554 Likewise.
1555 * testsuite/23_containers/list/operations/remove_cxx20_return.cc:
1556 Likewise.
1557 * testsuite/23_containers/list/operations/unique_cxx20_return.cc:
1558 Likewise.
1559 * testsuite/23_containers/map/48101-3_neg.cc: Likewise.
1560 * testsuite/23_containers/map/erasure.cc: Likewise.
1561 * testsuite/23_containers/map/modifiers/emplace/92878_92947.cc:
1562 Likewise.
1563 * testsuite/23_containers/map/operations/contains.cc: Likewise.
1564 * testsuite/23_containers/map/operators/cmp_c++20.cc: Likewise.
1565 * testsuite/23_containers/multimap/48101-3_neg.cc: Likewise.
1566 * testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc:
1567 Likewise.
1568 * testsuite/23_containers/multimap/operations/contains.cc:
1569 Likewise.
1570 * testsuite/23_containers/multimap/operators/cmp_c++20.cc:
1571 Likewise.
1572 * testsuite/23_containers/multiset/48101-3_neg.cc: Likewise.
1573 * testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc:
1574 Likewise.
1575 * testsuite/23_containers/multiset/operations/contains.cc:
1576 Likewise.
1577 * testsuite/23_containers/multiset/operators/cmp_c++20.cc:
1578 Likewise.
1579 * testsuite/23_containers/priority_queue/92878_92947.cc:
1580 Likewise.
1581 * testsuite/23_containers/queue/92878_92947.cc: Likewise.
1582 * testsuite/23_containers/queue/cmp_c++20.cc: Likewise.
1583 * testsuite/23_containers/set/48101-3_neg.cc: Likewise.
1584 * testsuite/23_containers/set/erasure.cc: Likewise.
1585 * testsuite/23_containers/set/modifiers/emplace/92878_92947.cc:
1586 Likewise.
1587 * testsuite/23_containers/set/operations/contains.cc: Likewise.
1588 * testsuite/23_containers/set/operators/cmp_c++20.cc: Likewise.
1589 * testsuite/23_containers/span/1.cc: Likewise.
1590 * testsuite/23_containers/span/101411.cc: Likewise.
1591 * testsuite/23_containers/span/2.cc: Likewise.
1592 * testsuite/23_containers/span/deduction.cc: Likewise.
1593 * testsuite/23_containers/span/explicit.cc: Likewise.
1594 * testsuite/23_containers/span/layout_compat.cc: Likewise.
1595 * testsuite/23_containers/span/lwg3255.cc: Likewise.
1596 * testsuite/23_containers/span/nothrow_cons.cc: Likewise.
1597 * testsuite/23_containers/span/trivially_copyable.cc: Likewise.
1598 * testsuite/23_containers/stack/92878_92947.cc: Likewise.
1599 * testsuite/23_containers/stack/cmp_c++20.cc: Likewise.
1600 * testsuite/23_containers/unordered_map/48101-3_neg.cc:
1601 Likewise.
1602 * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
1603 * testsuite/23_containers/unordered_map/modifiers/92878_92947.cc:
1604 Likewise.
1605 * testsuite/23_containers/unordered_map/operations/1.cc:
1606 Likewise.
1607 * testsuite/23_containers/unordered_map/operations/contains.cc:
1608 Likewise.
1609 * testsuite/23_containers/unordered_multimap/48101-3_neg.cc:
1610 Likewise.
1611 * testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc:
1612 Likewise.
1613 * testsuite/23_containers/unordered_multimap/operations/1.cc:
1614 Likewise.
1615 * testsuite/23_containers/unordered_multimap/operations/contains.cc:
1616 Likewise.
1617 * testsuite/23_containers/unordered_multiset/48101-3_neg.cc:
1618 Likewise.
1619 * testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc:
1620 Likewise.
1621 * testsuite/23_containers/unordered_multiset/operations/1.cc:
1622 Likewise.
1623 * testsuite/23_containers/unordered_multiset/operations/contains.cc:
1624 Likewise.
1625 * testsuite/23_containers/unordered_set/48101-3_neg.cc:
1626 Likewise.
1627 * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
1628 * testsuite/23_containers/unordered_set/modifiers/92878_92947.cc:
1629 Likewise.
1630 * testsuite/23_containers/unordered_set/operations/1.cc:
1631 Likewise.
1632 * testsuite/23_containers/unordered_set/operations/contains.cc:
1633 Likewise.
1634 * testsuite/23_containers/vector/48101-3_neg.cc: Likewise.
1635 * testsuite/23_containers/vector/bool/capacity/constexpr.cc:
1636 Likewise.
1637 * testsuite/23_containers/vector/bool/cmp_c++20.cc: Likewise.
1638 * testsuite/23_containers/vector/bool/cons/constexpr.cc:
1639 Likewise.
1640 * testsuite/23_containers/vector/bool/element_access/constexpr.cc:
1641 Likewise.
1642 * testsuite/23_containers/vector/bool/iterator_c++20.cc:
1643 Likewise.
1644 * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc:
1645 Likewise.
1646 * testsuite/23_containers/vector/bool/modifiers/constexpr.cc:
1647 Likewise.
1648 * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc:
1649 Likewise.
1650 * testsuite/23_containers/vector/capacity/constexpr.cc:
1651 Likewise.
1652 * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
1653 * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
1654 * testsuite/23_containers/vector/data_access/constexpr.cc:
1655 Likewise.
1656 * testsuite/23_containers/vector/element_access/constexpr.cc:
1657 Likewise.
1658 * testsuite/23_containers/vector/erasure.cc: Likewise.
1659 * testsuite/23_containers/vector/modifiers/assign/constexpr.cc:
1660 Likewise.
1661 * testsuite/23_containers/vector/modifiers/constexpr.cc:
1662 Likewise.
1663 * testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc:
1664 Likewise.
1665 * testsuite/23_containers/vector/modifiers/swap/constexpr.cc:
1666 Likewise.
1667 * testsuite/23_containers/vector/requirements/version.cc:
1668 Likewise.
1669
1670 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1671
1672 * testsuite/21_strings/basic_string/cons/char/105995.cc: Remove
1673 dg-options -std=gnu++20.
1674 * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
1675 Likewise.
1676 * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
1677 Likewise.
1678 * testsuite/21_strings/basic_string/erasure.cc: Likewise.
1679 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
1680 Likewise.
1681 * testsuite/21_strings/basic_string/literals/constexpr.cc:
1682 Likewise.
1683 * testsuite/21_strings/basic_string/modifiers/constexpr.cc:
1684 Likewise.
1685 * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
1686 Likewise.
1687 * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
1688 Likewise.
1689 * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
1690 Likewise.
1691 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc:
1692 Likewise.
1693 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
1694 Likewise.
1695 * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
1696 Likewise.
1697 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
1698 Likewise.
1699 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
1700 Likewise.
1701 * testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc:
1702 Likewise.
1703 * testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc:
1704 Likewise.
1705 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
1706 Likewise.
1707 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
1708 Likewise.
1709 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc:
1710 Likewise.
1711 * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
1712 Likewise.
1713 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
1714 Likewise.
1715 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
1716 Likewise.
1717 * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
1718 Likewise.
1719 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
1720 Likewise.
1721 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
1722 Likewise.
1723 * testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc:
1724 Likewise.
1725 * testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc:
1726 Likewise.
1727 * testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc:
1728 Likewise.
1729 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
1730 Likewise.
1731
1732 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1733
1734 * testsuite/20_util/allocator/105975.cc: Remove dg-options
1735 -std=gnu++2a.
1736 * testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
1737 * testsuite/20_util/allocator/requirements/constexpr.cc:
1738 Likewise.
1739 * testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
1740 Likewise.
1741 * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
1742 * testsuite/20_util/allocator_traits/header.cc: Likewise.
1743 * testsuite/20_util/allocator_traits/members/92878_92947.cc:
1744 Likewise.
1745 * testsuite/20_util/any/assign/92878_92947.cc: Likewise.
1746 * testsuite/20_util/any/cons/92878_92947.cc: Likewise.
1747 * testsuite/20_util/assume_aligned/1.cc: Likewise.
1748 * testsuite/20_util/assume_aligned/2_neg.cc: Likewise.
1749 * testsuite/20_util/assume_aligned/3.cc: Likewise.
1750 * testsuite/20_util/assume_aligned/97132.cc: Likewise.
1751 * testsuite/20_util/bind/constexpr.cc: Likewise.
1752 * testsuite/20_util/bitset/operations/96303.cc: Likewise.
1753 * testsuite/20_util/common_reference/100894.cc: Likewise.
1754 * testsuite/20_util/common_reference/requirements/alias_decl.cc:
1755 Likewise.
1756 * testsuite/20_util/common_reference/requirements/explicit_instantiation.cc:
1757 Likewise.
1758 * testsuite/20_util/common_reference/requirements/typedefs.cc:
1759 Likewise.
1760 * testsuite/20_util/duration/comparison_operators/three_way.cc:
1761 Likewise.
1762 * testsuite/20_util/exchange/constexpr.cc: Likewise.
1763 * testsuite/20_util/exchange/noexcept.cc: Likewise.
1764 * testsuite/20_util/from_chars/1_c++20_neg.cc: Likewise.
1765 * testsuite/20_util/from_chars/compare.cc: Likewise.
1766 * testsuite/20_util/function_objects/bind_front/1.cc: Likewise.
1767 * testsuite/20_util/function_objects/bind_front/107784.cc:
1768 Likewise.
1769 * testsuite/20_util/function_objects/bind_front/111327.cc:
1770 Likewise.
1771 * testsuite/20_util/function_objects/bind_front/2.cc: Likewise.
1772 * testsuite/20_util/function_objects/bind_front/97101.cc:
1773 Likewise.
1774 * testsuite/20_util/function_objects/bind_front/constexpr.cc:
1775 Likewise.
1776 * testsuite/20_util/function_objects/constexpr_searcher.cc:
1777 Likewise.
1778 * testsuite/20_util/function_objects/identity/1.cc: Likewise.
1779 * testsuite/20_util/function_objects/invoke/constexpr.cc:
1780 Likewise.
1781 * testsuite/20_util/function_objects/mem_fn/constexpr.cc:
1782 Likewise.
1783 * testsuite/20_util/function_objects/not_fn/constexpr.cc:
1784 Likewise.
1785 * testsuite/20_util/integer_comparisons/1.cc: Likewise.
1786 * testsuite/20_util/integer_comparisons/2.cc: Likewise.
1787 * testsuite/20_util/integer_comparisons/equal.cc: Likewise.
1788 * testsuite/20_util/integer_comparisons/equal_neg.cc: Likewise.
1789 * testsuite/20_util/integer_comparisons/greater.cc: Likewise.
1790 * testsuite/20_util/integer_comparisons/greater_equal.cc:
1791 Likewise.
1792 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
1793 Likewise.
1794 * testsuite/20_util/integer_comparisons/greater_neg.cc:
1795 Likewise.
1796 * testsuite/20_util/integer_comparisons/in_range.cc: Likewise.
1797 * testsuite/20_util/integer_comparisons/in_range_neg.cc:
1798 Likewise.
1799 * testsuite/20_util/integer_comparisons/less.cc: Likewise.
1800 * testsuite/20_util/integer_comparisons/less_equal.cc: Likewise.
1801 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
1802 Likewise.
1803 * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
1804 * testsuite/20_util/integer_comparisons/not_equal.cc: Likewise.
1805 * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
1806 Likewise.
1807 * testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc:
1808 Likewise.
1809 * testsuite/20_util/is_bounded_array/requirements/typedefs.cc:
1810 Likewise.
1811 * testsuite/20_util/is_bounded_array/value.cc: Likewise.
1812 * testsuite/20_util/is_constant_evaluated/1.cc: Likewise.
1813 * testsuite/20_util/is_constant_evaluated/noexcept.cc: Likewise.
1814 * testsuite/20_util/is_constructible/92878_92947.cc: Likewise.
1815 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
1816 Likewise.
1817 * testsuite/20_util/is_layout_compatible/value.cc: Likewise.
1818 * testsuite/20_util/is_layout_compatible/version.cc: Likewise.
1819 * testsuite/20_util/is_nothrow_constructible/value_c++20.cc:
1820 Likewise.
1821 * testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc:
1822 Likewise.
1823 * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
1824 Likewise.
1825 * testsuite/20_util/is_nothrow_convertible/value.cc: Likewise.
1826 * testsuite/20_util/is_pod/deprecated-2a.cc: Likewise.
1827 * testsuite/20_util/is_pointer_interconvertible/value.cc:
1828 Likewise.
1829 * testsuite/20_util/is_pointer_interconvertible/version.cc:
1830 Likewise.
1831 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
1832 Likewise.
1833 * testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc:
1834 Likewise.
1835 * testsuite/20_util/is_unbounded_array/requirements/typedefs.cc:
1836 Likewise.
1837 * testsuite/20_util/is_unbounded_array/value.cc: Likewise.
1838 * testsuite/20_util/optional/assignment/92878_92947.cc:
1839 Likewise.
1840 * testsuite/20_util/optional/cons/92878_92947.cc: Likewise.
1841 * testsuite/20_util/optional/constexpr/assign.cc: Likewise.
1842 * testsuite/20_util/optional/constexpr/cons/conv.cc: Likewise.
1843 * testsuite/20_util/optional/constexpr/modifiers.cc: Likewise.
1844 * testsuite/20_util/optional/constexpr/swap.cc: Likewise.
1845 * testsuite/20_util/optional/relops/96269.cc: Likewise.
1846 * testsuite/20_util/optional/relops/three_way.cc: Likewise.
1847 * testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc:
1848 Likewise.
1849 * testsuite/20_util/pair/cons/92878_92947.cc: Likewise.
1850 * testsuite/20_util/pair/constexpr_assign.cc: Likewise.
1851 * testsuite/20_util/pair/constexpr_swap.cc: Likewise.
1852 * testsuite/20_util/pair/requirements/structural.cc: Likewise.
1853 * testsuite/20_util/pointer_traits/pointer_to_constexpr.cc:
1854 Likewise.
1855 * testsuite/20_util/polymorphic_allocator/allocate_object.cc:
1856 Likewise.
1857 * testsuite/20_util/polymorphic_allocator/construct_c++2a.cc:
1858 Likewise.
1859 * testsuite/20_util/polymorphic_allocator/lwg3237.cc: Likewise.
1860 * testsuite/20_util/reference_wrapper/constexpr.cc: Likewise.
1861 * testsuite/20_util/reference_wrapper/incomplete.cc: Likewise.
1862 * testsuite/20_util/remove_cvref/requirements/alias_decl.cc:
1863 Likewise.
1864 * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
1865 Likewise.
1866 * testsuite/20_util/remove_cvref/value.cc: Likewise.
1867 * testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc:
1868 Likewise.
1869 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
1870 Likewise.
1871 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
1872 * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc:
1873 Likewise.
1874 * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise.
1875 * testsuite/20_util/shared_ptr/creation/92878_92947.cc:
1876 Likewise.
1877 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
1878 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
1879 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
1880 * testsuite/20_util/time_point/4.cc: Likewise.
1881 * testsuite/20_util/time_point/comparison_operators/three_way.cc:
1882 Likewise.
1883 * testsuite/20_util/to_address/1.cc: Likewise.
1884 * testsuite/20_util/to_address/1_neg.cc: Likewise.
1885 * testsuite/20_util/to_address/debug.cc: Likewise.
1886 * testsuite/20_util/to_address/lwg3545.cc: Likewise.
1887 * testsuite/20_util/to_chars/compare.cc: Likewise.
1888 * testsuite/20_util/tuple/comparison_operators/three_way.cc:
1889 Likewise.
1890 * testsuite/20_util/tuple/cons/102270.cc: Likewise.
1891 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
1892 Likewise.
1893 * testsuite/20_util/tuple/constexpr_swap.cc: Likewise.
1894 * testsuite/20_util/type_identity/requirements/alias_decl.cc:
1895 Likewise.
1896 * testsuite/20_util/type_identity/requirements/explicit_instantiation.cc:
1897 Likewise.
1898 * testsuite/20_util/type_identity/requirements/typedefs.cc:
1899 Likewise.
1900 * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
1901 Likewise.
1902 * testsuite/20_util/unique_ptr/comparison/compare_c++20.cc:
1903 Likewise.
1904 * testsuite/20_util/unique_ptr/creation/92878_92947.cc:
1905 Likewise.
1906 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
1907 Likewise.
1908 * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
1909 Likewise.
1910 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Likewise.
1911 * testsuite/20_util/unwrap_reference/1.cc: Likewise.
1912 * testsuite/20_util/unwrap_reference/2.cc: Likewise.
1913 * testsuite/20_util/unwrap_reference/3.cc: Likewise.
1914 * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
1915 * testsuite/20_util/uses_allocator/lwg3527.cc: Likewise.
1916 * testsuite/20_util/uses_allocator/make_obj.cc: Likewise.
1917 * testsuite/20_util/uses_allocator/uninitialized_construct.cc:
1918 Likewise.
1919 * testsuite/20_util/variant/92878_92947.cc: Likewise.
1920 * testsuite/20_util/variant/95915.cc: Likewise.
1921 * testsuite/20_util/variant/constexpr.cc: Likewise.
1922 * testsuite/20_util/variant/relops/three_way.cc: Likewise.
1923 * testsuite/20_util/variant/visit_neg.cc: Likewise.
1924 * testsuite/20_util/variant/visit_r.cc: Likewise.
1925 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
1926
1927 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1928
1929 * testsuite/18_support/comparisons/algorithms/fallback.cc:
1930 Remove dg-options -std=gnu++2a.
1931 * testsuite/18_support/comparisons/algorithms/partial_order.cc:
1932 Likewise.
1933 * testsuite/18_support/comparisons/algorithms/strong_order.cc:
1934 Likewise.
1935 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
1936 Likewise.
1937 * testsuite/18_support/comparisons/algorithms/weak_order.cc:
1938 Likewise.
1939 * testsuite/18_support/comparisons/categories/94565.cc:
1940 Likewise.
1941 * testsuite/18_support/comparisons/categories/partialord.cc:
1942 Likewise.
1943 * testsuite/18_support/comparisons/categories/strongord.cc:
1944 Likewise.
1945 * testsuite/18_support/comparisons/categories/weakord.cc:
1946 Likewise.
1947 * testsuite/18_support/comparisons/categories/zero_neg.cc:
1948 Likewise.
1949 * testsuite/18_support/comparisons/common/1.cc: Likewise.
1950 * testsuite/18_support/comparisons/object/93479.cc: Likewise.
1951 * testsuite/18_support/comparisons/object/lwg3530.cc: Likewise.
1952
1953 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1954
1955 * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
1956 Remove dg-options -std=gnu++2a.
1957 * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
1958 * testsuite/29_atomics/atomic/lock_free_aliases.cc: Likewise.
1959 * testsuite/29_atomics/atomic/requirements/types_neg.cc:
1960 Likewise.
1961 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
1962 * testsuite/29_atomics/atomic/wait_notify/100334.cc: Likewise.
1963 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise.
1964 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
1965 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Likewise.
1966 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
1967 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
1968 * testsuite/29_atomics/atomic_flag/cons/value_init.cc: Likewise.
1969 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Likewise.
1970 * testsuite/29_atomics/atomic_flag/test/implicit.cc: Likewise.
1971 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
1972 * testsuite/29_atomics/atomic_float/1.cc: Likewise.
1973 * testsuite/29_atomics/atomic_float/95282.cc: Likewise.
1974 * testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
1975 * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
1976 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
1977 * testsuite/29_atomics/atomic_integral/cons/value_init.cc:
1978 Likewise.
1979 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
1980 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
1981 Likewise.
1982 * testsuite/29_atomics/atomic_ref/deduction.cc: Likewise.
1983 * testsuite/29_atomics/atomic_ref/float.cc: Likewise.
1984 * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
1985 * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
1986 * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
1987 * testsuite/29_atomics/atomic_ref/requirements.cc: Likewise.
1988 * testsuite/29_atomics/headers/atomic/types_std_c++20.cc:
1989 Likewise.
1990 * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
1991 Likewise.
1992 * testsuite/29_atomics/headers/atomic/types_std_c++2a.cc:
1993 Likewise.
1994 * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc:
1995 Likewise.
1996
1997 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1998
1999 * testsuite/27_io/basic_filebuf/native_handle/char/1.cc: New test.
2000 * testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc: New test.
2001
2002 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2003
2004 * acinclude.m4 (GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES): New
2005 macro.
2006 * config.h.in: Regenerate.
2007 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export new
2008 basic_filebuf members.
2009 * config/io/basic_file_stdio.cc (__basic_file::native_handle):
2010 Define new function.
2011 * config/io/basic_file_stdio.h (__basic_file::native_handle):
2012 Declare new function.
2013 * configure: Regenerate.
2014 * configure.ac: Use GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES.
2015 * include/bits/version.def (fstream_native_handles): New macro.
2016 * include/bits/version.h: Regenerate.
2017 * include/std/fstream (basic_filebuf::native_handle)
2018 (basic_fstream::native_handle, basic_ifstream::native_handle)
2019 (basic_ofstream::native_handle): New functions.
2020 * src/c++11/Makefile.am: Move compilation of basic_file.cc,
2021 locale_init.cc and localename.cc to here.
2022 * src/c++11/Makefile.in: Regenerate.
2023 * src/c++98/locale_init.cc: Moved to...
2024 * src/c++11/locale_init.cc: ...here.
2025 * src/c++98/localename.cc: Moved to...
2026 * src/c++11/localename.cc: ...here.
2027 * src/c++98/Makefile.am: Remove basic_file.cc, locale_init.cc
2028 and localename.cc from here.
2029 * src/c++98/Makefile.in: Regenerate.
2030 * testsuite/27_io/basic_filebuf/native_handle/version.cc: New test.
2031 * testsuite/27_io/basic_fstream/native_handle/char/1.cc: New test.
2032 * testsuite/27_io/basic_fstream/native_handle/wchar_t/1.cc: New test.
2033 * testsuite/27_io/basic_ifstream/native_handle/char/1.cc: New test.
2034 * testsuite/27_io/basic_ifstream/native_handle/wchar_t/1.cc: New test.
2035 * testsuite/27_io/basic_ofstream/native_handle/char/1.cc: New test.
2036 * testsuite/27_io/basic_ofstream/native_handle/wchar_t/1.cc: New test.
2037
2038 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2039
2040 * testsuite/libstdc++-dg/conformance.exp: Add log line when
2041 using testsuite_files.
2042
2043 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2044
2045 * testsuite/20_util/shared_ptr/atomic/3.cc: Simplify dg
2046 directives.
2047 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
2048 Likewise.
2049 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
2050 Likewise.
2051 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
2052 Likewise.
2053 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
2054 Likewise.
2055 * testsuite/20_util/synchronized_pool_resource/cons.cc:
2056 Likewise.
2057 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
2058 Likewise.
2059 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
2060 Likewise.
2061 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
2062 Likewise.
2063 * testsuite/20_util/synchronized_pool_resource/options.cc:
2064 Likewise.
2065 * testsuite/20_util/synchronized_pool_resource/release.cc:
2066 Likewise.
2067 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
2068 Likewise.
2069 * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
2070 Likewise.
2071 * testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc:
2072 Likewise.
2073 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
2074 Likewise.
2075
2076 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2077
2078 * testsuite/23_containers/span/back_assert_neg.cc: Remove
2079 dg-options and add effective target selector to dg-do. Add
2080 no_pch.
2081 * testsuite/23_containers/span/back_neg.cc: Likewise.
2082 * testsuite/23_containers/span/cons_1_assert_neg.cc: Likewise.
2083 * testsuite/23_containers/span/cons_2_assert_neg.cc: Likewise.
2084 * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
2085 * testsuite/23_containers/span/first_assert_neg.cc: Likewise.
2086 * testsuite/23_containers/span/first_neg.cc: Likewise.
2087 * testsuite/23_containers/span/front_assert_neg.cc: Likewise.
2088 * testsuite/23_containers/span/front_neg.cc: Likewise.
2089 * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
2090 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
2091 * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
2092 * testsuite/23_containers/span/last_assert_neg.cc: Likewise.
2093 * testsuite/23_containers/span/last_neg.cc: Likewise.
2094 * testsuite/23_containers/span/subspan_2_assert_neg.cc:
2095 Likewise.
2096 * testsuite/23_containers/span/subspan_3_assert_neg.cc:
2097 Likewise.
2098 * testsuite/23_containers/span/subspan_4_assert_neg.cc:
2099 Likewise.
2100 * testsuite/23_containers/span/subspan_5_assert_neg.cc:
2101 Likewise.
2102 * testsuite/23_containers/span/subspan_6_assert_neg.cc:
2103 Likewise.
2104 * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
2105 * testsuite/23_containers/span/subspan_neg.cc: Likewise.
2106 * testsuite/24_iterators/range_operations/advance_debug_neg.cc:
2107 Likewise.
2108
2109 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2110
2111 * testsuite/18_support/headers/limits/synopsis_cxx23.cc: Remove
2112 dg-options.
2113 * testsuite/18_support/headers/stdfloat/types_std.cc: Likewise.
2114 * testsuite/18_support/type_info/constexpr.cc: Likewise.
2115 * testsuite/19_diagnostics/stacktrace/current.cc: Likewise.
2116 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
2117 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
2118 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
2119 * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
2120 * testsuite/20_util/aligned_storage/deprecated-2b.cc: Likewise.
2121 * testsuite/20_util/aligned_union/deprecated-2b.cc: Likewise.
2122 * testsuite/20_util/bitset/access/constexpr.cc: Likewise.
2123 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
2124 * testsuite/20_util/bitset/count/constexpr.cc: Likewise.
2125 * testsuite/20_util/bitset/ext/constexpr.cc: Likewise.
2126 * testsuite/20_util/bitset/operations/constexpr_c++23.cc:
2127 Likewise.
2128 * testsuite/20_util/bitset/version.cc: Likewise.
2129 * testsuite/20_util/from_chars/8.cc: Likewise.
2130 * testsuite/20_util/from_chars/constexpr.cc: Likewise.
2131 * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise.
2132 * testsuite/20_util/function_objects/invoke/4.cc: Likewise.
2133 * testsuite/20_util/function_objects/invoke/dangling_ref.cc:
2134 Likewise.
2135 * testsuite/20_util/is_scoped_enum/value.cc: Likewise.
2136 * testsuite/20_util/is_scoped_enum/version.cc: Likewise.
2137 * testsuite/20_util/move_only_function/call.cc: Likewise.
2138 * testsuite/20_util/move_only_function/cons.cc: Likewise.
2139 * testsuite/20_util/move_only_function/move.cc: Likewise.
2140 * testsuite/20_util/move_only_function/version.cc: Likewise.
2141 * testsuite/20_util/optional/monadic/and_then.cc: Likewise.
2142 * testsuite/20_util/optional/monadic/or_else.cc: Likewise.
2143 * testsuite/20_util/optional/monadic/or_else_neg.cc: Likewise.
2144 * testsuite/20_util/optional/monadic/pr109242.cc: Likewise.
2145 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
2146 * testsuite/20_util/pair/p2321r2.cc: Likewise.
2147 * testsuite/20_util/reference_from_temporary/value.cc: Likewise.
2148 * testsuite/20_util/reference_from_temporary/value2.cc:
2149 Likewise.
2150 * testsuite/20_util/reference_from_temporary/version.cc:
2151 Likewise.
2152 * testsuite/20_util/to_chars/constexpr.cc: Likewise.
2153 * testsuite/20_util/to_chars/float128_c++23.cc: Likewise.
2154 * testsuite/20_util/to_chars/float16_c++23.cc: Likewise.
2155 * testsuite/20_util/to_chars/version.cc: Likewise.
2156 * testsuite/20_util/to_underlying/1.cc: Likewise.
2157 * testsuite/20_util/to_underlying/version.cc: Likewise.
2158 * testsuite/20_util/tuple/p2321r2.cc: Likewise.
2159 * testsuite/20_util/unique_ptr/assign/constexpr.cc: Likewise.
2160 * testsuite/20_util/unique_ptr/comparison/constexpr.cc:
2161 Likewise.
2162 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc:
2163 Likewise.
2164 * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise.
2165 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: Likewise.
2166 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc: Likewise.
2167 * testsuite/20_util/unreachable/1.cc: Likewise.
2168 * testsuite/20_util/unreachable/version.cc: Likewise.
2169 * testsuite/20_util/uses_allocator/lwg3677.cc: Likewise.
2170 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: Likewise.
2171 * testsuite/21_strings/basic_string/operations/contains/char.cc:
2172 Likewise.
2173 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc: Likewise.
2174 * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc: Likewise.
2175 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: Likewise.
2176 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: Likewise.
2177 * testsuite/21_strings/basic_string_view/operations/contains/char.cc: Likewise.
2178 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: Likewise.
2179 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc: Likewise.
2180 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc: Likewise.
2181 * testsuite/23_containers/queue/cons_from_iters.cc: Likewise.
2182 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
2183 * testsuite/23_containers/vector/bool/element_access/1.cc:
2184 Likewise.
2185 * testsuite/24_iterators/const_iterator/1.cc: Likewise.
2186 * testsuite/25_algorithms/contains/1.cc: Likewise.
2187 * testsuite/25_algorithms/contains_subrange/1.cc: Likewise.
2188 * testsuite/25_algorithms/find_last/1.cc: Likewise.
2189 * testsuite/25_algorithms/find_last_if/1.cc: Likewise.
2190 * testsuite/25_algorithms/find_last_if_not/1.cc: Likewise.
2191 * testsuite/25_algorithms/fold_left/1.cc: Likewise.
2192 * testsuite/25_algorithms/fold_right/1.cc: Likewise.
2193 * testsuite/25_algorithms/iota/1.cc: Likewise.
2194 * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: Likewise.
2195 * testsuite/26_numerics/bit/bit.byteswap/version.cc: Likewise.
2196 * testsuite/26_numerics/complex/ext_c++23.cc: Likewise.
2197 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc: Likewise.
2198 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc:
2199 Likewise.
2200 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc:
2201 Likewise.
2202 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc:
2203 Likewise.
2204 * testsuite/26_numerics/numbers/4.cc: Likewise.
2205 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc: Likewise.
2206 * testsuite/27_io/filesystem/path/native/conv_c++23.cc:
2207 Likewise.
2208 * testsuite/27_io/spanstream/1.cc: Likewise.
2209 * testsuite/27_io/spanstream/2.cc: Likewise.
2210 * testsuite/27_io/spanstream/version.cc: Likewise.
2211 * testsuite/29_atomics/atomic_float/requirements_cxx23.cc:
2212 Likewise.
2213 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
2214 Likewise.
2215 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
2216 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
2217 Likewise.
2218 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2219 Likewise.
2220 * testsuite/std/ranges/adaptors/adjacent/1.cc: Likewise.
2221 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc:
2222 Likewise.
2223 * testsuite/std/ranges/adaptors/as_const/1.cc: Likewise.
2224 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
2225 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
2226 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
2227 * testsuite/std/ranges/adaptors/enumerate/1.cc: Likewise.
2228 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
2229 * testsuite/std/ranges/adaptors/lwg3715.cc: Likewise.
2230 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
2231 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
2232 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
2233 * testsuite/std/ranges/range_adaptor_closure.cc: Likewise.
2234 * testsuite/std/ranges/repeat/1.cc: Likewise.
2235 * testsuite/std/ranges/version_c++23.cc: Likewise.
2236 * testsuite/std/ranges/zip/1.cc: Likewise.
2237 * testsuite/std/ranges/zip_transform/1.cc: Likewise.
2238
2239 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2240
2241 * testsuite/20_util/expected/assign.cc: Remove dg-options.
2242 * testsuite/20_util/expected/bad.cc: Likewise.
2243 * testsuite/20_util/expected/cons.cc: Likewise.
2244 * testsuite/20_util/expected/equality.cc: Likewise.
2245 * testsuite/20_util/expected/illformed_neg.cc: Likewise.
2246 * testsuite/20_util/expected/lwg3877.cc: Likewise.
2247 * testsuite/20_util/expected/lwg3938.cc: Likewise.
2248 * testsuite/20_util/expected/monadic.cc: Likewise.
2249 * testsuite/20_util/expected/observers.cc: Likewise.
2250 * testsuite/20_util/expected/requirements.cc: Likewise.
2251 * testsuite/20_util/expected/swap.cc: Likewise.
2252 * testsuite/20_util/expected/synopsis.cc: Likewise.
2253 * testsuite/20_util/expected/unexpected.cc: Likewise.
2254 * testsuite/20_util/expected/version.cc: Likewise.
2255
2256 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2257
2258 * testsuite/20_util/duration/arithmetic/overflow_c++20.cc:
2259 Remove dg-options.
2260 * testsuite/20_util/duration/io.cc: Likewise.
2261 * testsuite/std/time/clock/file/io.cc: Likewise.
2262 * testsuite/std/time/clock/file/members.cc: Likewise.
2263 * testsuite/std/time/clock/file/overview.cc: Likewise.
2264 * testsuite/std/time/clock/gps/1.cc: Likewise.
2265 * testsuite/std/time/clock/gps/io.cc: Likewise.
2266 * testsuite/std/time/clock/local/io.cc: Likewise.
2267 * testsuite/std/time/clock/system/io.cc: Likewise.
2268 * testsuite/std/time/clock/tai/1.cc: Likewise.
2269 * testsuite/std/time/clock/tai/io.cc: Likewise.
2270 * testsuite/std/time/clock/utc/1.cc: Likewise.
2271 * testsuite/std/time/clock/utc/io.cc: Likewise.
2272 * testsuite/std/time/clock/utc/leap_second_info.cc: Likewise.
2273 * testsuite/std/time/day/1.cc: Likewise.
2274 * testsuite/std/time/day/io.cc: Likewise.
2275 * testsuite/std/time/exceptions.cc: Likewise.
2276 * testsuite/std/time/format.cc: Likewise.
2277 * testsuite/std/time/hh_mm_ss/1.cc: Likewise.
2278 * testsuite/std/time/hh_mm_ss/109772.cc: Likewise.
2279 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
2280 * testsuite/std/time/is_am/1.cc: Likewise.
2281 * testsuite/std/time/is_pm/1.cc: Likewise.
2282 * testsuite/std/time/make12/1.cc: Likewise.
2283 * testsuite/std/time/make24/1.cc: Likewise.
2284 * testsuite/std/time/month/1.cc: Likewise.
2285 * testsuite/std/time/month/io.cc: Likewise.
2286 * testsuite/std/time/month_day/1.cc: Likewise.
2287 * testsuite/std/time/month_day/io.cc: Likewise.
2288 * testsuite/std/time/month_day_last/1.cc: Likewise.
2289 * testsuite/std/time/month_day_last/io.cc: Likewise.
2290 * testsuite/std/time/month_weekday/1.cc: Likewise.
2291 * testsuite/std/time/month_weekday/io.cc: Likewise.
2292 * testsuite/std/time/month_weekday_last/1.cc: Likewise.
2293 * testsuite/std/time/month_weekday_last/io.cc: Likewise.
2294 * testsuite/std/time/parse.cc: Likewise.
2295 * testsuite/std/time/syn_c++20.cc: Likewise.
2296 * testsuite/std/time/time_zone/get_info_local.cc: Likewise.
2297 * testsuite/std/time/time_zone/get_info_sys.cc: Likewise.
2298 * testsuite/std/time/time_zone/requirements.cc: Likewise.
2299 * testsuite/std/time/traits/is_clock.cc: Likewise.
2300 * testsuite/std/time/tzdb/1.cc: Likewise.
2301 * testsuite/std/time/tzdb/leap_seconds.cc: Likewise.
2302 * testsuite/std/time/tzdb_list/1.cc: Likewise.
2303 * testsuite/std/time/tzdb_list/requirements.cc: Likewise.
2304 * testsuite/std/time/weekday/1.cc: Likewise.
2305 * testsuite/std/time/weekday/io.cc: Likewise.
2306 * testsuite/std/time/weekday_indexed/io.cc: Likewise.
2307 * testsuite/std/time/weekday_last/1.cc: Likewise.
2308 * testsuite/std/time/weekday_last/io.cc: Likewise.
2309 * testsuite/std/time/year/1.cc: Likewise.
2310 * testsuite/std/time/year/2.cc: Likewise.
2311 * testsuite/std/time/year/io.cc: Likewise.
2312 * testsuite/std/time/weekday_indexed/1.cc: Likewise.
2313 * testsuite/std/time/year_month/1.cc: Likewise.
2314 * testsuite/std/time/year_month/2.cc: Likewise.
2315 * testsuite/std/time/year_month/io.cc: Likewise.
2316 * testsuite/std/time/year_month_day/1.cc: Likewise.
2317 * testsuite/std/time/year_month_day/2.cc: Likewise.
2318 * testsuite/std/time/year_month_day/3.cc: Likewise.
2319 * testsuite/std/time/year_month_day/4.cc: Likewise.
2320 * testsuite/std/time/year_month_day/io.cc: Likewise.
2321 * testsuite/std/time/year_month_day_last/1.cc: Likewise.
2322 * testsuite/std/time/year_month_day_last/2.cc: Likewise.
2323 * testsuite/std/time/year_month_day_last/io.cc: Likewise.
2324 * testsuite/std/time/year_month_weekday/1.cc: Likewise.
2325 * testsuite/std/time/year_month_weekday/2.cc: Likewise.
2326 * testsuite/std/time/year_month_weekday/3.cc: Likewise.
2327 * testsuite/std/time/year_month_weekday/io.cc: Likewise.
2328 * testsuite/std/time/year_month_weekday_last/1.cc: Likewise.
2329 * testsuite/std/time/year_month_weekday_last/2.cc: Likewise.
2330 * testsuite/std/time/year_month_weekday_last/io.cc: Likewise.
2331 * testsuite/std/time/zoned_time/1.cc: Likewise.
2332 * testsuite/std/time/zoned_time/custom.cc: Likewise.
2333 * testsuite/std/time/zoned_time/deduction.cc: Likewise.
2334 * testsuite/std/time/zoned_time/io.cc: Likewise.
2335 * testsuite/std/time/zoned_time/req_neg.cc: Likewise.
2336 * testsuite/std/time/zoned_time/requirements.cc: Likewise.
2337 * testsuite/std/time/zoned_traits.cc: Likewise.
2338
2339 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2340
2341 * testsuite/std/format/arguments/args.cc: Remove dg-options.
2342 * testsuite/std/format/arguments/lwg3810.cc: Likewise.
2343 * testsuite/std/format/error.cc: Likewise.
2344 * testsuite/std/format/format_string.cc: Likewise.
2345 * testsuite/std/format/formatter/concept.cc: Likewise.
2346 * testsuite/std/format/formatter/ext_float.cc: Likewise.
2347 * testsuite/std/format/formatter/requirements.cc: Likewise.
2348 * testsuite/std/format/functions/107871.cc: Likewise.
2349 * testsuite/std/format/functions/format.cc: Likewise.
2350 * testsuite/std/format/functions/format_to.cc: Likewise.
2351 * testsuite/std/format/functions/format_to_n.cc: Likewise.
2352 * testsuite/std/format/functions/size.cc: Likewise.
2353 * testsuite/std/format/functions/vformat_to.cc: Likewise.
2354 * testsuite/std/format/parse_ctx.cc: Likewise.
2355 * testsuite/std/format/string.cc: Likewise.
2356 * testsuite/std/format/string_neg.cc: Likewise.
2357 * testsuite/std/format/functions/format_c++23.cc: Removed.
2358
2359 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2360
2361 * testsuite/20_util/function_objects/range.cmp/equal_to.cc:
2362 Remove dg-options.
2363 * testsuite/20_util/function_objects/range.cmp/greater.cc:
2364 Likewise.
2365 * testsuite/20_util/function_objects/range.cmp/greater_equal.cc:
2366 Likewise.
2367 * testsuite/20_util/function_objects/range.cmp/less.cc:
2368 Likewise.
2369 * testsuite/20_util/function_objects/range.cmp/less_equal.cc:
2370 Likewise.
2371 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc:
2372 Likewise.
2373 * testsuite/20_util/function_objects/range.cmp/not_equal_to.cc:
2374 Likewise.
2375 * testsuite/20_util/specialized_algorithms/construct_at/1.cc:
2376 Likewise.
2377 * testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc:
2378 Likewise.
2379 * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
2380 Likewise.
2381 * testsuite/20_util/specialized_algorithms/destroy/constrained.cc:
2382 Likewise.
2383 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
2384 Likewise.
2385 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
2386 Likewise.
2387 * testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc:
2388 Likewise.
2389 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
2390 Likewise.
2391 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc:
2392 Likewise.
2393 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
2394 Likewise.
2395 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
2396 Likewise.
2397 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Likewise.
2398 * testsuite/25_algorithms/adjacent_find/constrained.cc:
2399 Likewise.
2400 * testsuite/25_algorithms/all_of/constexpr.cc: Likewise.
2401 * testsuite/25_algorithms/all_of/constrained.cc: Likewise.
2402 * testsuite/25_algorithms/any_of/constexpr.cc: Likewise.
2403 * testsuite/25_algorithms/any_of/constrained.cc: Likewise.
2404 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
2405 * testsuite/25_algorithms/binary_search/constrained.cc:
2406 Likewise.
2407 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
2408 * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
2409 * testsuite/25_algorithms/copy/95578.cc: Likewise.
2410 * testsuite/25_algorithms/copy/constexpr.cc: Likewise.
2411 * testsuite/25_algorithms/copy/constrained.cc: Likewise.
2412 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Likewise.
2413 * testsuite/25_algorithms/copy_backward/95578.cc: Likewise.
2414 * testsuite/25_algorithms/copy_backward/constexpr.cc: Likewise.
2415 * testsuite/25_algorithms/copy_backward/constrained.cc:
2416 Likewise.
2417 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
2418 Likewise.
2419 * testsuite/25_algorithms/copy_if/constexpr.cc: Likewise.
2420 * testsuite/25_algorithms/copy_if/constrained.cc: Likewise.
2421 * testsuite/25_algorithms/copy_n/constexpr.cc: Likewise.
2422 * testsuite/25_algorithms/copy_n/constrained.cc: Likewise.
2423 * testsuite/25_algorithms/count/constexpr.cc: Likewise.
2424 * testsuite/25_algorithms/count/constrained.cc: Likewise.
2425 * testsuite/25_algorithms/count_if/constexpr.cc: Likewise.
2426 * testsuite/25_algorithms/count_if/constrained.cc: Likewise.
2427 * testsuite/25_algorithms/cpp_lib_constexpr.cc: Likewise.
2428 * testsuite/25_algorithms/equal/95578.cc: Likewise.
2429 * testsuite/25_algorithms/equal/constexpr.cc: Likewise.
2430 * testsuite/25_algorithms/equal/constexpr_neg.cc: Likewise.
2431 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
2432 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
2433 Likewise.
2434 * testsuite/25_algorithms/equal_range/constexpr.cc: Likewise.
2435 * testsuite/25_algorithms/equal_range/constrained.cc: Likewise.
2436 * testsuite/25_algorithms/fill/94017.cc: Likewise.
2437 * testsuite/25_algorithms/fill/constexpr.cc: Likewise.
2438 * testsuite/25_algorithms/fill/constrained.cc: Likewise.
2439 * testsuite/25_algorithms/fill_n/94017.cc: Likewise.
2440 * testsuite/25_algorithms/fill_n/constexpr.cc: Likewise.
2441 * testsuite/25_algorithms/fill_n/constrained.cc: Likewise.
2442 * testsuite/25_algorithms/find/constexpr.cc: Likewise.
2443 * testsuite/25_algorithms/find/constrained.cc: Likewise.
2444 * testsuite/25_algorithms/find_end/constexpr.cc: Likewise.
2445 * testsuite/25_algorithms/find_end/constrained.cc: Likewise.
2446 * testsuite/25_algorithms/find_first_of/constexpr.cc: Likewise.
2447 * testsuite/25_algorithms/find_first_of/constrained.cc:
2448 Likewise.
2449 * testsuite/25_algorithms/find_if/constexpr.cc: Likewise.
2450 * testsuite/25_algorithms/find_if/constrained.cc: Likewise.
2451 * testsuite/25_algorithms/find_if_not/constexpr.cc: Likewise.
2452 * testsuite/25_algorithms/find_if_not/constrained.cc: Likewise.
2453 * testsuite/25_algorithms/for_each/constexpr.cc: Likewise.
2454 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
2455 * testsuite/25_algorithms/generate/constexpr.cc: Likewise.
2456 * testsuite/25_algorithms/generate/constrained.cc: Likewise.
2457 * testsuite/25_algorithms/generate_n/constexpr.cc: Likewise.
2458 * testsuite/25_algorithms/generate_n/constrained.cc: Likewise.
2459 * testsuite/25_algorithms/heap/constrained.cc: Likewise.
2460 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
2461 * testsuite/25_algorithms/inplace_merge/constrained.cc:
2462 Likewise.
2463 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
2464 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
2465 * testsuite/25_algorithms/is_partitioned/constexpr.cc: Likewise.
2466 * testsuite/25_algorithms/is_partitioned/constrained.cc:
2467 Likewise.
2468 * testsuite/25_algorithms/is_permutation/constexpr.cc: Likewise.
2469 * testsuite/25_algorithms/is_permutation/constrained.cc:
2470 Likewise.
2471 * testsuite/25_algorithms/is_sorted/constexpr.cc: Likewise.
2472 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
2473 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
2474 Likewise.
2475 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
2476 Likewise.
2477 * testsuite/25_algorithms/iter_swap/constexpr.cc: Likewise.
2478 * testsuite/25_algorithms/lexicographical_compare/93972.cc:
2479 Likewise.
2480 * testsuite/25_algorithms/lexicographical_compare/95578.cc:
2481 Likewise.
2482 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
2483 Likewise.
2484 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
2485 Likewise.
2486 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
2487 Likewise.
2488 * testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc:
2489 Likewise.
2490 * testsuite/25_algorithms/lower_bound/constexpr.cc: Likewise.
2491 * testsuite/25_algorithms/lower_bound/constrained.cc: Likewise.
2492 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
2493 Likewise.
2494 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
2495 Likewise.
2496 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
2497 Likewise.
2498 * testsuite/25_algorithms/make_heap/constexpr.cc: Likewise.
2499 * testsuite/25_algorithms/max/constrained.cc: Likewise.
2500 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
2501 * testsuite/25_algorithms/merge/constexpr.cc: Likewise.
2502 * testsuite/25_algorithms/merge/constrained.cc: Likewise.
2503 * testsuite/25_algorithms/min/constrained.cc: Likewise.
2504 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
2505 * testsuite/25_algorithms/minmax/constrained.cc: Likewise.
2506 * testsuite/25_algorithms/minmax_element/constrained.cc:
2507 Likewise.
2508 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
2509 * testsuite/25_algorithms/mismatch/constrained.cc: Likewise.
2510 * testsuite/25_algorithms/move/93872.cc: Likewise.
2511 * testsuite/25_algorithms/move/95578.cc: Likewise.
2512 * testsuite/25_algorithms/move/constexpr.cc: Likewise.
2513 * testsuite/25_algorithms/move/constrained.cc: Likewise.
2514 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
2515 * testsuite/25_algorithms/move_backward/95578.cc: Likewise.
2516 * testsuite/25_algorithms/move_backward/constrained.cc:
2517 Likewise.
2518 * testsuite/25_algorithms/next_permutation/constexpr.cc:
2519 Likewise.
2520 * testsuite/25_algorithms/next_permutation/constrained.cc:
2521 Likewise.
2522 * testsuite/25_algorithms/none_of/constexpr.cc: Likewise.
2523 * testsuite/25_algorithms/none_of/constrained.cc: Likewise.
2524 * testsuite/25_algorithms/nth_element/constexpr.cc: Likewise.
2525 * testsuite/25_algorithms/nth_element/constrained.cc: Likewise.
2526 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
2527 * testsuite/25_algorithms/partial_sort/constrained.cc: Likewise.
2528 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
2529 Likewise.
2530 * testsuite/25_algorithms/partial_sort_copy/constrained.cc:
2531 Likewise.
2532 * testsuite/25_algorithms/partition/constexpr.cc: Likewise.
2533 * testsuite/25_algorithms/partition/constrained.cc: Likewise.
2534 * testsuite/25_algorithms/partition_copy/constexpr.cc: Likewise.
2535 * testsuite/25_algorithms/partition_copy/constrained.cc:
2536 Likewise.
2537 * testsuite/25_algorithms/partition_point/constexpr.cc:
2538 Likewise.
2539 * testsuite/25_algorithms/partition_point/constrained.cc:
2540 Likewise.
2541 * testsuite/25_algorithms/pop_heap/constexpr.cc: Likewise.
2542 * testsuite/25_algorithms/prev_permutation/constexpr.cc:
2543 Likewise.
2544 * testsuite/25_algorithms/prev_permutation/constrained.cc:
2545 Likewise.
2546 * testsuite/25_algorithms/push_heap/constexpr.cc: Likewise.
2547 * testsuite/25_algorithms/remove/constexpr.cc: Likewise.
2548 * testsuite/25_algorithms/remove/constrained.cc: Likewise.
2549 * testsuite/25_algorithms/remove_copy/constexpr.cc: Likewise.
2550 * testsuite/25_algorithms/remove_copy/constrained.cc: Likewise.
2551 * testsuite/25_algorithms/remove_copy_if/constexpr.cc: Likewise.
2552 * testsuite/25_algorithms/remove_copy_if/constrained.cc:
2553 Likewise.
2554 * testsuite/25_algorithms/remove_if/constexpr.cc: Likewise.
2555 * testsuite/25_algorithms/remove_if/constrained.cc: Likewise.
2556 * testsuite/25_algorithms/replace/constrained.cc: Likewise.
2557 * testsuite/25_algorithms/replace_copy/constexpr.cc: Likewise.
2558 * testsuite/25_algorithms/replace_copy/constrained.cc: Likewise.
2559 * testsuite/25_algorithms/replace_copy_if/constexpr.cc:
2560 Likewise.
2561 * testsuite/25_algorithms/replace_copy_if/constrained.cc:
2562 Likewise.
2563 * testsuite/25_algorithms/replace_if/constexpr.cc: Likewise.
2564 * testsuite/25_algorithms/replace_if/constrained.cc: Likewise.
2565 * testsuite/25_algorithms/reverse/constexpr.cc: Likewise.
2566 * testsuite/25_algorithms/reverse/constrained.cc: Likewise.
2567 * testsuite/25_algorithms/reverse_copy/constexpr.cc: Likewise.
2568 * testsuite/25_algorithms/reverse_copy/constrained.cc: Likewise.
2569 * testsuite/25_algorithms/rotate/constexpr.cc: Likewise.
2570 * testsuite/25_algorithms/rotate/constrained.cc: Likewise.
2571 * testsuite/25_algorithms/rotate_copy/constexpr.cc: Likewise.
2572 * testsuite/25_algorithms/rotate_copy/constrained.cc: Likewise.
2573 * testsuite/25_algorithms/sample/constrained.cc: Likewise.
2574 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
2575 * testsuite/25_algorithms/search/constrained.cc: Likewise.
2576 * testsuite/25_algorithms/search_n/97828.cc: Likewise.
2577 * testsuite/25_algorithms/search_n/constexpr.cc: Likewise.
2578 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
2579 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
2580 * testsuite/25_algorithms/set_difference/constrained.cc:
2581 Likewise.
2582 * testsuite/25_algorithms/set_intersection/constexpr.cc:
2583 Likewise.
2584 * testsuite/25_algorithms/set_intersection/constrained.cc:
2585 Likewise.
2586 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
2587 Likewise.
2588 * testsuite/25_algorithms/set_symmetric_difference/constrained.cc:
2589 Likewise.
2590 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
2591 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
2592 * testsuite/25_algorithms/shift_left/1.cc: Likewise.
2593 * testsuite/25_algorithms/shift_right/1.cc: Likewise.
2594 * testsuite/25_algorithms/shuffle/constrained.cc: Likewise.
2595 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
2596 * testsuite/25_algorithms/sort/constrained.cc: Likewise.
2597 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
2598 * testsuite/25_algorithms/stable_partition/constrained.cc:
2599 Likewise.
2600 * testsuite/25_algorithms/stable_sort/constrained.cc: Likewise.
2601 * testsuite/25_algorithms/swap/constexpr.cc: Likewise.
2602 * testsuite/25_algorithms/swap_ranges/constexpr.cc: Likewise.
2603 * testsuite/25_algorithms/swap_ranges/constrained.cc: Likewise.
2604 * testsuite/25_algorithms/transform/constexpr.cc: Likewise.
2605 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
2606 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
2607 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
2608 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
2609 * testsuite/25_algorithms/unique_copy/constrained.cc: Likewise.
2610 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
2611 * testsuite/25_algorithms/upper_bound/constrained.cc: Likewise.
2612 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
2613 Likewise.
2614 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
2615 Likewise.
2616 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
2617 Likewise.
2618
2619 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2620
2621 * testsuite/std/concepts/1.cc: Remove dg-options.
2622 * testsuite/std/concepts/2.cc: Likewise.
2623 * testsuite/std/concepts/concepts.callable/invocable.cc:
2624 Likewise.
2625 * testsuite/std/concepts/concepts.callable/regular_invocable.cc:
2626 Likewise.
2627 * testsuite/std/concepts/concepts.callable/relation.cc:
2628 Likewise.
2629 * testsuite/std/concepts/concepts.callable/strictweakorder.cc:
2630 Likewise.
2631 * testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc: Likewise.
2632 * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc: Likewise.
2633 * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc: Likewise.
2634 * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc: Likewise.
2635 * testsuite/std/concepts/concepts.lang/concept.assignable/1.cc:
2636 Likewise.
2637 * testsuite/std/concepts/concepts.lang/concept.common/1.cc:
2638 Likewise.
2639 * testsuite/std/concepts/concepts.lang/concept.commonref/1.cc:
2640 Likewise.
2641 * testsuite/std/concepts/concepts.lang/concept.constructible/1.cc: Likewise.
2642 * testsuite/std/concepts/concepts.lang/concept.convertible/1.cc:
2643 Likewise.
2644 * testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc: Likewise.
2645 * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc: Likewise.
2646 * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc: Likewise.
2647 * testsuite/std/concepts/concepts.lang/concept.derived/1.cc:
2648 Likewise.
2649 * testsuite/std/concepts/concepts.lang/concept.destructible/1.cc: Likewise.
2650 * testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc: Likewise.
2651 * testsuite/std/concepts/concepts.lang/concept.same/1.cc:
2652 Likewise.
2653 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc: Likewise.
2654 * testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc: Likewise.
2655 * testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc: Likewise.
2656 * testsuite/std/concepts/concepts.object/copyable.cc: Likewise.
2657 * testsuite/std/concepts/concepts.object/movable.cc: Likewise.
2658 * testsuite/std/concepts/concepts.object/regular.cc: Likewise.
2659 * testsuite/std/concepts/concepts.object/semiregular.cc:
2660 Likewise.
2661 * testsuite/std/ranges/97600.cc: Likewise.
2662 * testsuite/std/ranges/access/101782.cc: Likewise.
2663 * testsuite/std/ranges/access/begin.cc: Likewise.
2664 * testsuite/std/ranges/access/begin_neg.cc: Likewise.
2665 * testsuite/std/ranges/access/cbegin.cc: Likewise.
2666 * testsuite/std/ranges/access/cdata.cc: Likewise.
2667 * testsuite/std/ranges/access/cend.cc: Likewise.
2668 * testsuite/std/ranges/access/crbegin.cc: Likewise.
2669 * testsuite/std/ranges/access/crend.cc: Likewise.
2670 * testsuite/std/ranges/access/data.cc: Likewise.
2671 * testsuite/std/ranges/access/empty.cc: Likewise.
2672 * testsuite/std/ranges/access/end.cc: Likewise.
2673 * testsuite/std/ranges/access/end_neg.cc: Likewise.
2674 * testsuite/std/ranges/access/lwg3467.cc: Likewise.
2675 * testsuite/std/ranges/access/p2602.cc: Likewise.
2676 * testsuite/std/ranges/access/rbegin.cc: Likewise.
2677 * testsuite/std/ranges/access/rend.cc: Likewise.
2678 * testsuite/std/ranges/access/size.cc: Likewise.
2679 * testsuite/std/ranges/access/size_neg.cc: Likewise.
2680 * testsuite/std/ranges/access/ssize.cc: Likewise.
2681 * testsuite/std/ranges/adaptors/100479.cc: Likewise.
2682 * testsuite/std/ranges/adaptors/100577.cc: Likewise.
2683 * testsuite/std/ranges/adaptors/93978.cc: Likewise.
2684 * testsuite/std/ranges/adaptors/95322.cc: Likewise.
2685 * testsuite/std/ranges/adaptors/99433.cc: Likewise.
2686 * testsuite/std/ranges/adaptors/all.cc: Likewise.
2687 * testsuite/std/ranges/adaptors/common.cc: Likewise.
2688 * testsuite/std/ranges/adaptors/conditionally_borrowed.cc:
2689 Likewise.
2690 * testsuite/std/ranges/adaptors/counted.cc: Likewise.
2691 * testsuite/std/ranges/adaptors/detail/copyable_box.cc:
2692 Likewise.
2693 * testsuite/std/ranges/adaptors/drop.cc: Likewise.
2694 * testsuite/std/ranges/adaptors/drop_while.cc: Likewise.
2695 * testsuite/std/ranges/adaptors/elements.cc: Likewise.
2696 * testsuite/std/ranges/adaptors/filter.cc: Likewise.
2697 * testsuite/std/ranges/adaptors/join.cc: Likewise.
2698 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
2699 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
2700 * testsuite/std/ranges/adaptors/lwg3286.cc: Likewise.
2701 * testsuite/std/ranges/adaptors/lwg3313_neg.cc: Likewise.
2702 * testsuite/std/ranges/adaptors/lwg3325_neg.cc: Likewise.
2703 * testsuite/std/ranges/adaptors/lwg3406.cc: Likewise.
2704 * testsuite/std/ranges/adaptors/p1739.cc: Likewise.
2705 * testsuite/std/ranges/adaptors/p2281.cc: Likewise.
2706 * testsuite/std/ranges/adaptors/p2770r0.cc: Likewise.
2707 * testsuite/std/ranges/adaptors/reverse.cc: Likewise.
2708 * testsuite/std/ranges/adaptors/sizeof.cc: Likewise.
2709 * testsuite/std/ranges/adaptors/split.cc: Likewise.
2710 * testsuite/std/ranges/adaptors/take.cc: Likewise.
2711 * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
2712 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
2713 * testsuite/std/ranges/empty_view.cc: Likewise.
2714 * testsuite/std/ranges/headers/ranges/synopsis.cc: Likewise.
2715 * testsuite/std/ranges/iota/difference_type.cc: Likewise.
2716 * testsuite/std/ranges/iota/iota_view.cc: Likewise.
2717 * testsuite/std/ranges/iota/iterator.cc: Likewise.
2718 * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise.
2719 * testsuite/std/ranges/iota/max_size_type.cc: Likewise.
2720 * testsuite/std/ranges/istream_view.cc: Likewise.
2721 * testsuite/std/ranges/p2259.cc: Likewise.
2722 * testsuite/std/ranges/p2325.cc: Likewise.
2723 * testsuite/std/ranges/p2367.cc: Likewise.
2724 * testsuite/std/ranges/range.cc: Likewise.
2725 * testsuite/std/ranges/refinements.cc: Likewise.
2726 * testsuite/std/ranges/safe_range.cc: Likewise.
2727 * testsuite/std/ranges/safe_range_types.cc: Likewise.
2728 * testsuite/std/ranges/single_view.cc: Likewise.
2729 * testsuite/std/ranges/sized.cc: Likewise.
2730 * testsuite/std/ranges/subrange/1.cc: Likewise.
2731 * testsuite/std/ranges/subrange/97512.cc: Likewise.
2732 * testsuite/std/ranges/subrange/constexpr.cc: Likewise.
2733 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Likewise.
2734 * testsuite/std/ranges/subrange/lwg3286.cc: Likewise.
2735 * testsuite/std/ranges/subrange/lwg3433.cc: Likewise.
2736 * testsuite/std/ranges/subrange/sizeof.cc: Likewise.
2737 * testsuite/std/ranges/subrange/tuple_like.cc: Likewise.
2738 * testsuite/std/ranges/view.cc: Likewise.
2739
2740 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2741
2742 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
2743 Remove dg-options.
2744 * testsuite/23_containers/span/contiguous_range_neg.cc:
2745 Likewise.
2746 * testsuite/23_containers/span/everything.cc: Likewise.
2747
2748 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2749
2750 * testsuite/24_iterators/reverse_iterator/100639.cc: Remove
2751 dg-options and add dg-add-options strict_std.
2752 * testsuite/std/ranges/iota/93267.cc: Likewise.
2753 * testsuite/std/ranges/iota/96042.cc: Likewise.
2754 * testsuite/std/ranges/iota/size.cc: Likewise.
2755 * testsuite/std/ranges/subrange/96042.cc: Likewise.
2756
2757 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2758
2759 * testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc:
2760 Replace dg-options -std=c++17 with dg-add-options strict_std.
2761 * testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc:
2762 Likewise.
2763
2764 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2765
2766 * testsuite/23_containers/deque/48101-2_neg.cc: Replace
2767 dg-options with target selector.
2768 * testsuite/23_containers/forward_list/48101-2_neg.cc: Likewise.
2769 * testsuite/23_containers/list/48101-2_neg.cc: Likewise.
2770 * testsuite/23_containers/map/48101-2_neg.cc: Likewise.
2771 * testsuite/23_containers/map/48101_neg.cc: Likewise.
2772 * testsuite/23_containers/multimap/48101-2_neg.cc: Likewise.
2773 * testsuite/23_containers/multimap/48101_neg.cc: Likewise.
2774 * testsuite/23_containers/multiset/48101-2_neg.cc: Likewise.
2775 * testsuite/23_containers/set/48101-2_neg.cc: Likewise.
2776 * testsuite/23_containers/unordered_map/48101-2_neg.cc:
2777 Likewise.
2778 * testsuite/23_containers/unordered_multimap/48101-2_neg.cc:
2779 Likewise.
2780 * testsuite/23_containers/unordered_multiset/48101-2_neg.cc:
2781 Likewise.
2782 * testsuite/23_containers/unordered_set/48101-2_neg.cc:
2783 Likewise.
2784 * testsuite/23_containers/vector/48101-2_neg.cc: Likewise.
2785
2786 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2787
2788 * doc/xml/manual/test.xml: Update documentation on running and
2789 writing tests.
2790 * doc/html/manual/test.html: Regenerate.
2791 * testsuite/Makefile.am: Add v3-use-std-list to site.tmp
2792 * testsuite/Makefile.in: Regenerate.
2793 * testsuite/lib/dg-options.exp (add_options_for_strict_std): New
2794 proc.
2795 * testsuite/lib/libstdc++.exp (search_for): New utility proc.
2796 (v3-dg-runtest): New proc to replace dg-runtest.
2797 * testsuite/libstdc++-dg/conformance.exp: Use v3-dg-runtest.
2798
2799 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2800
2801 * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc:
2802 Fix test to work for C++23 and C++26 too.
2803
2804 2023-09-15 Patrick Palka <ppalka@redhat.com>
2805
2806 * include/std/bit: Include <concepts>.
2807 (byteswap): Use a type-constraint instead of enable_if_t
2808 inside the return type, and use std::integral.
2809 (_If_is_unsigned_integer): Replace with ...
2810 (__unsigned_integer): ... this.
2811 (rotl): Use a type-constraint instead of enable_if_t inside
2812 the return type.
2813 (countl_zero): Likewise.
2814 (countl_one): Likewise.
2815 (countr_zero): Likewise.
2816 (countr_one): Likewise.
2817 (popcount): Likewise.
2818 (has_single_bit): Likewise.
2819 (bit_ceil): Likewise.
2820 (bit_floor): Likewise.
2821 (bit_width): Likewise.
2822
2823 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2824
2825 * include/std/variant (variant): Remove derivation from
2826 _Enable_default_constructor base class.
2827 (variant::variant()): Constrain.
2828 * testsuite/20_util/variant/default_ctor.cc: New test.
2829
2830 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2831
2832 PR libstdc++/111172
2833 * include/std/variant (get<T>): Remove !is_void static
2834 assertions.
2835
2836 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2837
2838 * include/bits/version.def (to_chars): Define new value for
2839 C++26.
2840 * include/bits/version.h: Regenerate.
2841 * include/std/charconv (to_chars_result::operator bool): New
2842 function.
2843 (from_chars_result::operator bool): New function.
2844 * testsuite/20_util/to_chars/version.cc: Update expected value.
2845 * testsuite/20_util/from_chars/result.cc: New test.
2846 * testsuite/20_util/to_chars/result.cc: New test.
2847
2848 2023-09-14 Jonathan Wakely <jwakely@redhat.com>
2849
2850 PR c++/111357
2851 * testsuite/20_util/integer_sequence/pr111357.cc: New test.
2852
2853 2023-09-14 Jonathan Wakely <jwakely@redhat.com>
2854
2855 * testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc: Use
2856 dg-additional-files. Remove @require@ and @diff@ comments.
2857 * testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc: Likewise.
2858 * testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc: Likewise.
2859 * testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc: Likewise.
2860 * testsuite/lib/dg-options.exp (v3_additional_files): New
2861 global variable.
2862 (dg-additional-files): New proc.
2863 * testsuite/lib/libstdc++.exp (v3_target_compile): Copy
2864 additional files to test directory.
2865
2866 2023-09-14 Jonathan Wakely <jwakely@redhat.com>
2867
2868 * include/experimental/io_context (io_context) [!_GLIBCXX_HAS_GTHREADS]:
2869 Use a plain integer for _M_work_count for single-threaded
2870 targets.
2871 * include/experimental/memory_resource (__get_default_resource)
2872 [!_GLIBCXX_HAS_GTHREADS]: Use unsynchronized type for
2873 single-threaded targets.
2874 * src/c++17/default_resource.h: Adjust preprocessor conditions
2875 to match memory_resource.cc.
2876 * src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS]
2877 (atomic_mem_res): Use unsynchronized type for single-threaded
2878 targets.
2879
2880 2023-09-14 Christophe Lyon <christophe.lyon@linaro.org>
2881
2882 * testsuite/29_atomics/atomic/compare_exchange_padding.cc: Likewise.
2883 * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
2884 * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
2885 * testsuite/29_atomics/atomic_integral/cons/value_init.cc: Likewise.
2886 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc: Likewise.
2887 * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
2888 * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
2889 * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
2890
2891 2023-09-14 François Dumont <fdumont@gcc.gnu.org>
2892
2893 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add
2894 { dg-require-normal-namespace "" }.
2895
2896 2023-09-13 François Dumont <fdumont@gcc.gnu.org>
2897
2898 * include/std/format (std::__format::_Arg_store): Explicit version
2899 namespace on make_format_args friend declaration.
2900
2901 2023-09-12 Patrick Palka <ppalka@redhat.com>
2902
2903 PR libstdc++/111327
2904 * include/std/functional (_GLIBCXX_NOT_FN_CALL_OP): Also define
2905 a deleted fallback operator() overload. Constrain both the
2906 enabled and deleted overloads accordingly.
2907 * testsuite/20_util/function_objects/not_fn/111327.cc: New test.
2908
2909 2023-09-12 Patrick Palka <ppalka@redhat.com>
2910
2911 PR libstdc++/111327
2912 * include/std/functional (_Bind_front::operator()): Add deleted
2913 fallback overloads for each const/ref qualifier pair. Give the
2914 enabled overloads dummy constraints to make each one more
2915 specialized than the corresponding deleted overload.
2916 * testsuite/20_util/function_objects/bind_front/111327.cc: New test.
2917
2918 2023-09-12 Patrick Palka <ppalka@redhat.com>
2919
2920 * include/std/functional (_Bind_front0): Remove.
2921 (_Bind_front_t): Adjust.
2922
2923 2023-09-12 Jonathan Wakely <jwakely@redhat.com>
2924
2925 * python/libstdcxx/v6/printers.py: Reformat.
2926 * python/libstdcxx/v6/xmethods.py: Likewise.
2927
2928 2023-09-11 Jonathan Wakely <jwakely@redhat.com>
2929
2930 * src/c++11/debug.cc (acquire_sequence_ptr_for_lock): New
2931 function.
2932 (reset_sequence_ptr): New function.
2933 (_Safe_iterator_base::_M_detach)
2934 (_Safe_local_iterator_base::_M_detach): Replace bare atomic_load
2935 with acquire_sequence_ptr_for_lock.
2936 (_Safe_iterator_base::_M_reset): Replace bare atomic_store with
2937 reset_sequence_ptr.
2938
2939 2023-09-11 Jonathan Wakely <jwakely@redhat.com>
2940
2941 * src/c++11/Makefile.am: Add new file.
2942 * src/c++11/Makefile.in: Regenerate.
2943 * src/c++11/debug.cc (__glibcxx_assert_fail): Move to ...
2944 * src/c++11/assert_fail.cc: New file.
2945
2946 2023-09-11 Ken Matsui <kmatsui@gcc.gnu.org>
2947
2948 * include/bits/c++config (_GLIBCXX_HAS_BUILTIN): Do not undef.
2949 (_GLIBCXX_USE_BUILTIN_TRAIT): Define.
2950
2951 2023-09-11 Jonathan Wakely <jwakely@redhat.com>
2952
2953 * include/bits/version.def (__cpp_lib_formatters): Define.
2954 * include/bits/version.h: Regenerate.
2955 * include/std/stacktrace (formatter<stacktrace_entry>)
2956 (formatter<basic_stacktrace<Alloc>>): Define.
2957 * include/std/thread (formatter<thread::id, charT>): Define.
2958 * testsuite/19_diagnostics/stacktrace/output.cc: New test.
2959 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add
2960 std::formatter specializations.
2961 * testsuite/19_diagnostics/stacktrace/version.cc: Check
2962 __cpp_lib_formatters macro.
2963 * testsuite/30_threads/thread/id/hash.cc: Remove gthreads
2964 dependency.
2965 * testsuite/30_threads/thread/id/operators.cc: Likewise.
2966 * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise.
2967 * testsuite/30_threads/thread/id/output.cc: New test.
2968
2969 2023-09-11 Pekka Seppänen <pexu@gcc.mail.kapsi.fi>
2970
2971 * src/c++11/cow-locale_init.cc: Add [[maybe_unused]] attribute.
2972 * src/c++17/fs_path.cc (path::_S_convert_loc): Likewise.
2973 * src/filesystem/path.cc (path::_S_convert_loc): Likewise.
2974
2975 2023-09-08 Jonathan Wakely <jwakely@redhat.com>
2976
2977 * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++23 directory.
2978 * configure: Regenerate.
2979 * doc/html/manual/*: Regenerate.
2980 * doc/xml/manual/using.xml: Update documentation on linking.
2981 * include/std/stacktrace: Remove declarations of libbacktrace
2982 APIs.
2983 (stacktrace_entry::_S_err_handler, stacktrace_entry::_S_init):
2984 Remove.
2985 (stacktrace_entry::_Info): New class.
2986 (stacktrace_entry::_M_get_info): Use _Info.
2987 (__stacktrace_impl): New class.
2988 (basic_stacktrace): Derive from __stacktrace_impl.
2989 (basic_stacktrace::current): Use __stacktrace_impl::_S_current.
2990 * scripts/testsuite_flags.in: Adjust LDFLAGS to find
2991 libstdc++exp instead of libstdc++_libbacktrace.
2992 * src/Makefile.am (SUBDIRS): Add c++23 directory.
2993 * src/Makefile.in: Regenerate.
2994 * src/c++20/Makefile.am: Fix comment.
2995 * src/c++20/Makefile.in: Regenerate.
2996 * src/c++23/Makefile.am: New file.
2997 * src/c++23/Makefile.in: New file.
2998 * src/c++23/stacktrace.cc: New file with definitions of
2999 stacktrace_entry::_Info and __stacktrace_impl members.
3000 * src/experimental/Makefile.am: Use LIBADD to include other
3001 libraries.
3002 * src/experimental/Makefile.in: Regenerate.
3003 * src/libbacktrace/Makefile.am: Use noinst_LTLIBRARIES.
3004 * src/libbacktrace/Makefile.in: Regenerate.
3005 * testsuite/19_diagnostics/stacktrace/current.cc: Adjust
3006 dg-options to use -lstdc++exp.
3007 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
3008 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
3009 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
3010 Likewise.
3011
3012 2023-09-08 Alexey Lapshin <alexey.lapshin@espressif.com>
3013
3014 * src/libbacktrace/Makefile.am: Remove -Werror.
3015 * src/libbacktrace/Makefile.in: Regenerate.
3016
3017 2023-09-08 Jonathan Wakely <jwakely@redhat.com>
3018
3019 * testsuite/Makefile.am (check-DEJAGNU): Use @ in recipe.
3020 * testsuite/Makefile.in: Regenerate.
3021
3022 2023-09-08 Yang Yujie <yangyujie@loongson.cn>
3023
3024 * configure.host: Register t-loongarch in tmake_file.
3025 * config/cpu/loongarch/t-loongarch: New file. Manually refresh
3026 MULTISUBDIR with $(shell $(CXX) --print-multi-directory).
3027
3028 2023-09-07 Bruno Victal <mirai@makinata.eu>
3029
3030 * acinclude.m4: Update docbook xsl URI.
3031 * configure: Regenerate.
3032
3033 2023-09-07 Bruno Victal <mirai@makinata.eu>
3034
3035 * doc/Makefile.am: Fix 'doc-install-info' rule.
3036 Fix typo in commment.
3037 * doc/Makefile.in: Regenerate.
3038
3039 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3040
3041 * testsuite/27_io/filesystem/path/concat/94063.cc: Simplify
3042 dg-do target selector.
3043
3044 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3045
3046 * testsuite/config/default.exp: Remove trailing whitespace.
3047 * testsuite/lib/dg-options.exp: Likewise.
3048 * testsuite/lib/prune.exp: Likewise.
3049 * testsuite/libstdc++-abi/abi.exp: Likewise.
3050 * testsuite/libstdc++-dg/conformance.exp: Likewise.
3051 * testsuite/libstdc++-prettyprinters/prettyprinters.exp:
3052 Likewise.
3053 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
3054 * testsuite/lib/libstdc++.exp: Likewise.
3055 (check_v3_target_c_std): Fix filename for temporary source file.
3056
3057 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3058
3059 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for mkdir,
3060 chmod, chdir, and getcwd.
3061 * config.h.in: Regenerate.
3062 * configure: Regenerate.
3063 * src/c++17/fs_ops.cc (create_dir): Use USE_MKDIR macro.
3064 (fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
3065 (fs::permissions): Use USE_CHMOD macro.
3066 * src/filesystem/ops-common.h [FILESYSTEM_IS_WINDOWS]
3067 (chmod, mkdir, getcwd, chdir): Define new macros.
3068 [FILESYSTEM_IS_WINDOWS] (chmod, mkdir, getcwd, chdir): Use
3069 new macros.
3070 * src/filesystem/ops.cc (create_dir): Use USE_MKDIR macro.
3071 (fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
3072 (fs::permissions): Use USE_CHMOD macro.
3073
3074 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3075
3076 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
3077 for avr.
3078 * configure: Regenerate.
3079
3080 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3081
3082 * testsuite/23_containers/unordered_map/operations/1.cc: Add
3083 dg-options for C++20 mode.
3084 * testsuite/23_containers/unordered_multimap/operations/1.cc:
3085 Likewise.
3086 * testsuite/23_containers/unordered_multiset/operations/1.cc:
3087 Likewise.
3088 * testsuite/23_containers/unordered_set/operations/1.cc:
3089 Likewise.
3090 * testsuite/std/time/parse.cc: Move dg-options before dg-do.
3091
3092 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3093
3094 * testsuite/std/ranges/access/cbegin.cc: Adjust for C++23
3095 compatibility.
3096 * testsuite/std/ranges/access/cdata.cc: Likewise.
3097 * testsuite/std/ranges/access/cend.cc: Likewise.
3098 * testsuite/std/ranges/access/crbegin.cc: Likewise.
3099 * testsuite/std/ranges/access/crend.cc: Likewise.
3100 * testsuite/std/ranges/adaptors/take.cc: Likewise.
3101 * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
3102 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3103
3104 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3105
3106 * include/bits/iterator_concepts.h (__imove::iter_move): Define
3107 poison pill as deleted for consistency.
3108 (__access::begin): Replace with a single declaration.
3109 * include/bits/ranges_base.h (__access::end, __access::rbegin)
3110 (__access::rend, __access::size): Likewise.
3111 * include/bits/version.def (ranges): Update value for C++23.
3112 * include/bits/version.h: Regenerate.
3113 * libsupc++/compare (__compare): Add missing poison pill
3114 overloads.
3115 * testsuite/std/ranges/version_c++23.cc: Adjust expected value
3116 of __cpp_lib_ranges.
3117 * testsuite/std/ranges/access/p2602.cc: New test.
3118
3119 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3120
3121 * include/bits/iterator_concepts.h (ranges::__cust_imove):
3122 Rename to ranges::__imove.
3123 (_IMove): Rename to _IterMove.
3124 (ranges::__cust_iswap): Rename to ranges::__iswap.
3125 (ranges::__cust): Rename to ranges::_Cpo.
3126 (ranges::__cust_access): Rename to ranges::__access.
3127 * include/bits/ranges_base.h (ranges::__cust_access): Rename to
3128 ranges::__access.
3129 (ranges::__cust): Rename to ranges::_Cpo.
3130 * include/std/concepts (ranges::__cust_swap): Rename to
3131 ranges::__swap.
3132 (ranges::__cust): Rename to ranges::_Cpo.
3133 * libsupc++/compare (__cmp_cust): Rename to __compare.
3134 (__cmp_algo): Rename to _Cpo.
3135
3136 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3137
3138 * include/bits/version.def (ranges): Update value.
3139 * include/bits/version.h: Regenerate.
3140 * include/std/ranges (__detail::__boxable): Use
3141 move_constructible instead of copy_constructible for C++23.
3142 (__detail::__box<T>): Adjust constraints for partial
3143 specialization.
3144 (single_view, transform_view): Use __box_constructible instead
3145 of copy_constructible in constraints.
3146 (zip_transform_view, adjacent_transform_view, repeat_view): Use
3147 move_constructible instead of copy_constructible in constraints.
3148 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: Check
3149 construction from move-only argument.
3150 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3151 * testsuite/std/ranges/repeat/1.cc: Likewise.
3152 * testsuite/std/ranges/single_view.cc: Likewise.
3153 * testsuite/std/ranges/zip_transform/1.cc: Likewise.
3154 * testsuite/std/ranges/version_c++23.cc: Adjust expected value
3155 of __cpp_lib_ranges.
3156
3157 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3158
3159 * testsuite/util/testsuite_iterators.h (is_customization_point_object):
3160 Remove parameter name.
3161
3162 2023-09-06 Jonathan Wakely <jwakely@redhat.com>
3163
3164 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
3165 for freestanding.
3166 * configure: Regenerate.
3167
3168 2023-09-04 Christophe Lyon <christophe.lyon@linaro.org>
3169
3170 Revert
3171 2023-09-04 Christophe Lyon <christophe.lyon@linaro.org>
3172
3173 PR libstdc++/111238
3174 * configure: Regenerate.
3175 * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross,
3176 non-Canadian builds.
3177
3178 2023-09-04 Christophe Lyon <christophe.lyon@linaro.org>
3179
3180 PR libstdc++/111238
3181 * configure: Regenerate.
3182 * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross,
3183 non-Canadian builds.
3184
3185 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3186
3187 * testsuite/26_numerics/complex/literals/types.cc: Remove
3188 dg-options and add target selector instead.
3189
3190 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3191
3192 * testsuite/tr1/6_containers/utility/pair.cc: Remove dg-options
3193 and qualify ambiguous calls to get.
3194 * testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: Adjust
3195 expected result for std::pow(float, int) as per DR 550.
3196
3197 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3198
3199 * testsuite/20_util/auto_ptr/1.cc: Remove dg-options -std=c++03
3200 and add dg-warning for deprecation warnings.
3201 * testsuite/20_util/auto_ptr/2.cc: Likewise.
3202 * testsuite/20_util/auto_ptr/3.cc: Likewise.
3203 * testsuite/20_util/auto_ptr/3946.cc: Likewise.
3204 * testsuite/20_util/auto_ptr/4.cc: Likewise.
3205 * testsuite/20_util/auto_ptr/5.cc: Likewise.
3206 * testsuite/20_util/auto_ptr/6.cc: Likewise.
3207 * testsuite/20_util/auto_ptr/7.cc: Likewise.
3208 * testsuite/20_util/auto_ptr/assign_neg.cc: Likewise.
3209 * testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc:
3210 Likewise.
3211 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc:
3212 Likewise.
3213 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc:
3214 Likewise.
3215 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc:
3216 Likewise.
3217 * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
3218 Likewise.
3219 * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc:
3220 Likewise.
3221 * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc:
3222 Likewise.
3223
3224 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3225
3226 PR libstdc++/26142
3227 * testsuite/23_containers/vector/26412-1.cc: Moved to...
3228 * testsuite/23_containers/vector/26142-1.cc: ...here.
3229 * testsuite/23_containers/vector/26412-2.cc: Moved to...
3230 * testsuite/23_containers/vector/26142-2.cc: ...here.
3231
3232 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3233
3234 * testsuite/20_util/bitset/107037.cc: Add c++98_only selector.
3235 * testsuite/26_numerics/complex/56111.cc: Likewise.
3236
3237 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3238
3239 * testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc:
3240 Add dg-options to restrict the test to C++98 mode.
3241 * testsuite/23_containers/list/requirements/explicit_instantiation/2.cc:
3242 Likewise.
3243
3244 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3245
3246 * testsuite/20_util/expected/bad.cc: Add missing target
3247 selector.
3248
3249 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3250
3251 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
3252 expected errors.
3253 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
3254 Likewise.
3255
3256 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3257
3258 * testsuite/27_io/filesystem/iterators/91067.cc: Add
3259 -Wno-self-move to options.
3260 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
3261
3262 2023-09-01 Vladimir Palevich <palevichva@gmail.com>
3263
3264 PR libstdc++/110879
3265 * include/bits/vector.tcc (_M_realloc_insert): End guard
3266 lifetime just before assignment to class members.
3267 (_M_default_append): Likewise.
3268
3269 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3270
3271 * src/c++17/fs_ops.cc (fs::absolute) [FILESYSTEM_IS_WINDOWS]:
3272 Use __resize_and_overwrite to fill buffer.
3273 (fs::read_symlink) [HAVE_READLINK]: Likewise.
3274 * src/filesystem/ops-common.h (get_temp_directory_from_env)
3275 [FILESYSTEM_IS_WINDOWS]: Likewise.
3276
3277 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3278
3279 PR libstdc++/111077
3280 * include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
3281 Add _AtomicRef non-type template parameter and use a loop if it
3282 is true.
3283 (__atomic_impl::compare_exchange_weak): Add _AtomicRef NTTP.
3284 (__atomic_impl::compare_exchange_strong): Likewise.
3285 (atomic_ref::compare_exchange_weak): Use true for NTTP.
3286 (atomic_ref::compare_exchange_strong): Use true for NTTP.
3287 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
3288 Fix test to not rely on atomic_ref::load() to return an object
3289 with padding preserved.
3290
3291 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3292
3293 * testsuite/27_io/filesystem/path/108636.cc: Add dg-require for
3294 filesystem support.
3295
3296 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3297
3298 * src/c++20/tzdb.cc (tzdb::current_zone): Check configure macros
3299 for POSIX readlink before using filesystem::read_symlink.
3300
3301 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3302
3303 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Default to yes.
3304 * configure: Regenerate.
3305
3306 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3307
3308 * include/bits/chrono_io.h (_Parser::operator()): Set failbit
3309 early if invalid values are read when _M_need & _TimeOfDay is
3310 non-zero.
3311 * testsuite/std/time/parse.cc: Check that "25:59" cannot be
3312 parsed for "%H:%M".
3313
3314 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3315
3316 PR libstdc++/111162
3317 * include/bits/chrono_io.h (_Parser::Operator()): Check %C
3318 values are in range of year::min() to year::max().
3319 * testsuite/std/time/parse.cc: Check out of range centuries.
3320
3321 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3322
3323 * include/std/format (__format::_Sink::_M_reset): Change second
3324 argument from iterator to offset.
3325
3326 2023-08-24 Paul Dreik <gccpatches@pauldreik.se>
3327
3328 PR libstdc++/111102
3329 * testsuite/std/format/string.cc: Check wide character format
3330 strings with out-of-range widths.
3331
3332 2023-08-24 Paul Dreik <gccpatches@pauldreik.se>
3333
3334 PR libstdc++/111102
3335 * include/std/format (__format::__parse_integer): Check for
3336 non-null pointer.
3337
3338 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3339
3340 * testsuite/std/format/functions/format_to.cc: Avoid warning for
3341 unused variables.
3342
3343 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3344
3345 * include/std/atomic: Add comment to #ifdef and fix indentation.
3346 * include/std/ostream: Check __glibcxx_syncbuf instead of
3347 __cplusplus and _GLIBCXX_HOSTED.
3348 * include/std/thread: Add comment to #ifdef.
3349
3350 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3351
3352 * include/bits/version.def (__cpp_lib_ratio): Define.
3353 * include/bits/version.h: Regenerate.
3354 * include/std/ratio (quecto, ronto, yocto, zepto)
3355 (zetta, yotta, ronna, quetta): Define.
3356 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Adjust
3357 dg-error line numbers.
3358
3359 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3360
3361 * python/libstdcxx/v6/printers.py (StdLocalePrinter): New
3362 printer class.
3363 * testsuite/libstdc++-prettyprinters/locale.cc: New test.
3364
3365 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3366
3367 PR libstdc++/110944
3368 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Do
3369 not show template arguments.
3370 (StdVariantPrinter): Likewise.
3371 * testsuite/libstdc++-prettyprinters/compat.cc: Adjust expected
3372 output.
3373 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
3374 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
3375
3376 2023-08-23 François Dumont <fdumont@gcc.gnu.org>
3377
3378 * testsuite/util/replacement_memory_operators.h
3379 (counter::scope): New, capture and reset counter count at construction and
3380 restore it at destruction.
3381 (counter::check_new): Add scope instantiation.
3382 * testsuite/23_containers/unordered_map/96088.cc (main):
3383 Add counter::scope instantiation.
3384 * testsuite/23_containers/unordered_multimap/96088.cc (main): Likewise.
3385 * testsuite/23_containers/unordered_multiset/96088.cc (main): Likewise.
3386 * testsuite/23_containers/unordered_set/96088.cc (main): Likewise.
3387 * testsuite/ext/malloc_allocator/deallocate_local.cc (main): Likewise.
3388 * testsuite/ext/new_allocator/deallocate_local.cc (main): Likewise.
3389 * testsuite/ext/throw_allocator/deallocate_local.cc (main): Likewise.
3390 * testsuite/ext/pool_allocator/allocate_chunk.cc (started): New global.
3391 (operator new(size_t)): Check started.
3392 (main): Set/Unset started.
3393 * testsuite/17_intro/no_library_allocation.cc: New test case.
3394
3395 2023-08-21 Jonathan Wakely <jwakely@redhat.com>
3396
3397 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
3398 Call std::set_terminate before throwing the nested exception.
3399
3400 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
3401
3402 PR target/111060
3403 * include/std/format (formatter): Only define specializations
3404 for 16-bit floating-point types for C++23.
3405 * include/std/limits (numeric_limits): Likewise.
3406
3407 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
3408
3409 * include/bits/chrono_io.h (operator<<): Make uses of wide
3410 strings with streams and std::format type-dependent on _CharT.
3411 * include/std/format [!_GLIBCXX_USE_WCHAR_T] Do not use
3412 __to_wstring_numeric.
3413
3414 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
3415
3416 * include/bits/chrono_io.h (operator<<): Use __format_context.
3417 * include/std/format (__format::__format_context): New alias
3418 template.
3419 [!_GLIBCXX_USE_WCHAR_T] (wformat_args, make_wformat_arg):
3420 Disable.
3421
3422 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3423
3424 Revert:
3425 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3426
3427 * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
3428 double overload for long double if possible.
3429
3430 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3431
3432 * src/c++20/tzdb.cc (tzdata_file, leaps_file): Change type to
3433 std::string_view.
3434
3435 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3436
3437 * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
3438 double overload for long double if possible.
3439
3440 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3441
3442 * src/c++98/localename.cc (is_C_locale): New function.
3443 (locale::locale(const char*)): Use is_C_locale.
3444
3445 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3446
3447 PR libstdc++/110945
3448 * include/bits/basic_string.h (basic_string::assign(Iter, Iter)):
3449 Dispatch to _M_replace or move assignment from a temporary,
3450 based on the iterator type.
3451
3452 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3453
3454 * include/std/format (formatter): Add partial specializations
3455 for extended floating-point types.
3456 * testsuite/std/format/functions/format.cc: Move test_float128()
3457 to ...
3458 * testsuite/std/format/formatter/ext_float.cc: New test.
3459
3460 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3461
3462 * include/bits/c++config (__gnu_cxx::__bfloat16_t): Define
3463 whenever __BFLT16_DIG__ is defined, not only for C++23.
3464 * include/std/limits (numeric_limits<bfloat16_t>): Likewise.
3465 (numeric_limits<_Float16>, numeric_limits<_Float32>)
3466 (numeric_limits<_Float64>): Likewise for other extended
3467 floating-point types.
3468
3469 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3470
3471 * include/experimental/internet (address_v4::to_string): Remove
3472 unused parameter name.
3473
3474 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3475
3476 * libsupc++/compare (__cmp_cat::__unseq): Make ctor consteval.
3477 * testsuite/18_support/comparisons/categories/zero_neg.cc: Prune
3478 excess errors caused by invalid consteval calls.
3479
3480 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3481
3482 * include/bits/chrono_io.h (__units_suffix_misc): Remove.
3483 (__units_suffix): Return a known suffix as string view, do not
3484 write unknown suffixes to a buffer.
3485 (__fmt_units_suffix): New function that formats the suffix using
3486 std::format_to.
3487 (operator<<, __chrono_formatter::_M_q): Use __fmt_units_suffix.
3488 (__chrono_formatter::_M_Z): Correct lifetime of wstring.
3489
3490 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3491
3492 * include/std/format [_GLIBCXX_USE_WCHAR_T]: Guard all wide
3493 string formatters with this macro.
3494 (__formatter_int::_M_format_int, __formatter_fp::format)
3495 (formatter<const void*, C>::format): Use __to_wstring_numeric
3496 instead of std::ctype::widen.
3497 (__formatter_fp::_M_localize): Use hardcoded wchar_t values
3498 instead of std::ctype::widen.
3499 * testsuite/std/format/functions/format.cc: Add more checks for
3500 wstring formatting of arithmetic types.
3501
3502 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3503
3504 * include/bits/basic_string.h (to_string(floating-point-type)):
3505 Implement using std::to_chars for C++26.
3506 * include/bits/version.def (__cpp_lib_to_string): Define.
3507 * include/bits/version.h: Regenerate.
3508 * testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
3509 Adjust expected result in C++26 mode.
3510 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string.cc:
3511 Likewise.
3512 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc:
3513 Likewise.
3514 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc:
3515 Likewise.
3516 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc:
3517 New test.
3518 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring_float.cc:
3519 New test.
3520 * testsuite/21_strings/basic_string/numeric_conversions/version.cc:
3521 New test.
3522
3523 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3524
3525 * include/bits/basic_string.h (to_string(integral-type)): Use
3526 resize_and_overwrite when available.
3527 (__to_wstring_numeric): New helper functions.
3528 (to_wstring): Use std::to_string then __to_wstring_numeric.
3529 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_int.cc:
3530 Remove check for no excess capacity.
3531
3532 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3533
3534 * include/bits/basic_string.h (__resize_and_overwrite): New
3535 function.
3536 * include/bits/basic_string.tcc (__resize_and_overwrite): New
3537 function.
3538 (resize_and_overwrite): Simplify by using reserve instead of
3539 growing the string manually. Adjust for C++11 compatibility.
3540 * include/bits/cow_string.h (resize_and_overwrite): New
3541 function.
3542 (__resize_and_overwrite): New function.
3543 * include/bits/version.def (__cpp_lib_string_resize_and_overwrite):
3544 Do not depend on cxx11abi.
3545 * include/bits/version.h: Regenerate.
3546 * include/std/format (__formatter_fp::_S_resize_and_overwrite):
3547 Remove.
3548 (__formatter_fp::format, __formatter_fp::_M_localize): Use
3549 __resize_and_overwrite instead of _S_resize_and_overwrite.
3550 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
3551 Adjust for C++11 compatibility when included by ...
3552 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite_ext.cc:
3553 New test.
3554
3555 2023-08-17 Patrick Palka <ppalka@redhat.com>
3556
3557 * include/bits/regex.h (regex_iterator::iterator_concept):
3558 Define for C++20 as per P2770R0.
3559 (regex_token_iterator::iterator_concept): Likewise.
3560 * include/std/ranges (__detail::__as_lvalue): Define.
3561 (join_view::_Iterator): Befriend join_view.
3562 (join_view::_Iterator::_M_satisfy): Use _M_get_outer
3563 instead of _M_outer.
3564 (join_view::_Iterator::_M_get_outer): Define.
3565 (join_view::_Iterator::_Iterator): Split constructor taking
3566 _Parent argument into two as per P2770R0. Remove constraint on
3567 default constructor.
3568 (join_view::_Iterator::_M_outer): Make this data member present
3569 only when the underlying range is forward.
3570 (join_view::_Iterator::operator++): Use _M_get_outer instead of
3571 _M_outer.
3572 (join_view::_Iterator::operator--): Use __as_lvalue helper.
3573 (join_view::_Iterator::operator==): Adjust constraints as per
3574 P2770R0.
3575 (join_view::_Sentinel::__equal): Use _M_get_outer instead of
3576 _M_outer.
3577 (join_view::_M_outer): New data member when the underlying range
3578 is non-forward.
3579 (join_view::begin): Adjust definition as per P2770R0.
3580 (join_view::end): Likewise.
3581 (join_with_view::_M_outer_it): New data member when the
3582 underlying range is non-forward.
3583 (join_with_view::begin): Adjust definition as per P2770R0.
3584 (join_with_view::end): Likewise.
3585 (join_with_view::_Iterator::_M_outer_it): Make this data member
3586 present only when the underlying range is forward.
3587 (join_with_view::_Iterator::_M_get_outer): Define.
3588 (join_with_view::_Iterator::_Iterator): Split constructor
3589 taking _Parent argument into two as per P2770R0. Remove
3590 constraint on default constructor.
3591 (join_with_view::_Iterator::_M_update_inner): Adjust definition
3592 as per P2770R0.
3593 (join_with_view::_Iterator::_M_get_inner): Likewise.
3594 (join_with_view::_Iterator::_M_satisfy): Adjust calls to
3595 _M_get_inner. Use _M_get_outer instead of _M_outer_it.
3596 (join_with_view::_Iterator::operator==): Adjust constraints
3597 as per P2770R0.
3598 (join_with_view::_Sentinel::operator==): Use _M_get_outer
3599 instead of _M_outer_it.
3600 * testsuite/std/ranges/adaptors/p2770r0.cc: New test.
3601
3602 2023-08-17 Patrick Palka <ppalka@redhat.com>
3603
3604 PR libstdc++/108827
3605 * include/std/ranges (__adaptor::_RangeAdaptorClosure):
3606 Convert into a CRTP class template. Move hidden operator|
3607 friends into namespace scope and adjust their constraints.
3608 (__closure::__is_range_adaptor_closure_fn): Define.
3609 (__closure::__is_range_adaptor_closure): Define.
3610 (__adaptor::_Partial): Adjust use of _RangeAdaptorClosure.
3611 (__adaptor::_Pipe): Likewise.
3612 (views::_All): Likewise.
3613 (views::_Join): Likewise.
3614 (views::_Common): Likewise.
3615 (views::_Reverse): Likewise.
3616 (views::_Elements): Likewise.
3617 (views::_Adjacent): Likewise.
3618 (views::_AsRvalue): Likewise.
3619 (views::_Enumerate): Likewise.
3620 (views::_AsConst): Likewise.
3621 * testsuite/std/ranges/adaptors/all.cc: Reinstate assertion
3622 expecting that adding empty range adaptor closure objects to a
3623 pipeline doesn't increase the size of a pipeline.
3624
3625 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3626
3627 * include/std/format (__format::_Pres_type): Add _Pres_F.
3628 (__formatter_fp::parse): Use _Pres_F for 'F'.
3629 (__formatter_fp::format): Set __upper for _Pres_F.
3630 * testsuite/std/format/functions/format.cc: Check formatting of
3631 infinity and NaN for each presentation type.
3632
3633 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3634
3635 * include/Makefile.in: Regenerate.
3636
3637 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3638
3639 * testsuite/24_iterators/move_iterator/p2520r0.cc: Add no_pch.
3640 * testsuite/std/format/functions/format.cc: Likewise.
3641 * testsuite/std/format/functions/format_c++23.cc: Likewise.
3642
3643 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3644
3645 * testsuite/lib/dg-options.exp (add_options_for_no_pch): Remove
3646 any "-include bits/stdc++.h" from options and add the macro to
3647 the existing options instead of replacing them.
3648
3649 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
3650
3651 * include/bits/basic_string.tcc (resize_and_overwrite): Invoke
3652 the callable with the same size as resize_and_overwrite was
3653 called with.
3654 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
3655 Check with small values for the new size.
3656 * testsuite/std/format/functions/format.cc: Check wide
3657 formatting of double values that produce small strings.
3658 * testsuite/std/format/functions/format_c++23.cc: New test.
3659
3660 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
3661
3662 * include/bits/version.def (stds): Update value for C++23.
3663 * include/bits/version.h: Regenerate.
3664
3665 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
3666
3667 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
3668 Fix name of upstream file this was derived from.
3669 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
3670 Likewise.
3671 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
3672 Likewise.
3673 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
3674 Likewise.
3675 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h: Likewise.
3676
3677 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
3678
3679 * libsupc++/typeinfo: Switch to bits/version.h for
3680 __cpp_lib_constexpr_typeinfo.
3681 * libsupc++/new: Switch to bits/version.h for
3682 __cpp_lib_{launder,hardware_interference_size,destroying_delete}.
3683 (launder): Guard behind __cpp_lib_launder.
3684 (hardware_destructive_interference_size)
3685 (hardware_constructive_interference_size): Guard behind
3686 __cpp_lib_hardware_interference_size.
3687 * libsupc++/exception: Switch to bits/version.h for
3688 __cpp_lib_uncaught_exceptions.
3689 (uncaught_exceptions): Guard behind __cpp_lib_uncaught_exceptions.
3690 * libsupc++/compare: Switch to bits/version.h for
3691 __cpp_lib_three_way_comparison.
3692 (three_way_comparable, three_way_comparable_with)
3693 (compare_three_way, weak_order, strong_order, partial_order):
3694 Guard behind __cpp_lib_three_way_comparison >= 201907L.
3695 * include/std/chrono: Drop __cpp_lib_chrono definition.
3696 * include/std/vector: Switch to bits/version.h for
3697 __cpp_lib_erase_if.
3698 (erase, erase_if): Guard behind __cpp_lib_erase_if.
3699 * include/std/variant: Switch to bits/version.h for
3700 __cpp_lib_variant. Guard whole header behind that FTM.
3701 * include/std/utility: Switch to bits/version.h for
3702 __cpp_lib_{exchange_function,constexpr_algorithms,as_const},
3703 __cpp_lib_{integer_comparison_functions,to_underlying}, and
3704 __cpp_lib_unreachable.
3705 (exchange): Guard behind __cpp_lib_exchange_function.
3706 (cmp_equal, cmp_not_equal, cmp_less, cmp_greater, cmp_less_equal)
3707 (cmp_greater_equal, in_range): Guard behind
3708 __cpp_lib_integer_comparison_functions.
3709 (to_underlying): Guard behind __cpp_lib_to_underlying.
3710 (unreachable): Guard behind __cpp_lib_unreachable.
3711 * include/std/type_traits: Switch to bits/version.h for
3712 __cpp_lib_is_{null_pointer,final,nothrow_convertible,aggregate},
3713 __cpp_lib_is_{constant_evaluated,invocable,layout_compatible},
3714 __cpp_lib_is_{pointer_interconvertible,scoped_enum,swappable},
3715 __cpp_lib_{logical_traits,reference_from_temporary,remove_cvref},
3716 __cpp_lib_{result_of_sfinae,transformation_trait_aliases},
3717 __cpp_lib_{type_identity,type_trait_variable_templates},
3718 __cpp_lib_{unwrap_ref,void_t,integral_constant_callable},
3719 __cpp_lib_{bool_constant,bounded_array_traits}, and
3720 __cpp_lib_has_unique_object_representations.
3721 (integral_constant::operator()): Guard behind
3722 __cpp_lib_integral_constant_callable.
3723 (bool_constant): Guard behind __cpp_lib_bool_constant.
3724 (conjunction, disjunction, negation, conjunction_v, disjunction_v)
3725 (negation_v): Guard behind __cpp_lib_logical_traits.
3726 (is_null_pointer): Guard behind __cpp_lib_is_null_pointer.
3727 (is_final): Guard behind __cpp_lib_is_final.
3728 (is_nothrow_convertible, is_nothrow_convertible_v): Guard behind
3729 __cpp_lib_is_nothrow_convertible.
3730 (remove_const_t, remove_volatile_t, remove_cv_t)
3731 (add_const_t, add_volatile_t, add_cv_t): Guard behind
3732 __cpp_lib_transformation_trait_aliases.
3733 (void_t): Guard behind __cpp_lib_void_t.
3734 (is_swappable_with_v, is_nothrow_swappable_with_v)
3735 (is_swappable_with, is_nothrow_swappable_with): Guard behind
3736 __cpp_lib_is_swappable.
3737 (is_nothrow_invocable_r, is_invocable_r, invoke_result)
3738 (is_invocable, invoke_result_t): Guard behind
3739 __cpp_lib_is_invocable.
3740 (alignment_of_v, extent_v, has_virtual_destructor_v)
3741 (is_abstract_v, is_arithmetic_v, is_array_v)
3742 (is_assignable_v, is_base_of_v, is_class_v, is_compound_v)
3743 (is_constructible_v, is_const_v, is_convertible_v)
3744 (is_copy_assignable_v, is_copy_constructible_v)
3745 (is_default_constructible_v, is_destructible_v)
3746 (is_empty_v, is_enum_v, is_final_v, is_floating_point_v)
3747 (is_function_v, is_fundamental_v, is_integral_v)
3748 (is_invocable_r_v, is_invocable_v, is_literal_type_v)
3749 (is_lvalue_reference_v, is_member_function_pointer_v)
3750 (is_member_object_pointer_v, is_member_pointer_v)
3751 (is_move_assignable_v, is_move_constructible_v)
3752 (is_nothrow_assignable_v, is_nothrow_constructible_v)
3753 (is_nothrow_copy_assignable_v, is_nothrow_copy_constructible_v)
3754 (is_nothrow_default_constructible_v, is_nothrow_destructible_v)
3755 (is_nothrow_invocable_r_v, is_nothrow_invocable_v)
3756 (is_nothrow_move_assignable_v, is_nothrow_move_constructible_v)
3757 (is_null_pointer_v, is_object_v, is_pod_v, is_pointer_v)
3758 (is_polymorphic_v, is_reference_v, is_rvalue_reference_v)
3759 (is_same_v, is_scalar_v, is_signed_v, is_standard_layout_v)
3760 (is_trivially_assignable_v, is_trivially_constructible_v)
3761 (is_trivially_copyable_v, is_trivially_copy_assignable_v)
3762 (is_trivially_copy_constructible_v)
3763 (is_trivially_default_constructible_v)
3764 (is_trivially_destructible_v, is_trivially_move_assignable_v)
3765 (is_trivially_move_constructible_v, is_trivial_v, is_union_v)
3766 (is_unsigned_v, is_void_v, is_volatile_v, rank_v, as variadic):
3767 Guard behind __cpp_lib_type_trait_variable_templates.
3768 (has_unique_object_representations)
3769 (has_unique_object_representations_v): Guard behind
3770 __cpp_lib_has_unique_object_representation.
3771 (is_aggregate): Guard behind __cpp_lib_is_aggregate.
3772 (remove_cvref, remove_cvref_t): Guard behind
3773 __cpp_lib_remove_cvref.
3774 (type_identity, type_identity_t): Guard behind
3775 __cpp_lib_type_identity.
3776 (unwrap_reference, unwrap_reference_t, unwrap_ref_decay)
3777 (unwrap_ref_decay_t): Guard behind __cpp_lib_unwrap_ref.
3778 (is_bounded_array_v, is_unbounded_array_v, is_bounded_array)
3779 (is_unbounded_array): Guard behind __cpp_lib_bounded_array_traits.
3780 (is_scoped_enum, is_scoped_enum_v): Guard behind
3781 __cpp_lib_is_scoped_enum.
3782 (reference_constructs_from_temporary)
3783 (reference_constructs_from_temporary_v): Guard behind
3784 __cpp_lib_reference_from_temporary.
3785 * include/std/tuple: Switch to bits/version.h for
3786 __cpp_lib_{constexpr_tuple,tuple_by_type,apply_make_from_tuple}.
3787 (get<T>): Guard behind __cpp_lib_tuple_by_type.
3788 (apply): Guard behind __cpp_lib_apply.
3789 (make_from_tuple): Guard behind __cpp_lib_make_from_tuple.
3790 * include/std/syncstream: Switch to bits/version.h for
3791 __cpp_lib_syncbuf. Guard header behind that FTM.
3792 * include/std/string_view: Switch to bits/version.h for
3793 __cpp_lib_{string_{view,contains},constexpr_string_view} and
3794 __cpp_lib_starts_ends_with.
3795 (basic_string_view::starts_with, basic_string_view::ends_with):
3796 Guard behind __cpp_lib_starts_ends_with.
3797 [C++23 && _GLIBCXX_HOSTED && !defined(__cpp_lib_string_contains)]:
3798 Assert as impossible ithout a bug in C++23.
3799 * include/std/string: Switch to bits/version.h for
3800 __cpp_lib_erase_if.
3801 (erase, erase_if): Guard behind __cpp_lib_erase_if.
3802 * include/std/thread: Switch to bits/version.h for
3803 __cpp_lib_jthread.
3804 * include/std/stop_token: Switch to bits/version.h for
3805 __cpp_lib_jthread.
3806 * include/std/spanstream: Switch to bits/version.h for
3807 __cpp_lib_spanstream. Guard header behind that FTM.
3808 * include/std/span: Switch to bits/version.h for __cpp_lib_span.
3809 Guard header behind that FTM.
3810 * include/std/source_location: Switch to bits/version.h for
3811 __cpp_lib_source_location. Guard header with that FTM.
3812 * include/std/shared_mutex: Switch to bits/version.h for
3813 __cpp_lib_shared{,_timed}_mutex.
3814 (shared_mutex): Guard behind __cpp_lib_shared_mutex.
3815 * include/std/semaphore: Switch to bits/version.h for
3816 __cpp_lib_semaphore. Guard header behind that FTM.
3817 * include/std/ranges: Switch to bits/version.h for
3818 __cpp_lib_ranges_{zip,chunk{,_by},slide,join_with},
3819 __cpp_lib_ranges_{repeat_stride,cartesian_product,as_rvalue},
3820 and __cpp_lib_ranges_{as_const,enumerate,iota}.
3821 (ranges::zip et al, ranges::chunk et al, ranges::slide et al)
3822 (ranges::chunk_by et al, ranges::join_with et al)
3823 (ranges::stride et al, ranges::cartesian_product et al)
3824 (ranges::as_rvalue et al, ranges::as_const et al)
3825 (ranges::enumerate et al): Guard behind appropriate FTM.
3826 * include/std/optional: Switch to bits/version.h for
3827 __cpp_lib_optional. Guard header behind that FTM.
3828 * include/std/numeric: Switch to bits/version.h for
3829 __cpp_lib_{gcd{,_lcm},lcm,constexpr_numeric,interpolate}
3830 and __cpp_lib_parallel_algorithm.
3831 (gcd, lcm): Guard behind __cpp_lib_gcd_lcm.
3832 (midpoint): Guard behind __cpp_lib_interpolate.
3833 * include/std/numbers: Switch to bits/version.h for
3834 __cpp_lib_math_constants. Guard header behind that FTM.
3835 * include/std/mutex: Switch to bits/version.h for
3836 __cpp_lib_scoped_lock.
3837 (scoped_Lock): Guard behind __cpp_lib_scoped_lock.
3838 * include/std/memory_resource: Switch to bits/version.h for
3839 __cpp_lib_{polymorphic_allocator,memory_resource}.
3840 (synchronized_pool_resource): Guard behind
3841 __cpp_lib_memory_resource >= 201603L.
3842 (polymorphic_allocator): Guard behind
3843 __cpp_lib_polymorphic_allocator.
3844 * include/std/memory: Switch to bits/version.h for
3845 __cpp_lib_{parallel_algorithm,atomic_value_initialization}.
3846 * include/std/list: Switch to bits/version.h for
3847 __cpp_lib_erase_if.
3848 (erase, erase_if): Guard behind __cpp_lib_erase_if.
3849 * include/std/latch: Switch to bits/version.h for __cpp_lib_latch.
3850 Guard header behind that FTM.
3851 * include/std/iterator: Switch to bits/version.h for
3852 __cpp_lib_null_iterators.
3853 * include/std/iomanip: Switch to bits/version.h for
3854 __cpp_lib_quoted_string_io.
3855 (quoted): Guard behind __cpp_lib_quoted_string_io.
3856 * include/std/functional: Switch to bits/version.h for
3857 __cpp_lib_{invoke{,_r},constexpr_functional,bind_front} and
3858 __cpp_lib_{not_fn,booyer_moore_searcher}.
3859 (invoke): Guard behind __cpp_lib_invoke.
3860 (invoke_r): Guard behind __cpp_lib_invoke_r.
3861 (bind_front): Guard behind __cpp_lib_bind_front.
3862 (not_fn): Guard behind __cpp_lib_not_fn.
3863 (boyer_moore_searcher, boyer_moore_horspool_searcher): Guard
3864 definition behind __cpp_lib_boyer_moore_searcher.
3865 * include/std/forward_list: Switch to bits/version.h for
3866 __cpp_lib_erase_if.
3867 (erase, erase_if): Guard behind __cpp_lib_erase_if.
3868 * include/std/format: Switch to bits/version.h for
3869 __cpp_lib_format. Guard header behind that FTM.
3870 * include/std/filesystem: Switch to bits/version.h for
3871 __cpp_lib_filesystem. Guard header behind that FTM.
3872 * include/std/expected: Switch to bits/version.h for
3873 __cpp_lib_expected. Guard header behind it.
3874 * include/std/execution: Switch to bits/version.h for
3875 __cpp_lib_{execution,parallel_algorithm}. Guard header behind
3876 either.
3877 * include/std/deque: Switch to bits/version.h for
3878 __cpp_lib_erase_if.
3879 (erase, erase_if): Guard behind __cpp_lib_erase_if.
3880 * include/std/coroutine: Switch to bits/version.h for
3881 __cpp_lib_coroutine. Guard header behind that FTM.
3882 * include/std/concepts: Switch to bits/version.h for
3883 __cpp_lib_concepts. Guard header behind that FTM.
3884 * include/std/complex: Switch to bits/version.h for
3885 __cpp_lib_{complex_udls,constexpr_complex}.
3886 (operator""if, operator""i, operator""il): Guard behind
3887 __cpp_lib_complex_udls.
3888 * include/std/charconv: Swtich to bits/version.h for
3889 __cpp_lib_{to_chars,constexpr_charconv}.
3890 * include/std/bitset: Switch to bits/version.h for
3891 __cpp_lib_constexpr_bitset.
3892 * include/std/bit: Switch to bits/version.h for
3893 __cpp_lib_{bit_cast,byteswap,bitops,int_pow2,endian}.
3894 (bit_cast): Guard behind __cpp_lib_bit_cast.
3895 (byteswap): Guard behind __cpp_lib_byteswap.
3896 (rotl, rotr, countl_zero, countl_one, countr_zero, countr_one)
3897 (popcount): Guard behind __cpp_lib_bitops.
3898 (has_single_bit, bit_ceil, bit_floor, bit_width): Guard behind
3899 __cpp_lib_int_pow2.
3900 (endian): Guard behind __cpp_lib_endian.
3901 * include/std/barrier: Switch to bits/version.h for
3902 __cpp_lib_barrier. Guard header behind that FTM.
3903 * include/std/atomic: Switch to bits/version.h for
3904 __cpp_lib_atomic_{is_always_lock_free,float,ref}
3905 and __cpp_lib_lock_free_type_aliases.
3906 (*::is_always_lock_free): Guard behind
3907 __cpp_lib_atomic_is_always_lock_free.
3908 (atomic<float>): Guard behind __cpp_lib_atomic_float.
3909 (atomic_ref): Guard behind __cpp_lib_atomic_ref.
3910 (atomic_signed_lock_free, atomic_unsigned_lock_free): Guard behind
3911 __cpp_lib_atomic_lock_free_type_aliases.
3912 * include/std/array: Switch to bits/version.h for
3913 __cpp_lib_to_array.
3914 (to_array): Guard behind __cpp_lib_to_array.
3915 * include/std/any: Switch to bits/version.h for __cpp_lib_any.
3916 Guard header behind that FTM.
3917 * include/std/algorithm: Switch to bits/version.h for
3918 __cpp_lib_parallel_algorithm.
3919 * include/c_global/cstddef: Switch to bits/version.h for
3920 __cpp_lib_byte.
3921 (byte): Guard behind __cpp_lib_byte.
3922 * include/c_global/cmath: Switch to bits/version.h for
3923 __cpp_lib_{hypot,interpolate}.
3924 (hypot3): Guard behind __cpp_lib_hypot.
3925 (lerp): Guard behind __cpp_lib_interpolate.
3926 * include/c_compatibility/stdatomic.h: Switch to
3927 bits/stl_version.h for __cpp_lib_atomic. Guard header behind that
3928 FTM.
3929 * include/bits/utility.h: Switch to bits/version.h for
3930 __cpp_lib_{tuple_element_t,integer_sequence,ranges_zip}.
3931 (tuple_element_t): Guard behind __cpp_lib_tuple_element_t.
3932 (integer_sequence et al): Guard behind __cpp_lib_integer_sequence.
3933 * include/bits/uses_allocator_args.h: Switch to bits/version.h for
3934 __cpp_lib_make_obj_using_allocator. Guard header behind that FTM.
3935 * include/bits/unordered_map.h: Switch to bits/version.h for
3936 __cpp_lib_unordered_map_try_emplace.
3937 (try_emplace): Guard behind __cpp_lib_unordered_map_try_emplace.
3938 * include/bits/unique_ptr.h: Switch to bits/version.h for
3939 __cpp_lib_{constexpr_memory,make_unique}.
3940 (make_unique): Guard behind __cpp_lib_make_unique.
3941 * include/bits/stl_vector.h: Switch to bits/version.h for
3942 __cpp_lib_constexpr_vector.
3943 * include/bits/stl_uninitialized.h: Switch to bits/version.h for
3944 __cpp_lib_raw_memory_algorithms.
3945 (uninitialized_default_construct)
3946 (uninitialized_default_construct_n, uninitialized_move)
3947 (uninitialized_move_n, uninitialized_value_construct)
3948 (uninitialized_value_construct_n): Guard behind
3949 __cpp_lib_raw_memory_algorithms.
3950 * include/bits/stl_tree.h: Switch to bits/version.h for
3951 __cpp_lib_generic_associative_lookup.
3952 * include/bits/stl_stack.h: Switch to bits/version.h for
3953 __cpp_lib_adaptor_iterator_pair_constructor.
3954 (stack): Guard iterator-pair constructor behind
3955 __cpp_lib_adaptor_iterator_pair_constructor.
3956 * include/bits/stl_queue.h: Switch to bits/version.h for
3957 __cpp_lib_adaptor_iterator_pair_constructor.
3958 (queue): Guard iterator-pair constructor behind
3959 __cpp_lib_adaptor_iterator_pair_constructor.
3960 * include/bits/stl_pair.h: Switch to bits/version.h for
3961 __cpp_lib_{concepts,tuples_by_type}.
3962 (get): Guard type-getting overloads behind
3963 __cpp_lib_tuples_by_type.
3964 * include/bits/stl_map.h: Switch to bits/version.h for
3965 __cpp_lib_map_try_emplace.
3966 (map<>::try_emplace): Guard behind __cpp_lib_map_try_emplace.
3967 * include/bits/stl_list.h: Switch to bits/version.h for
3968 __cpp_lib_list_remove_return_type.
3969 (__remove_return_type, _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG)
3970 [C++20]: guard behind __cpp_lib_list_remove_return_type instead.
3971 * include/bits/stl_iterator.h: Switch to bits/version.h for
3972 __cpp_lib_{constexpr_iterator,array_constexpr} and
3973 __cpp_lib_{make_reverse_iterator,move_iterator_concept}.
3974 (make_reverse_iterator): Guard behind
3975 __cpp_lib_make_reverse_iterator.
3976 (iterator_concept et al): Guard __cpp_lib_move_iterator_concept
3977 changes behind that FTM.
3978 * include/bits/stl_function.h: Switch to bits/version.h for
3979 __cpp_lib_transparent_operators.
3980 (equal_to, not_equal_to, greater, less, greater_equal)
3981 (less_equal, bit_and, bit_or, bit_xor, bit_not, logical_and)
3982 (logical_or, logical_not, plus, minus, multiplies, divides)
3983 (modulus, negate): Guard '= void' fwdecls behind
3984 __cpp_lib_transparent_operators.
3985 (plus<void>, minus<void>, multiplies<void>, divides<void>)
3986 (modulus<void>, negate<void>, logical_and<void>, logical_or<void>)
3987 (logical_not<void>, bit_and<void>, bit_or<void>, bit_xor<void>)
3988 (equal_to<void>, not_equal_to<void>, greater<void>, less<void>)
3989 (greater_equal<void>, less_equal<void>, bit_not<void>)
3990 (__has_is_transparent): Guard behind
3991 __cpp_lib_transparent_operators.
3992 * include/bits/stl_algobase.h: Switch to bits/version.h for
3993 __cpp_lib_robust_nonmodifying_seq_ops.
3994 (robust equal, mismatch): Guard behind
3995 __cpp_lib_nonmember_container_access.
3996 * include/bits/stl_algo.h: Swtich to bits/version.h for
3997 __cpp_lib_{clamp,sample}.
3998 (clamp): Guard behind __cpp_lib_clamp.
3999 (sample): Guard behind __cpp_lib_sample.
4000 * include/bits/specfun.h: Switch to bits/version.h for
4001 __cpp_lib_math_special_functions and __STDCPP_MATH_SPEC_FUNCS__.
4002 * include/bits/shared_ptr_base.h: Switch to bits/version.h for
4003 __cpp_lib_{smart_ptr_for_overwrite,shared_ptr_arrays}.
4004 (_Sp_overwrite_tag): Guard behind
4005 __cpp_lib_smart_ptr_for_overwrite.
4006 * include/bits/shared_ptr_atomic.h: Switch to bits/version.h for
4007 __cpp_lib_atomic_shared_ptr.
4008 * include/bits/shared_ptr.h: Switch to bits/version.h for
4009 __cpp_lib_{enable_shared_from_this,shared_ptr_weak_type}.
4010 (shared_ptr<T>::weak_type): Guard behind
4011 __cpp_lib_shared_ptr_weak_type.
4012 (enable_shared_from_this<T>::weak_from_this): Guard behind
4013 __cpp_lib_enable_shared_from_this.
4014 * include/bits/ranges_cmp.h: Switch to bits/version.h for
4015 __cpp_lib_ranges.
4016 * include/bits/ranges_algo.h: Switch to bits/version.h for
4017 __cpp_lib_{shift,ranges_{contains,find_last,fold,iota}}.
4018 * include/bits/range_access.h: Switch to bits/version.h for
4019 __cpp_lib_nonmember_container_access
4020 (size, empty, data): Guard behind
4021 __cpp_lib_nonmember_container_access.
4022 (ssize): Guard behind __cpp_lib_ssize.
4023 * include/bits/ptr_traits.h: Switch to bits/version.h. for
4024 __cpp_lib_{constexpr_memory,to_address}.
4025 (to_address): Guard behind __cpp_lib_to_address.
4026 * include/bits/node_handle.h: Switch to bits/version.h for
4027 __cpp_lib_node_extract. Guard header behind that FTM.
4028 * include/bits/move_only_function.h: Switch to bits/version.h for
4029 __cpp_lib_move_only_function. Guard header behind that FTM.
4030 * include/bits/move.h: Switch to bits/version.h for
4031 __cpp_lib_addressof_constexpr.
4032 * include/bits/ios_base.h: Switch to bits/version.h for
4033 __cpp_lib_ios_noreplace.
4034 (noreplace): Guard with __cpp_lib_ios_noreplace.
4035 * include/bits/hashtable.h: Switch to bits/version.h for
4036 __cpp_lib_generic_unordered_lookup.
4037 (_M_equal_range_tr, _M_count_tr, _M_find_tr): Guard behind
4038 __cpp_lib_generic_unordered_lookup.
4039 * include/bits/forward_list.h: Switch to bits/version.h for
4040 __cpp_lib_list_remove_return_type.
4041 (__remove_return_type): Guard behind
4042 __cpp_lib_list_remove_return_type.
4043 * include/bits/erase_if.h: Switch to bits/version.h for
4044 __cpp_lib_erase_if.
4045 * include/bits/cow_string.h: Switch to bits/version.h for
4046 __cpp_lib_constexpr_string.
4047 * include/bits/chrono.h: Swtich to bits/version.h for
4048 __cpp_lib_chrono{,_udls}.
4049 (ceil): Guard behind __cpp_lib_chrono.
4050 (operator""ns et al): Guard behind __cpp_lib_chrono_udls.
4051 * include/bits/char_traits.h: Switch to bits/version.h for
4052 __cpp_lib_constexpr_char_traits.
4053 * include/bits/basic_string.h: Switch to bits/version.h for
4054 __cpp_lib_{constexpr_string,string_{resize_and_overwrite,udls}}.
4055 (resize_and_overwrite): Guard behind
4056 __cpp_lib_string_resize_and_overwrite.
4057 (operator""s): Guard behind __cpp_lib_string_udls.
4058 * include/bits/atomic_wait.h: Switch to bits/version.h for
4059 __cpp_lib_atomic_wait. Guard header behind that FTM.
4060 * include/bits/atomic_base.h: Switch to bits/version.h for
4061 __cpp_lib_atomic_value_initialization and
4062 __cpp_lib_atomic_flag_test.
4063 (atomic_flag::test): Guard behind __cpp_lib_atomic_flag_test,
4064 rather than C++20.
4065 * include/bits/allocator.h: Switch to bits/version.h for
4066 __cpp_lib_incomplete_container_elements.
4067 * include/bits/alloc_traits.h: Switch to using bits/version.h for
4068 __cpp_lib_constexpr_dynamic_alloc and
4069 __cpp_lib_allocator_traits_is_always_equal.
4070 * include/bits/align.h: Switch to bits/version.h for defining
4071 __cpp_lib_assume_aligned.
4072 (assume_aligned): Guard with __cpp_lib_assume_aligned.
4073 * include/bits/algorithmfwd.h: Switch to bits/version.h for
4074 defining __cpp_lib_constexpr_algorithms.
4075 * include/std/stacktrace: Switch to bits/version.h for
4076 __cpp_lib_stacktrace. Guard header behind that FTM.
4077 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
4078 Update line numbers.
4079
4080 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
4081
4082 * include/Makefile.am (bits_freestanding): Add version.h.
4083 (allcreated): Add version.h.
4084 (${bits_srcdir}/version.h): New rule. Regenerates
4085 version.h out of version.{def,tpl}.
4086 * include/Makefile.in: Regenerate.
4087 * include/bits/version.def: New file. Declares a list of
4088 all feature test macros, their values and their preconditions.
4089 * include/bits/version.tpl: New file. Turns version.def
4090 into a sequence of #if blocks.
4091 * include/bits/version.h: New file. Generated from
4092 version.def.
4093 * include/std/version: Replace with a __glibcxx_want_all define
4094 and bits/version.h include.
4095
4096 2023-08-14 Paul Dreik <gccpatches@pauldreik.se>
4097
4098 PR libstdc++/110860
4099 * include/std/format (__formatter_fp::format): Use frexp instead
4100 of log10.
4101
4102 2023-08-12 Ken Matsui <kmatsui@gcc.gnu.org>
4103
4104 * include/std/type_traits (true_type): Use __bool_constant
4105 instead.
4106 (false_type): Likewise.
4107 (bool_constant): Likewise.
4108
4109 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4110
4111 PR libstdc++/110990
4112 * include/std/format (_Seq_sink::get): Only call _M_overflow if
4113 its precondition is met.
4114 (_Iter_sink::_M_finish): Likewise.
4115 (_Iter_sink<C, ContigIter>::_M_overflow): Only switch to the
4116 internal buffer after running out of space.
4117 (_Iter_sink<C, ContigIter>::_M_finish): Do not use _M_overflow.
4118 (_Counting_sink::count): Likewise.
4119 * testsuite/std/format/functions/format_to_n.cc: Check cases
4120 where the output fits into the buffer.
4121
4122 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4123
4124 PR libstdc++/104167
4125 * include/bits/chrono_io.h (operator|=, operator|): Add noexcept
4126 to _ChronoParts operators.
4127 (from_stream, parse): Define new functions.
4128 (__detail::_Parse, __detail::_Parser): New class templates.
4129 * include/std/chrono (__cpp_lib_chrono): Define to 201907L for
4130 C++20.
4131 * include/std/version (__cpp_lib_chrono): Likewise.
4132 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
4133 Adjust expected value of feature test macro.
4134 * testsuite/20_util/duration/io.cc: Test parsing.
4135 * testsuite/std/time/clock/file/io.cc: Likewise.
4136 * testsuite/std/time/clock/gps/io.cc: Likewise.
4137 * testsuite/std/time/clock/system/io.cc: Likewise.
4138 * testsuite/std/time/clock/tai/io.cc: Likewise.
4139 * testsuite/std/time/clock/utc/io.cc: Likewise.
4140 * testsuite/std/time/day/io.cc: Likewise.
4141 * testsuite/std/time/month/io.cc: Likewise.
4142 * testsuite/std/time/month_day/io.cc: Likewise.
4143 * testsuite/std/time/weekday/io.cc: Likewise.
4144 * testsuite/std/time/year/io.cc: Likewise.
4145 * testsuite/std/time/year_month/io.cc: Likewise.
4146 * testsuite/std/time/year_month_day/io.cc: Likewise.
4147 * testsuite/std/time/syn_c++20.cc: Check value of macro and for
4148 the existence of parse and from_stream in namespace chrono.
4149 * testsuite/std/time/clock/local/io.cc: New test.
4150 * testsuite/std/time/parse.cc: New test.
4151
4152 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4153
4154 PR libstdc++/110860
4155 * include/std/format (__formatter_fp::format): Do not call log10
4156 with zero values.
4157
4158 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4159
4160 * python/libstdcxx/v6/printers.py (StdChronoCalendarPrinter):
4161 Check for out-of-range month an weekday indices.
4162 * testsuite/libstdc++-prettyprinters/chrono.cc: Check invalid
4163 month and weekday values.
4164
4165 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4166
4167 * include/bits/stl_iterator.h (__clamped_iter_cat_t): Remove.
4168
4169 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
4170
4171 PR libstdc++/110974
4172 * include/std/format (_Spec::_S_parse_width_or_precision): Check
4173 for empty range before dereferencing iterator.
4174 * testsuite/std/format/string.cc: Check for expected exception.
4175 Fix expected exception message in test_pr110862() and actually
4176 call it.
4177
4178 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
4179
4180 PR libstdc++/110968
4181 * include/std/format (__formatter_fp::format): Check return
4182 value of _M_localize.
4183 * testsuite/std/format/functions/format.cc: Check classic
4184 locale.
4185
4186 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
4187
4188 PR libstdc++/110970
4189 * include/bits/stl_iterator.h (__detail::__move_iter_cat): Use
4190 __iter_category_t.
4191 (iterator_traits<common_iterator<I, S>>::_S_iter_cat): Likewise.
4192 (__detail::__basic_const_iterator_iter_cat): Likewise.
4193 * include/bits/stl_iterator_base_types.h (__iterator_category_t):
4194 Rename to __iter_category_t.
4195
4196 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4197
4198 * include/bits/chrono.h (duration_cast): Do not use braces
4199 around statements for C++11 constexpr rules.
4200 * include/bits/stl_algobase.h (__lg): Rewrite as a single
4201 statement for C++11 constexpr rules.
4202 * include/experimental/bits/fs_path.h (path::string): Use
4203 _GLIBCXX17_CONSTEXPR not _GLIBCXX_CONSTEXPR for 'if constexpr'.
4204 * include/std/charconv (__to_chars_8): Initialize variable for
4205 C++17 constexpr rules.
4206
4207 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4208
4209 * include/bits/list.tcc (list::sort(Cmp)): Fix -Wsign-compare
4210 warning for loop condition.
4211
4212 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4213
4214 * include/std/complex: Add diagnostic pragma for clang.
4215
4216 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4217
4218 * include/bits/shared_ptr_atomic.h (atomic): Change class-head
4219 to struct.
4220 * include/bits/stl_tree.h (_Rb_tree_merge_helper): Change
4221 class-head to struct in friend declaration.
4222 * include/std/chrono (tzdb_list::_Node): Likewise.
4223 * include/std/future (_Task_state_base, _Task_state): Likewise.
4224 * include/std/scoped_allocator (__inner_type_impl): Likewise.
4225 * include/std/valarray (_BinClos, _SClos, _GClos, _IClos)
4226 (_ValFunClos, _RefFunClos): Change class-head to struct.
4227
4228 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4229
4230 * include/bits/alloc_traits.h (allocate): Add [[maybe_unused]]
4231 attribute.
4232 * include/bits/regex_executor.tcc: Remove name of unused
4233 parameter.
4234 * include/bits/shared_ptr_atomic.h (atomic_is_lock_free):
4235 Likewise.
4236 * include/bits/stl_uninitialized.h: Likewise.
4237 * include/bits/streambuf_iterator.h (operator==): Likewise.
4238 * include/bits/uses_allocator.h: Likewise.
4239 * include/c_global/cmath (isfinite, isinf, isnan): Likewise.
4240 * include/std/chrono (zoned_time): Likewise.
4241 * include/std/future (__future_base::_S_allocate_result):
4242 Likewise.
4243 (packaged_task): Likewise.
4244 * include/std/optional (_Optional_payload_base): Likewise.
4245 * include/std/scoped_allocator (__inner_type_impl): Likewise.
4246 * include/std/tuple (_Tuple_impl): Likewise.
4247
4248 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4249
4250 * include/bits/new_allocator.h (__new_allocator): Define copy
4251 assignment operator as defaulted.
4252 * include/std/complex (complex<float>, complex<double>)
4253 (complex<long double>): Define copy constructor as defaulted.
4254
4255 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4256
4257 * include/std/format: Fix some warnings.
4258 (__format::__write(Ctx&, basic_string_view<CharT>)): Remove
4259 unused function template.
4260
4261 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
4262
4263 PR libstdc++/110860
4264 * include/std/format (__formatter_fp::format): Do not use
4265 __builtin_abs and __builtin_log10 with arbitrary floating-point
4266 types.
4267
4268 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
4269
4270 PR libstdc++/110917
4271 * include/std/format (__format::_Iter_sink<CharT, OutIter>):
4272 Constrain partial specialization for contiguous iterators to
4273 require the value type to be CharT.
4274 * testsuite/std/format/functions/format_to.cc: New test.
4275
4276 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
4277
4278 PR libstdc++/110862
4279 * include/std/format (_Scanner::_M_on_replacement_field):
4280 Check for expected '}' before incrementing iterator.
4281 * testsuite/std/format/string.cc: Check "{0:{0}" format string.
4282
4283 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
4284
4285 * configure: Regenerate.
4286
4287 2023-08-07 Alan Modra <amodra@gmail.com>
4288
4289 * configure: Regenerate.
4290
4291 2023-08-07 Alexander von Gluck IV <kallisti5@unixzen.com>
4292
4293 * configure: Regenerate.
4294
4295 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
4296
4297 * configure: Regenerate.
4298
4299 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
4300
4301 * configure: Regenerate.
4302
4303 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
4304
4305 * configure: Regenerate.
4306
4307 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
4308
4309 * configure: Regenerate.
4310
4311 2023-08-06 François Dumont <fdumont@gcc.gnu.org>
4312
4313 * config/abi/pre/gnu-versioned-namespace.ver: Add __cxa_call_terminate
4314 symbol export.
4315
4316 2023-07-30 François Dumont <fdumont@gcc.gnu.org>
4317
4318 * src/c++11/compatibility-ldbl-facets-aliases.h: Replace #define with
4319 proper #error.
4320 * src/c++11/locale-inst-monetary.h: Likewise.
4321 * src/c++11/locale-inst-numeric.h: Likewise.
4322
4323 2023-07-27 Jonathan Wakely <jwakely@redhat.com>
4324
4325 PR libstdc++/108046
4326 * include/std/format (__formatter_fp::format): Ensure __expc is
4327 always set for all presentation types. Set __z correctly for
4328 zero precision.
4329 * testsuite/std/format/functions/format.cc: Check problem cases.
4330
4331 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
4332
4333 PR libstdc++/110807
4334 * testsuite/23_containers/vector/bool/110807.cc: Require c++11.
4335
4336 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
4337
4338 PR libstdc++/110807
4339 * include/bits/stl_bvector.h (vector(const vector&)): Access
4340 iterators before allocating.
4341 * include/bits/vector.tcc (vector<bool>::_M_insert_range):
4342 Likewise.
4343 * testsuite/23_containers/vector/bool/110807.cc: New test.
4344
4345 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
4346
4347 * include/bits/algorithmfwd.h (random_shuffle): Add deprecated
4348 attribute.
4349 * include/bits/stl_algo.h (random_shuffle): Correct comments.
4350 * testsuite/25_algorithms/random_shuffle/1.cc: Disable
4351 deprecated warnings.
4352 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
4353 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
4354 * testsuite/25_algorithms/random_shuffle/deprecated.cc: New
4355 test.
4356
4357 2023-07-26 Nathaniel Shead <nathanieloshead@gmail.com>
4358
4359 * testsuite/25_algorithms/equal/constexpr_neg.cc: Update diagnostic
4360 locations.
4361 * testsuite/26_numerics/gcd/105844.cc: Likewise.
4362 * testsuite/26_numerics/lcm/105844.cc: Likewise.
4363
4364 2023-07-24 Deev Patel <pateldeev@nevada.unr.edu>
4365
4366 * include/std/format (_Formatting_scanner::_M_on_chars): Add
4367 missing constexpr specifier.
4368 (_Formatting_scanner::_M_format_arg): Likewise.
4369
4370 2023-07-24 Jonathan Wakely <jwakely@redhat.com>
4371
4372 PR libstdc++/110653
4373 * include/bits/basic_string.h [!HAVE_STOF] (stof): Do not
4374 throw an exception for zero result.
4375 [HAVE_BROKEN_STRTOLD] (stold): Do not use strtold.
4376
4377 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4378
4379 PR libstdc++/110077
4380 * src/c++17/floating_from_chars.cc (from_chars): Only define
4381 _Float128 overload when using __strfromf128.
4382
4383 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4384
4385 PR libstdc++/110593
4386 * include/bits/chrono.h (duration): Improve static assert
4387 messages.
4388 (__is_ratio): Move to ...
4389 * include/std/ratio (__is_ratio): ... here.
4390 (__is_ratio_v): New variable template and partial
4391 specialization.
4392 (__are_both_ratios): New function template.
4393 (__ratio_multiply, ratio_equal, ratio_less, __ratio_add):
4394 Add static assertion.
4395 * testsuite/20_util/ratio/requirements/type_constraints.cc:
4396 New test.
4397 * testsuite/20_util/duration/requirements/typedefs_neg1.cc:
4398 Adjust expected error.
4399 * testsuite/20_util/duration/requirements/typedefs_neg2.cc:
4400 Likewise.
4401
4402 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4403
4404 * include/bits/chrono_io.h (__formatter_chrono::_M_format):
4405 Do not set __is_neg for hh_mm_ss before calling
4406 _M_format_to_ostream. Change __print_sign lambda to only check
4407 __is_neg for durations and hh_mm_ss types.
4408 (__formatter_chrono::_M_format_to_ostream): Only check __is_neg
4409 for duration types.
4410 * testsuite/std/time/hh_mm_ss/io.cc: Check negative values.
4411
4412 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4413
4414 PR libstdc++/110719
4415 * include/bits/chrono_io.h (__formatter_chrono::_S_floor_seconds):
4416 Handle duration and hh_mm_ss.
4417 * testsuite/20_util/duration/io.cc: Check locale-specific
4418 formats.
4419 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
4420
4421 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4422
4423 * include/std/format (__write_padded): Initialize first element
4424 of array to avoid a -Wmaybe-uninitialized warning.
4425
4426 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4427
4428 PR libstdc++/110719
4429 * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Fix
4430 allowed modifiers for %z and %Z. Fix -Wparentheses and
4431 -Wnarrowing warnings.
4432 (__formatter_chrono::_M_format): Call new functions for %d, %e,
4433 %H, %I, %m and %M.
4434 (__formatter_chrono::_M_c): Use _S_floor_seconds to remove
4435 subsecond precision.
4436 (__formatter_chrono::_M_C_y_Y): Use _M_locale_fmt to handle
4437 modifiers.
4438 (__formatter_chrono::_M_e): Replace with _M_d_e and use
4439 _M_locale_fmt.
4440 (__formatter_chrono::_M_I): Replace with _M_H_I and use
4441 _M_locale_fmt.
4442 (__formatter_chrono::_M_m): New function.
4443 (__formatter_chrono::_M_M): New function.
4444 (__formatter_chrono::_M_r): Use _M_locale_fmt.
4445 (__formatter_chrono::_M_S): Likewise.
4446 (__formatter_chrono::_M_u_w): Likewise.
4447 (__formatter_chrono::_M_U_V_W): Likewise.
4448 (__formatter_chrono::_M_X): Use _S_floor_seconds.
4449 (__formatter_chrono::_M_Z): Fix untested branch for wchar_t.
4450 (__formatter_chrono::_S_altnum): Remove function.
4451 (__formatter_chrono::_S_dd_zero_fill): Remove function.
4452 (__formatter_chrono::_S_floor_seconds): New function.
4453 (__formatter_chrono::_M_locale_fmt): New function.
4454 * testsuite/std/time/clock/system/io.cc: Adjust expected output
4455 for locale-specific formats and check modified formats.
4456 * testsuite/std/time/clock/utc/io.cc: Likewise.
4457 * testsuite/std/time/zoned_time/io.cc: New test.
4458
4459 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4460
4461 PR libstdc++/110708
4462 * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Only
4463 allow a single modifier.
4464 * testsuite/std/time/format.cc: Check multiple modifiers.
4465
4466 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4467
4468 PR libstdc++/110653
4469 * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
4470 Remove dg-require-string-conversions.
4471 * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
4472 Likewise.
4473 * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
4474 Likewise.
4475 * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
4476 Likewise.
4477 * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
4478 Likewise.
4479
4480 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4481
4482 PR libstdc++/110653
4483 * include/bits/basic_string.h [!_GLIBCXX_HAVE_STRTOF] (stof):
4484 Define in terms of std::stod.
4485
4486 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4487
4488 PR libstdc++/110653
4489 * include/bits/basic_string.h [_GLIBCXX_HAVE_STRTOF] (stof):
4490 Define.
4491 [_GLIBCXX_HAVE_STRTOLD] (stold): Define.
4492 * include/c_global/cstdlib [_GLIBCXX_HAVE_STRTOF] (strtof):
4493 Declare in namespace std.
4494 [_GLIBCXX_HAVE_STRTOLD] (strtold): Likewise.
4495
4496 2023-07-13 Jonathan Wakely <jwakely@redhat.com>
4497
4498 PR libstdc++/110653
4499 * include/bits/basic_string.h (stoi, stol, stoul, stod): Do not
4500 depend on _GLIBCXX_USE_C99_STDLIB.
4501 [__LONG_WIDTH__ == __LONG_LONG_WIDTH__] (stoll, stoull): Define
4502 in terms of stol and stoul respectively.
4503 [__DBL_MANT_DIG__ == __LDBL_MANT_DIG__] (stold): Define in terms
4504 of stod.
4505
4506 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
4507
4508 PR libstdc++/95048
4509 * testsuite/27_io/filesystem/path/construct/95048.cc: Check
4510 conversions to wide strings.
4511 * testsuite/experimental/filesystem/path/construct/95048.cc:
4512 Likewise.
4513
4514 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
4515
4516 * config/io/basic_file_stdio.cc: Define LFS macros.
4517 (__basic_file<char>::open): Use fopen unconditionally.
4518 (get_file_offset): Use lseek unconditionally.
4519 (__basic_file<char>::seekoff): Likewise.
4520 (__basic_file<char>::showmanyc): Use fstat unconditionally.
4521
4522 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
4523
4524 PR libstdc++/110574
4525 * acinclude.m4 (GLIBCXX_CHECK_LFS): Check for fseeko and ftello
4526 and define _GLIBCXX_USE_FSEEKO_FTELLO.
4527 * config.h.in: Regenerate.
4528 * configure: Regenerate.
4529 * config/io/basic_file_stdio.cc (xwrite) [_GLIBCXX_USE_STDIO_PURE]:
4530 Check for fwrite error correctly.
4531 (__basic_file<char>::xsgetn) [_GLIBCXX_USE_STDIO_PURE]: Check for
4532 fread error correctly.
4533 (get_file_offset): New function.
4534 (__basic_file<char>::seekoff) [_GLIBCXX_USE_STDIO_PURE]: Use
4535 fseeko if available. Use get_file_offset instead of return value
4536 of fseek.
4537 (__basic_file<char>::showmanyc): Use get_file_offset.
4538
4539 2023-07-12 Ken Matsui <kmatsui@gcc.gnu.org>
4540
4541 * include/std/type_traits (__make_unsigned_selector): Use
4542 __is_enum built-in trait.
4543 (__make_signed_selector): Likewise.
4544 (__underlying_type_impl): Likewise.
4545
4546 2023-07-06 Tianqiang Shuai <1101282468@qq.com>
4547
4548 * config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix
4549 first argument.
4550
4551 2023-07-06 Jonathan Wakely <jwakely@redhat.com>
4552
4553 PR libstdc++/110574
4554 * doc/xml/manual/configure.xml: Describe stdio_pure argument to
4555 --enable-cstdio.
4556 * doc/html/manual/configure.html: Regenerate.
4557
4558 2023-07-05 Thomas Rodgers <trodgers@redhat.com>
4559
4560 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Delete
4561 file.
4562 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
4563 New file.
4564 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
4565 Likewise.
4566 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
4567 Likewise.
4568 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
4569 Likewise.
4570 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
4571 Likewise.
4572
4573 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
4574
4575 * testsuite/23_containers/forward_list/debug/iterator1_neg.cc:
4576 Skip as UNSUPPORTED for C++98 mode.
4577 * testsuite/23_containers/forward_list/debug/iterator3_neg.cc:
4578 Likewise.
4579
4580 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
4581
4582 PR libstdc++/110542
4583 * include/bits/stl_uninitialized.h (__uninitialized_default_n):
4584 Do not use std::fill_n during constant evaluation.
4585
4586 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
4587
4588 * include/bits/vector.tcc (_M_default_append): Replace try-block
4589 with RAII types.
4590
4591 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
4592
4593 * include/bits/iterator_concepts.h (projected): Add typename.
4594
4595 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
4596
4597 * testsuite/27_io/headers/iosfwd/synopsis.cc: Make wsyncbuf and
4598 wosyncstream depend on _GLIBCXX_USE_CXX11_ABI.
4599
4600 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
4601
4602 * include/pstl/pstl_config.h (_PSTL_PRAGMA_SIMD_SCAN,
4603 _PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN, _PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN):
4604 Define to OpenMP 5.0 pragmas even for GCC 10.0+.
4605 (_PSTL_UDS_PRESENT): Define to 1 for GCC 10.0+.
4606
4607 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
4608
4609 * include/bits/alloc_traits.h (_Destroy): Qualify call.
4610 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Likewise.
4611 * testsuite/23_containers/vector/cons/destroy-adl.cc: New test.
4612
4613 2023-07-03 Iain Sandoe <iain@sandoe.co.uk>
4614
4615 * testsuite/lib/libstdc++.exp: Remove additional flag handled
4616 by Darwin specs.
4617
4618 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
4619
4620 PR libstdc++/110432
4621 * acinclude.m4 (GLIBCXX_CHECK_INIT_PRIORITY): New.
4622 * config.h.in: Regenerate.
4623 * configure: Regenerate.
4624 * configure.ac: Use GLIBCXX_CHECK_INIT_PRIORITY.
4625 * include/std/iostream: Use new autoconf macro as well as
4626 __has_attribute.
4627 * src/c++98/ios_base_init.h: Use new autoconf macro instead of
4628 __has_attribute.
4629
4630 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
4631
4632 * src/c++11/random.cc (random_device::_M_init): Add maybe_unused
4633 attribute.
4634
4635 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
4636
4637 PR libstdc++/105081
4638 * src/c++11/random.cc (random_device::_M_init): Throw
4639 std::system_error when the requested device is a valid token but
4640 not available at runtime.
4641
4642 2023-06-30 Hans-Peter Nilsson <hp@axis.com>
4643
4644 PR libstdc++/108672
4645 * include/pstl/unseq_backend_simd.h (__simd_or): Re-apply using
4646 __INT32_TYPE__ instead of int32_t.
4647
4648 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
4649
4650 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define consistently
4651 with USE_ATOMIC_LIST_HEAD.
4652 (list_mutex): Replace global object with function. Use local
4653 static object when std::mutex constructor isn't constexpr.
4654
4655 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
4656
4657 PR libstdc++/110462
4658 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check that
4659 copy_file_range can be called with loff_t* arguments.
4660 * configure: Regenerate.
4661 * src/filesystem/ops-common.h (copy_file_copy_file_range):
4662 Use loff_t for offsets.
4663
4664 2023-06-29 Tom Tromey <tromey@adacore.com>
4665
4666 * testsuite/lib/gdb-test.exp (gdb-test): Relax type-printer
4667 regexp.
4668
4669 2023-06-28 Jan Hubicka <jh@suse.cz>
4670
4671 PR middle-end/109849
4672 * include/bits/c++config (std::__terminate): Mark cold.
4673 * include/bits/functexcept.h: Mark everything as cold.
4674 * libsupc++/exception: Mark terminate and unexpected as cold.
4675
4676 2023-06-26 Thomas Rodgers <trodgers@redhat.com>
4677
4678 * include/pstl/algorithm_fwd.h: Synchronize with upstream.
4679 * include/pstl/algorithm_impl.h: Likewise.
4680 * include/pstl/execution_defs.h: Likewise.
4681 * include/pstl/execution_impl.h: Likewise.
4682 * include/pstl/glue_algorithm_impl.h: Likewise.
4683 * include/pstl/glue_execution_defs.h: Likewise.
4684 * include/pstl/glue_memory_impl.h: Likewise.
4685 * include/pstl/glue_numeric_impl.h: Likewise.
4686 * include/pstl/memory_impl.h: Likewise.
4687 * include/pstl/numeric_fwd.h: Likewise.
4688 * include/pstl/numeric_impl.h: Likewise.
4689 * include/pstl/parallel_backend.h: Likewise.
4690 * include/pstl/parallel_backend_serial.h: Likewise.
4691 * include/pstl/parallel_backend_tbb.h: Likewise.
4692 * include/pstl/parallel_impl.h: Likewise.
4693 * include/pstl/pstl_config.h: Likewise.
4694 * include/pstl/unseq_backend_simd.h: Likewise.
4695 * include/pstl/utils.h: Likewise.
4696 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
4697 Likewise.
4698 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
4699 Likewise.
4700 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
4701 Likewise.
4702 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
4703 Likewise.
4704 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
4705 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
4706 Likewise.
4707 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
4708 Likewise.
4709 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
4710 Likewise.
4711 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
4712 Likewise.
4713 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
4714 Likewise.
4715 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
4716 Likewise.
4717 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
4718 Likewise.
4719 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
4720 Likewise.
4721 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
4722 Likewise.
4723 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
4724 Likewise.
4725 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
4726 Likewise.
4727 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
4728 Likewise.
4729 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
4730 Likewise.
4731 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
4732 Likewise.
4733 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
4734 Likewise.
4735 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
4736 Likewise.
4737 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
4738 Likewise.
4739 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
4740 Likewise.
4741 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
4742 Likewise.
4743 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
4744 Likewise.
4745 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
4746 Likewise.
4747 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
4748 Likewise.
4749 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
4750 Likewise.
4751 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
4752 Likewise.
4753 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
4754 Likewise.
4755 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
4756 Likewise.
4757 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
4758 Likewise.
4759 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
4760 Likewise.
4761 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
4762 Likewise.
4763 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
4764 Likewise.
4765 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
4766 Likewise.
4767 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
4768 Likewise.
4769 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
4770 Likewise.
4771 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
4772 Likewise.
4773 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
4774 Likewise.
4775 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc:
4776 Likewise.
4777 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
4778 Likewise.
4779 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
4780 Likewise.
4781 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
4782 Likewise.
4783 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
4784 Likewise.
4785 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
4786 Likewise.
4787 * testsuite/25_algorithms/pstl/alg_sorting/set.cc:
4788 Likewise.
4789 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc:
4790 Likewise.
4791 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
4792 Likewise.
4793 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc:
4794 Likewise.
4795 * testsuite/26_numerics/pstl/numeric_ops/scan.cc:
4796 Likewise.
4797 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
4798 Likewise.
4799 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
4800 Likewise.
4801 * testsuite/util/pstl/test_utils.h:
4802 Likewise.
4803
4804 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
4805
4806 PR libstdc++/110239
4807 * include/std/format (__format::__parse_integer): Fix buffer
4808 overflow for wide chars.
4809 (formatter<const void*, C>::format): Cast to uintptr_t instead
4810 of uint64_t.
4811 * testsuite/std/format/string.cc: Test too-large widths.
4812
4813 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
4814
4815 * include/bits/iterator_concepts.h (projected): Replace class
4816 template with alias template denoting an ADL-proofed helper.
4817 (incremental_traits<projected<Iter, Proj>>): Remove.
4818 * testsuite/24_iterators/indirect_callable/projected-adl.cc:
4819 New test.
4820
4821 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
4822
4823 * include/debug/helper_functions.h (__get_distance)
4824 (__check_singular, __valid_range_aux, __valid_range): Qualify
4825 calls to disable ADL.
4826 (__check_singular_aux(const _Safe_iterator_base*)): Declare
4827 overload that was previously found via ADL.
4828
4829 2023-06-23 Jonathan Wakely <jwakely@redhat.com>
4830
4831 * include/bits/vector.tcc (_M_realloc_insert): Replace try-block
4832 with RAII types.
4833
4834 2023-06-20 Jonathan Wakely <jwakely@redhat.com>
4835
4836 * include/std/array (to_array(T(&)[N])): Remove redundant
4837 condition.
4838 (to_array(T(&&)[N])): Remove redundant std::move.
4839
4840 2023-06-16 Alexandre Oliva <oliva@adacore.com>
4841
4842 * testsuite/20_util/from_chars/4.cc: Skip long double on
4843 aarch64-rtems.
4844
4845 2023-06-16 Joel Brobecker <brobecker@adacore.com>
4846
4847 * configure.ac ["x${with_newlib}" = "xyes"]: Define
4848 HAVE_HYPOTF. Add compile-checks for various long double
4849 math functions as well.
4850 * configure: Regenerate.
4851
4852 2023-06-14 Jonny Grant <jg@jguk.org>
4853
4854 * doc/xml/manual/extensions.xml: Remove demangle exception
4855 description and include.
4856 * doc/html/manual/ext_demangling.html: Regenerate.
4857
4858 2023-06-10 Hans-Peter Nilsson <hp@axis.com>
4859
4860 * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc (main)
4861 [! SIMULATOR_TEST]: Also exclude running test05.
4862 * testsuite/27_io/basic_istream/ignore/char/94749.cc: Ditto.
4863
4864 2023-06-09 Ken Matsui <kmatsui@cs.washington.edu>
4865
4866 * include/std/type_traits: Use using instead of typedef
4867
4868 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
4869
4870 PR libstdc++/110077
4871 * src/c++17/floating_from_chars.cc (from_chars) <_Float128>:
4872 Only define if _Float128 and long double have different
4873 representations.
4874
4875 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
4876
4877 PR libstdc++/100285
4878 * include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP]
4879 (basic_endpoint, basic_resolver_entry, resolver_base)
4880 (basic_resolver_results, basic_resolver): Only define if the tcp
4881 or udp protocols will be defined.
4882
4883 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
4884
4885 * acinclude.m4 (libtool_VERSION): Update to 6.0.33.
4886 * configure: Regenerate.
4887 * doc/xml/manual/abi.xml: Add libstdc++.so.6.0.33.
4888 * doc/html/manual/abi.html: Regenerate.
4889
4890 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
4891
4892 PR libstdc++/110149
4893 * include/std/format (formatter<const void*, charT>::parse):
4894 Only alow 0 and P for C++26 and non-strict modes.
4895 (formatter<const void*, charT>::format): Use toupper for P
4896 type, and insert zero-fill characters for 0 option.
4897 * testsuite/std/format/functions/format.cc: Check pointer
4898 formatting. Only check P2510R3 extensions conditionally.
4899 * testsuite/std/format/parse_ctx.cc: Only check P2510R3
4900 extensions conditionally.
4901
4902 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
4903
4904 PR libstdc++/110167
4905 * include/std/array (to_array): Initialize arrays of trivial
4906 types using memcpy. For non-trivial types, use lambda
4907 expressions instead of a separate helper function.
4908 (__to_array): Remove.
4909 * testsuite/23_containers/array/creation/110167.cc: New test.
4910
4911 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
4912
4913 * testsuite/23_containers/deque/modifiers/emplace/52799.cc:
4914 Removed.
4915 * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
4916 Removed.
4917 * testsuite/23_containers/list/modifiers/emplace/52799.cc:
4918 Removed.
4919 * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
4920 Removed.
4921 * testsuite/23_containers/vector/modifiers/emplace/52799.cc:
4922 Removed.
4923 * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
4924 Removed.
4925 * testsuite/23_containers/deque/modifiers/emplace/1.cc: New
4926 test.
4927 * testsuite/23_containers/list/modifiers/emplace/1.cc: New
4928 test.
4929 * testsuite/23_containers/vector/modifiers/emplace/1.cc: New
4930 test.
4931
4932 2023-06-07 Jakub Jelinek <jakub@redhat.com>
4933
4934 PR libstdc++/110145
4935 * testsuite/20_util/to_chars/double.cc: Include <cfloat>.
4936 (double_to_chars_test_cases,
4937 double_scientific_precision_to_chars_test_cases_2,
4938 double_fixed_precision_to_chars_test_cases_2): #if out 1e126, 4.91e-6
4939 and 5.547e-6 tests if FLT_EVAL_METHOD is negative or larger than 1.
4940 Add unconditional tests with corresponding double constants
4941 0x1.7a2ecc414a03fp+418, 0x1.4981285e98e79p-18 and
4942 0x1.7440bbff418b9p-18.
4943
4944 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
4945
4946 * testsuite/util/testsuite_abi.cc (check_version): Re-add
4947 CXXABI_1.3.14.
4948
4949 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
4950
4951 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
4952 Require effective target exceptions_enabled instead of using
4953 dg-skip-if.
4954 * testsuite/23_containers/vector/capacity/constexpr.cc: Expect
4955 shrink_to_fit() to be a no-op without exceptions enabled.
4956 * testsuite/23_containers/vector/capacity/shrink_to_fit.cc:
4957 Likewise.
4958 * testsuite/ext/bitmap_allocator/check_allocate_max_size.cc:
4959 Require effective target exceptions_enabled.
4960 * testsuite/ext/malloc_allocator/check_allocate_max_size.cc:
4961 Likewise.
4962 * testsuite/ext/mt_allocator/check_allocate_max_size.cc:
4963 Likewise.
4964 * testsuite/ext/new_allocator/check_allocate_max_size.cc:
4965 Likewise.
4966 * testsuite/ext/pool_allocator/check_allocate_max_size.cc:
4967 Likewise.
4968 * testsuite/ext/throw_allocator/check_allocate_max_size.cc:
4969 Likewise.
4970
4971 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
4972
4973 * testsuite/20_util/duration/cons/2.cc: Use values that aren't
4974 affected by rounding.
4975 * testsuite/20_util/from_chars/5.cc: Cast arithmetic result to
4976 double before comparing for equality.
4977 * testsuite/20_util/from_chars/6.cc: Likewise.
4978 * testsuite/20_util/variant/86874.cc: Use values that aren't
4979 affected by rounding.
4980 * testsuite/25_algorithms/lower_bound/partitioned.cc: Compare to
4981 original value instead of to floating-point-literal.
4982 * testsuite/26_numerics/random/discrete_distribution/cons/range.cc:
4983 Cast arithmetic result to double before comparing for equality.
4984 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc:
4985 Likewise.
4986 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc:
4987 Likewise.
4988 * testsuite/26_numerics/valarray/transcend.cc (eq): Check that
4989 the absolute difference is less than 0.01 instead of comparing
4990 to two decimal places.
4991 * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
4992 Cast arithmetic result to double before comparing for equality.
4993 * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
4994 Likewise.
4995 * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
4996 Likewise.
4997 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc:
4998 Likewise.
4999 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc:
5000 Likewise.
5001 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc:
5002 Likewise.
5003 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
5004
5005 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
5006
5007 Revert:
5008 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5009
5010 * configure.ac: Use AS_IF.
5011 * configure: Regenerate.
5012
5013 2023-06-07 Thomas Schwinge <thomas@codesourcery.com>
5014
5015 * testsuite/lib/prune.exp (libstdc++-dg-prune): Support
5016 'UNSUPPORTED: [...]: exception handling disabled'.
5017
5018 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5019
5020 * testsuite/util/testsuite_abi.cc (check_version): Add
5021 CXXABI_1.3.15 symver and make it the latestp. Remove
5022 GLIBCXX_IEEE128_3.4.31 and GLIBCXX_LDBL_3.4.31 from latestp.
5023
5024 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5025 Jakub Jelinek <jakub@redhat.com>
5026
5027 PR libstdc++/104772
5028 * include/std/limits: (numeric_limits<__float128>): Define
5029 for __STRICT_ANSI__ as well.
5030 * testsuite/18_support/numeric_limits/128bit.cc: Remove
5031 check for __STRICT_ANSI__.
5032
5033 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5034
5035 * configure.ac: Use AS_IF.
5036 * configure: Regenerate.
5037
5038 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
5039
5040 PR libstdc++/109822
5041 * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
5042 to avoid casts to other vector types. Implement store as
5043 succession of power-of-2 sized memcpy to avoid PR90424.
5044
5045 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
5046
5047 PR libstdc++/110054
5048 * include/experimental/bits/simd_builtin.h (_S_masked_store):
5049 Call into deduced ABI's SimdImpl after conversion.
5050 * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt):
5051 Don't use _mm_maskmoveu_si128. Use the generic fall-back
5052 implementation. Also fix masked stores without SSE2, which
5053 were not doing anything before.
5054
5055 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
5056
5057 * include/experimental/bits/simd.h (__bit_cast): Use
5058 __gnu__::__vector_size__ instead of gnu::vector_size.
5059
5060 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5061
5062 PR libstdc++/110139
5063 * include/std/array (__array_traits<T, 0>::operator T*()): Make
5064 conversion operator explicit.
5065 (array::front): Use size_type as subscript operand.
5066 (array::data): Use static_cast to make conversion explicit.
5067 * testsuite/23_containers/array/element_access/110139.cc: New
5068 test.
5069
5070 2023-06-06 Joseph Faulls <Joseph.Faulls@imgtec.com>
5071
5072 * include/bits/locale_classes.tcc: Remove check for
5073 codecvt<char8_t, char, mbstate_t> facet.
5074
5075 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5076
5077 * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set
5078 close-on-exec flag on file descriptors.
5079
5080 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5081
5082 PR libstdc++/108178
5083 * src/filesystem/ops-common.h (do_copy_file): Check for empty
5084 files by trying to read a character.
5085 * testsuite/27_io/filesystem/operations/copy_file_108178.cc:
5086 New test.
5087
5088 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
5089
5090 * acinclude.m4 (_GLIBCXX_USE_COPY_FILE_RANGE): Define.
5091 * config.h.in: Regenerate.
5092 * configure: Regenerate.
5093 * src/filesystem/ops-common.h (copy_file_copy_file_range):
5094 Define new function.
5095 (do_copy_file): Use it.
5096
5097 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
5098
5099 * acinclude.m4 (_GLIBCXX_HAVE_LSEEK): Define.
5100 * config.h.in: Regenerate.
5101 * configure: Regenerate.
5102 * src/filesystem/ops-common.h (copy_file_sendfile): Define new
5103 function for sendfile logic. Loop to support large files. Skip
5104 zero-length files.
5105 (do_copy_file): Use it.
5106
5107 2023-06-04 Jason Merrill <jason@redhat.com>
5108
5109 PR c++/97720
5110 * libsupc++/eh_call.cc (__cxa_call_terminate): Take void*.
5111 * config/abi/pre/gnu.ver: Add it.
5112
5113 2023-06-02 François Dumont <fdumont@gcc.gnu.org>
5114
5115 * include/parallel/algobase.h: Include <parallel/search.h>.
5116
5117 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5118
5119 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
5120 Add const to equality operator.
5121
5122 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5123
5124 * include/std/expected (expected::and_then, expected::or_else)
5125 (expected::transform_error): Use _M_val and _M_unex instead of
5126 calling value() and error(), as per LWG 3938.
5127 (expected::transform): Likewise. Remove incorrect std::move
5128 calls from lvalue overloads.
5129 (expected<void, E>::and_then, expected<void, E>::or_else)
5130 (expected<void, E>::transform): Use _M_unex instead of calling
5131 error().
5132 * testsuite/20_util/expected/lwg3877.cc: Add checks for and_then
5133 and transform, and for std::expected<void, E>.
5134 * testsuite/20_util/expected/lwg3938.cc: New test.
5135
5136 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5137
5138 PR libstdc++/110060
5139 * include/bits/stl_vector.h (_Vector_base::_M_invariant):
5140 Remove.
5141 (vector::size, vector::capacity): Remove calls to _M_invariant.
5142 * include/bits/vector.tcc (vector::_M_fill_assign): Add
5143 optimization hint to reallocating path.
5144 (vector::_M_assign_aux(FwdIter, FwdIter, forward_iterator_tag)):
5145 Likewise.
5146 * testsuite/23_containers/vector/capacity/invariant.cc: Moved
5147 to...
5148 * testsuite/23_containers/vector/modifiers/assign/no_realloc.cc:
5149 ...here. Check assign(FwdIter, FwdIter) too.
5150 * testsuite/23_containers/vector/types/1.cc: Revert addition
5151 of -Wno-stringop-overread option.
5152
5153 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5154
5155 * doc/xml/manual/evolution.xml: Document removal of implicit
5156 allocator rebinding extensions in strict mode and for C++20.
5157 * doc/html/*: Regenerate.
5158
5159 2023-06-01 Jason Merrill <jason@redhat.com>
5160
5161 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Don't check
5162 handlers in the cleanup phase.
5163
5164 2023-06-01 Matthias Kretz <m.kretz@gsi.de>
5165
5166 PR libstdc++/110050
5167 * include/experimental/bits/simd.h (__vectorized_sizeof): With
5168 __have_neon_a32 only single-precision float works (in addition
5169 to integers).
5170
5171 2023-06-01 François Dumont <fdumont@gcc.gnu.org>
5172
5173 * include/bits/stl_algo.h
5174 (std::__search, std::search(_FwdIt1, _FwdIt1, _FwdIt2, _FwdIt2, _BinPred)): Move...
5175 * include/bits/stl_algobase.h: ...here.
5176 * include/std/functional: Replace <stl_algo.h> include by <stl_algobase.h>.
5177 * include/parallel/algo.h (std::__parallel::search<_FIt1, _FIt2, _BinaryPred>)
5178 (std::__parallel::__search_switch<_FIt1, _FIt2, _BinaryPred, _ItTag1, _ItTag2>):
5179 Move...
5180 * include/parallel/algobase.h: ...here.
5181 * include/experimental/functional: Remove <bits/stl_algo.h> and <parallel/algorithm>
5182 includes. Include <bits/stl_algobase.h>.
5183
5184 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5185
5186 PR libstdc++/109818
5187 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add separate check for
5188 float_t and double_t and define HAVE_C99_FLT_EVAL_TYPES.
5189 * config.h.in: Regenerate.
5190 * configure: Regenerate.
5191 * include/c_global/cmath (float_t, double_t): Guard using new
5192 _GLIBCXX_HAVE_C99_FLT_EVAL_TYPES macro.
5193
5194 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5195
5196 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add checks for C99 math
5197 functions and define _GLIBCXX_USE_C99_MATH_FUNCS. Move checks
5198 for C99 rounding functions to here.
5199 (GLIBCXX_CHECK_C99_TR1): Remove checks for C99 rounding
5200 functions from here.
5201 * config.h.in: Regenerate.
5202 * configure: Regenerate.
5203 * include/bits/random.h: Use _GLIBCXX_USE_C99_MATH_FUNCS instead
5204 of _GLIBCXX_USE_C99_MATH_TR1.
5205 * include/bits/random.tcc: Likewise.
5206 * include/c_compatibility/math.h: Likewise.
5207 * include/c_global/cmath: Likewise.
5208 * include/ext/random: Likewise.
5209 * include/ext/random.tcc: Likewise.
5210 * include/std/complex: Likewise.
5211 * testsuite/20_util/from_chars/4.cc: Likewise.
5212 * testsuite/20_util/from_chars/8.cc: Likewise.
5213 * testsuite/26_numerics/complex/proj.cc: Likewise.
5214 * testsuite/26_numerics/headers/cmath/60401.cc: Likewise.
5215 * testsuite/26_numerics/headers/cmath/types_std_c++0x.cc:
5216 Likewise.
5217 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
5218 Likewise.
5219 * testsuite/util/testsuite_random.h: Likewise.
5220
5221 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5222
5223 * include/bits/stl_vector.h (_Vector_base::_M_invariant()): New
5224 function.
5225 (vector::size(), vector::capacity()): Call _M_invariant().
5226 * testsuite/23_containers/vector/capacity/invariant.cc: New test.
5227 * testsuite/23_containers/vector/types/1.cc: Add suppression for
5228 false positive warning (PR110060).
5229
5230 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5231
5232 PR libstdc++/109921
5233 * src/c++17/floating_from_chars.cc: Check __FLT128_MANT_DIG__ is
5234 defined before trying to use _Float128.
5235
5236 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5237
5238 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Fix for 32-bit pointers
5239 to check __INT_PTR_WIDTH__ instead of sizeof(void*).
5240 * configure: Regenerate.
5241
5242 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5243
5244 * include/bits/unique_lock.h: Include <bits/error_constants.h>
5245 here for std::errc constants.
5246 * include/std/mutex: Do not include <bits/error_constants.h> and
5247 <exception> here.
5248
5249 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5250
5251 * configure.ac: Replace use of -o operator for test.
5252 * configure: Regenerate.
5253
5254 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5255
5256 * include/std/scoped_allocator (scoped_allocator_adaptor): Add
5257 noexcept to all constructors except the default constructor.
5258 (scoped_allocator_adaptor::inner_allocator): Add noexcept.
5259 (scoped_allocator_adaptor::outer_allocator): Likewise.
5260 * testsuite/20_util/scoped_allocator/noexcept.cc: New test.
5261
5262 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5263
5264 PR libstdc++/104772
5265 * include/std/limits (numeric_limits<__float128>): Define.
5266 * testsuite/18_support/numeric_limits/128bit.cc: New test.
5267
5268 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5269
5270 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Extend logic for avr and
5271 msp430 to all 16-bit targets.
5272 * configure: Regenerate.
5273
5274 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5275
5276 PR libstdc++/109921
5277 * src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
5278 Only define when USE_STRTOD_FOR_FROM_CHARS is also defined.
5279 (USE_STRTOD_FOR_FROM_CHARS): Do not undefine when long double is
5280 binary64.
5281 (from_chars(const char*, const char*, double&, chars_format)):
5282 Check __LDBL_MANT_DIG__ == __DBL_MANT_DIG__ here.
5283 (from_chars(const char*, const char*, _Float128&, chars_format))
5284 Only use from_chars_strtod when USE_STRTOD_FOR_FROM_CHARS is
5285 defined, otherwise parse a long double and convert to _Float128.
5286
5287 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5288
5289 PR libstdc++/109922
5290 * include/std/iomanip (operator>>(basic_istream&, _Setfill)):
5291 Add deprecated attribute to non-standard overload.
5292 * doc/xml/manual/evolution.xml: Document deprecation.
5293 * doc/html/*: Regenerate.
5294 * testsuite/27_io/manipulators/standard/char/1.cc: Add
5295 dg-warning for expected deprecated warning.
5296 * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
5297 * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
5298 * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
5299
5300 2023-05-30 Alexandre Oliva <oliva@adacore.com>
5301
5302 * testsuite/20_util/from_chars/4.cc: Skip long double test06
5303 on x86_64-vxworks.
5304 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
5305 x86_64-vxworks.
5306
5307 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
5308
5309 PR libstdc++/109822
5310 * include/experimental/bits/simd.h (to_native): Use int NTTP
5311 as specified in PTS2.
5312 (to_compatible): Likewise. Add missing tag to call mask
5313 generator ctor.
5314 * testsuite/experimental/simd/pr109822_cast_functions.cc: New
5315 test.
5316
5317 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
5318
5319 * testsuite/experimental/simd/tests/integer_operators.cc:
5320 Compute expected value differently to avoid getting turned into
5321 a vector shift.
5322
5323 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
5324
5325 * testsuite/experimental/simd/tests/operator_cvt.cc: Make long
5326 double <-> (u)long conversion tests conditional on sizeof(long
5327 double) and sizeof(long).
5328
5329 2023-05-26 Matthias Kretz <m.kretz@gsi.de>
5330
5331 * include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
5332 Negative __y is UB, so prefer signed compare.
5333
5334 2023-05-25 Jonathan Wakely <jwakely@redhat.com>
5335
5336 * testsuite/util/testsuite_allocator.h (PointerBase): Add
5337 relational operators.
5338
5339 2023-05-25 Alexandre Oliva <oliva@adacore.com>
5340
5341 * testsuite/20_util/to_chars/long_double.cc: Expect execution
5342 fail on x86-vxworks.
5343
5344 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
5345
5346 PR libstdc++/109949
5347 * include/experimental/bits/simd.h (__intrinsic_type): If
5348 __ALTIVEC__ is defined, map gnu::vector_size types to their
5349 corresponding __vector T types without losing unsignedness of
5350 integer types. Also prefer long long over long.
5351 * include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask
5352 object to the expected unsigned vector type.
5353
5354 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
5355
5356 PR libstdc++/109261
5357 * include/experimental/bits/simd.h (__intrinsic_type):
5358 Specialize __intrinsic_type<double, 8> and
5359 __intrinsic_type<double, 16> in any case, but provide the member
5360 type only with __aarch64__.
5361
5362 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
5363
5364 PR libstdc++/109261
5365 * include/experimental/bits/simd_neon.h (_S_reduce): Add
5366 constexpr and make NEON implementation conditional on
5367 not __builtin_is_constant_evaluated.
5368
5369 2023-05-23 Matthias Kretz <m.kretz@gsi.de>
5370
5371 PR libstdc++/109261
5372 * include/experimental/bits/simd.h (_SimdWrapper::_M_set):
5373 Avoid vector builtin subscripting in constant expressions.
5374 (resizing_simd_cast): Avoid memcpy if constant_evaluated.
5375 (const_where_expression, where_expression, where)
5376 (__extract_part, simd_mask, _SimdIntOperators, simd): Add either
5377 _GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on
5378 internal APIs).
5379 * include/experimental/bits/simd_builtin.h (__vector_permute)
5380 (__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1)
5381 (_GnuTraits::_SimdCastType2, _SimdImplBuiltin)
5382 (_MaskImplBuiltin::_S_store): Add constexpr.
5383 (_CommonImplBuiltin::_S_store_bool_array)
5384 (_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store)
5385 (_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add
5386 constant_evaluated case.
5387 * include/experimental/bits/simd_fixed_size.h
5388 (_S_masked_load): Reword comment.
5389 (__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r)
5390 (_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write)
5391 (__make_simd_tuple, __optimize_simd_tuple, __extract_part)
5392 (__autocvt_to_simd, _Fixed::__traits::_SimdBase)
5393 (_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add
5394 constexpr.
5395 (_SimdTuple::operator[], _M_set): Add constexpr and add
5396 constant_evaluated case.
5397 (_MaskImplFixedSize::_S_load): Add constant_evaluated case.
5398 * include/experimental/bits/simd_scalar.h: Add constexpr.
5399 * include/experimental/bits/simd_x86.h (_CommonImplX86): Add
5400 constexpr and add constant_evaluated case.
5401 (_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less)
5402 (_S_less_equal): Value-initialize to satisfy constexpr
5403 evaluation.
5404 (_MaskImplX86::_S_load): Add constant_evaluated case.
5405 (_MaskImplX86::_S_store): Add constexpr and constant_evaluated
5406 case. Value-initialize local variables.
5407 (_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not)
5408 (_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated
5409 case.
5410 * testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
5411 test.
5412
5413 2023-05-22 Matthias Kretz <m.kretz@gsi.de>
5414
5415 * include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
5416 __infn into #ifdef'ed block.
5417 * testsuite/experimental/simd/tests/fpclassify.cc: Declare
5418 constants only when used.
5419 * testsuite/experimental/simd/tests/frexp.cc: Likewise.
5420 * testsuite/experimental/simd/tests/logarithm.cc: Likewise.
5421 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
5422 Likewise.
5423 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
5424 Move totest and expect1 into #ifdef'ed block.
5425
5426 2023-05-19 Gerald Pfeifer <gerald@pfeifer.com>
5427
5428 * doc/xml/manual/strings.xml: Move lafstern.org reference to https.
5429 * doc/html/manual/strings.html: Regenerate.
5430
5431 2023-05-17 Jakub Jelinek <jakub@redhat.com>
5432
5433 PR libstdc++/109883
5434 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc: New test.
5435
5436 2023-05-17 Jakub Jelinek <jakub@redhat.com>
5437
5438 PR libstdc++/109883
5439 * include/c_global/cmath (atan2, fmod, pow): Move
5440 __gnu_cxx::__promote_2 using templates after _Float{16,32,64,128} and
5441 __gnu_cxx::__bfloat16_t overloads.
5442 (copysign, fdim, fmax, fmin, hypot, nextafter, remainder, remquo):
5443 Likewise.
5444 (fma): Move __gnu_cxx::__promote_3 using template after
5445 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
5446
5447 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5448
5449 * testsuite/18_support/headers/limits/synopsis.cc: Uncomment
5450 checks for float_round_style and float_denorm_style.
5451
5452 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5453
5454 * include/bits/c++config: Add system_header pragma.
5455
5456 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5457
5458 * include/std/expected (expected::and_then, expected::or_else)
5459 (expected::transform, expected::transform_error): Fix exception
5460 specifications as per LWG 3877.
5461 (expected<void, E>::and_then, expected<void, E>::transform):
5462 Likewise.
5463 * testsuite/20_util/expected/lwg3877.cc: New test.
5464
5465 2023-05-17 Ken Matsui <kmatsui@cs.washington.edu>
5466
5467 * include/std/type_traits: Use __bool_constant instead of
5468 integral_constant.
5469
5470 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5471
5472 * configure: Regenerate.
5473
5474 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5475
5476 PR libstdc++/109741
5477 * acinclude.m4 (GLIBCXX_CHECK_ALIGNAS_CACHELINE): Define.
5478 * config.h.in: Regenerate.
5479 * configure: Regenerate.
5480 * configure.ac: Use GLIBCXX_CHECK_ALIGNAS_CACHELINE.
5481 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex): Do not
5482 align lock table if not supported. use __GCC_DESTRUCTIVE_SIZE
5483 instead of hardcoded 64.
5484
5485 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5486
5487 * acinclude.m4 (GLIBCXX_USE_C99): Check for isblank in C++11
5488 mode and define _GLIBCXX_USE_C99_CTYPE. Check for <fenv.h>
5489 functions in C++11 mode and define _GLIBCXX_USE_C99_FENV.
5490 * config.h.in: Regenerate.
5491 * configure: Regenerate.
5492 * include/c_compatibility/fenv.h: Check _GLIBCXX_USE_C99_FENV
5493 instead of _GLIBCXX_USE_C99_FENV_TR1.
5494 * include/c_global/cfenv: Likewise.
5495 * include/c_global/cctype: Check _GLIBCXX_USE_C99_CTYPE instead
5496 of _GLIBCXX_USE_C99_CTYPE_TR1.
5497
5498 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5499
5500 * acinclude.m4 (GLIBCXX_USE_C99): Check for <stdint.h> types in
5501 C++11 mode and define _GLIBCXX_USE_C99_STDINT. Check for
5502 <inttypes.h> features in C++11 mode and define
5503 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T.
5504 * config.h.in: Regenerate.
5505 * configure: Regenerate.
5506 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
5507 * include/bits/chrono.h: Check _GLIBCXX_USE_C99_STDINT instead
5508 of _GLIBCXX_USE_C99_STDINT_TR1.
5509 * include/c_compatibility/inttypes.h: Check
5510 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T
5511 instead of _GLIBCXX_USE_C99_INTTYPES_TR1 and
5512 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
5513 * include/c_compatibility/stdatomic.h: Check
5514 _GLIBCXX_USE_C99_STDINT instead of _GLIBCXX_USE_C99_STDINT_TR1.
5515 * include/c_compatibility/stdint.h: Likewise.
5516 * include/c_global/cinttypes: Check _GLIBCXX_USE_C99_INTTYPES
5517 and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T instead of
5518 _GLIBCXX_USE_C99_INTTYPES_TR1 and
5519 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
5520 * include/c_global/cstdint: Check _GLIBCXX_USE_C99_STDINT
5521 instead of _GLIBCXX_USE_C99_STDINT_TR1.
5522 * include/std/atomic: Likewise.
5523 * src/c++11/cow-stdexcept.cc: Likewise.
5524 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
5525 Likewise.
5526 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
5527 Likewise.
5528
5529 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5530
5531 * acinclude.m4 (GLIBCXX_USE_C99): Check for complex inverse trig
5532 functions in C++11 mode and define _GLIBCXX_USE_C99_COMPLEX_ARC.
5533 * config.h.in: Regenerate.
5534 * configure: Regenerate.
5535 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macro.
5536 * include/std/complex: Check _GLIBCXX_USE_C99_COMPLEX_ARC
5537 instead of _GLIBCXX_USE_C99_COMPLEX_TR1.
5538
5539 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5540
5541 * testsuite/ext/debug_allocator/check_deallocate_null.cc: Add
5542 assertion to ensure expected exception is throw.
5543
5544 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5545
5546 * testsuite/libstdc++-prettyprinters/chrono.cc: Only test
5547 printer for chrono::zoned_time for cx11 ABI and tzdb effective
5548 target.
5549
5550 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5551
5552 * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Define
5553 _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK in terms of _GLIBCXX_TSAN.
5554 * configure: Regenerate.
5555
5556 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5557
5558 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer
5559 to check for nan, nanf, and nanl.
5560 * configure: Regenerate.
5561
5562 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5563
5564 * include/bits/char_traits.h (char_traits<char16_t>): Do not
5565 depend on _GLIBCXX_USE_C99_STDINT_TR1.
5566 (char_traits<char32_t>): Likewise.
5567 * include/experimental/source_location: Likewise.
5568
5569 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5570
5571 * include/std/atomic (atomic_int_least8_t, atomic_uint_least8_t)
5572 (atomic_int_least16_t, atomic_uint_least16_t)
5573 (atomic_int_least32_t, atomic_uint_least32_t)
5574 (atomic_int_least64_t, atomic_uint_least64_t)
5575 (atomic_int_fast16_t, atomic_uint_fast16_t)
5576 (atomic_int_fast32_t, atomic_uint_fast32_t)
5577 (atomic_int_fast64_t, atomic_uint_fast64_t)
5578 (atomic_intmax_t, atomic_uintmax_t): Define unconditionally.
5579 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Adjust.
5580
5581 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5582
5583 * include/bits/algorithmfwd.h (shuffle): Do not depend on
5584 _GLIBCXX_USE_C99_STDINT_TR1.
5585 * include/bits/ranges_algo.h (shuffle): Likewise.
5586 * include/bits/stl_algo.h (shuffle): Likewise.
5587 * include/ext/random: Likewise.
5588 * include/ext/throw_allocator.h (random_condition): Likewise.
5589 * include/std/random: Likewise.
5590 * src/c++11/cow-string-inst.cc: Likewise.
5591 * src/c++11/random.cc: Likewise.
5592
5593 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5594
5595 * testsuite/experimental/feat-cxx14.cc: Remove dependency on
5596 _GLIBCXX_USE_C99_STDINT_TR1.
5597
5598 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5599
5600 * testsuite/22_locale/locale/cons/unicode.cc: Remove dependency
5601 on _GLIBCXX_USE_C99_STDINT_TR1.
5602
5603 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5604
5605 * testsuite/21_strings/basic_string_view/typedefs.cc: Remove
5606 dependency on _GLIBCXX_USE_C99_STDINT_TR1.
5607 * testsuite/experimental/string_view/typedefs.cc: Likewise.
5608
5609 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
5610
5611 * src/c++17/floating_from_chars.cc [USE_STRTOD_FOR_FROM_CHARS]
5612 (auto_locale, auto_ferounding): New class types.
5613 (from_chars_impl): Use auto_locale and auto_ferounding.
5614
5615 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
5616
5617 PR libstdc++/109772
5618 * include/std/chrono (hh_mm_ss::__fits): Remove variable
5619 template.
5620 (hh_mm_ss::__subseconds): Remove __fits from constraints.
5621 * testsuite/std/time/hh_mm_ss/109772.cc: New test.
5622 * testsuite/std/time/hh_mm_ss/1.cc: Adjust expected size for
5623 hh_mm_ss<duration<int, std::pico>>.
5624
5625 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
5626
5627 * config/abi/pre/gnu.ver: Export basic_string::_S_allocate.
5628 * include/bits/basic_ios.h: Add static assertion checking
5629 traits_type::value_type.
5630 * include/bits/basic_string.h: Likewise. Do not rebind
5631 allocator, and add static assertion checking its value_type.
5632 (basic_string::_Alloc_traits_impl): Remove class template.
5633 (basic_string::_S_allocate): New static member function.
5634 (basic_string::assign): Use _S_allocate.
5635 * include/bits/basic_string.tcc (basic_string::_M_create)
5636 (basic_string::reserve, basic_string::_M_replace): Likewise.
5637 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc:
5638 Disable for C++20 and later.
5639 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
5640 Likweise.
5641
5642 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
5643
5644 PR libstdc++/109758
5645 * include/bits/std_abs.h (abs(__float128)): Handle negative NaN
5646 and negative zero correctly.
5647 * testsuite/26_numerics/headers/cmath/109758.cc: New test.
5648
5649 2023-05-10 François Dumont <fdumont@gcc.gnu.org>
5650
5651 * include/bits/hashtable_policy.h
5652 (_NodeBuilder<>::_S_build): Use __node_ptr.
5653 (_ReuseOrAllocNode<>): Use __node_ptr in place of __node_type*.
5654 (_AllocNode<>): Likewise.
5655 (_Equality<>::_M_equal): Remove const_iterator usages. Only preserved
5656 to call std::is_permutation in the non-unique key implementation.
5657 * include/bits/hashtable.h (_Hashtable<>::_M_update_begin()): Capture
5658 _M_begin() once.
5659 (_Hashtable<>::_M_bucket_begin(size_type)): Implement implicitly inline.
5660 (_Hashtable<>::_M_insert_bucket_begin): Likewise.
5661 (_Hashtable<>::_M_remove_bucket_begin): Likewise.
5662 (_Hashtable<>::_M_compute_hash_code): Use __node_ptr rather than
5663 const_iterator.
5664 (_Hashtable<>::find): Likewise.
5665 (_Hashtable<>::_M_emplace): Likewise.
5666 (_Hashtable<>::_M_insert_unique): Likewise.
5667
5668 2023-05-09 Jonathan Wakely <jwakely@redhat.com>
5669
5670 * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter):
5671 Print floating-point durations correctly.
5672 (StdChronoTimePointPrinter): Support printing only the value,
5673 not the type name. Uncomment handling for known clocks.
5674 (StdChronoZonedTimePrinter): Remove type names from output.
5675 (StdChronoCalendarPrinter): Fix hh_mm_ss member access.
5676 (StdChronoTimeZonePrinter): Add equals sign to output.
5677 * testsuite/libstdc++-prettyprinters/chrono.cc: New test.
5678
5679 2023-05-05 Alexandre Oliva <oliva@adacore.com>
5680
5681 * testsuite/20_util/from_chars/4.cc: Skip long double test06
5682 on aarch64-vxworks.
5683 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
5684 aarch64-vxworks.
5685
5686 2023-05-04 Jonathan Wakely <jwakely@redhat.com>
5687
5688 * doc/xml/manual/abi.xml (abi.versioning.history): Document
5689 libstdc++.so.6.0.32 and GLIBCXX_3.4.32 version.
5690 * doc/html/manual/abi.html: Regenerate.
5691
5692 2023-05-04 Florian Weimer <fweimer@redhat.com>
5693
5694 * doc/xml/manual/abi.xml (abi.versioning.history): Add
5695 GCC_7.0.0, GCC_9.0.0, GCC_11.0, GCC_12.0.0, GCC_13.0.0 for
5696 libgcc_s.
5697
5698 2023-05-03 Jakub Jelinek <jakub@redhat.com>
5699
5700 * src/c++17/floating_from_chars.cc
5701 (_ZSt10from_charsPKcS0_RDF128_St12chars_format): New alias to
5702 _ZSt10from_charsPKcS0_Ru9__ieee128St12chars_format.
5703 * src/c++17/floating_to_chars.cc (_ZSt8to_charsPcS_DF128_): New alias to
5704 _ZSt8to_charsPcS_u9__ieee128.
5705 (_ZSt8to_charsPcS_DF128_St12chars_format): New alias to
5706 _ZSt8to_charsPcS_u9__ieee128St12chars_format.
5707 (_ZSt8to_charsPcS_DF128_St12chars_formati): New alias to
5708 _ZSt8to_charsPcS_u9__ieee128St12chars_formati.
5709 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Updated.
5710
5711 2023-05-03 Jakub Jelinek <jakub@redhat.com>
5712
5713 * configure.host (abi_baseline_pair): Use powerpc64le-linux-gnu
5714 rather than powerpc64-linux-gnu for powerpc64le*-linux*.
5715 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Remove
5716 _ZTI*DF128_, _ZTI*DF64x symbols and symbols in
5717 GLIBCXX_IEEE128_3.4.{29,30,31} and CXXABI_IEEE128_1.3.13 symbol
5718 versions.
5719 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: New
5720 file.
5721
5722 2023-05-03 Kefu Chai <kefu.chai@scylladb.com>
5723 Jonathan Wakely <jwakely@redhat.com>
5724
5725 PR libstdc++/109703
5726 * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
5727 Initialize _M_string_length.
5728
5729 2023-05-02 Jakub Jelinek <jakub@redhat.com>
5730
5731 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5732 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
5733 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
5734 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5735 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
5736 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
5737 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
5738 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
5739
5740 2023-05-02 Jakub Jelinek <jakub@redhat.com>
5741
5742 PR libstdc++/109694
5743 * src/c++98/ios_init.cc: Add #pragma GCC diagnostic ignored for
5744 -Wattribute-alias.
5745
5746 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
5747
5748 * include/bits/random.h (gamma_distribution): Add to the right
5749 doxygen group.
5750 (discrete_distribution, piecewise_constant_distribution)
5751 (piecewise_linear_distribution): Create a new doxygen group and
5752 fix the incomplete doxygen comments.
5753 * include/bits/uniform_int_dist.h (uniform_int_distribution):
5754 Add to doxygen group.
5755
5756 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
5757
5758 * include/bits/uses_allocator.h: Add missing @file comment.
5759 * include/bits/regex.tcc: Remove stray doxygen comments.
5760 * include/experimental/memory_resource: Likewise.
5761 * include/std/bit: Tweak doxygen @cond comments.
5762 * include/std/expected: Likewise.
5763 * include/std/numbers: Likewise.
5764
5765 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
5766
5767 * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
5768 from header paths.
5769
5770 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
5771
5772 * include/bits/move.h: Simplify opening/closing namespace std.
5773
5774 2023-04-28 Jakub Jelinek <jakub@redhat.com>
5775
5776 PR libstdc++/108969
5777 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export
5778 _ZSt21ios_base_library_initv.
5779 * testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.32
5780 symver and make it the latestp.
5781 * src/c++98/ios_init.cc (ios_base_library_init): New alias.
5782 * acinclude.m4 (libtool_VERSION): Change to 6:32:0.
5783 * include/std/iostream: If init_priority attribute is supported
5784 and _GLIBCXX_SYMVER_GNU, force undefined _ZSt21ios_base_library_initv
5785 symbol into the object.
5786 * configure: Regenerated.
5787
5788 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
5789
5790 * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
5791 * include/std/format: Likewise.
5792
5793 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
5794
5795 * doc/doxygen/user.cfg.in (FORMULA_TRANSPARENT, DOT_FONTNAME)
5796 (DOT_FONTSIZE, DOT_TRANSPARENT): Remove obsolete options.
5797
5798 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
5799
5800 * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
5801 HTML docs.
5802 * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
5803 from doxygen docs.
5804 * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
5805 Likewise.
5806 * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
5807 Likewise.
5808 * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
5809 Likewise.
5810 * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
5811 (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
5812 (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
5813 (_DEFINE_BINARY_OPERATOR): Likewise.
5814
5815 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
5816
5817 * include/bits/memory_resource.h: Improve doxygen comments.
5818 * include/std/memory_resource: Likewise.
5819
5820 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
5821
5822 PR libstdc++/40380
5823 * include/bits/basic_string.h: Improve doxygen comments.
5824 * include/bits/cow_string.h: Likewise.
5825 * include/bits/forward_list.h: Likewise.
5826 * include/bits/fs_dir.h: Likewise.
5827 * include/bits/fs_path.h: Likewise.
5828 * include/bits/quoted_string.h: Likewise.
5829 * include/bits/stl_bvector.h: Likewise.
5830 * include/bits/stl_map.h: Likewise.
5831 * include/bits/stl_multimap.h: Likewise.
5832 * include/bits/stl_multiset.h: Likewise.
5833 * include/bits/stl_set.h: Likewise.
5834 * include/bits/stl_vector.h: Likewise.
5835 * include/bits/unordered_map.h: Likewise.
5836 * include/bits/unordered_set.h: Likewise.
5837 * include/std/filesystem: Likewise.
5838 * include/std/iomanip: Likewise.
5839
5840 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
5841
5842 PR libstdc++/105081
5843 * src/c++11/random.cc (__throw_syserr): New function.
5844 (random_device::_M_init, random_device::_M_init_pretr1): Use new
5845 function for bad tokens.
5846 (random_device::_M_getval): Use new function for read errors.
5847 * testsuite/util/testsuite_random.h (random_device_available):
5848 Change catch handler to use std::system_error.
5849
5850 2023-04-24 Patrick Palka <ppalka@redhat.com>
5851
5852 * include/bits/max_size_type.h (__max_diff_type::operator>>=):
5853 Fix propagation of sign bit.
5854 * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
5855 non-standard 'signed typedef-name'. Add some compile-time tests
5856 for right-shifting a negative __max_diff_type value by more than
5857 one.
5858
5859 2023-04-19 Patrick Palka <ppalka@redhat.com>
5860 Jonathan Wakely <jwakely@redhat.com>
5861
5862 PR c++/100157
5863 * include/bits/utility.h (_Nth_type): Conditionally define in
5864 terms of __type_pack_element if available.
5865 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
5866 additional errors from the new built-in.
5867
5868 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
5869
5870 Revert:
5871 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
5872
5873 PR libstdc++/108969
5874 * src/Makefile.am: Move globals_io.cc to here.
5875 * src/Makefile.in: Regenerate.
5876 * src/c++98/Makefile.am: Remove globals_io.cc from here.
5877 * src/c++98/Makefile.in: Regenerate.
5878 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
5879 symbol name and then export with GLIBCXX_3.4.31 symver.
5880 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
5881 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
5882 Regenerate.
5883 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
5884 Regenerate.
5885 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
5886 Regenerate.
5887 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
5888 Regenerate.
5889 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
5890 Regenerate.
5891 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
5892 Regenerate.
5893 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
5894 Regenerate.
5895 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
5896 Regenerate.
5897 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
5898
5899 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
5900
5901 Revert:
5902 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
5903
5904 PR libstdc++/108969
5905 * config/abi/pre/gnu.ver: Fix preprocessor condition.
5906
5907 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
5908
5909 * doc/xml/manual/extensions.xml: Fix example to declare and
5910 qualify std::free, and use NULL instead of 0.
5911 * doc/html/manual/ext_demangling.html: Regenerate.
5912 * libsupc++/cxxabi.h: Adjust doxygen comments.
5913
5914 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
5915
5916 PR libstdc++/108969
5917 * config/abi/pre/gnu.ver: Fix preprocessor condition.
5918
5919 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
5920
5921 PR libstdc++/108969
5922 * src/Makefile.am: Move globals_io.cc to here.
5923 * src/Makefile.in: Regenerate.
5924 * src/c++98/Makefile.am: Remove globals_io.cc from here.
5925 * src/c++98/Makefile.in: Regenerate.
5926 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
5927 symbol name and then export with GLIBCXX_3.4.31 symver.
5928 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
5929 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
5930 Regenerate.
5931 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
5932 Regenerate.
5933 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
5934 Regenerate.
5935 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
5936 Regenerate.
5937 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
5938 Regenerate.
5939 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
5940 Regenerate.
5941 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
5942 Regenerate.
5943 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
5944 Regenerate.
5945 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
5946
5947 2023-04-18 Patrick Palka <ppalka@redhat.com>
5948
5949 PR libstdc++/108827
5950 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Bump value
5951 for C++23.
5952 * include/std/ranges (range_adaptor_closure): Define for C++23.
5953 * include/std/version (__cpp_lib_ranges): Bump value for
5954 C++23.
5955 * testsuite/std/ranges/version_c++23.cc: Bump expected value
5956 of __cpp_lib_ranges.
5957 * testsuite/std/ranges/range_adaptor_closure.cc: New test.
5958
5959 2023-04-18 Patrick Palka <ppalka@redhat.com>
5960
5961 * include/bits/ranges_algo.h (__cpp_lib_ranges_contains):
5962 Define for C++23.
5963 (__cpp_lib_ranges_iota): Likewise.
5964 (__cpp_lib_ranges_find_last): Likewise.
5965 (__cpp_lib_fold): Rename to ...
5966 (__cpp_lib_ranges_fold): ... this.
5967 * include/std/version: As above.
5968 * testsuite/25_algorithms/fold_left/1.cc: Adjust after
5969 renaming __cpp_lib_fold.
5970 * testsuite/std/ranges/version_c++23.cc: Verify values
5971 of the above feature-test macros.
5972
5973 2023-04-18 Patrick Palka <ppalka@redhat.com>
5974
5975 PR libstdc++/109525
5976 * include/std/ranges (views::_AsConst::operator()): Add
5977 missing const to constant_range test.
5978 * testsuite/std/ranges/adaptors/as_const/1.cc (test02):
5979 Improve formatting. Adjust expected type of v2.
5980 (test03): New test.
5981
5982 2023-04-14 Patrick Palka <ppalka@redhat.com>
5983
5984 * include/bits/ranges_base.h (const_iterator_t): Define for C++23.
5985 (const_sentinel_t): Likewise.
5986 (range_const_reference_t): Likewise.
5987 (constant_range): Likewise.
5988 (__cust_access::__possibly_const_range): Likewise, replacing ...
5989 (__cust_access::__as_const): ... this.
5990 (__cust_access::_CBegin::operator()): Redefine for C++23 as per P2278R4.
5991 (__cust_access::_CEnd::operator()): Likewise.
5992 (__cust_access::_CRBegin::operator()): Likewise.
5993 (__cust_access::_CREnd::operator()): Likewise.
5994 (__cust_access::_CData::operator()): Likewise.
5995 * include/bits/ranges_util.h (ranges::__detail::__different_from):
5996 Make it an alias of std::__detail::__different_from.
5997 (view_interface::cbegin): Define for C++23.
5998 (view_interface::cend): Likewise.
5999 * include/bits/stl_iterator.h (__detail::__different_from): Define.
6000 (iter_const_reference_t): Define for C++23.
6001 (__detail::__constant_iterator): Likewise.
6002 (__detail::__is_const_iterator): Likewise.
6003 (__detail::__not_a_const_iterator): Likewise.
6004 (__detail::__iter_const_rvalue_reference_t): Likewise.
6005 (__detail::__basic_const_iter_cat):: Likewise.
6006 (const_iterator): Likewise.
6007 (__detail::__const_sentinel): Likewise.
6008 (const_sentinel): Likewise.
6009 (basic_const_iterator): Likewise.
6010 (common_type<basic_const_iterator<_Tp>, _Up>): Likewise.
6011 (common_type<_Up, basic_const_iterator<_Tp>>): Likewise.
6012 (common_type<basic_const_iterator<_Tp>, basic_const_iterator<Up>>):
6013 Likewise.
6014 (make_const_iterator): Define for C++23.
6015 (make_const_sentinel): Likewise.
6016 * include/std/ranges (__cpp_lib_ranges_as_const): Likewise.
6017 (as_const_view): Likewise.
6018 (enable_borrowed_range<as_const_view>): Likewise.
6019 (views::__detail::__is_ref_view): Likewise.
6020 (views::__detail::__can_is_const_view): Likewise.
6021 (views::_AsConst, views::as_const): Likewise.
6022 * include/std/span (span::const_iterator): Likewise.
6023 (span::const_reverse_iterator): Likewise.
6024 (span::cbegin): Likewise.
6025 (span::cend): Likewise.
6026 (span::crbegin): Likewise.
6027 (span::crend): Likewise.
6028 * include/std/version (__cpp_lib_ranges_as_const): Likewise.
6029 * testsuite/std/ranges/adaptors/join.cc (test06): Adjust to
6030 behave independently of C++20 vs C++23.
6031 * testsuite/std/ranges/version_c++23.cc: Verify value of
6032 __cpp_lib_ranges_as_const macro.
6033 * testsuite/24_iterators/const_iterator/1.cc: New test.
6034 * testsuite/std/ranges/adaptors/as_const/1.cc: New test.
6035
6036 2023-04-14 Patrick Palka <ppalka@redhat.com>
6037
6038 * include/bits/ranges_base.h (__cust_access::__as_const)
6039 (__cust_access::_CBegin, __cust::cbegin)
6040 (__cust_access::_CEnd, __cust::cend)
6041 (__cust_access::_CRBegin, __cust::crbegin)
6042 (__cust_access::_CREnd, __cust::crend)
6043 (__cust_access::_CData, __cust::cdata): Move down definitions to
6044 shortly after the definition of input_range.
6045
6046 2023-04-14 Patrick Palka <ppalka@redhat.com>
6047
6048 * include/bits/ranges_algo.h: Include <optional> for C++23.
6049 (__cpp_lib_fold): Define for C++23.
6050 (in_value_result): Likewise.
6051 (__detail::__flipped): Likewise.
6052 (__detail::__indirectly_binary_left_foldable_impl): Likewise.
6053 (__detail::__indirectly_binary_left_foldable): Likewise.
6054 (___detail:__indirectly_binary_right_foldable): Likewise.
6055 (fold_left_with_iter_result): Likewise.
6056 (__fold_left_with_iter_fn, fold_left_with_iter): Likewise.
6057 (__fold_left_fn, fold_left): Likewise.
6058 (__fold_left_first_with_iter_fn, fold_left_first_with_iter):
6059 Likewise.
6060 (__fold_left_first_fn, fold_left_first): Likewise.
6061 (__fold_right_fn, fold_right): Likewise.
6062 (__fold_right_last_fn, fold_right_last): Likewise.
6063 * include/std/version (__cpp_lib_fold): Likewise.
6064 * testsuite/25_algorithms/fold_left/1.cc: New test.
6065 * testsuite/25_algorithms/fold_right/1.cc: New test.
6066
6067 2023-04-14 Jonathan Wakely <jwakely@redhat.com>
6068
6069 * include/std/format (formatter): Add comment to deleted default
6070 constructor of primary template.
6071 (_Checking_scanner): Add static_assert.
6072
6073 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
6074
6075 * doc/xml/manual/using.xml: Document libstdc++exp.a library.
6076 * doc/html/*: Regenerate.
6077
6078 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
6079
6080 * testsuite/17_intro/names.cc [_AIX]: Do not define policy.
6081 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Rename
6082 namespace to avoid clashing with libc struct.
6083 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
6084 Likewise.
6085 * testsuite/23_containers/unordered_map/96088.cc: Skip on AIX.
6086 * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
6087 * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
6088 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
6089 * testsuite/experimental/synchronized_value.cc: Require gthreads
6090 and add missing option for pthreads targets.
6091
6092 2023-04-12 Patrick Palka <ppalka@redhat.com>
6093
6094 * include/std/ranges (__cpp_lib_ranges_enumerate): Define
6095 for C++23.
6096 (__detail::__range_with_movable_reference): Likewise.
6097 (enumerate_view): Likewise.
6098 (enumerate_view::_Iterator): Likewise.
6099 (enumerate_view::_Sentinel): Likewise.
6100 (views::__detail::__can_enumerate_view): Likewise.
6101 (views::_Enumerate, views::enumerate): Likewise.
6102 * include/std/version (__cpp_lib_ranges_enumerate): Likewise.
6103 * testsuite/std/ranges/version_c++23.cc: Verify value of
6104 __cpp_lib_ranges_enumerate.
6105 * testsuite/std/ranges/adaptors/enumerate/1.cc: New test.
6106
6107 2023-04-12 Patrick Palka <ppalka@redhat.com>
6108
6109 * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
6110 Propagate _M_trailing_empty in the const-converting constructor
6111 as per LWG 3904.
6112 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): Correct
6113 assertion.
6114 * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
6115
6116 2023-04-12 Patrick Palka <ppalka@redhat.com>
6117
6118 * src/c++17/floating_from_chars.cc: Include <algorithm>,
6119 <iterator>, <limits> and <cstdint>.
6120
6121 2023-04-12 Patrick Palka <ppalka@redhat.com>
6122
6123 PR libstdc++/108291
6124 * include/std/ranges (chunk_by_view::_M_find_next): Generalize
6125 parameter types of the lambda wrapper passed to adjacent_find.
6126 (chunk_by_view::_M_find_prev): Likewise.
6127 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test04, test05):
6128 New tests.
6129
6130 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
6131
6132 PR libstdc++/109482
6133 * include/experimental/internet (basic_endpoint::basic_endpoint()):
6134 Ensure that the required union members are active. Only define
6135 as constexpr for C++20 and later.
6136 (basic_endpoint::basic_endpoint(const protocol_type&, port_type)):
6137 Likewise.
6138 * testsuite/experimental/net/internet/endpoint/cons.cc: Only
6139 check constexpr default constructor for C++20 and later.
6140 * testsuite/experimental/net/internet/endpoint/extensible.cc:
6141 Likewise.
6142
6143 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
6144
6145 * src/c++20/tzdata.zi: Import new file from 2023c release.
6146
6147 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6148
6149 * include/precompiled/stdc++.h (C++17): Don't double-include
6150 <charconv>, once with wrong conditions.
6151 * testsuite/18_support/96817.cc: Require hosted.
6152 * testsuite/18_support/bad_exception/59392.cc: Ditto.
6153 * testsuite/20_util/scoped_allocator/108952.cc: Ditto.
6154 * testsuite/20_util/uses_allocator/lwg3527.cc: Ditto.
6155 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
6156 Ditto.
6157
6158 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6159
6160 * include/bits/c++config: When __STDC_HOSTED__ is zero,
6161 disable _GLIBCXX_DEBUG and, if it was set, enable
6162 _GLIBCXX_ASSERTIONS.
6163 * testsuite/lib/libstdc++.exp (check_v3_target_debug_mode):
6164 Include <bits/c++config.h> when determining whether debug is
6165 set, in order to inherit the logic from above
6166
6167 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6168
6169 * testsuite/17_intro/versionconflict.cc: New test.
6170 * include/std/version: Allow disabling the system_header pragma
6171 via _GLIBCXX_TESTING_SYSHDR.
6172
6173 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6174
6175 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
6176 Synchronize the definition block with...
6177 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory):
6178 ... this one here. Also define the 202202L value, rather than
6179 leaving it up to purely unique_ptr.h, so that the value is
6180 synchronized across all headers.
6181 (__gnu_debug::_Safe_iterator_base): Move into new conditional
6182 block.
6183 * include/std/memory (__cpp_lib_atomic_value_initialization):
6184 Define on freestanding under the same conditions as in
6185 atomic_base.h.
6186 * include/std/version (__cpp_lib_robust_nonmodifying_seq_ops):
6187 Also define on freestanding.
6188 (__cpp_lib_to_chars): Ditto.
6189 (__cpp_lib_gcd): Ditto.
6190 (__cpp_lib_gcd_lcm): Ditto.
6191 (__cpp_lib_raw_memory_algorithms): Ditto.
6192 (__cpp_lib_array_constexpr): Ditto.
6193 (__cpp_lib_nonmember_container_access): Ditto.
6194 (__cpp_lib_clamp): Ditto.
6195 (__cpp_lib_constexpr_char_traits): Ditto.
6196 (__cpp_lib_constexpr_string): Ditto.
6197 (__cpp_lib_sample): Ditto.
6198 (__cpp_lib_lcm): Ditto.
6199 (__cpp_lib_constexpr_iterator): Ditto.
6200 (__cpp_lib_constexpr_char_traits): Ditto.
6201 (__cpp_lib_interpolate): Ditto.
6202 (__cpp_lib_constexpr_utility): Ditto.
6203 (__cpp_lib_shift): Ditto.
6204 (__cpp_lib_ranges): Ditto.
6205 (__cpp_lib_move_iterator_concept): Ditto.
6206 (__cpp_lib_constexpr_numeric): Ditto.
6207 (__cpp_lib_constexpr_functional): Ditto.
6208 (__cpp_lib_constexpr_algorithms): Ditto.
6209 (__cpp_lib_constexpr_tuple): Ditto.
6210 (__cpp_lib_constexpr_memory): Ditto.
6211
6212 2023-04-05 John David Anglin <danglin@gcc.gnu.org>
6213
6214 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Double
6215 timeout factor on hppa*-*-*.
6216
6217 2023-04-05 Jonathan Wakely <jwakely@redhat.com>
6218
6219 * include/bits/regex.h (sub_match::swap): New function.
6220 * testsuite/28_regex/sub_match/lwg3204.cc: New test.
6221
6222 2023-04-04 Jonathan Wakely <jwakely@redhat.com>
6223
6224 * doc/xml/manual/extensions.xml: Remove std::bad_exception from
6225 example program.
6226 * doc/html/manual/ext_demangling.html: Regenerate.
6227
6228 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
6229
6230 PR tree-optimization/107087
6231 * include/bits/cow_string.h (basic_string::size()): Add
6232 optimizer hint that _S_empty_rep()._M_length is always zero.
6233 (basic_string::length()): Call size().
6234
6235 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
6236
6237 PR libstdc++/109339
6238 * include/std/stop_token (_Stop_state_ptr(const stop_source&)):
6239 Add attribute access with access-mode 'none'.
6240 * testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
6241
6242 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
6243
6244 * include/experimental/internet (ip::basic_endpoint::_M_if_v6):
6245 Revert change from member function to data member. Fix for
6246 constant evaluation by detecting which union member is active.
6247 (ip::basic_endpoint::resize): Revert changes to update _M_is_v6
6248 flag.
6249
6250 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6251
6252 PR libstdc++/109242
6253 * testsuite/20_util/optional/monadic/pr109340.cc: Moved to...
6254 * testsuite/20_util/optional/monadic/pr109242.cc: ...here.
6255
6256 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6257
6258 * include/experimental/internet (ip::make_address): Implement
6259 missing overload.
6260 (ip::address_v4::broadcast()): Avoid undefined shift.
6261 (ip::basic_endpoint): Fix member functions for constexpr.
6262 (ip::basic_endpoint::_M_is_v6): Replace member function with
6263 data member, adjust member functions using it.
6264 (ip::basic_endpoint::resize): Update _M_is_v6 based on sockaddr
6265 content.
6266 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
6267 constexpr checks to work in C++14.
6268 * testsuite/experimental/net/internet/address/v4/creation.cc:
6269 Likewise.
6270 * testsuite/experimental/net/internet/endpoint/cons.cc:
6271 Likewise.
6272 * testsuite/experimental/net/internet/network/v4/cons.cc:
6273 Likewise.
6274 * testsuite/experimental/net/internet/network/v4/members.cc:
6275 Likewise.
6276 * testsuite/experimental/net/internet/endpoint/extensible.cc: New test.
6277
6278 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6279
6280 * include/std/expected (expected::value() &): Use const lvalue
6281 for unex member passed to bad_expected_access constructor, as
6282 per LWG 3843.
6283
6284 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6285
6286 PR libstdc++/109340
6287 * include/std/expected (expected::transform): Use
6288 std::remove_cv_t instead of std::remove_cvref_t.
6289 (expected::transform_error): Likewise.
6290 (expected<cv void, E>::transform): Likewise.
6291 (expected<cv void, E>::transform_error): Likewise.
6292 * include/std/optional (transform): Use std::remove_cv_t.
6293 * testsuite/20_util/optional/monadic/pr109340.cc: New test.
6294
6295 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6296
6297 * include/std/optional (optional): Adjust static assertion to
6298 reject arrays and functions as well as references.
6299 * testsuite/20_util/optional/requirements_neg.cc: New test.
6300
6301 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6302
6303 PR libstdc++/103387
6304 * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
6305 std::use_facet instead of cached _M_num_get facet.
6306 (istream::operator>>(short&)): Likewise.
6307 (istream::operator>>(int&)): Likewise.
6308 * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
6309 std::use_facet instead of cached _M_num_put facet.
6310
6311 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6312
6313 * include/bits/char_traits.h (char_traits::copy): Return without
6314 using memcpy if n==0.
6315 (char_traits::assign): Likewise for memset.
6316
6317 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6318
6319 PR libstdc++/109299
6320 * include/bits/basic_string.h (basic_string::_M_is_local()): Add
6321 hint for compiler that local strings fit in the local buffer.
6322
6323 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6324
6325 PR libstdc++/109288
6326 * include/std/chrono (__detail::__get_leap_second_info): Update
6327 expiry date of hardcoded leapseconds list.
6328 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds()):
6329 Likewise.
6330 * src/c++20/tzdata.zi: Import new file from 2023a release.
6331 * testsuite/std/time/time_zone/get_info_local.cc: Only check
6332 transitions for Egypt up to 2014.
6333
6334 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
6335
6336 * include/experimental/bits/simd.h (is_simd_flag_type): New.
6337 (_IsSimdFlagType): New.
6338 (copy_from, copy_to, load ctors): Constrain _Flags using
6339 _IsSimdFlagType.
6340
6341 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
6342
6343 * include/experimental/bits/simd_x86.h (_SimdImplX86): Use
6344 _Base::_S_divides if the optimized _S_divides function is hidden
6345 via the preprocessor.
6346
6347 2023-03-27 Jakub Jelinek <jakub@redhat.com>
6348
6349 * testsuite/experimental/net/timer/waitable/dest.cc: Avoid -Wformat
6350 warning if size_t is not unsigned long.
6351
6352 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6353
6354 * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
6355 Add overload, as per LWG 3893.
6356 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
6357 Check assignment from nullptr.
6358
6359 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6360
6361 * include/std/format (formatter<const charT[N], charT>): Do not
6362 define partial speclialization, as per LWG 3833.
6363 * testsuite/std/format/formatter/requirements.cc: Check it.
6364
6365 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6366
6367 * include/std/utility (__cpp_lib_constexpr_algorithms): Define,
6368 as per LWG 3792.
6369 * testsuite/20_util/exchange/constexpr.cc: Check for it.
6370
6371 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6372
6373 * include/std/version (__cpp_lib_format): Define.
6374 * testsuite/std/format/functions/format.cc: Check it.
6375
6376 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6377
6378 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
6379 Pass rvalues to the callback, as now allowed by LWG 3645.
6380 Enforce preconditions on the return value.
6381 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
6382 Adjust.
6383
6384 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6385
6386 * include/std/format: Add a comment noting that the resolution
6387 of LWG 3720 has been applied..
6388
6389 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6390
6391 * include/bits/regex.h (match_results): Add allocator-extended
6392 copy and move constructors, as per LWG 2195.
6393 * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test.
6394
6395 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6396
6397 * include/bits/stream_iterator.h (istream_iterator): Add
6398 constexpr to copy constructor, as per LWG 3600.
6399 * testsuite/24_iterators/istream_iterator/cons/constexpr.cc:
6400 Check copy construction.
6401
6402 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6403
6404 * include/experimental/bits/simd_x86.h
6405 (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
6406 with __RECIPROCAL_MATH__.
6407
6408 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6409
6410 * include/experimental/bits/simd_detail.h: Don't define
6411 _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
6412 * include/experimental/bits/simd_x86.h (_S_divides): Remove
6413 check for __clang__.
6414
6415 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6416
6417 * include/experimental/bits/simd_detail.h: Don't declare the
6418 simd API as constexpr with Clang.
6419 * include/experimental/bits/simd_x86.h (__movm): New.
6420 (_S_blend_avx512): Resolve FIXME. Implement blend using __movm
6421 and ?:.
6422 (_SimdImplX86::_S_masked_unary): Clang does not implement the
6423 same builtins. Implement the function using __movm, ?:, and -
6424 operators on vector_size types instead.
6425
6426 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6427
6428 * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
6429 define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
6430
6431 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
6432
6433 * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
6434 formatting.
6435
6436 2023-03-20 Marek Polacek <polacek@redhat.com>
6437
6438 PR c++/109159
6439 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust dg-error.
6440 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
6441 * testsuite/23_containers/span/explicit.cc: Likewise.
6442
6443 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
6444
6445 PR libstdc++/109182
6446 * include/std/expected (expected<void>::expected(in_place_t)):
6447 Remove template-head.
6448
6449 2023-03-18 Jonathan Wakely <jwakely@redhat.com>
6450
6451 PR libstdc++/109165
6452 * testsuite/18_support/coroutines/hash.cc: Use const object
6453 in second call.
6454
6455 2023-03-17 Jonathan Wakely <jwakely@redhat.com>
6456
6457 PR libstdc++/109165
6458 * include/std/coroutine (hash<>::operator()): Add const.
6459 * testsuite/18_support/coroutines/hash.cc: New test.
6460
6461 2023-03-14 Patrick Palka <ppalka@redhat.com>
6462
6463 PR libstdc++/109111
6464 * include/std/ranges (repeat_view): Remove redundant parentheses
6465 in requires-clause.
6466 (repeat_view::_Iterator): Correct the requires-clause.
6467
6468 2023-03-14 Patrick Palka <ppalka@redhat.com>
6469
6470 * include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
6471 Define.
6472 (__cpp_lib_move_iterator_concept): Define for C++20.
6473 (move_iterator::iterator_concept): Strengthen as per P2520R0.
6474 * include/std/version (__cpp_lib_move_iterator_concept): Define
6475 for C++20.
6476 * testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
6477
6478 2023-03-14 Patrick Palka <ppalka@redhat.com>
6479
6480 * include/bits/ranges_util.h (view_interface::empty): Add
6481 preferred overloads that use ranges::size when the range is
6482 sized as per LWG 3715.
6483 * testsuite/std/ranges/adaptors/lwg3715.cc: New test.
6484
6485 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
6486
6487 * include/bits/chrono.h (__is_duration_v, __is_time_point_v):
6488 Only define for C++17 and later.
6489
6490 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
6491
6492 * src/Makefile.am: Add comment about linker script fragments.
6493 * src/Makefile.in: Regenerate.
6494
6495 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
6496
6497 PR libstdc++/62196
6498 * include/bits/mask_array.h (mask_array): Add assertions to
6499 assignment operators.
6500 * include/std/valarray (valarray::operator[](valarray<bool>)):
6501 Add assertions.
6502 * testsuite/26_numerics/valarray/mask-1_neg.cc: New test.
6503 * testsuite/26_numerics/valarray/mask-2_neg.cc: New test.
6504 * testsuite/26_numerics/valarray/mask-3_neg.cc: New test.
6505 * testsuite/26_numerics/valarray/mask-4_neg.cc: New test.
6506 * testsuite/26_numerics/valarray/mask-5_neg.cc: New test.
6507 * testsuite/26_numerics/valarray/mask-6_neg.cc: New test.
6508 * testsuite/26_numerics/valarray/mask-7_neg.cc: New test.
6509 * testsuite/26_numerics/valarray/mask-8_neg.cc: New test.
6510 * testsuite/26_numerics/valarray/mask.cc: New test.
6511
6512 2023-03-13 Jakub Jelinek <jakub@redhat.com>
6513
6514 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6515 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6516
6517 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
6518
6519 * doc/Makefile.am: Add comment referring to documentation.
6520 * doc/Makefile.in: Regenerate.
6521
6522 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
6523
6524 * doc/html/*: Regenerate.
6525
6526 2023-03-13 Jonny Grant <jg@jguk.org>
6527
6528 * doc/xml/faq.xml: Update copyright year.
6529
6530 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
6531
6532 * include/bits/allocator.h: Fix typo in comment.
6533
6534 2023-03-12 Jakub Jelinek <jakub@redhat.com>
6535
6536 * config/abi/pre/gnu.ver (CXXABI_1.3.14): Also export __bf16 tinfos
6537 if it isn't mangled as DF16b but u6__bf16.
6538
6539 2023-03-12 Gerald Pfeifer <gerald@pfeifer.com>
6540
6541 * doc/xml/manual/documentation_hacking.xml: Move www.graphviz.org
6542 to https.
6543 * doc/html/manual/documentation_hacking.html: Regenerate.
6544
6545 2023-03-10 Jonathan Wakely <jwakely@redhat.com>
6546
6547 PR libstdc++/109064
6548 * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
6549 Remove self-recursion in __init__. Add missing _supports.
6550 * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
6551 and unique().
6552
6553 2023-03-09 Patrick Palka <ppalka@redhat.com>
6554
6555 * include/std/ranges
6556 (cartesian_product_view::_Iterator::_Iterator): Remove
6557 constraint on default constructor as per LWG 3849.
6558 (cartesian_product_view::_Iterator::_M_prev): Adjust position
6559 of _Nm > 0 test as per LWG 3820.
6560 (cartesian_product_view::_Iterator::_M_advance): Perform bounds
6561 checking only on sized cartesian products.
6562 * testsuite/std/ranges/cartesian_product/1.cc (test08): New test.
6563
6564 2023-03-09 Patrick Palka <ppalka@redhat.com>
6565
6566 PR libstdc++/109024
6567 * include/std/ranges (chunk_by_view::_M_pred): Remove DMI as per
6568 LWG 3796.
6569 (repeat_view::_M_pred): Likewise.
6570 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test03): New test.
6571 * testsuite/std/ranges/repeat/1.cc (test05): New test.
6572
6573 2023-03-09 Patrick Palka <ppalka@redhat.com>
6574
6575 PR libstdc++/108362
6576 * include/std/ranges (__detail::__can_single_view): New concept.
6577 (_Single::operator()): Constrain it. Move [[nodiscard]] to the
6578 end of the function declarator.
6579 (__detail::__can_iota_view): New concept.
6580 (_Iota::operator()): Constrain it. Move [[nodiscard]] to the
6581 end of the function declarator.
6582 (__detail::__can_istream_view): New concept.
6583 (_Istream::operator()): Constrain it. Move [[nodiscard]] to the
6584 end of the function declarator.
6585 * testsuite/std/ranges/iota/iota_view.cc (test07): New test.
6586 * testsuite/std/ranges/istream_view.cc (test08): New test.
6587 * testsuite/std/ranges/single_view.cc (test07): New test.
6588
6589 2023-03-09 Patrick Palka <ppalka@redhat.com>
6590
6591 PR libstdc++/107572
6592 * include/std/ranges (cartesian_product_view::end): When
6593 building the tuple of iterators, avoid calling ranges::begin on
6594 the first range if __empty_tail is false.
6595 * testsuite/std/ranges/cartesian_product/1.cc (test07): New test.
6596
6597 2023-03-09 Jonathan Wakely <jwakely@redhat.com>
6598
6599 PR libstdc++/108882
6600 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Fix incorrect
6601 patterns.
6602
6603 2023-03-07 Jakub Jelinek <jakub@redhat.com>
6604
6605 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
6606 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
6607 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
6608 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6609 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
6610
6611 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
6612
6613 PR libstdc++/108882
6614 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Adjust patterns to
6615 not match symbols in namespace std::__gnu_cxx11_ieee128.
6616 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add patterns for
6617 std::__gnu_cxx11_ieee128::money_{get,put}.
6618
6619 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
6620
6621 * libsupc++/eh_personality.cc: Fix spelling in comment.
6622
6623 2023-03-03 Alexandre Oliva <oliva@adacore.com>
6624
6625 * testsuite/30_threads/async/async.cc (test04): Initialize
6626 steady_start, renamed from steady_begin, next to slow_start.
6627 Increase tolerance for final wait.
6628
6629 2023-03-03 Alexandre Oliva <oliva@adacore.com>
6630
6631 * testsuite/libstdc++-prettyprinters/80276.cc: Add
6632 std::string to debug info.
6633 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
6634
6635 2023-03-03 Alexandre Oliva <oliva@adacore.com>
6636
6637 PR libstdc++/104852
6638 PR libstdc++/95989
6639 PR libstdc++/52590
6640 * include/bits/std_thread.h (thread::_M_thread_deps): New
6641 static implicitly-inline member function.
6642 (std::thread template ctor): Pass it to _M_start_thread.
6643 * src/c++11/thread.cc (thread::_M_start_thread): Name depend
6644 parameter, force it live on entry.
6645
6646 2023-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6647
6648 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
6649 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
6650 Likewise.
6651 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
6652 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
6653 Likewise.
6654
6655 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
6656
6657 * include/bits/cow_string.h: Fix typo in comment.
6658
6659 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
6660
6661 * src/c++20/tzdb.cc (chrono::tzdb::current_zone()) Use "UTC" if
6662 current time zone cannot be determined.
6663 * testsuite/std/time/tzdb/1.cc: Remove conditions based on
6664 HAVE_TZDB macro and test all members unconditionally.
6665
6666 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
6667
6668 PR libstdc++/108952
6669 * include/bits/uses_allocator_args.h
6670 (uses_allocator_construction_args): Implement LWG 3527.
6671 * testsuite/20_util/pair/astuple/get-2.cc: New test.
6672 * testsuite/20_util/scoped_allocator/108952.cc: New test.
6673 * testsuite/20_util/uses_allocator/lwg3527.cc: New test.
6674
6675 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
6676
6677 PR libstdc++/108846
6678 * include/bits/stl_algobase.h (__copy_move<false, false, RA>)
6679 Add __assign_one static member function.
6680 (__copy_move<true, false, RA>): Likewise.
6681 (__copy_move<IsMove, true, RA>): Do not use memmove for a single
6682 value.
6683 (__copy_move_backward<IsMove, true, RA>): Likewise.
6684 * testsuite/25_algorithms/copy/108846.cc: New test.
6685 * testsuite/25_algorithms/copy_backward/108846.cc: New test.
6686 * testsuite/25_algorithms/copy_n/108846.cc: New test.
6687 * testsuite/25_algorithms/move/108846.cc: New test.
6688 * testsuite/25_algorithms/move_backward/108846.cc: New test.
6689
6690 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
6691
6692 * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
6693 attributes.
6694
6695 2023-02-27 Jonathan Wakely <jwakely@redhat.com>
6696
6697 * include/bits/basic_ios.h (basic_ios::_M_setstate): Add
6698 caveat to comment.
6699 * include/bits/basic_string.h (resize_and_overwrite): Add
6700 doxygen comment.
6701
6702 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
6703
6704 * include/experimental/bits/simd.h: Line breaks and indenting
6705 fixed to follow the libstdc++ standard.
6706 * include/experimental/bits/simd_builtin.h: Likewise.
6707 * include/experimental/bits/simd_fixed_size.h: Likewise.
6708 * include/experimental/bits/simd_neon.h: Likewise.
6709 * include/experimental/bits/simd_ppc.h: Likewise.
6710 * include/experimental/bits/simd_scalar.h: Likewise.
6711 * include/experimental/bits/simd_x86.h: Likewise.
6712
6713 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
6714
6715 PR libstdc++/108030
6716 * include/experimental/bits/simd_fixed_size.h
6717 (_SimdImplFixedSize::_S_broadcast): Replace inline with
6718 _GLIBCXX_SIMD_INTRINSIC.
6719 (_SimdImplFixedSize::_S_generate): Likewise.
6720 (_SimdImplFixedSize::_S_load): Likewise.
6721 (_SimdImplFixedSize::_S_masked_load): Likewise.
6722 (_SimdImplFixedSize::_S_store): Likewise.
6723 (_SimdImplFixedSize::_S_masked_store): Likewise.
6724 (_SimdImplFixedSize::_S_min): Likewise.
6725 (_SimdImplFixedSize::_S_max): Likewise.
6726 (_SimdImplFixedSize::_S_complement): Likewise.
6727 (_SimdImplFixedSize::_S_unary_minus): Likewise.
6728 (_SimdImplFixedSize::_S_plus): Likewise.
6729 (_SimdImplFixedSize::_S_minus): Likewise.
6730 (_SimdImplFixedSize::_S_multiplies): Likewise.
6731 (_SimdImplFixedSize::_S_divides): Likewise.
6732 (_SimdImplFixedSize::_S_modulus): Likewise.
6733 (_SimdImplFixedSize::_S_bit_and): Likewise.
6734 (_SimdImplFixedSize::_S_bit_or): Likewise.
6735 (_SimdImplFixedSize::_S_bit_xor): Likewise.
6736 (_SimdImplFixedSize::_S_bit_shift_left): Likewise.
6737 (_SimdImplFixedSize::_S_bit_shift_right): Likewise.
6738 (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
6739 explicit about not always-inline, yet).
6740 (_SimdImplFixedSize::_S_isinf): Likewise.
6741 (_SimdImplFixedSize::_S_isfinite): Likewise.
6742 (_SimdImplFixedSize::_S_isnan): Likewise.
6743 (_SimdImplFixedSize::_S_isnormal): Likewise.
6744 (_SimdImplFixedSize::_S_signbit): Likewise.
6745
6746 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
6747
6748 PR libstdc++/108856
6749 * include/experimental/bits/simd_builtin.h
6750 (_SimdImplBuiltin::_S_masked_unary): More efficient
6751 implementation of masked inc-/decrement for integers and floats
6752 without AVX2.
6753 * include/experimental/bits/simd_x86.h
6754 (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
6755 builtins for masked inc-/decrement.
6756
6757 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6758
6759 * include/experimental/executor (executor): Constrain template
6760 constructors.
6761
6762 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6763
6764 * include/experimental/internet (basic_endpoint): Add missing
6765 constexpr to comparison operators.
6766 * testsuite/experimental/net/internet/endpoint/cons.cc: New test.
6767
6768 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6769
6770 * include/experimental/internet (network_v4::netmask()): Avoid
6771 undefined shift.
6772 (network_v4::broadcast()): Optimize and fix for targets with
6773 uint_least32_t wider than 32 bits.
6774 (network_v4::to_string(const Allocator&)): Fix for custom
6775 allocators and optimize using to_chars.
6776 (operator==(const network_v4&, const network_v4&)): Add missing
6777 constexpr.
6778 (operator==(const network_v6&, const network_v6&)): Likewise.
6779 * testsuite/experimental/net/internet/network/v4/cons.cc: New test.
6780 * testsuite/experimental/net/internet/network/v4/members.cc: New test.
6781
6782 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6783
6784 * include/experimental/internet (address_4(const bytes_type&)):
6785 Use __builtin_bit_cast if available, otherwise convert to
6786 network byte order.
6787 (address_v4::to_bytes()): Likewise, but convert from network
6788 byte order.
6789 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
6790 incorrect tests. Check for constexpr too.
6791 * testsuite/experimental/net/internet/address/v4/creation.cc:
6792 Likewise.
6793 * testsuite/experimental/net/internet/address/v4/members.cc:
6794 Check that bytes_type is a standard-layout type.
6795
6796 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6797
6798 * include/experimental/internet (address_v4::to_string):
6799 Optimize.
6800 * testsuite/experimental/net/internet/address/v4/members.cc:
6801 Check more addresses.
6802
6803 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6804
6805 * include/ext/aligned_buffer.h (__aligned_buffer): Add
6806 diagnostic pragmas.
6807
6808 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6809
6810 * testsuite/std/format/arguments/lwg3810.cc: Move dg-options
6811 before dg-do.
6812
6813 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
6814
6815 * testsuite/experimental/simd/tests/reductions.cc: Introduce
6816 max_distance as the type-dependent max error.
6817
6818 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
6819
6820 * include/experimental/bits/simd_builtin.h (_S_set): Compare as
6821 int. The actual range of these indexes is very small.
6822
6823 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
6824
6825 * include/experimental/bits/simd_x86.h (_S_bit_shift_left)
6826 (_S_bit_shift_right): Declare constexpr. The implementation was
6827 already expecting constexpr evaluation.
6828
6829 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
6830
6831 PR libstdc++/108030
6832 * include/experimental/bits/simd_detail.h
6833 (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
6834 __clang__.
6835
6836 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
6837
6838 PR libstdc++/108030
6839 * include/experimental/bits/simd.h (__vector_broadcast):
6840 Implement via __vector_broadcast_impl instead of
6841 __call_with_n_evaluations + 2 lambdas.
6842 (__vector_broadcast_impl): New.
6843
6844 2023-02-22 Alexandre Oliva <oliva@adacore.com>
6845
6846 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex):
6847 Avoid destruction of the mutex pool.
6848
6849 2023-02-22 Alexandre Oliva <oliva@adacore.com>
6850
6851 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: xfail
6852 on vxworks.
6853 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
6854 Likewise.
6855
6856 2023-02-22 Alexandre Oliva <oliva@adacore.com>
6857
6858 * testsuite/17_intro/names.cc: Undef func on vxworks >= 7 in
6859 kernel mode.
6860
6861 2023-02-20 Andreas Schwab <schwab@linux-m68k.org>
6862
6863 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
6864
6865 2023-02-20 Matthias Kretz <m.kretz@gsi.de>
6866
6867 * include/experimental/bits/simd.h (__extract_part, split):
6868 Use reserved name for template parameter.
6869
6870 2023-02-20 Andreas Schwab <schwab@suse.de>
6871
6872 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
6873
6874 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
6875
6876 * doc/xml/faq.xml: Switch two links to www.open-std.org to https.
6877 * doc/html/faq.html: Regenerate.
6878
6879 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6880
6881 * include/experimental/bits/simd_math.h (__hypot): Bitcasting
6882 between scalars requires the __bit_cast helper function instead
6883 of simd_bit_cast.
6884
6885 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6886
6887 * include/experimental/bits/simd_x86.h
6888 (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
6889 (_SimdImplX86::_S_less_equal): Do not call
6890 __builtin_is_constant_evaluated in constexpr-if.
6891
6892 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6893
6894 * testsuite/experimental/simd/tests/bits/verify.h
6895 (verify::verify): Use %zx for size_t in format string.
6896
6897 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6898
6899 * testsuite/experimental/simd/generate_makefile.sh: Generate and
6900 pre-compile pch.h, which includes all headers that do not depend
6901 on command-line macros.
6902 * testsuite/experimental/simd/tests/bits/main.h: New file.
6903 (iterate_abis, main): Moved from verify.h.
6904 * testsuite/experimental/simd/tests/bits/verify.h
6905 (iterate_abis, main): Moved to main.h.
6906 * testsuite/experimental/simd/tests/bits/conversions.h: Add
6907 include guard.
6908 (genHalfBits): Simplify.
6909 * testsuite/experimental/simd/tests/bits/make_vec.h: Add include
6910 guard.
6911 (make_alternating_mask): Moved from mask_loadstore.
6912 * testsuite/experimental/simd/tests/bits/mathreference.h: Add
6913 include guard.
6914 * testsuite/experimental/simd/tests/bits/test_values.h: Ditto.
6915 * testsuite/experimental/simd/tests/mask_loadstore.cc
6916 (make_mask, make_alternating_mask): Removed.
6917 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
6918 * testsuite/experimental/simd/tests/operators.cc (genHalfBits):
6919 Removed.
6920 * testsuite/experimental/simd/tests/abs.cc: Only include
6921 bits/main.h.
6922 Ditto.
6923 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
6924 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
6925 * testsuite/experimental/simd/tests/casts.cc: Ditto.
6926 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto.
6927 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
6928 * testsuite/experimental/simd/tests/generator.cc: Ditto.
6929 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
6930 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
6931 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
6932 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
6933 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
6934 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
6935 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
6936 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
6937 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
6938 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
6939 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
6940 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
6941 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
6942 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
6943 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
6944 * testsuite/experimental/simd/tests/simd.cc: Ditto.
6945 * testsuite/experimental/simd/tests/sincos.cc: Ditto.
6946 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
6947 * testsuite/experimental/simd/tests/splits.cc: Ditto.
6948 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
6949 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
6950 * testsuite/experimental/simd/tests/where.cc: Ditto.
6951
6952 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6953
6954 * testsuite/experimental/simd/README.md: Document the timeout
6955 and timeout-factor directives. Minor typo fixed.
6956
6957 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6958
6959 PR libstdc++/108030
6960 * include/experimental/bits/simd_detail.h: Define
6961 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
6962 * include/experimental/bits/simd.h: Annotate lambdas with
6963 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
6964 * include/experimental/bits/simd_builtin.h: Ditto.
6965 * include/experimental/bits/simd_converter.h: Ditto.
6966 * include/experimental/bits/simd_fixed_size.h: Ditto.
6967 * include/experimental/bits/simd_math.h: Ditto.
6968 * include/experimental/bits/simd_neon.h: Ditto.
6969 * include/experimental/bits/simd_x86.h: Ditto.
6970
6971 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6972
6973 * include/experimental/bits/simd.h
6974 (_SimdWrapper::_M_is_constprop_none_of)
6975 (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
6976 computed result still satisfies __builtin_constant_p.
6977
6978 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6979
6980 * testsuite/std/format/arguments/lwg3810.cc: Replace UTF-8
6981 ellipsis character.
6982
6983 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6984
6985 * include/Makefile.am: Add new header.
6986 * include/Makefile.in: Regenerate.
6987 * include/experimental/synchronized_value: New file.
6988 * testsuite/experimental/synchronized_value.cc: New test.
6989
6990 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6991
6992 * include/experimental/optional: Fix header name in comment.
6993
6994 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6995
6996 * include/std/format (__format::_Arg_store): New class template.
6997 (basic_format_args): Remove nested type _Store and add deduction
6998 guide from _Arg_store.
6999 (basic_format_arg, make_format_args): Adjust.
7000 * testsuite/std/format/arguments/lwg3810.cc: New test.
7001
7002 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7003
7004 * include/bits/stl_pair.h (pair) [C++20]: Add non-dangling
7005 constraints to constructors and add deleted overloads for the
7006 dangling cases, as per P2255R2.
7007 (pair) [!C++20 && _GLIBCXX_DEBUG]: Add static assertions to
7008 make dangling cases ill-formed.
7009 * testsuite/20_util/pair/dangling_ref.cc: New test.
7010
7011 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7012
7013 * testsuite/17_intro/names_pstl.cc: Require et tbb_backend.
7014
7015 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7016
7017 * include/ext/throw_allocator.h: Use reserved names for
7018 parameters.
7019
7020 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7021
7022 * testsuite/17_intro/names_pstl.cc: Add space after effective
7023 target name.
7024
7025 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7026
7027 * include/pstl/algorithm_fwd.h (__pattern_search_n)
7028 (__brick_unique_copy, __brick_adjacent_find)
7029 (__brick_generate_n, __pattern_generate_n): Use reserved names
7030 for parameters.
7031 * include/pstl/algorithm_impl.h (__brick_unique_copy)
7032 (__pattern_reverse, __brick_generate_n): Likewise.
7033 * include/pstl/execution_impl.h (__prefer_unsequenced_tag)
7034 (__prefer_parallel_tag): Likewise.
7035 * include/pstl/glue_algorithm_impl.h (transform): Likewise.
7036 * include/pstl/glue_numeric_defs.h (adjacent_difference):
7037 Likewise.
7038 * include/pstl/numeric_impl.h (__brick_adjacent_difference):
7039 Likewise.
7040 * include/pstl/parallel_backend_tbb.h (__merge_func): Likewise.
7041 * include/pstl/unseq_backend_simd.h (_Combiner)
7042 (__simd_min_element, __simd_minmax_element): Likewise.
7043 * testsuite/17_intro/names_pstl.cc: New test.
7044
7045 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
7046
7047 * include/bits/fs_ops.h (create_directory): Use reserved name
7048 for parameter.
7049 * include/bits/ranges_algo.h (__contains_subrange_fn):
7050 Likewise.
7051 * include/bits/regex_automaton.h (_State_base::_M_print):
7052 Likewise.
7053 * include/bits/regex_automaton.tcc(_State_base::_M_print):
7054 Likewise.
7055 * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
7056 * include/experimental/bits/fs_ops.h (create_directory):
7057 Likewise.
7058 * include/std/mutex (timed_mutex::_M_clocklock): Likewise.
7059 (recursive_timed_mutex:_M_clocklock): Likewise.
7060 * include/std/tuple (basic_common_reference): Likewise.
7061 * libsupc++/cxxabi_init_exception.h
7062 (__cxa_init_primary_exception): Likewise.
7063 * testsuite/17_intro/names.cc: Add checks.
7064
7065 2023-02-14 Gerald Pfeifer <gerald@pfeifer.com>
7066
7067 * doc/xml/manual/status_cxx2017.xml: Update an open-std.org link
7068 to www.open-std.org and https.
7069 * doc/html/manual/status.html: Regenerate.
7070
7071 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
7072
7073 PR libstdc++/103934
7074 * include/std/atomic (atomic_flag_wait): Add.
7075 (atomic_flag_wait_explicit): Add.
7076 (atomic_flag_notify): Add.
7077 (atomic_flag_notify_explicit): Add.
7078 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
7079 Add test case to cover missing atomic_flag free functions.
7080
7081 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
7082
7083 PR libstdc++/103934
7084 * include/std/atomic (atomic_flag_test): Add.
7085 (atomic_flag_test_explicit): Add.
7086 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
7087 test case to cover missing atomic_flag free functions.
7088 * testsuite/29_atomics/atomic_flag/test/implicit.cc:
7089 Likewise.
7090
7091 2023-02-13 Gerald Pfeifer <gerald@pfeifer.com>
7092
7093 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust
7094 "The Component Object Model" reference.
7095 * doc/html/manual/policy_data_structures.html: Regenerate.
7096
7097 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
7098
7099 * doc/xml/manual/containers.xml: Tweak a link to N1780
7100 (C++ standard).
7101 * doc/html/manual/associative.html: Regenerate.
7102
7103 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
7104
7105 * doc/xml/manual/ctype.xml: Change www.unix.org to unix.org.
7106 * doc/html/manual/facets.html: Regenerate.
7107
7108 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
7109
7110 * doc/xml/manual/policy_data_structures_biblio.xml: Update
7111 link to "Worst-case efficient priority queues".
7112 * doc/html/manual/policy_data_structures.html: Regenerate.
7113
7114 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
7115
7116 * doc/xml/manual/using.xml: Document newly-freestanding
7117 headers and the effect of the -ffreestanding flag.
7118 * doc/xml/manual/status_cxx2023.xml: Document P1642R11 as
7119 completed.
7120 * doc/xml/manual/configure.xml: Document that hosted installs
7121 respect __STDC_HOSTED__.
7122 * doc/xml/manual/test.xml: Document how to run tests in
7123 freestanding mode.
7124 * doc/html/*: Regenerate.
7125
7126 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
7127
7128 * include/bits/ranges_algo.h (__find_last_fn): Rename T to _Tp.
7129 (__find_last_if_fn): Likewise.
7130
7131 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
7132
7133 * include/std/type_traits: Add diagnostic pragmas around
7134 references to deprecated std::aligned_storage and
7135 std::aligned_union traits.
7136 * testsuite/20_util/aligned_storage/requirements/alias_decl.cc:
7137 Add dg-warning for et c++23.
7138 * testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc:
7139 Likewise.
7140 * testsuite/20_util/aligned_storage/value.cc: Likewise.
7141 * testsuite/20_util/aligned_union/1.cc: Likewise.
7142 * testsuite/20_util/aligned_union/requirements/alias_decl.cc:
7143 Likewise.
7144
7145 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
7146
7147 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
7148 * include/bits/c++config (_GLIBCXX23_DEPRECATED)
7149 (_GLIBCXX23_DEPRECATED_SUGGEST): New macros.
7150 * include/std/type_traits (aligned_storage, aligned_union)
7151 (aligned_storage_t, aligned_union_t): Deprecate for C++23.
7152 * testsuite/20_util/aligned_storage/deprecated-2b.cc: New test.
7153 * testsuite/20_util/aligned_union/deprecated-2b.cc: New test.
7154
7155 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
7156
7157 * doc/doxygen/user.cfg.in (PREDEFINED): Update macros.
7158 * include/bits/c++config (_GLIBCXX20_DEPRECATED): Make
7159 consistent with other 'deprecated' macros.
7160 * include/std/type_traits (is_pod, is_pod_v): Use
7161 _GLIBCXX20_DEPRECATED_SUGGEST instead.
7162
7163 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
7164
7165 * Makefile.am [!_GLIBCXX_HOSTED]: Enable src/ subdirectory.
7166 * Makefile.in: Regenerate.
7167 * src/Makefile.am [!_GLIBCXX_HOSTED]: Omit compatibility files.
7168 There's no history to be compatible with.
7169 * src/c++11/Makefile.am [!_GLIBCXX_HOSTED]: Omit hosted-only
7170 source files from the build.
7171 * src/c++17/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
7172 * src/c++20/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
7173 * src/c++98/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
7174 * src/Makefile.in: Regenerate.
7175 * src/c++11/Makefile.in: Regenerate.
7176 * src/c++17/Makefile.in: Regenerate.
7177 * src/c++20/Makefile.in: Regenerate.
7178 * src/c++98/Makefile.in: Regenerate.
7179
7180 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
7181
7182 * src/Makefile.am [GLIBCXX_HOSTED] (SUBDIRS): Do not add
7183 filesystem, libbacktrace and experimental.
7184 * src/Makefile.in: Regenerate.
7185
7186 2023-02-04 Hans-Peter Nilsson <hp@axis.com>
7187
7188 PR libstdc++/108672
7189 * include/pstl/unseq_backend_simd.h (__simd_or): Use __INT32_TYPE__
7190 instead of int32_t.
7191
7192 2023-02-04 Gerald Pfeifer <gerald@pfeifer.com>
7193
7194 * doc/xml/manual/documentation_hacking.xml: Adjust link to pdftex.
7195 * doc/html/manual/documentation_hacking.html: Regenerate.
7196
7197 2023-02-04 François Dumont <fdumont@gcc.gnu.org>
7198
7199 * include/bits/basic_string.h (operator=(basic_string&&)): Transfer move-to
7200 storage to the move-from instance when allocators are equal.
7201 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test04):
7202 New test case.
7203
7204 2023-02-03 Samuel Thibault <samuel.thibault@gnu.org>
7205
7206 * config/os/gnu-linux/os_defines.h [!__linux__]
7207 (_GLIBCXX_NATIVE_THREAD_ID, _GLIBCXX_GTHREAD_USE_WEAK): Do not define.
7208
7209 2023-02-03 Patrick Palka <ppalka@redhat.com>
7210
7211 * include/bits/ranges_algo.h (__find_last_fn, find_last):
7212 Define.
7213 (__find_last_if_fn, find_last_if): Define.
7214 (__find_last_if_not_fn, find_last_if_not): Define.
7215 * testsuite/25_algorithms/find_last/1.cc: New test.
7216 * testsuite/25_algorithms/find_last_if/1.cc: New test.
7217 * testsuite/25_algorithms/find_last_if_not/1.cc: New test.
7218
7219 2023-02-03 Patrick Palka <ppalka@redhat.com>
7220
7221 * include/bits/ranges_algo.h (out_value_result): Define.
7222 (iota_result): Define.
7223 (__iota_fn, iota): Define.
7224 * testsuite/25_algorithms/iota/1.cc: New test.
7225
7226 2023-02-03 Patrick Palka <ppalka@redhat.com>
7227
7228 * include/bits/ranges_algo.h (__contains_fn, contains): Define.
7229 (__contains_subrange_fn, contains_subrange): Define.
7230 * testsuite/25_algorithms/contains/1.cc: New test.
7231 * testsuite/25_algorithms/contains_subrange/1.cc: New test.
7232
7233 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
7234
7235 * doc/xml/manual/abi.xml: Tweak link to ABIcheck project.
7236 * doc/html/manual/abi.html: Regenerate.
7237
7238 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7239
7240 * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
7241 errc::function_not_supported instead of errc::not_supported.
7242
7243 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7244
7245 * include/std/sstream (basic_stringbuf::view): Define for old
7246 std::string ABI.
7247 (basic_istringstream::view, basic_0stringstream::view)
7248 (basic_stringstream::view): Likewise.
7249 * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove
7250 { dg-require-effective-target cxx11_abi }.
7251 * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
7252 Likewise.
7253 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
7254 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
7255 Likewise.
7256 * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
7257 * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
7258 * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
7259 * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
7260 Likewise.
7261
7262 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7263
7264 PR libstdc++/108636
7265 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export shared_ptr
7266 conversion operators for directory iterator comparisons with
7267 std::default_sentinel_t.
7268 * include/bits/fs_path.h (path::path(string_view, _Type))
7269 (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
7270 definitions to ...
7271 * src/c++17/fs_path.cc: ... here.
7272 * testsuite/27_io/filesystem/path/108636.cc: New test.
7273
7274 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7275
7276 * include/std/variant (variant::operator=): Implement resolution
7277 of LWG 3585.
7278 * testsuite/20_util/variant/lwg3585.cc: New test.
7279
7280 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
7281
7282 * doc/xml/manual/using_exceptions.xml: Update a www.open-std.org
7283 link to https.
7284 * doc/html/manual/using_exceptions.html: Regenerate.
7285
7286 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
7287
7288 * doc/xml/manual/debug.xml: Fix link to online GDB manual.
7289 * doc/html/manual/debug.html: Regenerate.
7290
7291 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
7292
7293 * src/c++11/random.cc (random_device::_M_fini): Do not try to
7294 close the file handle if the target doesn't support the
7295 /dev/random and /dev/urandom files.
7296
7297 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
7298
7299 * config/os/generic/error_constants.h (errc::value_too_large)
7300 [__AVR__]: Define.
7301 * src/c++11/system_error.cc
7302 (system_category::default_error_condition) [__AVR__]: Only match
7303 recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
7304 * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
7305 for ENOENT etc. in switch.
7306 (fs::remove_all) [__AVR__]: Likewise.
7307 * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
7308 close etc.
7309
7310 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
7311
7312 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR) [avr-*-*, msp430-*-*]: Set
7313 embed_zoneinfo=no
7314 * configure: Regenerate.
7315
7316 2023-02-01 Hans-Peter Nilsson <hp@axis.com>
7317
7318 PR testsuite/108632
7319 * testsuite/std/time/hh_mm_ss/1.cc (size): Add empty
7320 struct at end of S0.
7321
7322 2023-01-30 Gerald Pfeifer <gerald@pfeifer.com>
7323
7324 * doc/xml/manual/shared_ptr.xml: Move links from both
7325 http://open-std.org and http://www.open-std.org to
7326 https://www.open-std.org.
7327 * doc/html/manual/memory.html: Regenerate.
7328
7329 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7330
7331 * doc/xml/manual/appendix_contributing.xml: Adjust link to
7332 ISO C++ standard at ANSI.
7333 Move link to www.open-std.org to https.
7334 * doc/html/manual/appendix_contributing.html: Regenerate.
7335
7336 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7337
7338 * doc/xml/manual/documentation_hacking.xml: Move sourceforge.net
7339 links to https.
7340 * doc/html/manual/documentation_hacking.html: Regenerate.
7341
7342 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7343
7344 * doc/xml/manual/abi.xml: Update www.open-std.org link to https.
7345 * doc/html/manual/abi.html: Regenerate.
7346
7347 2023-01-27 Jakub Jelinek <jakub@redhat.com>
7348
7349 PR libstdc++/108568
7350 * testsuite/17_intro/names.cc (__unused): For linux or GNU hurd
7351 include features.h if present and then check __GLIBC__ and
7352 __GLIBC_MINOR__ macros for glibc prior to 2.19, instead of testing
7353 __GLIBC_PREREQ which isn't defined yet.
7354
7355 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
7356
7357 * src/c++20/tzdb.cc (tzdata_stream): Use constant instead of
7358 string literal.
7359
7360 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
7361
7362 PR libstdc++/108554
7363 * testsuite/23_containers/map/modifiers/108554.cc: Use dg-bogus.
7364
7365 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
7366
7367 * src/c++20/tzdb.cc (operator>>(istream&, ZoneInfo&)): Allow
7368 rules named "+" for compatibility with older tzdata.zi files.
7369
7370 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
7371
7372 PR libstdc++/108554
7373 * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
7374 nonnull attribute.
7375 (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
7376 attributes.
7377 * testsuite/23_containers/map/modifiers/108554.cc: New test.
7378
7379 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
7380
7381 PR libstdc++/108530
7382 * src/c++20/tzdb.cc (current_zone): Look for TIMEZONE or ZONE in
7383 /etc/sysconfig/clock, not DEFAULT_TIMEZONE.
7384
7385 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
7386
7387 * doc/xml/manual/intro.xml: Update links to www.open-std.org to
7388 use https.
7389 * doc/html/manual/bugs.html: Regenerate.
7390
7391 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
7392
7393 PR libstdc++/108530
7394 * src/c++20/tzdb.cc (current_zone): Look for DEFAULT_TIMEZONE in
7395 /etc/sysconfig/clock.
7396
7397 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
7398
7399 PR libstdc++/102301
7400 * include/bits/ranges_base.h: Include <bits/stl_iterator.h> for
7401 std::make_reverse_iterator.
7402 * include/std/tuple: Include <bits/ranges_util.h> for subrange.
7403 (make_from_tuple): Add static assertion from P2255 to diagnose
7404 dangling references.
7405 * testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc: New test.
7406 * testsuite/20_util/tuple/make_from_tuple/tuple_like.cc: New test.
7407
7408 2023-01-23 François Dumont <fdumont@gcc.gnu.org>
7409
7410 * include/debug/safe_iterator.h (_Safe_iterator<>::_Unchecked): New.
7411 (_Safe_iterator(const _Safe_iterator&, _Unchecked)): New.
7412 (_Safe_iterator::operator++(int)): Use latter.
7413 (_Safe_iterator::operator--(int)): Likewise.
7414 (_Safe_iterator(_Iterator, const _Safe_sequence_base*)): Remove !_M_insular()
7415 check.
7416 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_Unchecked):
7417 New.
7418 (_Safe_local_iterator(const _Safe_local_iterator&, _Unchecked)): New.
7419 (_Safe_local_iterator::operator++(int)): Use latter.
7420 * src/c++11/debug.cc (_S_debug_messages): Add as comment the _Debug_msg_id
7421 entry associated to the array entry.
7422
7423 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
7424
7425 * include/bits/fs_path.h (u8path): Add deprecated attribute.
7426 * testsuite/27_io/filesystem/path/construct/90281.cc: Add
7427 -Wno-deprecated-declarations for C++20 and later.
7428 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
7429 Likewise.
7430 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
7431 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
7432 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: New test.
7433
7434 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
7435
7436 * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
7437 Always call _M_fini and _M_getentropy.
7438
7439 2023-01-18 Gerald Pfeifer <gerald@pfeifer.com>
7440
7441 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust links
7442 to www.open-std.org to use https.
7443 (COM: Component Model Object Technologies): Rename from...
7444 (The Component Object Model): ...to.
7445 * doc/html/manual/policy_data_structures.html: Regenerate.
7446
7447 2023-01-18 Dimitrij Mijoski <dmjpp@hotmail.com>
7448
7449 * testsuite/22_locale/codecvt/codecvt_unicode.cc: Simplify.
7450 * testsuite/22_locale/codecvt/codecvt_unicode.h: Simplify.
7451 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Simplify.
7452
7453 2023-01-17 Jonathan Wakely <jwakely@redhat.com>
7454
7455 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Check $target_os instead
7456 of $host. Fix check for file being present during native build.
7457 * configure: Regenerate.
7458
7459 2023-01-17 Martin Liska <mliska@suse.cz>
7460
7461 * src/libbacktrace/Makefile.in: Regenerate.
7462
7463 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
7464
7465 * src/c++20/tzdb.cc (_GLIBCXX_USE_CXX11_ABI): Define to 1.
7466
7467 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
7468
7469 PR libstdc++/108413
7470 * include/c_compatibility/stdatomic.h: Change copyright line to
7471 be consistent with other headers contributed under DCO terms.
7472 * include/std/expected: Add full stop to copyright line.
7473 * src/c++20/tzdb.cc: Likewise.
7474
7475 2023-01-15 Gerald Pfeifer <gerald@pfeifer.com>
7476
7477 * doc/xml/manual/status_cxx2014.xml: Switch www.open-std.org to
7478 https.
7479 * doc/xml/manual/status_cxx2017.xml: Ditto.
7480 * doc/xml/manual/status_cxx2020.xml: Ditto.
7481 * doc/xml/manual/status_cxx2023.xml: Ditto.
7482 * doc/html/manual/status.html: Regenerate.
7483
7484 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
7485
7486 * testsuite/std/time/tzdb_list/1.cc: Remove dg-xfail-run-if
7487 and fail gracefully if defining the weak symbol doesn't work.
7488
7489 2023-01-15 François Dumont <fdumont@gcc.gnu.org>
7490
7491 PR libstdc++/108288
7492 * include/debug/safe_iterator.h (_Safe_iterator<>::operator++(int)): Extend deadlock
7493 fix to other iterator category.
7494 (_Safe_iterator<>::operator--(int)): Likewise.
7495 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::operator++(int)):
7496 Fix deadlock.
7497 * testsuite/util/debug/unordered_checks.h (invalid_local_iterator_pre_increment): New.
7498 (invalid_local_iterator_post_increment): New.
7499 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc:
7500 New test.
7501 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc:
7502 New test.
7503
7504 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
7505
7506 * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
7507 dg-options.
7508
7509 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
7510
7511 * testsuite/std/time/clock/utc/io.cc: Use ctype to widen char.
7512
7513 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
7514
7515 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Add check for
7516 windows.h. Add pecoff as FORMAT_FILE.
7517 * config.h.in: Regenerate.
7518 * configure: Regenerate.
7519 * src/libbacktrace/Makefile.am: Regenerate.
7520 * src/libbacktrace/Makefile.in: Add pecoff.c as FORMAT_FILE.
7521
7522 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
7523
7524 * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
7525 raw __name if __cxa_demangle could not demangle it.
7526
7527 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
7528
7529 PR libstdc++/108409
7530 * src/c++20/tzdb.cc (current_zone()) [_AIX]: Use TZ environment
7531 variable.
7532
7533 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
7534
7535 * src/c++20/tzdb.cc (TZDB_DISABLED): Disable all code for
7536 loading tzdb.
7537 * testsuite/std/time/tzdb/leap_seconds.cc: Require tzdb
7538 effective target.
7539 * testsuite/std/time/tzdb_list/1.cc: Likewise.
7540
7541 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
7542
7543 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Replace the
7544 --with-libstdcxx-zoneinfo-dir configure option with
7545 --with-libstdcxx-zoneinfo with yes/no/static choices as well as
7546 a directory.
7547 * config.h.in: Regenerate.
7548 * configure: Regenerate.
7549 * doc/xml/manual/configure.xml: Document configure option.
7550 * doc/html/manual/configure.html: Regenerate.
7551 * src/c++20/Makefile.am: Generate tzdata.zi.h header.
7552 * src/c++20/Makefile.in: Regenerate.
7553 * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Return a
7554 null pointer if no directory is configured.
7555 (zoneinfo_dir): Replace with ...
7556 (zoneinfo_file): New function.
7557 (tzdata_stream): New istream class.
7558 (remote_version, reload_tzdb): Use tzdata_stream.
7559 * testsuite/lib/libstdc++.exp (check_effective_target_tzdb):
7560 Check new _GLIBCXX_STATIC_TZDATA macro and ignore presence of
7561 tzdata.zi file in default location.
7562 * src/c++20/tzdata.zi: New file.
7563
7564 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
7565
7566 * include/bits/chrono_io.h (operator<<): Fix syntax errors.
7567 * testsuite/std/time/month_day/io.cc: New test.
7568 * testsuite/std/time/month_day_last/io.cc: New test.
7569 * testsuite/std/time/month_weekday/io.cc: New test.
7570 * testsuite/std/time/month_weekday_last/io.cc: New test.
7571 * testsuite/std/time/weekday_indexed/io.cc: New test.
7572 * testsuite/std/time/weekday_last/io.cc: New test.
7573 * testsuite/std/time/year_month/io.cc: New test.
7574 * testsuite/std/time/year_month_day_last/io.cc: New test.
7575 * testsuite/std/time/year_month_weekday/io.cc: New test.
7576 * testsuite/std/time/year_month_weekday_last/io.cc: New test.
7577
7578 2023-01-14 François Dumont <fdumont@gcc.gnu.org>
7579
7580 * include/std/format [_GLIBCXX_INLINE_VERSION](to_chars): Adapt __asm symbol
7581 specifications.
7582 * config/abi/pre/gnu-versioned-namespace.ver: Add to_chars/from_chars symbols
7583 export.
7584
7585 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
7586
7587 * include/bits/std_mutex.h: Include <errno.h>.
7588
7589 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
7590
7591 * testsuite/20_util/to_chars/version.cc: Mark hosted-only.
7592 * testsuite/20_util/uses_allocator/lwg3677.cc: Ditto.
7593 * testsuite/20_util/weak_ptr/cons/self_move.cc: Ditto.
7594 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Replace usage of
7595 std::make_unique with a freestanding-compatible wrapper around
7596 unique_ptr.
7597 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
7598 Don't test for presence of __cpp_lib_string_contains on !HOSTED.
7599 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
7600 Ditto.
7601 * testsuite/std/ranges/version_c++23.cc: Don't test for presence
7602 of __cpp_lib_ranges in !HOSTED.
7603
7604 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
7605
7606 * include/Makefile.am: Install bits/char_traits.h,
7607 std/string_view
7608 * include/Makefile.in: Regenerate.
7609 * include/bits/char_traits.h: Gate hosted-only, wchar-only and
7610 mbstate-only bits behind appropriate #ifs.
7611 * include/std/string_view: Gate <iostream> functionality behind
7612 HOSTED.
7613 * include/std/version: Enable __cpp_lib_constexpr_string_view
7614 and __cpp_lib_starts_ends_with in !HOSTED.
7615 * include/std/ranges: Re-enable __is_basic_string_view on
7616 freestanding, include <string_view> directly.
7617 * include/precompiled/stdc++.h: Include <string_view> when
7618 !HOSTED too.
7619 * testsuite/20_util/function_objects/searchers.cc: Skip testing
7620 boyer_moore searchers on freestanding
7621 * testsuite/21_strings/basic_string_view/capacity/1.cc: Guard
7622 <string>-related tests behind __STDC_HOSTED__.
7623 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Ditto.
7624 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Remove
7625 unused <stdexcept> include.
7626 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Remove
7627 unused <vector> include.
7628 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
7629 Guard <string> related testing behind __STDC_HOSTED__.
7630 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
7631 Guard <stdexcept> related tests behind __STDC_HOSTED__.
7632 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
7633 Ditto.
7634 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
7635 Guard <stdexcept> tests behind __STDC_HOSTED__.
7636 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
7637 Enable test on freestanding, guard <stdexcept> bits behind
7638 __STDC_HOSTED__.
7639 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
7640 Guard <stdexcept> bits behind __STDC_HOSTED__.
7641 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
7642 Ditto.
7643
7644 2023-01-13 Dimitrij Mijoski <dmjpp@hotmail.com>
7645
7646 PR libstdc++/86419
7647 * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect
7648 errors in incomplete multibyte sequences.
7649 (utf16_in): Remove surrogates parameter. Fix conditions for
7650 returning partial.
7651 (utf16_out): Fix condition for returning partial.
7652 (ucs2_in): Do not pass surrogates argument to utf16_in.
7653 * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test.
7654 * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for
7655 tests.
7656 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
7657 test.
7658
7659 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
7660
7661 PR libstdc++/108331
7662 * config/io/c_io_stdio.h (__c_lock): Define as a typedef for
7663 __GTHREAD_LEGACY_MUTEX_T if defined.
7664
7665 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
7666
7667 PR libstdc++/108327
7668 * config/os/gnu-linux/ldbl-extra.ver (GLIBCXX_LDBL_3.4.31):
7669 Export __try_use_facet specializations for facets in namespace
7670 __gnu_cxx_ldbl128.
7671 * config/os/gnu-linux/ldbl-ieee128-extra.ver
7672 (GLIBCXX_IEEE128_3.4.31): Likewise for facets in namespace
7673 __gnu_cxx_ieee128.
7674 * testsuite/util/testsuite_abi.cc: Add to lists of known and
7675 latest versions.
7676
7677 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
7678
7679 * include/bits/std_mutex.h: Remove <system_error> include.
7680 * include/std/condition_variable: Add <bits/error_constants.h>
7681 include.
7682 * include/std/mutex: Likewise.
7683 * include/std/shared_mutex: Likewise.
7684
7685 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
7686
7687 PR libstdc++/77691
7688 * include/experimental/memory_resource
7689 (_GLIBCXX_MAX_ALIGN_MATCHES_MALLOC): Define.
7690 (do_allocate, do_deallocate): Check it.
7691 * testsuite/experimental/memory_resource/new_delete_resource.cc:
7692 Relax expected behaviour for 64-bit hppa-hp-hpux11.11.
7693
7694 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
7695
7696 * doc/xml/manual/abi.xml: Add latest library versions.
7697 * doc/html/manual/abi.html: Regenerate.
7698
7699 2023-01-12 François Dumont <fdumont@gcc.gnu.org>
7700
7701 PR libstdc++/107189
7702 * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_range_equal): Remove
7703 unused _Alloc_node instance.
7704
7705 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
7706
7707 * include/bits/atomic_wait.h (__detail::__platform_wait_t):
7708 Define as unsigned long if always lock-free, and unsigned int
7709 otherwise.
7710
7711 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
7712
7713 * src/c++20/tzdb.cc (tzdb_list::_S_init_tzdb): Use __try and
7714 __catch macros for exception handling.
7715
7716 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
7717
7718 PR libstdc++/108221
7719 * include/bits/stl_algobase.h (__lg): Replace six overloads with
7720 a single function template for all integer types.
7721 * include/bits/stl_algo.h (__merge_adaptive_resize): Cast
7722 arithmetic results back to _Distance.
7723
7724 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
7725
7726 PR libstdc++/108221
7727 * include/std/span (span::span()): Un-simplify constraint to
7728 work for size_t of lesser rank than int.
7729
7730 2023-01-07 LIU Hao <lh_mouse@126.com>
7731
7732 PR middle-end/108300
7733 * src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before
7734 <windows.h>.
7735 * src/c++11/thread.cc: Likewise.
7736 * src/c++17/fs_ops.cc: Likewise.
7737 * src/filesystem/ops.cc: Likewise.
7738
7739 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
7740
7741 PR libstdc++/108228
7742 * src/c++20/tzdb.cc (zoneinfo_dir): Add diagnostic pragma.
7743
7744 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
7745
7746 PR libstdc++/108235
7747 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): New class
7748 template and partial specialization for synchronizing access to
7749 time_zone::_Impl::infos.
7750 (time_zone::_M_get_sys_info, reload_tzdb): Adjust uses of
7751 rules_counter.
7752
7753 2023-01-06 Patrick Palka <ppalka@redhat.com>
7754
7755 PR libstdc++/108260
7756 * include/bits/utility.h (__cpp_lib_ranges_zip): Define for C++23.
7757 * include/std/ranges (__cpp_lib_ranges_zip): Likewise.
7758 (__cpp_lib_ranges_chunk): Likewise.
7759 (__cpp_lib_ranges_slide): Likewise.
7760 (__cpp_lib_ranges_chunk_by): Likewise.
7761 (__cpp_lib_ranges_join_with): Likewise.
7762 (__cpp_lib_ranges_repeat): Likewise.
7763 (__cpp_lib_ranges_stride): Likewise.
7764 (__cpp_lib_ranges_cartesian_product): Likewise.
7765 (__cpp_lib_ranges_as_rvalue): Likewise.
7766 * include/std/version: Ditto.
7767 * testsuite/20_util/tuple/p2321r2.cc: Verify value of
7768 feature-test macro.
7769 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
7770 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
7771 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
7772 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
7773 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
7774 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
7775 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
7776 * testsuite/std/ranges/repeat/1.cc: Likewise.
7777 * testsuite/std/ranges/zip/1.cc: Likewise.
7778 * testsuite/std/ranges/version_c++23.cc: New test.
7779
7780 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
7781
7782 PR libstdc++/108214
7783 * include/std/bitset (operator>>): Use alloca in the right
7784 scope, not in a constructor.
7785 * testsuite/20_util/bitset/io/input.cc: Check case from PR.
7786
7787 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
7788
7789 PR libstdc++/108221
7790 * include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
7791 Disable visiting floating-point types.
7792
7793 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
7794
7795 PR libstdc++/108288
7796 * include/debug/safe_iterator.h (_Safe_iterator::operator++(int))
7797 (_Safe_iterator::operator--(int)): Do not hold lock around
7798 construction of return value.
7799
7800 2023-01-05 John David Anglin <danglin@gcc.gnu.org>
7801
7802 * config/cpu/hppa/atomicity.h (_PA_LDCW_INSN): Define.
7803 (__exchange_and_add): Use _PA_LDCW_INSN. Use ordered store for
7804 lock release. Revise loop.
7805 (__atomic_add): Likewise.
7806
7807 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
7808
7809 PR libstdc++/108212
7810 * python/libstdcxx/v6/printers.py (_utc_timezone): New global
7811 variable.
7812 (StdChronoTimePointPrinter::to_string): Use it.
7813
7814 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
7815
7816 PR libstdc++/108290
7817 * include/std/functional (_Bind_front): Add no_unique_address
7818 attribute to data members.
7819 * testsuite/20_util/function_objects/bind_front/107784.cc: Check
7820 size of call wrappers with empty types for targets and bound
7821 arguments.
7822
7823 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
7824
7825 PR libstdc++/108211
7826 * src/c++20/tzdb.cc (chrono::current_zone()): Check for zone
7827 using only last component of the name.
7828
7829 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
7830
7831 PR libstdc++/108228
7832 PR libstdc++/108235
7833 * config/abi/pre/gnu.ver: Move zoneinfo_dir_override export to
7834 the latest symbol version.
7835 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define to 0 if
7836 atomic<_Node*> is not always lock free.
7837 (USE_ATOMIC_LIST_HEAD): New macro.
7838 [__hpux__] (__gnu_cxx::zoneinfo_dir_override()): Provide
7839 definition of weak symbol.
7840 (tzdb_list::_Node::_S_head): Rename to _S_head_cache.
7841 (tzdb_list::_Node::_S_list_head): New function for accessing
7842 list head efficiently.
7843 (tzdb_list::_Node::_S_cache_list_head): New function for
7844 updating _S_list_head.
7845
7846 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
7847
7848 PR libstdc++/108265
7849 * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
7850 duration rep is unsigned.
7851 * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep.
7852
7853 2023-01-04 Iain Sandoe <iain@sandoe.co.uk>
7854
7855 PR libstdc++/108228
7856 * config/abi/pre/gnu.ver (GLIBCXX_3.4):
7857 Add __gnu_cxx::zoneinfo_dir_override().
7858
7859 2023-01-04 Jonathan Wakely <jwakely@redhat.com>
7860
7861 PR libstdc++/108258
7862 * include/std/array (__array_traits<T, 0>::operator T*()): Add
7863 constexpr.
7864 * testsuite/23_containers/array/element_access/constexpr_c++17.cc: Check
7865 std::array<T, 0>::data().
7866
7867 \f
7868 Copyright (C) 2023 Free Software Foundation, Inc.
7869
7870 Copying and distribution of this file, with or without modification,
7871 are permitted in any medium without royalty provided the copyright
7872 notice and this notice are preserved.