]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
Daily bump.
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
2
3 * testsuite/std/ranges/adaptors/join_with/1.cc: Remove unused
4 <sstream header.
5 (test04): Remove constexpr for old std::string ABI and test at
6 runtime.
7
8 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
9
10 * include/std/type_traits (remove_cv): Use __remove_cv built-in.
11 (remove_reference): Use __remove_reference built-in.
12 (remove_cvref): Use __remove_cvref built-in. Remove inheritance
13 for fallback implementation.
14
15 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
16
17 * include/bits/random.h (__is_seed_seq): Replace with ...
18 (_If_seed_seq_for): ... this.
19 * include/ext/random: Adjust to use _If_seed_seq_for.
20
21 2022-10-04 Patrick Palka <ppalka@redhat.com>
22
23 * include/std/ranges (join_with_view::_Iterator::operator*):
24 Replace use of std::visit with manual visitation.
25 (join_with_view::_Iterator::operator++): Likewise.
26 (join_with_view::_Iterator::operator--): Likewise.
27 (join_with_view::_Iterator::iter_move): Likewise.
28 (join_with_view::_Iterator::iter_swap): Likewise.
29
30 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
31
32 * testsuite/25_algorithms/stable_sort/mem_check.cc: Do nto run
33 for freestanding.
34
35 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
36
37 PR libstdc++/107139
38 * include/std/coroutine: Remove all _GLIBCXXHOSTED preprocessor
39 conditionals.
40
41 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
42
43 PR libstdc++/107134
44 * include/c_global/cstdint [!_GLIBCXX_HOSTED]: Include
45 <stdint-gcc.h> directly.
46
47 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
48
49 PR libstdc++/107135
50 * include/bits/functexcept.h [!_GLIBCXX_HOSTED]
51 (__throw_invalid_argument, __throw_out_of_range)
52 (__throw_out_of_range_fmt, __throw_runtime_error)
53 (__throw_overflow_error): Define inline.
54 * include/std/bitset (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]:
55 Replace __builtin_abort with __throw_invalid_argument.
56
57 2022-10-04 Patrick Palka <ppalka@redhat.com>
58
59 * include/std/ranges: Include <variant> for C++23.
60 (__detail::__compatible_joinable_ranges): Define.
61 (__detail::__bidirectional_common): Define.
62 (join_with_view): Define.
63 (join_with_view::_Iterator): Define.
64 (join_with_view::_Sentinel): Define.
65 (views::__detail::__can_join_with_view): Define.
66 (views::_JoinWith, views::join_with): Define.
67 * testsuite/std/ranges/adaptors/join_with/1.cc: New test.
68
69 2022-10-04 Arsen Arsenović <arsen@aarsen.me>
70
71 * include/std/iostream: Use ///< for inline documentation.
72 * include/std/limits: Likewise.
73 * include/experimental/internet: Likewise.
74
75 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
76
77 * doc/xml/manual/status_cxx2020.xml: Update C++20 status.
78 * doc/html/manual/status.html: Regenerate.
79
80 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
81
82 PR libstdc++/103626
83 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc:
84 Require ET hosted.
85 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
86 * testsuite/18_support/new_nothrow.cc: Likewise.
87 * testsuite/20_util/allocator/105975.cc: Likewise.
88 * testsuite/20_util/allocator/14176.cc: Likewise.
89 * testsuite/20_util/allocator/64135.cc: Likewise.
90 * testsuite/20_util/allocator/89510.cc: Likewise.
91 * testsuite/20_util/allocator/lwg3190.cc: Likewise.
92 * testsuite/20_util/allocator/overaligned.cc: Likewise.
93 * testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
94 * testsuite/20_util/allocator/requirements/constexpr.cc:
95 Likewise.
96 * testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc:
97 Likewise.
98 * testsuite/20_util/allocator/requirements/typedefs.cc:
99 Likewise.
100 * testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
101 Likewise.
102 * testsuite/20_util/allocator/void.cc: Likewise.
103 * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
104 * testsuite/20_util/allocator_traits/header.cc: Likewise.
105 * testsuite/20_util/allocator_traits/members/92878_92947.cc:
106 Likewise.
107 * testsuite/20_util/allocator_traits/members/pointers.cc:
108 Likewise.
109 * testsuite/20_util/allocator_traits/requirements/typedefs.cc:
110 Likewise.
111 * testsuite/20_util/bad_function_call/cons_virtual_derivation.cc:
112 Likewise.
113 * testsuite/20_util/bind/42593.cc: Likewise.
114 * testsuite/20_util/bitset/access/dr396.cc: Likewise.
115 * testsuite/20_util/bitset/access/to_string.cc: Likewise.
116 * testsuite/20_util/bitset/cons/16020.cc: Likewise.
117 * testsuite/20_util/bitset/cons/dr1325-2.cc: Likewise.
118 * testsuite/20_util/bitset/cons/dr396.cc: Likewise.
119 * testsuite/20_util/bitset/debug/invalidation/1.cc: Likewise.
120 * testsuite/20_util/bitset/ext/15361.cc: Likewise.
121 * testsuite/20_util/bitset/operations/13838.cc: Likewise.
122 * testsuite/20_util/bitset/operations/96303.cc: Likewise.
123 * testsuite/20_util/bitset/version.cc: Likewise.
124 * testsuite/20_util/enable_shared_from_this/56383.cc: Likewise.
125 * testsuite/20_util/enable_shared_from_this/89303.cc: Likewise.
126 * testsuite/20_util/enable_shared_from_this/members/assign.cc:
127 Likewise.
128 * testsuite/20_util/enable_shared_from_this/members/const.cc:
129 Likewise.
130 * testsuite/20_util/enable_shared_from_this/members/reinit.cc:
131 Likewise.
132 * testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc:
133 Likewise.
134 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
135 Likewise.
136 * testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc:
137 Likewise.
138 * testsuite/20_util/forward/1.cc: Likewise.
139 * testsuite/20_util/forward/1_neg.cc: Likewise.
140 * testsuite/20_util/function/1.cc: Likewise.
141 * testsuite/20_util/function/10.cc: Likewise.
142 * testsuite/20_util/function/2.cc: Likewise.
143 * testsuite/20_util/function/3.cc: Likewise.
144 * testsuite/20_util/function/4.cc: Likewise.
145 * testsuite/20_util/function/43397.cc: Likewise.
146 * testsuite/20_util/function/48541.cc: Likewise.
147 * testsuite/20_util/function/5.cc: Likewise.
148 * testsuite/20_util/function/58569.cc: Likewise.
149 * testsuite/20_util/function/6.cc: Likewise.
150 * testsuite/20_util/function/60594.cc: Likewise.
151 * testsuite/20_util/function/65760.cc: Likewise.
152 * testsuite/20_util/function/69222.cc: Likewise.
153 * testsuite/20_util/function/7.cc: Likewise.
154 * testsuite/20_util/function/77322.cc: Likewise.
155 * testsuite/20_util/function/8.cc: Likewise.
156 * testsuite/20_util/function/9.cc: Likewise.
157 * testsuite/20_util/function/91456.cc: Likewise.
158 * testsuite/20_util/function/assign/move.cc: Likewise.
159 * testsuite/20_util/function/assign/move_target.cc: Likewise.
160 * testsuite/20_util/function/cmp/cmp_neg.cc: Likewise.
161 * testsuite/20_util/function/cons/55320.cc: Likewise.
162 * testsuite/20_util/function/cons/57465.cc: Likewise.
163 * testsuite/20_util/function/cons/72820.cc: Likewise.
164 * testsuite/20_util/function/cons/addressof.cc: Likewise.
165 * testsuite/20_util/function/cons/callable.cc: Likewise.
166 * testsuite/20_util/function/cons/deduction.cc: Likewise.
167 * testsuite/20_util/function/cons/lwg2774.cc: Likewise.
168 * testsuite/20_util/function/cons/move.cc: Likewise.
169 * testsuite/20_util/function/cons/move_target.cc: Likewise.
170 * testsuite/20_util/function/cons/noexcept.cc: Likewise.
171 * testsuite/20_util/function/cons/non_copyconstructible.cc:
172 Likewise.
173 * testsuite/20_util/function/cons/refqual.cc: Likewise.
174 * testsuite/20_util/function/cons/70692.cc: Likewise.
175 * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise.
176 * testsuite/20_util/function/invoke/forwarding.cc: Likewise.
177 * testsuite/20_util/function/invoke/move_only.cc: Likewise.
178 * testsuite/20_util/function/null_pointer_comparisons.cc:
179 Likewise.
180 * testsuite/20_util/function/requirements/explicit_instantiation.cc:
181 Likewise.
182 * testsuite/20_util/function/target_no_rtti.cc: Likewise.
183 * testsuite/20_util/function_objects/83607.cc: Likewise.
184 * testsuite/20_util/function_objects/mem_fn/adl.cc: Likewise.
185 * testsuite/20_util/headers/cstdlib/functions_std.cc: Likewise.
186 * testsuite/20_util/headers/functional/types_std_c++0x.cc:
187 Likewise.
188 * testsuite/20_util/headers/memory/types_std_c++0x.cc: Likewise.
189 * testsuite/20_util/is_function/35637.cc: Likewise.
190 * testsuite/20_util/move/1.cc: Likewise.
191 * testsuite/20_util/move_only_function/call.cc: Likewise.
192 * testsuite/20_util/move_only_function/cons.cc: Likewise.
193 * testsuite/20_util/move_only_function/move.cc: Likewise.
194 * testsuite/20_util/move_only_function/version.cc: Likewise.
195 * testsuite/20_util/owner_less/cmp.cc: Likewise.
196 * testsuite/20_util/owner_less/noexcept.cc: Likewise.
197 * testsuite/20_util/owner_less/void.cc: Likewise.
198 * testsuite/20_util/pointer_safety/1.cc: Likewise.
199 * testsuite/20_util/scoped_allocator/65279.cc: Likewise.
200 * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
201 * testsuite/20_util/scoped_allocator/construct_pair.cc:
202 Likewise.
203 * testsuite/20_util/scoped_allocator/dr2586.cc: Likewise.
204 * testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc:
205 Likewise.
206 * testsuite/20_util/shared_ptr/assign/assign.cc: Likewise.
207 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
208 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
209 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
210 Likewise.
211 * testsuite/20_util/shared_ptr/assign/dr541.cc: Likewise.
212 * testsuite/20_util/shared_ptr/assign/move.cc: Likewise.
213 * testsuite/20_util/shared_ptr/assign/sfinae.cc: Likewise.
214 * testsuite/20_util/shared_ptr/assign/shared_ptr.cc: Likewise.
215 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc:
216 Likewise.
217 * testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc:
218 Likewise.
219 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc:
220 Likewise.
221 * testsuite/20_util/shared_ptr/atomic/1.cc: Likewise.
222 * testsuite/20_util/shared_ptr/atomic/2.cc: Likewise.
223 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
224 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
225 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
226 * testsuite/20_util/shared_ptr/comparison/42925.cc: Likewise.
227 * testsuite/20_util/shared_ptr/comparison/86537.cc: Likewise.
228 * testsuite/20_util/shared_ptr/comparison/cmp.cc: Likewise.
229 * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc:
230 Likewise.
231 * testsuite/20_util/shared_ptr/comparison/dr1401.cc: Likewise.
232 * testsuite/20_util/shared_ptr/comparison/less.cc: Likewise.
233 * testsuite/20_util/shared_ptr/cons/39405.cc: Likewise.
234 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
235 * testsuite/20_util/shared_ptr/cons/46910.cc: Likewise.
236 * testsuite/20_util/shared_ptr/cons/51365.cc: Likewise.
237 * testsuite/20_util/shared_ptr/cons/52924.cc: Likewise.
238 * testsuite/20_util/shared_ptr/cons/55123.cc: Likewise.
239 * testsuite/20_util/shared_ptr/cons/58659.cc: Likewise.
240 * testsuite/20_util/shared_ptr/cons/58839.cc: Likewise.
241 * testsuite/20_util/shared_ptr/cons/61036.cc: Likewise.
242 * testsuite/20_util/shared_ptr/cons/79467.cc: Likewise.
243 * testsuite/20_util/shared_ptr/cons/80229.cc: Likewise.
244 * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise.
245 * testsuite/20_util/shared_ptr/cons/alias.cc: Likewise.
246 * testsuite/20_util/shared_ptr/cons/array.cc: Likewise.
247 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
248 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
249 * testsuite/20_util/shared_ptr/cons/copy.cc: Likewise.
250 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
251 * testsuite/20_util/shared_ptr/cons/default.cc: Likewise.
252 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: Likewise.
253 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: Likewise.
254 * testsuite/20_util/shared_ptr/cons/move.cc: Likewise.
255 * testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc:
256 Likewise.
257 * testsuite/20_util/shared_ptr/cons/nullptr.cc: Likewise.
258 * testsuite/20_util/shared_ptr/cons/pointer.cc: Likewise.
259 * testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Likewise.
260 * testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc:
261 Likewise.
262 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc:
263 Likewise.
264 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc:
265 Likewise.
266 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
267 Likewise.
268 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
269 * testsuite/20_util/shared_ptr/cons/weak_ptr.cc: Likewise.
270 * testsuite/20_util/shared_ptr/creation/36949.cc: Likewise.
271 * testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc:
272 Likewise.
273 * testsuite/20_util/shared_ptr/creation/58594.cc: Likewise.
274 * testsuite/20_util/shared_ptr/creation/87278.cc: Likewise.
275 * testsuite/20_util/shared_ptr/creation/92878_92947.cc:
276 Likewise.
277 * testsuite/20_util/shared_ptr/creation/99006.cc: Likewise.
278 * testsuite/20_util/shared_ptr/creation/dr402.cc: Likewise.
279 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
280 * testsuite/20_util/shared_ptr/creation/make.cc: Likewise.
281 * testsuite/20_util/shared_ptr/creation/no_rtti.cc: Likewise.
282 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
283 * testsuite/20_util/shared_ptr/creation/private.cc: Likewise.
284 * testsuite/20_util/shared_ptr/creation/single_allocation.cc:
285 Likewise.
286 * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
287 Likewise.
288 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
289 * testsuite/20_util/shared_ptr/dest/dest.cc: Likewise.
290 * testsuite/20_util/shared_ptr/hash/1.cc: Likewise.
291 * testsuite/20_util/shared_ptr/misc/24595.cc: Likewise.
292 * testsuite/20_util/shared_ptr/misc/42019.cc: Likewise.
293 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
294 * testsuite/20_util/shared_ptr/misc/swap.cc: Likewise.
295 * testsuite/20_util/shared_ptr/modifiers/reset.cc: Likewise.
296 * testsuite/20_util/shared_ptr/modifiers/reset_neg.cc: Likewise.
297 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc:
298 Likewise.
299 * testsuite/20_util/shared_ptr/modifiers/swap.cc: Likewise.
300 * testsuite/20_util/shared_ptr/modifiers/swap_neg.cc: Likewise.
301 * testsuite/20_util/shared_ptr/observers/array.cc: Likewise.
302 * testsuite/20_util/shared_ptr/observers/bool_conv.cc: Likewise.
303 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
304 * testsuite/20_util/shared_ptr/observers/owner_before.cc:
305 Likewise.
306 * testsuite/20_util/shared_ptr/observers/unique.cc: Likewise.
307 * testsuite/20_util/shared_ptr/observers/use_count.cc: Likewise.
308 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc:
309 Likewise.
310 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc:
311 Likewise.
312 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
313 Likewise.
314 * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
315 Likewise.
316 * testsuite/20_util/temporary_buffer.cc: Likewise.
317 * testsuite/20_util/tuple/48476.cc: Likewise.
318 * testsuite/20_util/tuple/cons/90700.cc: Likewise.
319 * testsuite/20_util/tuple/cons/96803.cc: Likewise.
320 * testsuite/20_util/tuple/cons/allocator_with_any.cc: Likewise.
321 * testsuite/20_util/tuple/cons/allocators.cc: Likewise.
322 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
323 Likewise.
324 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
325 * testsuite/20_util/tuple/p2321r2.cc: Likewise.
326 * testsuite/20_util/unique_ptr/creation/92878_92947.cc:
327 Likewise.
328 * testsuite/20_util/unique_ptr/creation/array.cc: Likewise.
329 * testsuite/20_util/unique_ptr/creation/array_neg.cc: Likewise.
330 * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise.
331 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
332 Likewise.
333 * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
334 Likewise.
335 * testsuite/20_util/unique_ptr/creation/single.cc: Likewise.
336 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
337 * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
338 * testsuite/20_util/uses_allocator/uninitialized_construct.cc:
339 Likewise.
340 * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.
341 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
342 * testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc:
343 Likewise.
344 * testsuite/20_util/weak_ptr/lock/1.cc: Likewise.
345 * testsuite/20_util/weak_ptr/observers/owner_before.cc:
346 Likewise.
347 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc:
348 Likewise.
349 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc:
350 Likewise.
351 * testsuite/21_strings/basic_string/version.cc: Likewise.
352 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
353 Likewise.
354 * testsuite/21_strings/c_strings/char/69626.cc: Likewise.
355 * testsuite/21_strings/char_traits/requirements/version.cc:
356 Likewise.
357 * testsuite/23_containers/vector/requirements/version.cc:
358 Likewise.
359 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
360 Likewise.
361 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
362 Likewise.
363 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
364 Likewise.
365 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
366 Likewise.
367 * testsuite/24_iterators/istreambuf_iterator/92285.cc: Likewise.
368 * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
369 Likewise.
370 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
371 Likewise.
372 * testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc:
373 Likewise.
374 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
375 Likewise.
376 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
377 Likewise.
378 * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
379 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
380 * testsuite/25_algorithms/headers/cstdlib/functions_std.cc:
381 Likewise.
382 * testsuite/25_algorithms/inplace_merge/1.cc: Likewise.
383 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
384 Likewise.
385 * testsuite/25_algorithms/make_heap/movable.cc: Likewise.
386 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
387 * testsuite/25_algorithms/random_shuffle/1.cc: Likewise.
388 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
389 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
390 Likewise.
391 * testsuite/25_algorithms/sort/35588.cc: Likewise.
392 * testsuite/25_algorithms/stable_partition/1.cc: Likewise.
393 * testsuite/25_algorithms/stable_partition/constrained.cc:
394 Likewise.
395 * testsuite/25_algorithms/stable_partition/mem_check.cc:
396 Likewise.
397 * testsuite/25_algorithms/stable_partition/moveable.cc:
398 Likewise.
399 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
400 Likewise.
401 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
402 Likewise.
403 * testsuite/25_algorithms/stable_sort/1.cc: Likewise.
404 * testsuite/26_numerics/complex/2.cc: Likewise.
405 * testsuite/26_numerics/headers/cstdlib/13943.cc: Likewise.
406 * testsuite/26_numerics/headers/cstdlib/2190.cc: Likewise.
407 * testsuite/26_numerics/headers/cstdlib/60401.cc: Likewise.
408 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: Likewise.
409 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: Likewise.
410 * testsuite/26_numerics/headers/cstdlib/dr2735.cc: Likewise.
411 * testsuite/26_numerics/headers/cstdlib/functions_std.cc:
412 Likewise.
413 * testsuite/26_numerics/headers/cstdlib/macros.cc: Likewise.
414 * testsuite/26_numerics/headers/cstdlib/types_std.cc: Likewise.
415 * testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc:
416 Likewise.
417 * testsuite/26_numerics/lerp/version.cc: Likewise.
418 * testsuite/26_numerics/midpoint/version.cc: Likewise.
419 * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
420 * testsuite/27_io/basic_syncstream/2.cc: Likewise.
421 * testsuite/27_io/fpos/14320-1.cc: Likewise.
422 * testsuite/27_io/fpos/14320-2.cc: Likewise.
423 * testsuite/27_io/fpos/14320-3.cc: Likewise.
424 * testsuite/27_io/fpos/14320-4.cc: Likewise.
425 * testsuite/27_io/spanstream/version.cc: Likewise.
426 * testsuite/29_atomics/atomic/lwg3220.cc: Likewise.
427 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
428 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
429 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise.
430 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
431 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
432 * testsuite/30_threads/barrier/2.cc: Likewise.
433 * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
434 Likewise.
435 * testsuite/30_threads/jthread/version.cc: Likewise.
436 * testsuite/30_threads/latch/2.cc: Likewise.
437 * testsuite/30_threads/semaphore/2.cc: Likewise.
438 * testsuite/30_threads/stop_token/2.cc: Likewise.
439 * testsuite/abi/pr42230.cc: Likewise.
440 * testsuite/ext/shared_ptr/1.cc: Likewise.
441 * testsuite/libstdc++-xmethods/shared_ptr.cc: Likewise.
442 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
443 * testsuite/std/ranges/adaptors/p1739.cc: Likewise.
444 * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise.
445 * testsuite/std/ranges/p2325.cc: Likewise.
446
447 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
448
449 * include/std/bitset (bitset(const C*, size_type n, C, C))
450 [!_GLIBCXX_HOSTED]: Remove std::basic_string dependency.
451 (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]: Abort instead of
452 throwing.
453
454 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
455
456 PR libstdc++/103626
457 * include/std/bitset [!_GLIBCXX_HOSTED]: Re-enable std::hash.
458 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Require ET
459 hosted.
460 * testsuite/20_util/bitset/ext/constexpr.cc: Likewise.
461
462 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
463
464 PR libstdc++/103626
465 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
466 Also require hosted.
467 (check_effective_target_hosted): New proc.
468
469 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
470 Jonathan Wakely <jwakely@redhat.com>
471
472 PR libstdc++/103626
473 * testsuite/17_intro/headers/c++1998/stdc++.cc [!__STDC_HOSTED__]:
474 Do not include C headers that aren't valid for freestanding.
475 * testsuite/17_intro/tag_type_explicit_ctor.cc [!__STDC_HOSTED__]:
476 Do not test tag types that aren't defined for freestanding.
477 * testsuite/18_support/headers/cstdlib/functions_std.cc: Do not
478 check for std::getenv and std::system for freestanding.
479 * testsuite/17_intro/using_namespace_std_exp_neg.cc [!__STDC_HOSTED__]:
480 Do not test hosted parts of the standard library.
481 * testsuite/17_intro/using_namespace_std_tr1_neg.cc [!__STDC_HOSTED__]:
482 Likewise.
483 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc [!__STDC_HOSTED__]:
484 Likewise.
485 * testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc [!HOSTED]:
486 Likewise.
487 * testsuite/20_util/headers/bitset/synopsis.cc [!__STDC_HOSTED__]: Likewise.
488 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc [!__STDC_HOSTED__]:
489 Likewise.
490 * testsuite/20_util/pointer_traits/requirements/typedefs.cc [!__STDC_HOSTED__]:
491 Likewise.
492 * testsuite/20_util/tuple/cons/deduction.cc [!__STDC_HOSTED__]: Likewise.
493 * testsuite/25_algorithms/move/93872.cc [!__STDC_HOSTED__]: Likewise.
494 * testsuite/std/ranges/adaptors/100577.cc [!__STDC_HOSTED__]: Likewise.
495
496 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
497
498 PR libstdc++/106953
499 * include/Makefile.am [!_GLIBCXX_HOSTED]: Remove
500 install-freestanding-headers, unifying it with the usual
501 install-headers
502 * include/Makefile.in: Regenerate.
503
504 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
505 Jonathan Wakely <jwakely@redhat.com>
506
507 PR libstdc++/103626
508 * include/Makefile.am: Add new header.
509 * include/Makefile.in: Regenerate.
510 * include/bits/requires_hosted.h: New header.
511 * include/experimental/algorithm: Include
512 <bits/requires_hosted.h>.
513 * include/experimental/any: Likewise.
514 * include/experimental/array: Likewise.
515 * include/experimental/buffer: Likewise.
516 * include/experimental/chrono: Likewise.
517 * include/experimental/deque: Likewise.
518 * include/experimental/executor: Likewise.
519 * include/experimental/filesystem: Likewise.
520 * include/experimental/forward_list: Likewise.
521 * include/experimental/functional: Likewise.
522 * include/experimental/internet: Likewise.
523 * include/experimental/io_context: Likewise.
524 * include/experimental/iterator: Likewise.
525 * include/experimental/list: Likewise.
526 * include/experimental/map: Likewise.
527 * include/experimental/memory: Likewise.
528 * include/experimental/memory_resource: Likewise.
529 * include/experimental/net: Likewise.
530 * include/experimental/netfwd: Likewise.
531 * include/experimental/numeric: Likewise.
532 * include/experimental/optional: Likewise.
533 * include/experimental/propagate_const: Likewise.
534 * include/experimental/random: Likewise.
535 * include/experimental/ratio: Likewise.
536 * include/experimental/regex: Likewise.
537 * include/experimental/scope: Likewise.
538 * include/experimental/set: Likewise.
539 * include/experimental/simd: Likewise.
540 * include/experimental/socket: Likewise.
541 * include/experimental/source_location: Likewise.
542 * include/experimental/string: Likewise.
543 * include/experimental/string_view: Likewise.
544 * include/experimental/system_error: Likewise.
545 * include/experimental/timer: Likewise.
546 * include/experimental/tuple: Likewise.
547 * include/experimental/unordered_map: Likewise.
548 * include/experimental/unordered_set: Likewise.
549 * include/experimental/utility: Likewise.
550 * include/experimental/vector: Likewise.
551 * include/std/barrier: Likewise.
552 * include/std/chrono: Likewise.
553 * include/std/condition_variable: Likewise.
554 * include/std/deque: Likewise.
555 * include/std/execution: Likewise.
556 * include/std/filesystem: Likewise.
557 * include/std/forward_list: Likewise.
558 * include/std/fstream: Likewise.
559 * include/std/future: Likewise.
560 * include/std/iomanip: Likewise.
561 * include/std/ios: Likewise.
562 * include/std/iosfwd: Likewise.
563 * include/std/iostream: Likewise.
564 * include/std/istream: Likewise.
565 * include/std/latch: Likewise.
566 * include/std/list: Likewise.
567 * include/std/locale: Likewise.
568 * include/std/map: Likewise.
569 * include/std/memory_resource: Likewise.
570 * include/std/mutex: Likewise.
571 * include/std/ostream: Likewise.
572 * include/std/queue: Likewise.
573 * include/std/random: Likewise.
574 * include/std/regex: Likewise.
575 * include/std/semaphore: Likewise.
576 * include/std/set: Likewise.
577 * include/std/shared_mutex: Likewise.
578 * include/std/spanstream: Likewise.
579 * include/std/sstream: Likewise.
580 * include/std/stack: Likewise.
581 * include/std/stacktrace: Likewise.
582 * include/std/stop_token: Likewise.
583 * include/std/streambuf: Likewise.
584 * include/std/string: Likewise.
585 * include/std/syncstream: Likewise.
586 * include/std/system_error: Likewise.
587 * include/std/thread: Likewise.
588 * include/std/unordered_map: Likewise.
589 * include/std/unordered_set: Likewise.
590 * include/std/valarray: Likewise.
591 * include/std/vector: Likewise.
592 * include/tr1/array: Likewise.
593 * include/tr1/ccomplex: Likewise.
594 * include/tr1/cctype: Likewise.
595 * include/tr1/cfenv: Likewise.
596 * include/tr1/cfloat: Likewise.
597 * include/tr1/cinttypes: Likewise.
598 * include/tr1/climits: Likewise.
599 * include/tr1/cmath: Likewise.
600 * include/tr1/complex: Likewise.
601 * include/tr1/complex.h: Likewise.
602 * include/tr1/cstdarg: Likewise.
603 * include/tr1/cstdbool: Likewise.
604 * include/tr1/cstdint: Likewise.
605 * include/tr1/cstdio: Likewise.
606 * include/tr1/cstdlib: Likewise.
607 * include/tr1/ctgmath: Likewise.
608 * include/tr1/ctime: Likewise.
609 * include/tr1/ctype.h: Likewise.
610 * include/tr1/cwchar: Likewise.
611 * include/tr1/cwctype: Likewise.
612 * include/tr1/fenv.h: Likewise.
613 * include/tr1/float.h: Likewise.
614 * include/tr1/functional: Likewise.
615 * include/tr1/inttypes.h: Likewise.
616 * include/tr1/limits.h: Likewise.
617 * include/tr1/math.h: Likewise.
618 * include/tr1/memory: Likewise.
619 * include/tr1/random: Likewise.
620 * include/tr1/regex: Likewise.
621 * include/tr1/stdarg.h: Likewise.
622 * include/tr1/stdbool.h: Likewise.
623 * include/tr1/stdint.h: Likewise.
624 * include/tr1/stdio.h: Likewise.
625 * include/tr1/stdlib.h: Likewise.
626 * include/tr1/tgmath.h: Likewise.
627 * include/tr1/tuple: Likewise.
628 * include/tr1/type_traits: Likewise.
629 * include/tr1/unordered_map: Likewise.
630 * include/tr1/unordered_set: Likewise.
631 * include/tr1/utility: Likewise.
632 * include/tr1/wchar.h: Likewise.
633 * include/tr1/wctype.h: Likewise.
634 * include/c_global/cmath: Likewise.
635 * include/ext/algorithm: Include <bits/requires_hosted.h>.
636 * include/ext/bitmap_allocator.h: Likewise.
637 * include/ext/cmath: Likewise.
638 * include/ext/codecvt_specializations.h: Likewise.
639 * include/ext/debug_allocator.h: Likewise.
640 * include/ext/enc_filebuf.h: Likewise.
641 * include/ext/extptr_allocator.h: Likewise.
642 * include/ext/functional: Likewise.
643 * include/ext/malloc_allocator.h: Likewise.
644 * include/ext/memory: Likewise.
645 * include/ext/mt_allocator.h: Likewise.
646 * include/ext/new_allocator.h: Likewise.
647 * include/ext/numeric: Likewise.
648 * include/ext/pod_char_traits.h: Likewise.
649 * include/ext/pool_allocator.h: Likewise.
650 * include/ext/random: Likewise.
651 * include/ext/random.tcc: Likewise.
652 * include/ext/rb_tree: Likewise.
653 * include/ext/rc_string_base.h: Likewise.
654 * include/ext/rope: Likewise.
655 * include/ext/ropeimpl.h: Likewise.
656 * include/ext/slist: Likewise.
657 * include/ext/sso_string_base.h: Likewise.
658 * include/ext/stdio_filebuf.h: Likewise.
659 * include/ext/stdio_sync_filebuf.h: Likewise.
660 * include/ext/string_conversions.h: Likewise.
661 * include/ext/throw_allocator.h: Likewise.
662 * include/ext/vstring.h: Likewise.
663 * include/ext/vstring.tcc: Likewise.
664 * include/ext/vstring_fwd.h: Likewise.
665 * include/ext/vstring_util.h: Likewise.
666 * include/std/charconv: Likewise.
667 (__cpp_lib_to_chars): Do not define for freestanding.
668 * include/std/version: Adjust which macros get defined in
669 freestanding.
670 * include/ext/pointer.h [!_GLIBCXX_HOSTED]: Omit iostream
671 functionality from freestanding.
672 * include/std/algorithm [!_GLIBCXX_HOSTED]: Omit PSTL algos.
673 * include/std/memory [!_GLIBCXX_HOSTED]: Omit
674 <bits/stl_tempbuf.h> in freestanding
675 * include/bits/algorithmfwd.h [!_GLIBCXX_HOSTED]: Omit leftover
676 random_shuffle and stable_partition definition.
677 * include/bits/stl_algo.h [!_GLIBCXX_HOSTED]: Omit
678 random_shuffle and stable_partition from freestanding.
679 * include/bits/ranges_algo.h [!_GLIBCXX_HOSTED]: Omit
680 stable_partition from freestanding.
681 * include/bits/concept_check.h: Remove needless HOSTED check.
682 * include/std/iterator: Include <bits/ranges_base.h>.
683 * include/std/numeric (__cpp_lib_parallel_algorithms): Do not
684 define for freestanding.
685 * include/std/functional (__cpp_lib_boyer_moore_searcher):
686 Likewise.
687 * testsuite/lib/prune.exp: Match error for hosted-only libstdc++
688 tests.
689
690 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
691 Arsen Arsenović <arsen@aarsen.me>
692
693 * include/precompiled/extc++.h [!_GLIBCXX_HOSTED]: Do not
694 include headers that aren't valid for freestanding.
695 * include/precompiled/stdc++.h [!_GLIBCXX_HOSTED]: Likewise.
696
697 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
698
699 * configure.ac: Remove any lines that unconditionally include
700 <stdio.h> from ac_includes_default, when running Autoconf <2.70.
701 * configure: Regenerate.
702
703 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
704
705 PR libstdc++/103626
706 * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Define _GLIBCXX_HOSTED
707 to __STDC_HOSTED__ for non-freestanding installations.
708 * configure: Regenerate.
709 * include/Makefile.am (${host_builddir}/c++config.h): Adjust
710 grep pattern.
711 * include/Makefile.in: Regenerate.
712 * testsuite/lib/libstdc++.exp (v3-build_support): Use
713 -fno-freestanding.
714 * testsuite/libstdc++-abi/abi.exp: Likewise.
715
716 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
717
718 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
719 Change body of unused operator<< overload to throw if called.
720 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
721 Likewise.
722
723 2022-10-03 François Dumont <fdumont@gcc.gnu.org>
724
725 * python/libstdcxx/v6/printers.py (Printer.add_version): Do not add version
726 namespace for __cxx11 symbols.
727 (add_one_template_type_printer): Likewise.
728 (add_one_type_printer): Likewise.
729 (FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al
730 ambiguous typedef matching both std:: and std::__cxx11:: symbols.
731 * testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete
732 \#define _GLIBCXX_USE_CXX11_ABI 0.
733 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. Adapt test to accept
734 std::__cxx11::list.
735 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
736 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
737 * testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove xfail for c++20
738 and debug mode.
739 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
740
741 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
742
743 * testsuite/20_util/bitset/access/to_ulong.cc: Construct bitset
744 from binary literal instead of using stringstream.
745
746 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
747
748 * include/std/bitset (operator>>): Use a simple buffer instead
749 of std::basic_string.
750
751 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
752
753 * include/std/bitset (_M_copy_from_ptr, _M_copy_from_string)
754 (_M_copy_to_string): Change access to private.
755 (_M_copy_from_string(const basic_string&, size_t, size_t)):
756 Remove.
757 (_M_copy_to_string(const basic_string&)): Remove.
758
759 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
760
761 * testsuite/20_util/bind/ref_neg.cc: Fix dg-prune-output
762 directive.
763
764 2022-09-30 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
765 Yvan ROUX <yvan.roux@foss.st.com>
766
767 * testsuite/20_util/bind/ref_neg.cc: Prune Windows paths too.
768
769 2022-09-30 Arsen Arsenović <arsen@aarsen.me>
770
771 * include/std/bitset: Include <bits/stl_algobase.h>.
772
773 2022-09-29 François Dumont <fdumont@gcc.gnu.org>
774
775 * python/libstdcxx/v6/printers.py (add_one_template_type_printer): Register
776 printer for types in std::__debug namespace with template parameters in std::__8
777 namespace.
778
779 2022-09-29 Patrick Palka <ppalka@redhat.com>
780
781 * include/bits/unique_ptr.h (unique_ptr<_Tp[], _Dp>): Remove
782 __remove_cv and use __remove_cv_t instead.
783
784 2022-09-29 Jonathan Wakely <jwakely@redhat.com>
785
786 * include/std/type_traits (__is_invocable_impl): Check
787 __has_builtin(__reference_converts_from_temporary) before using
788 built-in.
789
790 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
791
792 * doc/xml/manual/evolution.xml: Document std::bind API
793 changes.
794 * doc/xml/manual/intro.xml: Document LWG 2487 status.
795 * doc/xml/manual/using.xml: Clarify default value of
796 _GLIBCXX_USE_DEPRECATED.
797 * doc/html/*: Regenerate.
798 * include/std/functional (_Bind::operator()(Args&&...) volatile)
799 (_Bind::operator()(Args&&...) const volatile)
800 (_Bind_result::operator()(Args&&...) volatile)
801 (_Bind_result::operator()(Args&&...) const volatile): Replace
802 with deleted overload for C++20 and later.
803 * testsuite/20_util/bind/cv_quals.cc: Check for deprecated
804 warnings in C++17.
805 * testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for
806 ill-formed in C++20.
807
808 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
809
810 PR libstdc++/70692
811 * include/bits/invoke.h [__cplusplus < 201703] (__invoke_r):
812 Remove is_invocable and is_convertible constraints.
813 * include/std/type_traits (__is_invocable_impl::_S_conv): Use
814 non-deduced context for parameter.
815 (__is_invocable_impl::_S_test): Remove _Check_noex template
816 parameter and use deduced noexcept value in its place. Add bool
817 parameter to detect dangling references.
818 (__is_invocable_impl::type): Adjust call to _S_test to avoid
819 deducing unnecessary noexcept property..
820 (__is_invocable_impl::__nothrow_type): Rename to ...
821 (__is_invocable_impl::__nothrow_conv): ... this. Adjust call
822 to _S_test to deduce noexcept property.
823 * testsuite/20_util/bind/dangling_ref.cc: New test.
824 * testsuite/20_util/function/cons/70692.cc: New test.
825 * testsuite/20_util/function_objects/invoke/dangling_ref.cc:
826 New test.
827 * testsuite/20_util/is_invocable/dangling_ref.cc: New test.
828 * testsuite/30_threads/packaged_task/cons/dangling_ref.cc:
829 New test.
830
831 2022-09-27 Jonathan Wakely <jwakely@redhat.com>
832
833 PR c++/107049
834 * testsuite/20_util/is_convertible/requirements/access.cc: New
835 test.
836
837 2022-09-27 Jonathan Wakely <jwakely@redhat.com>
838
839 PR c++/106651
840 * include/bits/std_function.h (__function_guide_t): New alias
841 template.
842 [__cpp_static_call_operator] (__function_guide_static_helper):
843 New class template.
844 (function): Use __function_guide_t in deduction guide.
845 * include/std/future (packaged_task): Use __function_guide_t in
846 deduction guide.
847 * testsuite/20_util/function/cons/deduction_c++23.cc: New test.
848 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
849 New test.
850
851 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
852
853 * include/bits/ptr_traits.h (__ptr_traits_elem) [__cpp_concepts]:
854 Also define the __ptr_traits_elem class template for the
855 concepts case.
856 (pointer_traits<Ptr>): Remove constrained partial
857 specialization.
858 * testsuite/20_util/pointer_traits/lwg3545.cc: Check for
859 ambiguitiy with program-defined partial specialization.
860
861 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
862
863 * include/std/type_traits (is_convertible, is_convertible_v):
864 Define using new built-in.
865 (is_nothrow_convertible is_nothrow_convertible_v): Likewise.
866
867 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
868
869 PR libstdc++/107037
870 * include/std/bitset (_Base_bitset::_M_do_reset): Use
871 preprocessor conditional around non-C++03 code.
872 * testsuite/20_util/bitset/107037.cc: New test.
873
874 2022-09-24 Jonathan Wakely <jwakely@redhat.com>
875
876 * include/bits/alloc_traits.h (allocator_traits::is_always_equal):
877 Only instantiate is_empty if needed.
878 * include/bits/ptr_traits.h (__ptr_traits_impl::difference_type)
879 (__ptr_traits_impl::rebind): Use __detected_or.
880 * include/experimental/type_traits (is_same_v): Add a partial
881 specialization instead of instantiating the std::is_same class
882 template.
883 (detected_t): Redefine in terms of detected_or_t.
884 (is_detected, is_detected_v): Redefine in terms of detected_t.
885 * include/std/type_traits [__cpp_concepts] (__detected_or): Add
886 new definition using concepts.
887 (__detector::value_t): Rename to __is_detected.
888 * testsuite/17_intro/names.cc: Check value_t isn't used.
889
890 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
891
892 * testsuite/20_util/is_assignable/requirements/access.cc:
893 New test.
894
895 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
896
897 PR libstdc++/91456
898 * include/std/type_traits (__is_nothrow_invocable_lib): Remove.
899 (__is_invocable_impl::__nothrow_type): New member type which
900 checks if the conversion can throw.
901 (__is_nt_invocable_impl): Replace class template with alias
902 template to __is_nt_invocable_impl::__nothrow_type.
903 * testsuite/20_util/is_nothrow_invocable/91456.cc: New test.
904 * testsuite/20_util/is_nothrow_convertible/value.cc: Remove
905 macro used by value_ext.cc test.
906 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove
907 test for non-standard __is_nothrow_invocable_lib trait.
908
909 2022-09-23 Marek Polacek <polacek@redhat.com>
910
911 PR c++/106784
912 * include/std/type_traits: Rename __is_nothrow_convertible to
913 __is_nothrow_convertible_lib.
914 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Likewise.
915
916 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
917
918 * include/std/bitset (operator>>): Do not copy for N==0.
919 * testsuite/20_util/bitset/io/input.cc: Add comment.
920
921 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
922
923 * include/debug/bitset (__debug::bitset): Add constexpr to all
924 member functions.
925 (operator&, operator|, operator^): Add inline and constexpr.
926 (operator>>, operator<<): Add inline.
927 * testsuite/20_util/bitset/access/constexpr.cc: Only check using
928 constexpr std::string for the cxx11 ABI.
929 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
930 * testsuite/20_util/headers/bitset/synopsis.cc: Check constexpr
931 for C++23.
932
933 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
934
935 * include/std/bitset (bitset::_M_copy_to_string): Find set bits
936 instead of iterating over individual bits.
937
938 2022-09-22 Jonathan Wakely <jwakely@redhat.com>
939
940 * include/std/bitset (bitset): Add constexpr for C++23. Guard
941 members using std::string with _GLIBCXX_HOSTED.
942 * include/std/version (__cpp_lib_constexpr_bitset): Define.
943 * testsuite/20_util/bitset/access/constexpr.cc: New test.
944 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: New test.
945 * testsuite/20_util/bitset/count/constexpr.cc: New test.
946 * testsuite/20_util/bitset/ext/constexpr.cc: New test.
947 * testsuite/20_util/bitset/operations/constexpr_c++23.cc: New test.
948 * testsuite/20_util/bitset/version.cc: New test.
949
950 2022-09-22 Jonathan Wakely <jwakely@redhat.com>
951
952 * testsuite/23_containers/bitset/18604.cc: Moved to...
953 * testsuite/20_util/bitset/18604.cc: ...here.
954 * testsuite/23_containers/bitset/45713.cc: Moved to...
955 * testsuite/20_util/bitset/45713.cc: ...here.
956 * testsuite/23_containers/bitset/to_string/dr396.cc: Moved to...
957 * testsuite/20_util/bitset/access/dr396.cc: ...here.
958 * testsuite/23_containers/bitset/to_string/1.cc: Moved to...
959 * testsuite/20_util/bitset/access/to_string.cc: ...here.
960 * testsuite/23_containers/bitset/to_ullong/1.cc: Moved to...
961 * testsuite/20_util/bitset/access/to_ullong.cc: ...here.
962 * testsuite/23_containers/bitset/to_ulong/1.cc: Moved to...
963 * testsuite/20_util/bitset/access/to_ulong.cc: ...here.
964 * testsuite/23_containers/bitset/cons/1.cc: Moved to...
965 * testsuite/20_util/bitset/cons/1.cc: ...here.
966 * testsuite/23_containers/bitset/cons/16020.cc: Moved to...
967 * testsuite/20_util/bitset/cons/16020.cc: ...here.
968 * testsuite/23_containers/bitset/cons/2.cc: Moved to...
969 * testsuite/20_util/bitset/cons/2.cc: ...here.
970 * testsuite/23_containers/bitset/cons/3.cc: Moved to...
971 * testsuite/20_util/bitset/cons/3.cc: ...here.
972 * testsuite/23_containers/bitset/cons/38244.cc: Moved to...
973 * testsuite/20_util/bitset/cons/38244.cc: ...here.
974 * testsuite/23_containers/bitset/cons/50268.cc: Moved to...
975 * testsuite/20_util/bitset/cons/50268.cc: ...here.
976 * testsuite/23_containers/bitset/cons/6282.cc: Moved to...
977 * testsuite/20_util/bitset/cons/6282.cc: ...here.
978 * testsuite/23_containers/bitset/cons/constexpr.cc: Moved to...
979 * testsuite/20_util/bitset/cons/constexpr.cc: ...here.
980 * testsuite/23_containers/bitset/cons/dr1325-1.cc: Moved to...
981 * testsuite/20_util/bitset/cons/dr1325-1.cc: ...here.
982 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Moved to...
983 * testsuite/20_util/bitset/cons/dr1325-2.cc: ...here.
984 * testsuite/23_containers/bitset/cons/dr396.cc: Moved to...
985 * testsuite/20_util/bitset/cons/dr396.cc: ...here.
986 * testsuite/23_containers/bitset/debug/invalidation/1.cc: Moved to...
987 * testsuite/20_util/bitset/debug/invalidation/1.cc: ...here.
988 * testsuite/23_containers/bitset/ext/15361.cc: Moved to...
989 * testsuite/20_util/bitset/ext/15361.cc: ...here.
990 * testsuite/23_containers/bitset/hash/1.cc: Moved to...
991 * testsuite/20_util/bitset/hash/1.cc: ...here.
992 * testsuite/23_containers/bitset/input/1.cc: Moved to...
993 * testsuite/20_util/bitset/io/input.cc: ...here.
994 * testsuite/23_containers/bitset/count/6124.cc: Moved to...
995 * testsuite/20_util/bitset/observers/6124.cc: ...here.
996 * testsuite/23_containers/bitset/all/1.cc: Moved to...
997 * testsuite/20_util/bitset/observers/all.cc: ...here.
998 * testsuite/23_containers/bitset/test/1.cc: Moved to...
999 * testsuite/20_util/bitset/observers/test.cc: ...here.
1000 * testsuite/23_containers/bitset/operations/1.cc: Moved to...
1001 * testsuite/20_util/bitset/operations/1.cc: ...here.
1002 * testsuite/23_containers/bitset/operations/13838.cc: Moved to...
1003 * testsuite/20_util/bitset/operations/13838.cc: ...here.
1004 * testsuite/23_containers/bitset/operations/2.cc: Moved to...
1005 * testsuite/20_util/bitset/operations/2.cc: ...here.
1006 * testsuite/23_containers/bitset/operations/96303.cc: Moved to...
1007 * testsuite/20_util/bitset/operations/96303.cc: ...here.
1008 * testsuite/23_containers/bitset/operations/constexpr-2.cc: Moved to...
1009 * testsuite/20_util/bitset/operations/constexpr-2.cc: ...here.
1010 * testsuite/23_containers/bitset/operations/constexpr.cc: Moved to...
1011 * testsuite/20_util/bitset/operations/constexpr.cc: ...here.
1012 * testsuite/23_containers/bitset/requirements/constexpr_functions.cc: Moved to...
1013 * testsuite/20_util/bitset/requirements/constexpr_functions.cc: ...here.
1014 * testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc: Moved to...
1015 * testsuite/20_util/bitset/requirements/explicit_instantiation/1.cc: ...here.
1016 * testsuite/23_containers/bitset/requirements/explicit_instantiation/1_c++0x.cc: Moved to...
1017 * testsuite/20_util/bitset/requirements/explicit_instantiation/1_c++0x.cc: ...here.
1018 * testsuite/23_containers/headers/bitset/synopsis.cc: Moved to...
1019 * testsuite/20_util/headers/bitset/synopsis.cc: ...here.
1020
1021 2022-09-22 François Dumont <fdumont@gcc.gnu.org>
1022
1023 * python/libstdcxx/v6/printers.py: Remove ptinter registration for non-existing
1024 types std::__debug::unique_ptr, std::__debug::stack, std::__debug::queue,
1025 std::__debug::priority_queue.
1026
1027 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1028
1029 PR libstdc++/91456
1030 * testsuite/20_util/function/91456.cc: Add comment with PR
1031 number.
1032 * testsuite/20_util/is_invocable/91456.cc: Likewise. Replace
1033 std::function checks with std::is_invocable_r checks.
1034
1035 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1036
1037 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Remove
1038 unnecessary main function.
1039 * testsuite/17_intro/headers/c++2011/all_attributes.cc:
1040 Likewise.
1041 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
1042 Likewise.
1043 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
1044 Likewise.
1045 * testsuite/17_intro/headers/c++2020/all_attributes.cc:
1046 Likewise.
1047
1048 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1049
1050 * testsuite/20_util/headers/memory/synopsis.cc: Add declarations
1051 from C++11 and later.
1052
1053 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1054
1055 * doc/xml/manual/documentation_hacking.xml: Remove trailing
1056 whitespace.
1057 * doc/xml/manual/policy_data_structures.xml: Likewise.
1058
1059 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1060
1061 * include/c_compatibility/stdlib.h [!_GLIBCXX_HOSTED]: Add
1062 using-declaration for _Exit.
1063
1064 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1065
1066 * testsuite/18_support/uncaught_exception/14026.cc: Qualify
1067 call to std::abort.
1068
1069 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1070
1071 * include/bits/ranges_base.h: Include <initializer_list>.
1072
1073 2022-09-20 Jonathan Wakely <jwakely@redhat.com>
1074
1075 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (quick_exit): Fix
1076 missing space.
1077
1078 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1079
1080 PR libstdc++/106953
1081 * include/backward/auto_ptr.h [!_GLIBCXX_HOSTED]: Do not define
1082 shared_ptr members.
1083 * include/bits/alloc_traits.h [!_GLIBCXX_HOSTED]: Do not declare
1084 std::allocator_traits<std::allocator<T>> specializations for
1085 freestanding.
1086 * include/bits/memoryfwd.h [!_GLIBCXX_HOSTED] (allocator): Do
1087 not declare for freestanding.
1088 * include/bits/stl_algo.h [!_GLIBCXX_HOSTED] (stable_partition):
1089 Do not define for freestanding.
1090 [!_GLIBCXX_HOSTED] (merge, stable_sort): Do not use temporary
1091 buffers for freestanding.
1092 * include/bits/stl_algobase.h [!_GLIBCXX_HOSTED]: Do not declare
1093 streambuf iterators and overloaded algorithms using them.
1094 * include/bits/stl_uninitialized.h [!_GLIBCXX_HOSTED]: Do not
1095 define specialized overloads for std::allocator.
1096 * include/bits/unique_ptr.h [!_GLIBCXX_HOSTED] (make_unique)
1097 (make_unique_for_overwrite, operator<<): Do not define for
1098 freestanding.
1099 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (_Exit): Declare.
1100 Use _GLIBCXX_NOTHROW instead of throw().
1101 * include/debug/assertions.h [!_GLIBCXX_HOSTED]: Ignore
1102 _GLIBCXX_DEBUG for freestanding.
1103 * include/debug/debug.h [!_GLIBCXX_DEBUG]: Likewise.
1104 * include/std/bit [!_GLIBCXX_HOSTED]: Do not use the custom
1105 __int_traits if <ext/numeric_traits.h> is available.
1106 * include/std/functional [!_GLIBCXX_HOSTED]: Do not include
1107 headers that aren't valid for freestanding.
1108 (boyer_moore_searcher, boyer_moore_horspool_searcher): Do not
1109 define for freestanding.
1110 * include/std/iterator [!_GLIBCXX_HOSTED]: Do not include
1111 headers that aren't valid for freestanding.
1112 * include/std/memory [!_GLIBCXX_HOSTED]: Likewise.
1113 * include/std/ranges [!_GLIBCXX_HOSTED] (istream_view): Do not
1114 define for freestanding.
1115 (views::__detail::__is_basic_string_view) [!_GLIBCXX_HOSTED]:
1116 Do not define partial specialization for freestanding.
1117
1118 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1119
1120 * include/bits/alloc_traits.h (__alloc_swap)
1121 (__shrink_to_fit_aux): Move here, from ...
1122 * include/bits/allocator.h: ... here.
1123 * include/ext/alloc_traits.h: Do not include allocator.h.
1124
1125 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1126
1127 * include/bits/stl_algo.h: Include <bits/stl_algobase.h>.
1128 * include/bits/stl_tempbuf.h: Include headers for __try and
1129 __catch macros, std::pair, and __gnu_cxx::__numeric_traits.
1130 * include/bits/stream_iterator.h: Include <iosfwd> and headers
1131 for std::addressof and std::iterator.
1132 * include/bits/streambuf_iterator.h: Include header for
1133 std::iterator.
1134 * include/std/iterator: Do not include <iosfwd>.
1135
1136 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1137
1138 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
1139 Store value with non-zero padding bits after construction.
1140
1141 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1142
1143 * include/tr1/random.h (__detail::_Adaptor::_BEngine): Remove.
1144 (__detail::_Adaptor::_M_g): Make public.
1145 (__detail::_Adaptor<_Engine*, _Dist>): Remove partial
1146 specialization.
1147 (variate_generate::_Value): New helper to simplify handling of
1148 _Engine* and _Engine& template arguments.
1149 (variate_generate::engine_value_type): Define to underlying
1150 engine type, not adapted type.
1151 (variate_generate::engine()): Return underlying engine instead
1152 of adaptor.
1153 * testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc:
1154 Fix comment.
1155 * testsuite/tr1/5_numerical_facilities/random/variate_generator/requirements/typedefs.cc:
1156 Check member typedefs have the correct types.
1157
1158 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1159
1160 * include/debug/formatter.h [_GLIBCXX_DEBUG_BACKTRACE]
1161 (_Error_formatter): Use 0 as null pointer constant.
1162
1163 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1164
1165 * include/bits/allocator.h (__alloc_neq): Remove.
1166 * include/bits/stl_list.h (list::_M_check_equal_allocators):
1167 Compare allocators directly, without __alloc_neq.
1168
1169 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1170
1171 * doc/doxygen/user.cfg.in (PREDEFINED): Remove __allocator_base.
1172 * include/bits/allocator.h: Fix nesting of Doxygen commands.
1173
1174 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1175
1176 * doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 and
1177 GLIBCXX_3.4.31 versions.
1178 * doc/html/manual/abi.html: Regenerate.
1179
1180 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
1181
1182 * include/std/memory: Do not include <bits/stl_algobase.h>.
1183
1184 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
1185
1186 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_PRE_LOCK):
1187 Replace with ...
1188 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK): ... this, add try_lock flag.
1189 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED): New macro using
1190 try_lock_failed flag
1191 (_GLIBCXX_TSAN_MUTEX_POST_LOCK): Rename to ...
1192 (_GLIBCXX_TSAN_MUTEX_LOCKED): ... this.
1193 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK): Remove invalid flag.
1194 (_GLIBCXX_TSAN_MUTEX_POST_UNLOCK): Remove invalid flag.
1195 (_Sp_atomic::_Atomic_count::lock): Use new macros.
1196
1197 2022-09-15 Patrick Palka <ppalka@redhat.com>
1198
1199 * include/bits/ranges_algo.h (__adjacent_find_fn, adjacent_find):
1200 Move to ...
1201 * include/bits/ranges_util.h: ... here.
1202 * include/std/ranges (chunk_by_view): Define.
1203 (chunk_by_view::_Iterator): Define.
1204 (__detail::__can_chunk_by_view): Define.
1205 (_ChunkBy, chunk_by): Define.
1206 * testsuite/std/ranges/adaptors/chunk_by/1.cc: New test.
1207
1208 2022-09-15 François Dumont <fdumont@gcc.gnu.org>
1209
1210 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
1211 Adapt dg-prune-output to _GLIBCXX_INLINE_VERSION mode.
1212
1213 2022-09-15 François Dumont <fdumont@gcc.gnu.org>
1214
1215 * config/abi/pre/gnu-versioned-namespace.ver: Remove obsolete std::__detail::__8
1216 symbols.
1217
1218 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1219
1220 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_DESTROY)
1221 (_GLIBCXX_TSAN_MUTEX_PRE_LOCK, _GLIBCXX_TSAN_MUTEX_POST_LOCK)
1222 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK, _GLIBCXX_TSAN_MUTEX_POST_UNLOCK)
1223 (_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL, _GLIBCXX_TSAN_MUTEX_POST_SIGNAL):
1224 Define macros for TSan annotation functions.
1225 (_Sp_atomic::_Atomic_count): Add annotations.
1226
1227 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1228
1229 * include/bits/stl_tempbuf.h: Include <new>.
1230
1231 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1232
1233 * testsuite/17_intro/names.cc: Explain why poison pragma can't
1234 be used.
1235
1236 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1237
1238 * include/std/future
1239 (_State_baseV2::__setter(exception_ptr&, promise&)): Add
1240 assertion for LWG 2276 precondition.
1241 * testsuite/30_threads/promise/members/set_exception_neg.cc:
1242 New test.
1243
1244 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1245
1246 * doc/xml/manual/intro.xml: Document LWG 1203.
1247 * doc/html/*: Regenerate.
1248
1249 2022-09-14 Philipp Fent <fent@in.tum.de>
1250
1251 * python/libstdcxx/v6/printers.py (access_streambuf_ptrs):
1252 New helper function.
1253 (StdStringBufPrinter, StdStringStreamPrinter): New printers.
1254 (build_libstdcxx_dictionary): Register stringstream printers.
1255 * testsuite/libstdc++-prettyprinters/debug.cc: Check string
1256 streams.
1257 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
1258 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1259
1260 2022-09-13 Patrick Palka <ppalka@redhat.com>
1261
1262 * include/std/ranges (__detail::__slide_caches_nothing): Define.
1263 (__detail::__slide_caches_last): Define.
1264 (__detail::__slide_caches_first): Define.
1265 (slide_view): Define.
1266 (enable_borrowed_range<slide_view>): Define.
1267 (slide_view::_Iterator): Define.
1268 (slide_view::_Sentinel): Define.
1269 (views::__detail::__can_slide_view): Define.
1270 (views::_Slide, views::slide): Define.
1271 * testsuite/std/ranges/adaptors/slide/1.cc: New test.
1272
1273 2022-09-13 Patrick Palka <ppalka@redhat.com>
1274
1275 * include/std/ranges (__detail::__div_ceil): Define.
1276 (chunk_view): Define.
1277 (chunk_view::_OuterIter): Define.
1278 (chunk_view::_OuterIter::value_type): Define.
1279 (chunk_view::_InnerIter): Define.
1280 (chunk_view<_Vp>): Define partial specialization for forward
1281 ranges.
1282 (enable_borrowed_range<chunk_view>): Define.
1283 (chunk_view<_Vp>::_Iterator): Define.
1284 (views::__detail::__can_chunk_view): Define.
1285 (views::_Chunk, views::chunk): Define.
1286 * testsuite/std/ranges/adaptors/chunk/1.cc: New test.
1287
1288 2022-09-13 Patrick Palka <ppalka@redhat.com>
1289
1290 * include/std/ranges (join_view::_Iterator::_M_satisfy):
1291 Adjust resetting _M_inner as per LWG 3569.
1292 (join_view::_Iterator::_M_inner): Wrap in std::optional
1293 as per LWG 3569.
1294 (join_view::_Iterator::_Iterator): Relax constraints as
1295 per LWG 3569.
1296 (join_view::_Iterator::operator*): Adjust as per LWG 3569.
1297 (join_view::_Iterator::operator->): Likewise.
1298 (join_view::_Iterator::operator++): Likewise.
1299 (join_view::_Iterator::operator--): Likewise.
1300 (join_view::_Iterator::iter_move): Likewise.
1301 (join_view::_Iterator::iter_swap): Likewise.
1302 * testsuite/std/ranges/adaptors/join.cc (test14): New test.
1303
1304 2022-09-13 Patrick Palka <ppalka@redhat.com>
1305
1306 * include/debug/safe_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
1307 Add parentheses to avoid -Wparentheses warning.
1308
1309 2022-09-12 Patrick Palka <ppalka@redhat.com>
1310
1311 PR libstdc++/106320
1312 * testsuite/std/ranges/adaptors/join.cc (test13): New test.
1313
1314 2022-09-12 Jonathan Wakely <jwakely@redhat.com>
1315
1316 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Fix
1317 comments.
1318 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
1319 Likewise.
1320
1321 2022-09-12 Jakub Jelinek <jakub@redhat.com>
1322
1323 PR tree-optimization/105329
1324 * acinclude.m4 (libtool_VERSION): Change to 6:31:0.
1325 * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Don't export
1326 std::basic_string methods with name length of 15.
1327 (GLIBCXX_3.4.31): Export std::basic_string::_M_replace_cold.
1328 * testsuite/util/testsuite_abi.cc (check_version): Handle
1329 GLIBCXX_3.4.31.
1330 * include/bits/basic_string.h (std::basic_string::_M_replace_cold):
1331 Declare.
1332 * include/bits/basic_string.tcc (std::basic_string::_M_replace_cold):
1333 Define and export even for C++20.
1334 (std::basic_string::_M_replace): Use __builtin_expect, outline
1335 the overlapping case to _M_replace_cold.
1336 * configure: Regenerated.
1337
1338 2022-09-09 Jonathan Wakely <jwakely@redhat.com>
1339
1340 * include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
1341 Rename __weak to __is_weak.
1342 * testsuite/17_intro/names.cc: Add __weak and __strong.
1343
1344 2022-09-09 Patrick Palka <ppalka@redhat.com>
1345
1346 PR libstdc++/106803
1347 * include/std/ranges (views::_ZipTransform::operator()): Correct
1348 return type in the empty case.
1349 (views::_AdjacentTransform::operator()): Likewise.
1350
1351 2022-09-09 Patrick Palka <ppalka@redhat.com>
1352
1353 PR libstdc++/106798
1354 * include/std/ranges (adjacent_view::_Iterator::_Iterator): Fix
1355 typo.
1356 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): New test.
1357
1358 2022-09-09 Patrick Palka <ppalka@redhat.com>
1359
1360 PR libstdc++/106766
1361 * include/std/ranges (zip_view::_Iterator::operator-): Use
1362 __to_unsigned_like instead of make_unsigned_t.
1363 (zip_view::_Sentinel::operator-): Likewise.
1364 * testsuite/std/ranges/zip/1.cc (test04): New test.
1365
1366 2022-09-08 François Dumont <fdumont@gcc.gnu.org>
1367
1368 * testsuite/util/testsuite_performance.h (__gnu_test::MallocInfo): New.
1369 (__gnu_test::malloc_info): New, replace mallinfo on current platform
1370 supporting it and use mallinfo2 when glibc >= 2.33.
1371
1372 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1373
1374 PR c++/106838
1375 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
1376 Prune additional errors from front-end.
1377 * testsuite/20_util/is_move_constructible/incomplete_neg.cc:
1378 Likewise.
1379 * testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc:
1380 Likewise.
1381 * testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc:
1382 Likewise.
1383 * testsuite/20_util/is_swappable_with/incomplete_neg.cc:
1384 Likewise.
1385
1386 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1387
1388 * include/c_global/cstddef (byte): Add always_inline attribute
1389 to all operator overloads.
1390 (to_integer): Add always_inline attribute.
1391
1392 2022-09-08 Thomas Rodgers <trodgers@redhat.com>
1393 Jakub Jelinek <jakub@redhat.com>
1394 Jonathan Wakely <jwakely@redhat.com>
1395
1396 * include/bits/atomic_base.h (__atomic_impl::__maybe_has_padding):
1397 New function.
1398 (__atomic_impl::clear_padding): Likewise.
1399 (__atomic_impl::__compare_exchange): Likewise.
1400 (__atomic_impl::compare_exchange_weak): Delegate to
1401 __compare_exchange.
1402 (__atomic_impl::compare_exchange_strong): Likewise.
1403 * include/std/atomic (atomic<T>::atomic(T)): Clear padding when
1404 possible in a constexpr function.
1405 (atomic::store): Clear padding.
1406 (atomic::exchange): Likewise.
1407 (atomic::compare_exchange_weak): Use __compare_exchange.
1408 (atomic::compare_exchange_strong): Likewise.
1409 * testsuite/29_atomics/atomic/compare_exchange_padding.cc: New
1410 test.
1411 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
1412 New test.
1413
1414 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1415
1416 * include/std/system_error (__adl_only::make_error_code): Add
1417 deleted function.
1418 (__adl_only::make_error_condition): Likewise.
1419 (error_code::error_code(ErrorCodeEnum)): Add using-declaration
1420 for deleted function.
1421 (error_condition::error_condition(ErrorConditionEnum)):
1422 Likewise.
1423 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: New test.
1424 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: New test.
1425
1426 2022-09-07 Jonathan Wakely <jwakely@redhat.com>
1427
1428 * include/std/barrier: Add missing runtime exception.
1429
1430 2022-09-07 Patrick Palka <ppalka@redhat.com>
1431
1432 * include/std/type_traits (is_reference): Make the primary
1433 template derive from false_type. Define two partial
1434 specializations that derive from true_type.
1435
1436 2022-09-07 Patrick Palka <ppalka@redhat.com>
1437
1438 * include/std/type_traits (__is_void_helper): Remove.
1439 (is_void): Make the primary template derive from false_type,
1440 and define four explicit specializations that derive from
1441 true_type.
1442 (__is_null_pointer_helper, is_null_pointer): Likewise.
1443
1444 2022-09-07 Jason Merrill <jason@redhat.com>
1445
1446 * libsupc++/dyncast.cc (__dynamic_cast): Avoid virtual function
1447 call in simple success case.
1448
1449 2022-09-06 Philipp Fent <fent@in.tum.de>
1450
1451 * testsuite/libstdc++-prettyprinters/48362.cc: Fix expected
1452 tuple indices.
1453 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
1454
1455 2022-09-05 Jonathan Wakely <jwakely@redhat.com>
1456
1457 * include/std/type_traits (__success_type, __failure_type): Move
1458 definitions later in the file.
1459
1460 2022-09-05 Jonathan Wakely <jwakely@redhat.com>
1461
1462 * include/std/type_traits (is_trivial_v, is_trivially_copyable_v)
1463 (is_standard_layout_v, is_pod_v, is_literal_type_v): Use
1464 built-in instead of class template.
1465 (is_same_v): Add partial specialization for true case.
1466
1467 2022-09-02 Patrick Palka <ppalka@redhat.com>
1468
1469 * include/std/tuple (tuple::_UseOtherCtor): Use ::type when
1470 deriving from __and_, __or_ or __not_.
1471 * include/std/type_traits (negation): Likewise.
1472 (is_unsigned): Likewise.
1473 (__is_implicitly_default_constructible): Likewise.
1474 (is_trivially_destructible): Likewise.
1475 (__is_nt_invocable_impl): Likewise.
1476
1477 2022-09-02 Jonathan Wakely <jwakely@redhat.com>
1478
1479 * include/std/type_traits (is_constructible_v)
1480 (is_default_constructible_v, is_copy_constructible_v)
1481 (is_move_constructible_v): Define using __is_constructible.
1482 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v):
1483 Define using __is_assignable.
1484 (is_trivially_constructible_v)
1485 (is_trivially_default_constructible_v)
1486 (is_trivially_copy_constructible_v)
1487 (is_trivially_move_constructible_v): Define using
1488 __is_trivially_constructible.
1489 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1490 (is_trivially_move_assignable_v): Define using
1491 __is_trivially_assignable.
1492 (is_nothrow_constructible_v)
1493 (is_nothrow_default_constructible_v)
1494 (is_nothrow_copy_constructible_v)
1495 (is_nothrow_move_constructible_v): Define using
1496 __is_nothrow_constructible.
1497 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1498 (is_nothrow_move_assignable_v): Define using
1499 __is_nothrow_assignable.
1500
1501 2022-09-02 Patrick Palka <ppalka@redhat.com>
1502
1503 * include/std/type_traits (__or_, __and_, __not_): Redefine as a
1504 class template instead of as an alias template.
1505 * testsuite/20_util/logical_traits/requirements/short_circuit.cc:
1506 Add more tests for conjunction and disjunction. Add corresponding
1507 tests for __and_ and __or_.
1508
1509 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1510
1511 * include/std/ranges (adjacent_transform_view::_Iterator): Add
1512 typename keyword before dependent qualified-id.
1513
1514 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1515
1516 * include/std/type_traits (__is_referenceable): Remove.
1517 (__add_lvalue_reference_helper, __add_rvalue_reference_helper):
1518 Use __void_t instead of __is_referenceable.
1519 (__add_pointer_helper): Likewise.
1520 (add_pointer): Add partial specializations for reference types.
1521
1522 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1523
1524 * include/std/type_traits (__is_constructible_impl): Replace
1525 class template with alias template.
1526 (is_default_constructible, is_nothrow_constructible)
1527 (is_nothrow_constructible): Simplify base-specifier.
1528 (__is_copy_constructible_impl, __is_move_constructible_impl)
1529 (__is_nothrow_copy_constructible_impl)
1530 (__is_nothrow_move_constructible_impl): Remove class templates.
1531 (is_copy_constructible, is_move_constructible)
1532 (is_nothrow_constructible, is_nothrow_default_constructible)
1533 (is_nothrow_copy_constructible, is_nothrow_move_constructible):
1534 Adjust base-specifiers to use __is_constructible_impl.
1535 (__is_copy_assignable_impl, __is_move_assignable_impl)
1536 (__is_nt_copy_assignable_impl, __is_nt_move_assignable_impl):
1537 Remove class templates.
1538 (__is_assignable_impl): New alias template.
1539 (is_assignable, is_copy_assignable, is_move_assignable):
1540 Adjust base-specifiers to use new alias template.
1541 (is_nothrow_copy_assignable, is_nothrow_move_assignable):
1542 Adjust base-specifiers to use existing alias template.
1543 (__is_trivially_constructible_impl): New alias template.
1544 (is_trivially_constructible, is_trivially_default_constructible)
1545 (is_trivially_copy_constructible)
1546 (is_trivially_move_constructible): Adjust base-specifiers to use
1547 new alias template.
1548 (__is_trivially_assignable_impl): New alias template.
1549 (is_trivially_assignable, is_trivially_copy_assignable)
1550 (is_trivially_move_assignable): Adjust base-specifier to use
1551 new alias template.
1552 (__add_lval_ref_t, __add_rval_ref_t): New alias templates.
1553 (add_lvalue_reference, add_rvalue_reference): Use new alias
1554 templates.
1555
1556 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1557
1558 * include/std/type_traits (__decay_selector): Add partial
1559 specializations for array types. Only check for function types
1560 when not dealing with an array.
1561 (decay): Add partial specializations for reference types.
1562
1563 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1564
1565 * include/std/type_traits (is_lvalue_reference_v)
1566 (is_rvalue_reference_v, is_reference_v, is_const_v)
1567 (is_volatile_v): Define using partial specializations instead
1568 of instantiating class templates.
1569
1570 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1571
1572 * include/std/type_traits (is_enum_v, is_class_v, is_union_v)
1573 (is_empty_v, is_polymoprhic_v, is_abstract_v, is_final_v)
1574 (is_base_of_v, is_aggregate_v): Use built-in directly instead of
1575 instantiating class template.
1576
1577 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1578
1579 * include/std/type_traits (is_scoped_enum): Remove workaround.
1580
1581 2022-09-01 Patrick Palka <ppalka@redhat.com>
1582
1583 * include/std/ranges (__detail::__unarize): Define.
1584 (adjacent_view::_Iterator): Befriend adjacent_transform_view.
1585 (adjacent_transform_view): Define.
1586 (adjacent_transform_view::_Iterator): Define.
1587 (adjacent_transform_view::_Sentinel): Define.
1588 (views::__detail::__can_adjacent_transform_view): Define.
1589 (views::_AdjacentTransform): Define.
1590 (views::adjacent_transform): Define.
1591 (views::pairwise_transform): Define.
1592 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: New test.
1593
1594 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1595
1596 * include/std/type_traits (__is_array_known_bounds): Add partial
1597 specialization instead of using std::extent.
1598 (__is_array_unknown_bounds): Likewise.
1599 (extent): Add partial specializations to stop recursion after
1600 the result is found.
1601 (is_array_v): Add partial specializations instead of
1602 instantiating the class template.
1603 (rank_v, extent_v): Likewise.
1604 (is_bounded_array_v, is_unbounded_array_v): Likewise.
1605 (is_bounded_array, is_unbounded_array): Define in terms of the
1606 variable templates.
1607
1608 2022-08-31 Patrick Palka <ppalka@redhat.com>
1609
1610 * include/bits/ranges_base.h (__advance_fn::operator()): Add
1611 parentheses in assert condition to avoid -Wparentheses warning.
1612 * include/std/ranges: (take_view::take_view): Uglify 'base'.
1613 (take_while_view::take_while_view): Likewise.
1614 (elements_view::elements_view): Likewise.
1615 (views::_Zip::operator()): Adjust position of [[nodiscard]] for
1616 compatibility with -fconcepts-ts.
1617 (zip_transform_view::_Sentinel): Uglify 'OtherConst'.
1618 (views::_ZipTransform::operator()): Adjust position of
1619 [[nodiscard]] for compatibilty with -fconcepts-ts.
1620
1621 2022-08-31 Martin Liska <mliska@suse.cz>
1622
1623 * configure: Regenerate.
1624 * crossconfig.m4: Remove deprecated ports.
1625
1626 2022-08-31 François Dumont <fdumont@gcc.gnu.org>
1627
1628 * include/debug/debug.h: Use nullptr rather than '0' in checks in post-C++11.
1629 * include/debug/string: Likewise.
1630 * testsuite/21_strings/basic_string/operations/ends_with/char.cc: Use __gnu_test::string.
1631 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc: Likewise.
1632 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc: Likewise.
1633 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc: Likewise.
1634 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc: Likewise.
1635 * testsuite/21_strings/basic_string/operations/starts_with/char.cc: Likewise..
1636
1637 2022-08-31 Patrick Palka <ppalka@redhat.com>
1638
1639 * include/std/ranges (adjacent_view): Define.
1640 (enable_borrowed_range<adjacent_view>): Define.
1641 (__detail::__repeated_tuple): Define.
1642 (adjacent_view::_Iterator): Define.
1643 (adjacent_view::_Sentinel): Define.
1644 (views::__detail::__can_adjacent_view): Define.
1645 (views::_Adjacent): Define.
1646 (views::adjacent): Define.
1647 (views::pairwise): Define.
1648 * testsuite/std/ranges/adaptors/adjacent/1.cc: New test.
1649
1650 2022-08-31 François Dumont <fdumont@gcc.gnu.org>
1651
1652 * include/debug/formatter.h
1653 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_state): Declare.
1654 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_create_state): Declare.
1655 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_callback): Define.
1656 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_error_callback): Define.
1657 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_func): Define.
1658 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full): Declare.
1659 [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_state): New.
1660 [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_full): New.
1661 * src/c++11/debug.cc [_GLIBCXX_HAVE_STACKTRACE](print_backtrace): New.
1662 (_Error_formatter::_M_error()): Adapt.
1663 * src/libbacktrace/Makefile.am: Add backtrace.c.
1664 * src/libbacktrace/Makefile.in: Regenerate.
1665 * src/libbacktrace/backtrace-rename.h (backtrace_full): New.
1666 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc: New test.
1667 * doc/xml/manual/debug_mode.xml: Document _GLIBCXX_DEBUG_BACKTRACE.
1668 * doc/xml/manual/using.xml: Likewise.
1669
1670 2022-08-31 Patrick Palka <ppalka@redhat.com>
1671
1672 * testsuite/20_util/logical_traits/requirements/short_circuit.cc: New test.
1673
1674 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
1675
1676 * include/bits/refwrap.h (reference_wrapper::operator()): Add
1677 noexcept-specifier and use __invoke_result instead of result_of.
1678 * testsuite/20_util/reference_wrapper/invoke-noexcept.cc: New test.
1679
1680 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
1681
1682 * testsuite/20_util/reference_wrapper/invoke-2.cc: Improve
1683 comments.
1684 * testsuite/20_util/reference_wrapper/invoke-3.cc: Likewise.
1685 * testsuite/20_util/reference_wrapper/invoke.cc: Likewise.
1686
1687 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
1688
1689 * include/bits/basic_string.h (basic_string): Add nodiscard
1690 attribute to all relevant functions.
1691 * include/std/string_view (basic_string_view): Likewise.
1692 * testsuite/21_strings/basic_string/capacity/1.cc: Cast unused
1693 results to void.
1694 * testsuite/21_strings/basic_string/capacity/char/1.cc:
1695 Likewise.
1696 * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc:
1697 Likewise.
1698 * testsuite/21_strings/basic_string/cons/char/self_move.cc:
1699 Likewise.
1700 * testsuite/21_strings/basic_string/element_access/char/1.cc:
1701 Likewise.
1702 * testsuite/21_strings/basic_string/element_access/char/21674.cc:
1703 Likewise.
1704 * testsuite/21_strings/basic_string/element_access/wchar_t/1.cc:
1705 Likewise.
1706 * testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc:
1707 Likewise.
1708 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
1709 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
1710 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc:
1711 Add -Wno-unused-result to options.
1712 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc:
1713 Likewise.
1714 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
1715 Likewise.
1716 * testsuite/21_strings/basic_string/operators/char/1.cc: Cast
1717 unused results to void.
1718 * testsuite/21_strings/basic_string/operators/wchar_t/1.cc:
1719 Likewise.
1720 * testsuite/21_strings/basic_string_view/capacity/1.cc:
1721 Likewise.
1722 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1723 Likewise.
1724 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1725 Likewise.
1726 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1727 Likewise.
1728 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
1729 Likewise.
1730 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc:
1731 Likewise.
1732 Add -Wno-unused-result to options.
1733 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
1734 Likewise.
1735 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
1736 Likewise.
1737 * testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc: Cast
1738 unused results to void.
1739 * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc:
1740 Likewise.
1741 * testsuite/27_io/basic_stringbuf/sungetc/char/1.cc: Likewise.
1742 * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc:
1743 Likewise.
1744
1745 2022-08-27 Patrick Palka <ppalka@redhat.com>
1746
1747 * testsuite/20_util/logical_traits/requirements/base_classes.cc: New test.
1748
1749 2022-08-26 Patrick Palka <ppalka@redhat.com>
1750
1751 * include/std/ranges (zip_view::_Iterator::operator<): Remove
1752 as per LWG 3692.
1753 (zip_view::_Iterator::operator>): Likewise.
1754 (zip_view::_Iterator::operator<=): Likewise.
1755 (zip_view::_Iterator::operator>=): Likewise.
1756 (zip_view::_Iterator::operator<=>): Remove three_way_comparable
1757 constraint as per LWG 3692.
1758 (zip_transform_view::_Iterator): Ditto as per LWG 3702.
1759
1760 2022-08-26 Patrick Palka <ppalka@redhat.com>
1761
1762 * include/std/ranges (zip_view::_Iterator): Befriend
1763 zip_transform_view.
1764 (__detail::__range_iter_cat): Define.
1765 (zip_transform_view): Define.
1766 (zip_transform_view::_Iterator): Define.
1767 (zip_transform_view::_Sentinel): Define.
1768 (views::__detail::__can_zip_transform_view): Define.
1769 (views::_ZipTransform): Define.
1770 (views::zip_transform): Define.
1771 * testsuite/std/ranges/zip_transform/1.cc: New test.
1772
1773 2022-08-26 Patrick Palka <ppalka@redhat.com>
1774
1775 * include/std/type_traits (enable_if, __enable_if_t): Define them
1776 earlier.
1777 (__detail::__first_t): Define.
1778 (__detail::__or_fn, __detail::__and_fn): Declare.
1779 (__or_, __and_): Redefine as alias templates in terms of __or_fn
1780 and __and_fn.
1781 (__not_): Redefine as an alias template.
1782 (__detail::__disjunction_impl, __detail::__conjunction_impl):
1783 Define.
1784 (conjuction, disjunction): Redefine in terms of __disjunction_impl
1785 and __conjunction_impl.
1786
1787 2022-08-26 Jonathan Wakely <jwakely@redhat.com>
1788
1789 * include/std/system_error (error_code::_Check): New alias
1790 template for constructor SFINAE constraint.
1791 (error_code::error_code(ErrorCodeEnum)): Use it.
1792 (error_code::operator=(ErrorCodeEnum)): Remove.
1793 (error_condition::_Check): New alias template for constraint.
1794 (error_condition::error_condition(ErrorConditionEnum)): Use it.
1795 (error_condition::operator=(ErrorConditionEnum)): Remove.
1796 * testsuite/19_diagnostics/error_code/cons/1.cc: Check
1797 constructor taking user-defined error enum.
1798 * testsuite/19_diagnostics/error_condition/cons/1.cc: Likewise.
1799
1800 2022-08-26 Jonathan Wakely <jwakely@redhat.com>
1801
1802 * include/bits/basic_string.h (starts_with, ends_with, contains):
1803 Add nonnull attribute.
1804 * include/bits/cow_string.h (starts_with, ends_with, contains):
1805 Likewise.
1806 * include/std/string_view (starts_with, ends_with, contains):
1807 Likewise.
1808 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc
1809 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc
1810 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc
1811 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc
1812 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc
1813 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc
1814
1815 2022-08-25 Patrick Palka <ppalka@redhat.com>
1816
1817 * include/std/ranges (lazy_split_view::_OuterIter::_M_current):
1818 Remove redundant comment.
1819 (lazy_split_view::_M_current): Likewise.
1820 (common_view::common_view): Remove commented out view-converting
1821 constructor as per LWG3405.
1822 (elements_view::_Iterator::_Iterator): Uglify 'current' and 'i'.
1823
1824 2022-08-24 Patrick Palka <ppalka@redhat.com>
1825
1826 * include/bits/ranges_algo.h (__min_fn, min): Move to ...
1827 * include/bits/ranges_util.h: ... here, in order to avoid
1828 including all of ranges_algo.h from <ranges>.
1829 * include/std/ranges (__detail::__zip_is_common): Define for
1830 C++23 as per P2321R2.
1831 (__detail::__tuple_or_pair): Likewise.
1832 (__detail::__tuple_or_pair_t): Likewise.
1833 (__detail::__tuple_transform): Likewise.
1834 (__detail::__tuple_for_each): Likewise.
1835 (zip_view): Likewise.
1836 (enable_borrowed_range<zip_view>): Likewise.
1837 (__detail::__all_random_access): Likewise.
1838 (__detail::__all_bidirectional): Likewise.
1839 (__detail::__all_forward): Likewise.
1840 (__detail::__zip_view_iter_cat): Likewise.
1841 (zip_view::_Iterator): Likewise.
1842 (zip_view::_Sentinel): Likewise.
1843 * testsuite/std/ranges/zip/1.cc: New test.
1844
1845 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
1846
1847 Revert:
1848 2022-08-24 Will Hawkins <whh8b@obs.cr>
1849
1850 * include/bits/basic_string.h (operator+(const string&, const char*)):
1851 Remove naive implementation.
1852 * include/bits/basic_string.tcc (operator+(const string&, const char*)):
1853 Add single-allocation implementation.
1854
1855 2022-08-24 Patrick Palka <ppalka@redhat.com>
1856
1857 * include/bits/stl_pair.h (pair::swap const): Add non-standard
1858 is_swappable_v constraints.
1859 * include/std/tuple (tuple::swap const): Likewise.
1860 * testsuite/20_util/tuple/cons/noexcept_specs.cc: Correct some
1861 asserts in C++23 mode.
1862
1863 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
1864
1865 * include/bits/stl_algo.h (__stable_sort): Cast size to
1866 iterator's difference type.
1867 * testsuite/25_algorithms/stable_sort/4.cc: New test.
1868
1869 2022-08-24 Will Hawkins <whh8b@obs.cr>
1870
1871 * include/bits/basic_string.h (operator+(const string&, const char*)):
1872 Remove naive implementation.
1873 * include/bits/basic_string.tcc (operator+(const string&, const char*)):
1874 Add single-allocation implementation.
1875
1876 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
1877
1878 * testsuite/20_util/duration_cast/rounding.cc: Check abs with
1879 non-reduced duration.
1880
1881 2022-08-23 Patrick Palka <ppalka@redhat.com>
1882
1883 * include/bits/stl_bvector.h (_Bit_reference::operator=): Define
1884 const overload for C++23 as per P2321R2.
1885 * include/bits/stl_pair.h (pair::swap): Likewise.
1886 (pair::pair): Define additional converting constructors for
1887 C++23 as per P2321R2.
1888 (pair::operator=): Define const overloads for C++23 as per
1889 P2321R2.
1890 (swap): Define overload taking const pair& for C++23 as per
1891 P2321R2.
1892 (basic_common_reference): Define partial specialization for
1893 pair for C++23 as per P2321R2.
1894 (common_type): Likewise.
1895 * include/bits/uses_allocator_args.h
1896 (uses_allocator_construction_args): Define additional pair
1897 overloads for C++23 as per P2321R2.
1898 * include/std/tuple (_Tuple_impl::_Tuple_impl): Define
1899 additional converting constructors for C++23 as per P2321R2.
1900 (_Tuple_impl::_M_assign): Define const overloads for C++23
1901 as per P2321R2.
1902 (_Tuple_impl::_M_swap): Likewise.
1903 (tuple::__constructible): Define as a convenient renaming of
1904 _TCC<true>::__constructible.
1905 (tuple::__convertible): As above but for _TCC<true>::__convertible.
1906 (tuple::tuple): Define additional converting constructors for
1907 C++23 as per P2321R2.
1908 (tuple::operator=): Define const overloads for C++23 as per
1909 P2321R2.
1910 (tuple::swap): Likewise.
1911 (basic_common_reference): Define partial specialization for
1912 tuple for C++23 as per P2321R2.
1913 (common_type): Likewise.
1914 * testsuite/20_util/pair/p2321r2.cc: New test.
1915 * testsuite/20_util/tuple/p2321r2.cc: New test.
1916 * testsuite/23_containers/vector/bool/element_access/1.cc: New test.
1917
1918 2022-08-23 Patrick Palka <ppalka@redhat.com>
1919
1920 * include/std/tuple (_TupleConstraints::__convertible): Define.
1921 (_TupleConstraints::__constructible): Define.
1922 (_TupleConstraints::__is_explicitly_constructible): Redefine this
1923 in terms of __convertible and __constructible.
1924 (_TupleConstraints::__is_implicitly_constructible): Likewise.
1925
1926 2022-08-23 Jonathan Wakely <jwakely@redhat.com>
1927
1928 PR libstdc++/106589
1929 * include/std/variant (__do_visit): Handle is_void<R> for zero
1930 argument case.
1931 * testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v).
1932
1933 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
1934
1935 PR libstdc++/105678
1936 * doc/xml/manual/using.xml: Document -lstdc++_libbacktrace
1937 requirement for using std::stacktrace. Also adjust -frtti and
1938 -fexceptions to document non-default (i.e. negative) forms.
1939 * doc/html/*: Regenerate.
1940
1941 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
1942
1943 PR libstdc++/106695
1944 * include/bits/std_thread.h (thread::_State_impl): Forward
1945 individual arguments to _Invoker constructor.
1946 (thread::_Invoker): Add constructor. Delete copies.
1947 * include/std/future (__future_base::_Deferred_state): Forward
1948 individual arguments to _Invoker constructor.
1949 (__future_base::_Async_state_impl): Likewise.
1950 * testsuite/30_threads/async/106695.cc: New test.
1951 * testsuite/30_threads/thread/106695.cc: New test.
1952
1953 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
1954
1955 PR libstdc++/106607
1956 * include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value):
1957 Use built-ins to check for integer overflow in back-reference
1958 number.
1959 * testsuite/28_regex/basic_regex/106607.cc: New test.
1960
1961 2022-08-17 Keef Aragon <keef.aragon@konscious.net>
1962
1963 * libsupc++/eh_alloc.cc (pool::free): Inverse comparison.
1964
1965 2022-08-08 François Dumont <fdumont@gcc.gnu.org>
1966
1967 * include/debug/formatter.h (__singular_value_init): New _Iterator_state enum entry.
1968 (_Parameter<>(const _Safe_iterator<>&, const char*, _Is_iterator)): Check if iterator
1969 parameter is value-initialized.
1970 (_Parameter<>(const _Safe_local_iterator<>&, const char*, _Is_iterator)): Likewise.
1971 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_value_initialized()): New. Adapt
1972 checks.
1973 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_M_value_initialized()): New.
1974 Adapt checks.
1975 * src/c++11/debug.cc (_Safe_iterator_base::_M_reset): Do not reset _M_version.
1976 (print_field(PrintContext&, const _Parameter&, const char*)): Adapt state_names.
1977 * testsuite/23_containers/deque/debug/iterator1_neg.cc: New test.
1978 * testsuite/23_containers/deque/debug/iterator2_neg.cc: New test.
1979 * testsuite/23_containers/forward_list/debug/iterator1_neg.cc: New test.
1980 * testsuite/23_containers/forward_list/debug/iterator2_neg.cc: New test.
1981 * testsuite/23_containers/forward_list/debug/iterator3_neg.cc: New test.
1982
1983 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
1984
1985 * include/experimental/scope (__cpp_lib_experimental_scope):
1986 Define.
1987 * testsuite/experimental/scopeguard/uniqueres.cc: Check macro.
1988
1989 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
1990
1991 * include/Makefile.am: Add new header.
1992 * include/Makefile.in: Regenerate.
1993 * include/experimental/scope: New file.
1994 * testsuite/experimental/scopeguard/uniqueres.cc: New test.
1995 * testsuite/experimental/scopeguard/exit.cc: New test.
1996
1997 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
1998
1999 * include/std/string_view (basic_string_view(Range&&)): Add
2000 explicit as per P2499R0.
2001 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
2002 Adjust implicit conversions. Check implicit conversions fail.
2003 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
2004 Likewise.
2005
2006 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2007
2008 * include/bits/fs_dir.h (directory_iterator): Add comparison
2009 with std::default_sentinel_t. Remove redundant operator!= for
2010 C++20.
2011 * (recursive_directory_iterator): Likewise.
2012 * include/bits/iterator_concepts.h [!__cpp_lib_concepts]
2013 (default_sentinel_t, default_sentinel): Define even if concepts
2014 are not supported.
2015 * include/bits/regex.h (regex_iterator): Add comparison with
2016 std::default_sentinel_t. Remove redundant operator!= for C++20.
2017 (regex_token_iterator): Likewise.
2018 (regex_token_iterator::_M_end_of_seq()): Add noexcept.
2019 * testsuite/27_io/filesystem/iterators/lwg3719.cc: New test.
2020 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
2021 New test.
2022 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
2023 New test.
2024
2025 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2026
2027 * include/std/expected (unexpected::_M_val): Rename to _M_unex.
2028 (bad_expected_access::_M_val): Likewise.
2029
2030 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2031
2032 * include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update
2033 value to 202207L.
2034 * include/std/version (__cpp_lib_ios_noreplace): Likewise.
2035 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check
2036 for new value.
2037 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
2038 Likewise.
2039
2040 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2041
2042 PR libstdc++/106183
2043 * include/bits/atomic_wait.h (__waiter_pool_base::_M_notify):
2044 Move increment of _M_ver here.
2045 [!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment.
2046 Use relaxed memory order and always notify all waiters.
2047 (__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]:
2048 Check value again after locking mutex.
2049 (__waiter_base::_M_notify): Remove increment of _M_ver.
2050
2051 2022-08-04 Ulrich Drepper <drepper@gmail.com>
2052
2053 * python/libstdcxx/v6/printers.py (class StdTuplePrinter): Use
2054 zero-based indeces just like std:get takes.
2055
2056 2022-07-29 Jonathan Wakely <jwakely@redhat.com>
2057
2058 PR libstdc++/104443
2059 * include/bits/stl_iterator.h (common_iterator::operator->):
2060 Change return type to just auto.
2061
2062 2022-07-26 Thomas Rodgers <trodgers@redhat.com>
2063
2064 * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.
2065
2066 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
2067
2068 PR libstdc++/100823
2069 * include/bits/stl_iterator.h (common_iterator): Define
2070 destructor, copy constructor and move constructor as trivial
2071 when the underlying types allow.
2072 * testsuite/24_iterators/common_iterator/100823.cc: Check
2073 triviality of special members.
2074
2075 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
2076
2077 PR libstdc++/100823
2078 * include/bits/stl_iterator.h (common_iterator): Define move
2079 constructor and move assignment operator.
2080 (common_iterator::_M_assign): New function implementing
2081 assignment.
2082 (common_iterator::operator=): Use _M_assign.
2083 (common_iterator::_S_valueless): New constant.
2084 * testsuite/24_iterators/common_iterator/100823.cc: New test.
2085
2086 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
2087
2088 * include/bits/stl_iterator.h (common_iterator): Fix incorrect
2089 uses of is_nothrow_assignable_v. Fix inconsistent constraints on
2090 friend declaration. Do not move argument in copy constructor.
2091 * testsuite/24_iterators/common_iterator/1.cc: Check for
2092 noexcept constructibnle/assignable.
2093
2094 2022-07-19 François Dumont <fdumont@gcc.gnu.org>
2095
2096 * include/debug/debug.h [_GLIBCXX_DEBUG](__glibcxx_requires_string): Define
2097 using _GLIBCXX_DEBUG_PEDASSERT.
2098 [_GLIBCXX_DEBUG](__glibcxx_requires_string_len): Likewise.
2099 * include/debug/macros.h
2100 (__glibcxx_check_string, __glibcxx_check_string_len): Move...
2101 * include/debug/string
2102 (__glibcxx_check_string, __glibcxx_check_string_len): ...here. And define depending
2103 on _GLIBCXX_DEBUG_PEDANTIC no matter if _GLIBCXX_DEBUG is defined.
2104 Add using of std::string find, rfind, find_first_of, find_last_of, find_first_not_of
2105 and find_last_not_of. Remove debug implementations having no debug assertion.
2106 * testsuite/util/testsuite_string.h: New file. Provides __gnu_test::string and
2107 __gnu_test::wtring which definition depends on _GLIBCXX_DEBUG.
2108 * testsuite/21_strings/basic_string/debug/find1_neg.cc: New test case.
2109 * testsuite/21_strings/basic_string/debug/find2_neg.cc: New test case.
2110 * testsuite/21_strings/basic_string/operations/find/char/1.cc:
2111 Include <testsuite_string.h> and use __gnu_test::string.
2112 * testsuite/21_strings/basic_string/operations/find/char/2.cc: Likewise.
2113 * testsuite/21_strings/basic_string/operations/find/char/3.cc: Likewise.
2114 * testsuite/21_strings/basic_string/operations/find/char/4.cc: Likewise.
2115 * testsuite/21_strings/basic_string/operations/find/char/5.cc: Likewise.
2116 * testsuite/21_strings/basic_string/operations/find/char/6.cc: Likewise.
2117 * testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc:
2118 Include <testsuite_string.h> and use __gnu_test::wstring.
2119 * testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc: Likewise.
2120 * testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc: Likewise.
2121 * testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc: Likewise.
2122 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc: Likewise.
2123 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: Likewise.
2124
2125 2022-07-19 Jonathan Wakely <jwakely@redhat.com>
2126
2127 * include/std/type_traits (__cpp_lib_reference_from_temporary)
2128 (reference_constructs_from_temporary)
2129 (reference_converts_from_temporary): Only define when the
2130 built-ins are available.
2131
2132 2022-07-19 Marco Falke <falke.marco@gmail.com>
2133
2134 * include/std/charconv (__from_chars_alnum_to_val): Replace
2135 implicit conversion from int to unsigned char with explicit
2136 cast.
2137
2138 2022-07-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
2139
2140 * configure: Regnerate.
2141 * configure.ac (newlib, *-rtems*): Remove HAVE_POLL.
2142
2143 2022-07-18 François Dumont <fdumont@gcc.gnu.org>
2144
2145 * include/bits/stl_algo.h
2146 (__merge_adaptive): Adapt to merge only when buffer is large enough..
2147 (__merge_adaptive_resize): New, adapt merge when buffer is too small.
2148 (__inplace_merge): Adapt, use latter.
2149 (__stable_sort_adaptive): Adapt to sort only when buffer is large enough.
2150 (__stable_sort_adaptive_resize): New, adapt sort when buffer is too small.
2151 (__stable_sort): Adapt, use latter.
2152
2153 2022-07-15 Marek Polacek <polacek@redhat.com>
2154
2155 PR c++/104477
2156 * include/std/type_traits (reference_constructs_from_temporary,
2157 reference_converts_from_temporary): New class templates.
2158 (reference_constructs_from_temporary_v,
2159 reference_converts_from_temporary_v): New variable templates.
2160 (__cpp_lib_reference_from_temporary): Define for C++23.
2161 * include/std/version (__cpp_lib_reference_from_temporary): Define for
2162 C++23.
2163 * testsuite/20_util/variable_templates_for_traits.cc: Test
2164 reference_constructs_from_temporary_v and
2165 reference_converts_from_temporary_v.
2166 * testsuite/20_util/reference_from_temporary/value.cc: New test.
2167 * testsuite/20_util/reference_from_temporary/value2.cc: New test.
2168 * testsuite/20_util/reference_from_temporary/version.cc: New test.
2169
2170 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
2171
2172 PR libstdc++/106248
2173 * include/std/istream [C++17] (operator>>(istream&, char*)):
2174 Set eofbit if we stopped extracting at EOF.
2175 * testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc:
2176 New test.
2177 * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc:
2178 New test.
2179
2180 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
2181
2182 * include/bits/stl_iterator.h (__iter_to_alloc_t): Replace
2183 add_const_t with const-qualifier.
2184 * include/bits/utility.h (tuple_element<N, cv T>): Likewise for
2185 all cv-qualifiers.
2186 * include/std/type_traits (add_const, add_volatile): Replace
2187 typedef-declaration with using-declaration.
2188 (add_cv): Replace add_const and add_volatile with cv-qualifiers.
2189 * include/std/variant (variant_alternative<N, cv T>): Replace
2190 add_const_t, add_volatile_t and add_cv_t etc. with cv-qualifiers.
2191
2192 2022-07-09 François Dumont <fdumont@gcc.gnu.org>
2193
2194 * include/std/string: Remove obsolete comment about char_traits.h including
2195 stl_algobase.h.
2196
2197 2022-07-07 Jonathan Wakely <jwakely@redhat.com>
2198
2199 PR c++/89074
2200 * include/bits/char_traits.h (__gnu_cxx::char_traits::move):
2201 Remove workaround for front-end bug.
2202
2203 2022-07-05 Alexandre Oliva <oliva@adacore.com>
2204
2205 * testsuite/util/testsuite_fs.h (nonexistent_path): Explain
2206 why we need the typecast.
2207
2208 2022-07-05 Alexandre Oliva <oliva@adacore.com>
2209
2210 * testsuite/util/testsuite_fs.h (nonexistent_path): Convert
2211 the getpid result to an integral type.
2212
2213 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
2214
2215 PR libstdc++/106162
2216 * include/Makefile.am (largefile-config.h): Add
2217 stamp-${host_alias} prerequisite.
2218 * include/Makefile.in: Regenerate.
2219
2220 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
2221
2222 * include/bits/fs_ops.h: Add nodiscard to all pure functions.
2223 * include/experimental/bits/fs_ops.h: Likewise.
2224 * testsuite/27_io/filesystem/operations/all.cc: Do not discard
2225 results of absolute and canonical.
2226 * testsuite/27_io/filesystem/operations/absolute.cc: Cast
2227 discarded result to void.
2228 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
2229 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
2230 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
2231 * testsuite/27_io/filesystem/operations/read_symlink.cc:
2232 Likewise.
2233 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
2234 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2235 Likewise.
2236 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2237 Likewise.
2238 * testsuite/experimental/filesystem/operations/canonical.cc:
2239 Likewise.
2240 * testsuite/experimental/filesystem/operations/exists.cc:
2241 Likewise.
2242 * testsuite/experimental/filesystem/operations/is_empty.cc:
2243 Likewise.
2244 * testsuite/experimental/filesystem/operations/read_symlink.cc:
2245 Likewise.
2246 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2247 Likewise.
2248
2249 2022-07-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
2250
2251 * configure: Regnerate.
2252 * configure.ac (newlib, *-rtems*): Enable TLS support for all RTEMS
2253 targets except bfin, lm32, mips, moxie, or1k, and v850.
2254 For all RTEMS targets, define HAVE_ALIGNED_ALLOC, HAVE_AT_QUICK_EXIT,
2255 HAVE_LINK, HAVE_POLL, HAVE_QUICK_EXIT, HAVE_READLINK, HAVE_SETENV,
2256 HAVE_SLEEP, HAVE_SOCKATMARK, HAVE_STRERROR_L, HAVE_SYMLINK,
2257 HAVE_TRUNCATE, and HAVE_USLEEP.
2258 * crossconfig.m4 (*-rtems*): Remove.
2259
2260 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2261
2262 * include/bits/utility.h: Fix comment typos.
2263
2264 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2265
2266 * src/c++17/fs_ops.cc (fs::temp_directory_path()): Include path
2267 in exception.
2268 (fs::temp_directory_path(error_code&)): Rearrange to more
2269 closely match the structure of the first overload.
2270 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2271 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2272 Check that exception contains the path.
2273 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2274 Likewise.
2275
2276 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2277
2278 PR libstdc++/88881
2279 * src/filesystem/ops.cc (has_trailing_slash): New helper
2280 function.
2281 (fs::status): Strip trailing slashes.
2282 (fs::symlink_status): Likewise.
2283 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2284 Clean the environment before each test and use TMP instead of
2285 TMPDIR so the test passes on Windows.
2286
2287 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2288
2289 * src/filesystem/dir-common.h (_Dir_base::_At_path):
2290 Use char_type consistently for paths.
2291
2292 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2293
2294 * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with
2295 current() returning _At_path.
2296 (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust.
2297 * src/filesystem/dir-common.h (_Dir_base::_At_path): New class.
2298 (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path.
2299 * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with
2300 current() returning _At_path.
2301 (_Dir::_Dir, _Dir::open_subdir): Adjust.
2302
2303 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2304
2305 * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]:
2306 Always store pathname if we don't have openat or unlinkat,
2307 because the full path is needed to open sub-directories and
2308 remove entries.
2309
2310 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2311
2312 * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
2313 functions are available.
2314
2315 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2316
2317 * testsuite/20_util/to_chars/long_double.cc: Use cmath
2318 long double overloads for nexttoward and ldexp.
2319
2320 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2321
2322 * testsuite/experimental/simd/standard_abi_usable.cc: Require
2323 cmath support.
2324 * testsuite/experimental/simd/standard_abi_usable_2.cc:
2325 Likewise.
2326
2327 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2328
2329 * testsuite/26_numerics/complex/proj.cc: Skip test in the
2330 circumstances in which the implementation of proj is known to
2331 be broken.
2332
2333 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2334
2335 * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
2336 _GLIBCXX_HAVE_OPENAT.
2337
2338 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2339
2340 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
2341 (test06): Don't create symlinks when NO_SYMLINKS is defined.
2342
2343 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2344
2345 * testsuite/lib/dg-options.exp (add_options_for_net_ts):
2346 Add -Wl,--gc-sections for RTEMS targets.
2347 * testsuite/experimental/net/timer/waitable/dest.cc: Link-time
2348 xfail on RTEMS.
2349 * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
2350 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2351 Execution-time xfail on RTEMS.
2352 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
2353 Likewise.
2354
2355 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2356
2357 * testsuite/ext/mt_allocator/22309_thread.cc: Include <string>.
2358
2359 2022-06-27 Joel Brobecker <brobecker@adacore.com>
2360 Jonathan Wakely <jwakely@redhat.com>
2361
2362 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path):
2363 Always include a counter in the filename returned.
2364
2365 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2366
2367 * include/bits/move_only_function.h (_Never_valueless_alt):
2368 Define partial specialization for std::move_only_function.
2369
2370 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2371
2372 * include/std/variant (_Build_FUN::_S_fun): Define fallback case
2373 as deleted.
2374 (__accepted_index, _Extra_visit_slot_needed): Replace class
2375 templates with variable templates.
2376
2377 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2378
2379 * include/bits/fs_path.h (__is_path_iter_src): Replace class
2380 template with variable template.
2381
2382 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2383
2384 * include/bits/chrono.h (is_clock_v): Define to false.
2385 (is_clock_v<T>): Define partial specialization for true cases.
2386 (is_clock): Define in terms of is_clock_v.
2387
2388 2022-06-24 Xi Ruoyao <xry111@xry111.site>
2389
2390 * scripts/extract_symvers.in: Use grep -E instead of egrep.
2391 * scripts/run_doxygen: Likewise.
2392
2393 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2394
2395 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
2396 openat.
2397 * configure, config.h.in: Rebuilt.
2398 * src/filesystem/dir-common.h (openat): Use ::openat if
2399 _GLIBCXX_HAVE_OPENAT.
2400 * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if
2401 _GLIBCXX_HAVE_OPENAT.
2402
2403 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2404
2405 * testsuite/27_io/filesystem/operations/rename.cc: xfail on
2406 rtems.
2407 * testsuite/experimental/filesystem/operations/rename.cc:
2408 Likewise.
2409
2410 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2411
2412 * testsuite/util/testsuite_fs.h (NO_LAST_WRITE_TIME): Define
2413 when appropriate.
2414 * testsuite/lib/libstdc++.exp
2415 (check_v3_target_fs_last_write_time): New.
2416 * testsuite/lib/dg-options.exp (dg-require-target-fs-lwt):
2417 New.
2418 * testsuite/27_io/filesystem/operations/last_write_time.cc:
2419 Skip the test if the features are unavailable.
2420 * testsuite/experimental/filesystem/operations/last_write_time.cc:
2421 Likewise.
2422
2423 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2424
2425 * testsuite/util/testsuite_fs.h (NO_SPACE): Define if
2426 appropriate.
2427 * testsuite/lib/libstdc++.exp (check_v3_target_fs_space): New.
2428 * testsuite/lib/dg-options.exp (dg-require-target-fs-space):
2429 New.
2430 * testsuite/27_io/filesystem/operations/space.cc: Require
2431 target-fs-space.
2432 * testsuite/experimental/filesystem/operations/space.cc:
2433 Likewise.
2434
2435 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2436
2437 * testsuite/util/testsuite_fs.h (NO_SYMLINKS): Define on
2438 mingw and when create_symlink is a dummy.
2439 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2440 Drop mingw xfail.
2441 (test01, test02): Don't create symlinks when NO_SYMLINKS is
2442 defined.
2443 * testsuite/27_io/filesystem/operations/canonical.cc (test03):
2444 Likewise.
2445 * testsuite/27_io/filesystem/operations/copy.cc (test02):
2446 Likewise.
2447 * testsuite/27_io/filesystem/operations/create_directories.cc
2448 (test04): Likewise.
2449 * testsuite/27_io/filesystem/operations/create_directory.cc
2450 (test01): Likewise.
2451 * testsuite/27_io/filesystem/operations/permissions.cc
2452 (test03, test04): Likewise.
2453 * testsuite/27_io/filesystem/operations/remove.cc (test01):
2454 Likewise.
2455 * testsuite/27_io/filesystem/operations/remove_all.cc (test01):
2456 Likewise.
2457 * testsuite/27_io/filesystem/operations/rename.cc
2458 (test_symlinks): Likewise.
2459 * testsuite/27_io/filesystem/operations/weakly_canonical.cc
2460 (test01): Likewise.
2461 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
2462 (test06): Likewise.
2463 * testsuite/experimental/filesystem/operations/copy.cc
2464 (test01): Likewise.
2465 * testsuite/experimental/filesystem/operations/create_directories.cc
2466 (test04): Likewise.
2467 * testsuite/experimental/filesystem/operations/create_directory.cc
2468 (test01): Likewise.
2469 * testsuite/experimental/filesystem/operations/permissions.cc
2470 (test03, test04): Likewise.
2471 * testsuite/experimental/filesystem/operations/remove.cc
2472 (test01): Likewise.
2473 * testsuite/experimental/filesystem/operations/remove_all.cc
2474 (test01): Likewise.
2475 * testsuite/experimental/filesystem/operations/rename.cc
2476 (test01): Likewise.
2477 * testsuite/lib/libstdc++.exp
2478 (v3_check_preprocessor_condition): Add optional inc parameter.
2479 Add it to the test program after include bits/c++config.h.
2480 (check_v3_target_fs_symlinks): New.
2481 * testsuite/lib/dg-options.exp
2482 (dg-require-target-fs-symlinks): New.
2483 * testsuite/27_io/filesystem/operations/read_symlink.cc:
2484 Replace mingw xfail with require target-fs-symlinks.
2485 * testsuite/experimental/filesystem/operations/read_symlink.cc:
2486 Likewise.
2487
2488 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2489
2490 * testsuite/27_io/filesystem/operations/copy.cc (test02):
2491 Select TO after creating FROM.
2492 (test03, test04): Likewise.
2493 * testsuite/experimental/filesystem/operations/copy.cc
2494 (test02, test03, test04): Likewise.
2495
2496 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2497
2498 * testsuite/30_threads/thread/native_handle/cancel.cc: Add an
2499 explicit cancellation point in case sleep_for lacks one.
2500
2501 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2502
2503 * testsuite/lib/dg-options.exp (add_options_for_net_ts): Add
2504 -lbsd for RTEMS targets.
2505
2506 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
2507
2508 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
2509 rmdir to remove directories.
2510 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
2511 Likewise.
2512
2513 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
2514
2515 * testsuite/26_numerics/random/random_device/entropy.cc: Use
2516 numeric_limits<unsigned>::digits.
2517
2518 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2519
2520 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
2521 (__eh_globals_init::~__eh_globals_init): Clear _S_init first.
2522
2523 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2524
2525 * testsuite/30_threads/this_thread/60421.cc (test02): Call
2526 sched_yield.
2527
2528 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2529
2530 * testsuite/20_util/to_chars/long_double.cc: Require cmath.
2531
2532 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2533
2534 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Work around
2535 global struct bitset.
2536 * testsuite/23_containers/bitset/ext/15361.cc: Likewise.
2537 * testsuite/23_containers/bitset/input/1.cc: Likewise.
2538 * testsuite/23_containers/bitset/to_string/1.cc: Likewise.
2539 * testsuite/23_containers/bitset/to_string/dr396.cc: Likewise.
2540
2541 2022-06-17 Jonathan Wakely <jwakely@redhat.com>
2542
2543 * testsuite/21_strings/basic_string/cons/char/105995.cc: Add
2544 missing #include.
2545
2546 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
2547
2548 PR libstdc++/105995
2549 * include/bits/basic_string.h (_M_use_local_data): Initialize
2550 the entire SSO buffer.
2551 * testsuite/21_strings/basic_string/cons/char/105995.cc: New test.
2552
2553 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
2554
2555 PR libstdc++/101482
2556 * include/ext/vstring.h (operator==): Always check lengths
2557 before comparing.
2558
2559 2022-06-15 François Dumont <fdumont@gcc.gnu.org>
2560
2561 PR libstdc++/105717
2562 * include/bits/hashtable_policy.h (_ConvertToValueType): New.
2563 * include/bits/hashtable.h (_Hashtable<>::_M_insert_unique_aux): New.
2564 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Use latters.
2565 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, false_type)): Likewise.
2566 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
2567 const allocator_type&, true_type)): Use this.insert range.
2568 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
2569 const allocator_type&, false_type)): Use _M_insert.
2570 * testsuite/23_containers/unordered_map/cons/56112.cc: Check how many times conversion
2571 is done.
2572 * testsuite/23_containers/unordered_map/insert/105717.cc: New test.
2573 * testsuite/23_containers/unordered_set/insert/105717.cc: New test.
2574
2575 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2576
2577 PR libstdc++/62187
2578 * include/bits/basic_string.h (operator==): Always compare
2579 lengths before checking string contents.
2580 [!__cpp_lib_three_way_comparison] (operator==, operator!=):
2581 Reorder arguments.
2582
2583 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2584
2585 PR libstdc++/59048
2586 * include/bits/basic_string.h (compare): Define inline.
2587 * include/bits/basic_string.tcc (compare): Remove out-of-line
2588 definitions.
2589 * include/bits/cow_string.h (compare): Define inline.
2590 * testsuite/21_strings/basic_string/operations/compare/char/3.cc:
2591 New test.
2592
2593 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2594
2595 * include/bits/new_allocator.h: Fix indentation.
2596 * include/ext/malloc_allocator.h: Likewise.
2597
2598 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2599
2600 PR libstdc++/105957
2601 * include/bits/allocator.h (allocator::allocate): Check for
2602 overflow in constexpr allocation.
2603 * testsuite/20_util/allocator/105975.cc: New test.
2604
2605 2022-06-13 Mark Mentovai <mark@mentovai.com>
2606
2607 * include/experimental/bits/fs_path.h (__detail::__null_terminated):
2608 Rename to __nul_terminated to avoid colliding with a macro in
2609 Apple's SDK.
2610
2611 2022-06-13 Jonathan Wakely <jwakely@redhat.com>
2612
2613 * include/std/atomic (__atomic_val_t): Use __type_identity_t
2614 instead of atomic<T>::value_type, as per LWG 3220.
2615 * testsuite/29_atomics/atomic/lwg3220.cc: New test.
2616
2617 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
2618
2619 PR libstdc++/105844
2620 * include/experimental/numeric (experimental::gcd): Simplify
2621 assertions. Use __abs_r instead of __absu.
2622 (experimental::lcm): Likewise. Remove use of __detail::__lcm so
2623 overflow can be detected.
2624 * include/std/numeric (__detail::__absu): Rename to __abs_r and
2625 change to allow signed result type, so overflow can be detected.
2626 (__detail::__lcm): Remove.
2627 (gcd): Simplify assertions. Use __abs_r instead of __absu.
2628 (lcm): Likewise. Remove use of __detail::__lcm so overflow can
2629 be detected.
2630 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
2631 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
2632 * testsuite/26_numerics/gcd/105844.cc: New test.
2633 * testsuite/26_numerics/lcm/105844.cc: New test.
2634
2635 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
2636
2637 PR libstdc++/105880
2638 * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
2639 prevent destruction during termination.
2640 (__eh_globals_init::_M_init): Replace with static member _S_init.
2641 (__cxxabiv1::__cxa_get_globals_fast): Update.
2642 (__cxxabiv1::__cxa_get_globals): Likewise.
2643
2644 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
2645
2646 * include/bits/basic_string.h (__hash_str_base): New class
2647 template.
2648 (hash<basic_string<C, char_traits<C>, A>>): Define partial
2649 specialization for each of the standard character types.
2650 (hash<string>, hash<wstring>, hash<u8string>, hash<u16string>)
2651 (hash<u32string>): Remove explicit specializations.
2652 * include/std/string (__hash_string_base): Remove class
2653 template.
2654 (hash<pmr::string>, hash<pmr::wstring>, hash<pmr::u8string>)
2655 (hash<pmr::u16string>, hash<pmr::u32string>): Remove explicit
2656 specializations.
2657 * testsuite/21_strings/basic_string/hash/hash.cc: Test with
2658 custom allocators.
2659 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
2660 Likewise.
2661
2662 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
2663
2664 PR libstdc++/105671
2665 * include/std/sstream (basic_stringbuf::_M_high_mark): Add
2666 always_inline attribute.
2667
2668 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2669
2670 PR libstdc++/105681
2671 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
2672 Limit ga_sizes array to values that fit in size_t.
2673 * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
2674 (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
2675 (sfmt216091_64): Do not declare.
2676
2677 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2678
2679 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
2680 lookup for ios_errc and future_errc check versioned namespace.
2681 (StdAtomicPrinter): Strip versioned namespace from typename.
2682
2683 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2684
2685 * src/c++11/Makefile.am: Add new source file.
2686 * src/c++11/Makefile.in: Regenerate.
2687 * src/c++11/cxx11-ios_failure.cc (iostream_category):
2688 Move to ...
2689 * src/c++11/ios_errcat.cc: New file.
2690 * testsuite/27_io/ios_base/failure/error_code.cc: Check that
2691 std::iostream_category() is defined and used for std::io_errc.
2692
2693 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2694
2695 * include/bits/stl_iterator.h (counted_iterator::operator++(int)):
2696 Add 'constexpr' as per LWG 3643.
2697 * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
2698
2699 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2700
2701 * include/bits/functional_hash.h (__is_fast_hash): Add doxygen
2702 comment.
2703 * include/bits/hashtable.h: Do not include <bits/stl_function.h>
2704 here.
2705 * include/bits/hashtable_policy.h: Include <bits/stl_pair.h> and
2706 <bits/functional_hash.h>.
2707 * include/bits/unordered_map.h: Include required headers.
2708 * include/bits/unordered_set.h: Likewise.
2709 * include/std/unordered_map: Do not include headers for indirect
2710 dependencies.
2711 * include/std/unordered_set: Likewise.
2712
2713 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2714
2715 * include/bits/ranges_algobase.h: Do not include
2716 <bits/stl_iterator_base_types.h>.
2717 * include/std/string: Likewise.
2718 * include/std/variant: Likewise.
2719
2720 2022-05-26 Nathan Sidwell <nathan@acm.org>
2721
2722 * include/bits/hashtable.h: Include required headers.
2723 * include/bits/hashtable_policy.h: Likewise.
2724 * include/bits/stl_heap.h: Likewise.
2725 * include/bits/stl_iterator_base_funcs.h: Likewise.
2726
2727 2022-05-26 François Dumont <fdumont@gcc.gnu.org>
2728
2729 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
2730 Strip typename from version namespace.
2731
2732 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2733
2734 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
2735 versioned namespace from the template argument too.
2736
2737 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2738
2739 * testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc:
2740 Moved to...
2741 * testsuite/21_strings/basic_string/modifiers/pop_back/char.cc:
2742 ...here.
2743 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc:
2744 Moved to...
2745 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc:
2746 ...here.
2747 * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
2748 Moved to...
2749 * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
2750 ...here.
2751 * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
2752 Moved to...
2753 * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
2754 ...here.
2755 * testsuite/21_strings/basic_string/operations/contains/char/1.cc:
2756 Moved to...
2757 * testsuite/21_strings/basic_string/operations/contains/char.cc:
2758 ...here.
2759 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc:
2760 Moved to...
2761 * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc:
2762 ...here.
2763 * testsuite/21_strings/basic_string/operations/data/char/1.cc:
2764 Moved to...
2765 * testsuite/21_strings/basic_string/operations/data/char.cc:
2766 ...here.
2767 * testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc:
2768 Moved to...
2769 * testsuite/21_strings/basic_string/operations/data/wchar_t.cc:
2770 ...here.
2771 * testsuite/21_strings/basic_string/operations/ends_with/char/1.cc:
2772 Moved to...
2773 * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
2774 ...here.
2775 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t/1.cc:
2776 Moved to...
2777 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
2778 ...here.
2779 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
2780 Moved to...
2781 * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
2782 ...here.
2783 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
2784 Moved to...
2785 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
2786 ...here.
2787 * testsuite/21_strings/basic_string/operations/substr/char/1.cc:
2788 Moved to...
2789 * testsuite/21_strings/basic_string/operations/substr/char.cc:
2790 ...here.
2791 * testsuite/21_strings/basic_string/operations/substr/wchar_t/1.cc:
2792 Moved to...
2793 * testsuite/21_strings/basic_string/operations/substr/wchar_t.cc:
2794 ...here.
2795 * testsuite/21_strings/basic_string/range_access/char/1.cc:
2796 Moved to...
2797 * testsuite/21_strings/basic_string/range_access/char.cc:
2798 ...here.
2799 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
2800 Moved to...
2801 * testsuite/21_strings/basic_string/range_access/wchar_t.cc:
2802 ...here.
2803 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2804 Moved to...
2805 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc:
2806 ...here.
2807 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2808 Moved to...
2809 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc:
2810 ...here.
2811 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2812 Moved to...
2813 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc:
2814 ...here.
2815 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2816 Moved to...
2817 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc:
2818 ...here.
2819 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
2820 Moved to...
2821 * testsuite/21_strings/basic_string_view/modifiers/swap/char.cc:
2822 ...here.
2823 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
2824 Moved to...
2825 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc:
2826 ...here.
2827 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc:
2828 Moved to...
2829 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
2830 ...here.
2831 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc:
2832 Moved to...
2833 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc:
2834 ...here.
2835 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2836 Moved to...
2837 * testsuite/21_strings/basic_string_view/operations/data/char.cc:
2838 ...here.
2839 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2840 Moved to...
2841 * testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc:
2842 ...here.
2843 * testsuite/21_strings/basic_string_view/operations/ends_with/char/1.cc:
2844 Moved to...
2845 * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
2846 ...here.
2847 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t/1.cc:
2848 Moved to...
2849 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
2850 ...here.
2851 * testsuite/21_strings/basic_string_view/operations/starts_with/char/1.cc:
2852 Moved to...
2853 * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
2854 ...here.
2855 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t/1.cc:
2856 Moved to...
2857 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
2858 ...here.
2859 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2860 Moved to...
2861 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
2862 ...here.
2863 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2864 Moved to...
2865 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
2866 ...here.
2867 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2868 Moved to...
2869 * testsuite/21_strings/basic_string_view/range_access/char.cc:
2870 ...here.
2871 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2872 Moved to...
2873 * testsuite/21_strings/basic_string_view/range_access/wchar_t.cc:
2874 ...here.
2875 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
2876 Moved to...
2877 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc:
2878 ...here.
2879 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
2880 Moved to...
2881 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc:
2882 ...here.
2883 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
2884 Moved to...
2885 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc:
2886 ...here.
2887 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
2888 Moved to...
2889 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc:
2890 ...here.
2891 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc:
2892 Moved to...
2893 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
2894 ...here.
2895 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
2896 Moved to...
2897 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc:
2898 ...here.
2899 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2900 Moved to...
2901 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc:
2902 ...here.
2903 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2904 Moved to...
2905 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc:
2906 ...here.
2907 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2908 Moved to...
2909 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc:
2910 ...here.
2911 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
2912 Moved to...
2913 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc:
2914 ...here.
2915 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2916 Moved to...
2917 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc:
2918 ...here.
2919 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2920 Moved to...
2921 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc:
2922 ...here.
2923 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc:
2924 Moved to...
2925 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc:
2926 ...here.
2927 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc:
2928 Moved to...
2929 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc:
2930 ...here.
2931 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc:
2932 Moved to...
2933 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc:
2934 ...here.
2935 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t/1.cc:
2936 Moved to...
2937 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc:
2938 ...here.
2939 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short/1.cc:
2940 Moved to...
2941 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc:
2942 ...here.
2943 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t/1.cc:
2944 Moved to...
2945 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc:
2946 ...here.
2947
2948 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2949
2950 * testsuite/20_util/duration/requirements/explicit_instantiation/explicit_instantiation.cc:
2951 Moved to...
2952 * testsuite/20_util/duration/requirements/explicit_instantiation.cc: ...here.
2953 * testsuite/20_util/time_point/requirements/explicit_instantiation/explicit_instantiation.cc:
2954 Moved to...
2955 * testsuite/20_util/time_point/requirements/explicit_instantiation.cc: ...here.
2956 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation/explicit_instantiation.cc:
2957 Moved to...
2958 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc: ...here.
2959
2960 2022-05-25 Jason Merrill <jason@redhat.com>
2961
2962 * testsuite/20_util/function_objects/constexpr_searcher.cc: Add
2963 constexpr.
2964
2965 2022-05-20 Jonathan Wakely <jwakely@redhat.com>
2966
2967 * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
2968 Run fewer iterations for simulator targets.
2969 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
2970 Likewise.
2971 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
2972 Likewise.
2973 * testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
2974 Likewise.
2975 * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
2976 Likewise.
2977 * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
2978 Likewise.
2979 * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
2980 Likewise.
2981
2982 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
2983
2984 * include/bits/char_traits.h: Only include <cstdint> when
2985 necessary.
2986 * include/std/stacktrace: Use __UINTPTR_TYPE__ instead of
2987 uintptr_t.
2988 * src/c++11/cow-stdexcept.cc: Include <stdint.h>.
2989 * src/c++17/floating_to_chars.cc: Likewise.
2990 * testsuite/20_util/assume_aligned/1.cc: Include <cstdint>.
2991 * testsuite/20_util/assume_aligned/3.cc: Likewise.
2992 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
2993
2994 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
2995
2996 * include/bits/basic_string.h: Do not include <ext/atomicity.h>
2997 here.
2998 * include/bits/cow_string.h: Include it here.
2999
3000 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3001
3002 * include/Makefile.am: Add new header.
3003 * include/Makefile.in: Regenerate.
3004 * include/bits/memory_resource.h: New file.
3005 * include/std/deque: Include <bits/memory_resource.h>.
3006 * include/std/forward_list: Likewise.
3007 * include/std/list: Likewise.
3008 * include/std/map: Likewise.
3009 * include/std/memory_resource (pmr::memory_resource): Move to
3010 new <bits/memory_resource.h> header.
3011 (pmr::polymorphic_allocator): Likewise.
3012 * include/std/regex: Likewise.
3013 * include/std/set: Likewise.
3014 * include/std/stacktrace: Likewise.
3015 * include/std/string: Likewise.
3016 * include/std/unordered_map: Likewise.
3017 * include/std/unordered_set: Likewise.
3018 * include/std/vector: Likewise.
3019 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
3020 Remove <memory_resource> header and check construction.
3021 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
3022 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
3023 Likewise.
3024 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
3025 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
3026 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
3027 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
3028 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
3029 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
3030 Likewise.
3031 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
3032 Likewise.
3033 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
3034 Likewise.
3035 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
3036 Likewise.
3037 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
3038 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
3039
3040 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3041
3042 * include/std/memory_resource (polymorphic_allocator): Add
3043 non-template equality operator, as proposed for LWG 3683.
3044 * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.
3045
3046 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3047
3048 * src/c++17/memory_resource.cc (set_default_resource): Use
3049 memory_order_acq_rel.
3050 (get_default_resource): Use memory_order_acquire.
3051
3052 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3053
3054 * include/std/memory_resource (new_delete_resource): Add
3055 nodiscard, returns_nonnull and const attributes.
3056 (null_memory_resource): Likewise.
3057 (set_default_resource, get_default_resource): Add returns_nonnull
3058 attribute.
3059 (memory_resource::is_equal): Add nodiscard attribute.
3060 (operator==, operator!=): Likewise.
3061
3062 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3063
3064 * include/bits/ios_base.h (io_category): Add const and nodiscard
3065 attributes.
3066 (make_error_code, make_error_condition): Add nodiscard.
3067 * include/std/future (future_category): Add const and nodiscard.
3068 (make_error_code, make_error_condition): Add nodiscard.
3069 * include/std/system_error (generic_category system_category):
3070 Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute.
3071 (error_code::value, error_code::category, error_code::operator bool)
3072 (error_condition::value, error_condition::category)
3073 (error_condition::operator bool, make_error_code)
3074 (make_error_condition, operator==, operator!=, operator<=>): Add
3075 nodiscard.
3076
3077 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3078
3079 * testsuite/20_util/expected/synopsis.cc: Skip for versioned
3080 namespace.
3081 * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
3082
3083 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3084
3085 * src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources):
3086 Do not build the compatibility*-c++0x.cc objects.
3087 * src/Makefile.in: Regenerate.
3088 * src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]:
3089 Refuse to build for the versioned namespace.
3090 * src/c++11/compatibility-chrono.cc: Likewise.
3091 * src/c++11/compatibility-condvar.cc: Likewise.
3092 * src/c++11/compatibility-thread-c++0x.cc: Likewise.
3093 * src/c++11/chrono.cc (system_clock, steady_clock):
3094 Use macros to define in inline namespace _V2, matching the
3095 declarations in <system_error>.
3096 * src/c++11/system_error.cc (system_category, generic_category):
3097 Likewise.
3098
3099 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3100
3101 * doc/xml/manual/prerequisites.xml: Fix attributes for external
3102 hyperlink.
3103 * doc/html/manual/setup.html: Regenerate.
3104
3105 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3106
3107 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
3108 * doc/html/*: Regenerate.
3109
3110 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3111
3112 * doc/xml/manual/intro.xml: Include new chapter.
3113 * doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
3114 * doc/xml/manual/status_cxx2023.xml: New file.
3115 * doc/html/*: Regenerate.
3116
3117 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3118
3119 * doc/html/manual/status.html: Regenerate.
3120 * doc/xml/manual/status_cxx2020.xml: Fix supported version for
3121 C++20 bit operations.
3122
3123 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3124
3125 * include/bits/std_thread.h (thread::_State, thread::_State_ptr):
3126 Declare as private unless _GLIBCXX_THREAD_IMPL is defined.
3127 * src/c++11/thread.cc (_GLIBCXX_THREAD_IMPL): Define.
3128
3129 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3130
3131 * include/std/future (launch): Make operators noexcept.
3132
3133 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3134
3135 * doc/doxygen/user.cfg.in (PREDEFINED): Replace __exception_ptr
3136 with "__unspecified__".
3137 * libsupc++/exception_ptr.h: Improve doxygen docs.
3138 (__exception_ptr::swap): Also declare in namespace std.
3139
3140 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3141
3142 * libsupc++/nested_exception.h (throw_with_nested) [C++17]: Use
3143 if-constexpr instead of tag dispatching.
3144 (rethrow_if_nested) [C++17]: Likewise.
3145 (rethrow_if_nested) [!__cpp_rtti]: Do not use dynamic_cast if it
3146 would require RTTI.
3147 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
3148 New test.
3149
3150 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3151
3152 * doc/doxygen/user.cfg.in (PREDEFINED): Define
3153 _GTHREAD_USE_MUTEX_TIMEDLOCK macro.
3154 * include/bits/std_mutex.h (mutex, lock_guard): Use @since and
3155 @headerfile.
3156 * include/bits/unique_lock.h (unique_lock): Likewise.
3157 * include/std/mutex (recursive_mutex, timed_mutex)
3158 (recursive_timed_mutex, scoped_lock): Likewise.
3159
3160 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3161
3162 * doc/doxygen/user.cfg.in (PREDEFINED): Define
3163 _GLIBCXX23_CONSTEXPR macro.
3164 * include/backward/auto_ptr.h (auto_ptr): Use @deprecated.
3165 * include/bits/unique_ptr.h (default_delete): Use @since and
3166 @headerfile.
3167 * include/std/scoped_allocator: Remove @ingroup from @file
3168 block.
3169
3170 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3171
3172 * include/bits/std_thread.h (thread, thread::id): Improve
3173 doxygen docs.
3174 * include/std/future: Likewise.
3175 * include/std/thread (jthread): Likewise.
3176
3177 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3178
3179 * include/bits/ostream_insert.h: Mark helper functions as
3180 undocumented by Doxygen.
3181 * include/bits/stl_algo.h: Use markdown for formatting and mark
3182 helper functions as undocumented.
3183 * include/bits/stl_numeric.h: Likewise.
3184 * include/bits/stl_pair.h (pair): Add @headerfile.
3185
3186 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3187
3188 * doc/doxygen/user.cfg.in (PREDEFINED): Define __allocator_base
3189 so that Doxygen shows the right base-class for std::allocator.
3190 * include/bits/alloc_traits.h: Improve doxygen docs.
3191 * include/bits/allocator.h: Likewise.
3192 * include/bits/new_allocator.h: Likewise.
3193 * include/ext/new_allocator.h: Likewise.
3194
3195 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3196
3197 * doc/doxygen/user.cfg.in (PREDEFINED): Define macro
3198 _GLIBCXX_DOXYGEN_ONLY to expand its argument.
3199 * include/bits/c++config (_GLIBCXX_DOXYGEN_ONLY): Define.
3200 * include/bits/regex.h: Improve doxygen docs.
3201 * include/bits/regex_constants.h: Likewise.
3202 * include/bits/regex_error.h: Likewise.
3203
3204 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3205
3206 * include/std/atomic: Suppress doxygen docs for
3207 implementation details.
3208 * include/bits/atomic_base.h: Likewise.
3209 * include/bits/shared_ptr_atomic.h: Use markdown. Fix grouping
3210 so that std::atomic is not added to the pointer abstractions
3211 group.
3212
3213 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3214
3215 * include/std/system_error: Improve doxygen comments.
3216
3217 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3218
3219 * include/bits/ptr_traits.h: Add some doxygen comments.
3220
3221 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3222
3223 * doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to
3224 nothing.
3225 * include/bits/c++config (_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE)
3226 (_GLIBCXX_END_INLINE_ABI_NAMESPACE): Define new macros.
3227 * include/bits/algorithmfwd.h (_V2::__rotate): Use new macros
3228 for the namespace.
3229 * include/bits/chrono.h (chrono::_V2::system_clock): Likewise.
3230 * include/bits/stl_algo.h (_V2::__rotate): Likewise.
3231 * include/std/condition_variable (_V2::condition_variable_any):
3232 Likewise.
3233 * include/std/system_error (_V2::error_category): Likewise.
3234
3235 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3236
3237 * include/bits/mofunc_impl.h: Fix doxygen command.
3238
3239 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3240
3241 * doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO.
3242 (CLASS_DIAGRAMS): Remove obsolete option.
3243
3244 2022-05-12 Jonathan Wakely <jwakely@redhat.com>
3245
3246 * config/locale/dragonfly/numeric_members.cc: Remove whitespace.
3247 * config/locale/gnu/numeric_members.cc: Likewise.
3248 * include/bits/locale_facets_nonio.h: Likewise.
3249 * libsupc++/typeinfo: Likewise.
3250
3251 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
3252
3253 PR libstdc++/105284
3254 * include/std/iosfwd: Add declarations for <spanstream> class
3255 templates and typedefs.
3256 * include/std/spanstream (basic_spanbuf, basic_ispanstream)
3257 (basic_ospanstream, basic_spanstream): Remove default template
3258 arguments.
3259 * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
3260 declarations.
3261 * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
3262 default arguments.
3263
3264 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
3265
3266 PR libstdc++/105284
3267 * include/std/iosfwd: Add declarations for <synstream> class
3268 templates and typedefs.
3269 * include/std/syncstream (basic_syncbuf, basic_osyncstream):
3270 Remove default template arguments.
3271 * testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
3272 * testsuite/27_io/headers/iosfwd/types.cc: New test.
3273
3274 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3275
3276 * include/bits/random.tcc (operator==): Only check
3277 normal_distribution::_M_saved_available once.
3278 * testsuite/26_numerics/random/normal_distribution/operators/equal.cc:
3279 Check equality after state changes.
3280 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3281 lineno.
3282
3283 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3284
3285 PR libstdc++/105502
3286 * include/bits/random.tcc
3287 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
3288 Update state when __state_avail is false.
3289 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
3290 Check that deserialized object equals serialized one.
3291
3292 2022-05-06 Alexandre Oliva <oliva@adacore.com>
3293
3294 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
3295 for double, long long, and 64-bit long intrinsic types.
3296 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
3297 preexisting long double diagnostic, adjust no-VSX double
3298 diagnostic to cover 64-bit long double as well.
3299
3300 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3301
3302 PR libstdc++/104731
3303 * testsuite/27_io/filesystem/iterators/error_reporting.cc:
3304 Use a trailing char array as storage for dirent::d_name.
3305
3306 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3307
3308 * include/std/stacktrace: Do not include <cxxabi.h>.
3309 (__cxa_demangle): Declare.
3310
3311 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3312
3313 PR libstdc++/99871
3314 * include/bits/specfun.h: Use visibility attribute on namespace,
3315 instead of pragma push/pop.
3316 * libsupc++/compare: Likewise.
3317 * libsupc++/exception: Likewise.
3318 * libsupc++/exception.h: Likewise.
3319 * libsupc++/exception_ptr.h: Likewise.
3320 * libsupc++/initializer_list: Likewise.
3321 * libsupc++/nested_exception.h: Likewise.
3322
3323 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3324
3325 * doc/xml/manual/test.xml: Remove requirement for copyright and
3326 GPL notice in tests.
3327 * doc/html/manual/test.html: Regenerate.
3328
3329 2022-05-05 Jonathan Wakely <jwakely@redhat.com>
3330
3331 * include/experimental/memory_resource [!__cpp_rtti]
3332 (__resource_adaptor_imp::do_is_equal): Do not use dynamic_cast
3333 when RTTI is disabled.
3334 * testsuite/17_intro/freestanding.cc: Require RTTI.
3335 * testsuite/18_support/exception/38732.cc: Likewise.
3336 * testsuite/18_support/exception_ptr/rethrow_exception.cc:
3337 Likewise.
3338 * testsuite/18_support/nested_exception/68139.cc: Likewise.
3339 * testsuite/18_support/nested_exception/rethrow_if_nested.cc:
3340 Likewise.
3341 * testsuite/18_support/type_info/103240.cc: Likewise.
3342 * testsuite/18_support/type_info/fundamental.cc: Likewise.
3343 * testsuite/18_support/type_info/hash_code.cc: Likewise.
3344 * testsuite/20_util/any/assign/emplace.cc: Likewise.
3345 * testsuite/20_util/any/cons/in_place.cc: Likewise.
3346 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
3347 * testsuite/20_util/any/observers/type.cc: Likewise.
3348 * testsuite/20_util/function/1.cc: Likewise.
3349 * testsuite/20_util/function/2.cc: Likewise.
3350 * testsuite/20_util/function/3.cc: Likewise.
3351 * testsuite/20_util/function/4.cc: Likewise.
3352 * testsuite/20_util/function/5.cc: Likewise.
3353 * testsuite/20_util/function/6.cc: Likewise.
3354 * testsuite/20_util/function/7.cc: Likewise.
3355 * testsuite/20_util/function/8.cc: Likewise.
3356 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
3357 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
3358 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
3359 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
3360 Likewise.
3361 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
3362 * testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
3363 * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
3364 Likewise.
3365 * testsuite/20_util/typeindex/hash.cc: Likewise.
3366 * testsuite/20_util/typeindex/hash_code.cc: Likewise.
3367 * testsuite/20_util/typeindex/name.cc: Likewise.
3368 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
3369 * testsuite/22_locale/global_templates/standard_facet_hierarchies.cc:
3370 Likewise.
3371 * testsuite/22_locale/global_templates/user_facet_hierarchies.cc:
3372 Likewise.
3373 * testsuite/22_locale/locale/13630.cc: Check type without using
3374 RTTI.
3375 * testsuite/23_containers/array/requirements/non_default_constructible.cc:
3376 Require RTTI.
3377 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
3378 * testsuite/27_io/fpos/14320-1.cc: Check type without using RTTI.
3379 * testsuite/27_io/fpos/mbstate_t/12065.cc: Require RTTI.
3380 * testsuite/27_io/ios_base/failure/dual_abi.cc: Likewise.
3381 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
3382 * testsuite/experimental/any/observers/type.cc: Likewise.
3383 * testsuite/experimental/memory_resource/resource_adaptor.cc:
3384 Likewise.
3385 * testsuite/lib/libstdc++.exp (check_effective_target_rtti):
3386 Define new proc.
3387 * testsuite/tr1/3_function_objects/function/1.cc: Likewise.
3388 * testsuite/tr1/3_function_objects/function/2.cc: Likewise.
3389 * testsuite/tr1/3_function_objects/function/3.cc: Likewise.
3390 * testsuite/tr1/3_function_objects/function/4.cc: Likewise.
3391 * testsuite/tr1/3_function_objects/function/5.cc: Likewise.
3392 * testsuite/tr1/3_function_objects/function/6.cc: Likewise.
3393 * testsuite/tr1/3_function_objects/function/7.cc: Likewise.
3394 * testsuite/tr1/3_function_objects/function/8.cc: Likewise.
3395 * testsuite/tr2/bases/value.cc: Likewise.
3396 * testsuite/tr2/direct_bases/value.cc: Likewise.
3397 * testsuite/util/exception/safety.h [!__cpp_rtti]: Don't print
3398 types without RTTI.
3399
3400 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
3401
3402 PR libstdc++/104719
3403 * include/std/array (array::size(), array::max_size())
3404 (array::empty(), array::data()): Add always_inline attribute.
3405
3406 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
3407
3408 PR libstdc++/104719
3409 * include/std/array (__array_traits::_S_ref): Remove.
3410 (__array_traits::_S_ptr): Remove.
3411 (__array_traits<T, 0>::_Type): Define operator[] and operator T*
3412 to provide an array-like API.
3413 (array::_AT_Type): Remove public typeef.
3414 (array::operator[], array::at, array::front, array::back): Use
3415 index operator to access _M_elems instead of _S_ref.
3416 (array::data): Use implicit conversion from _M_elems to pointer.
3417 (swap(array&, array&)): Use __enable_if_t helper.
3418 (get<I>): Use index operator to access _M_elems.
3419 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
3420 Adjust dg-error line numbers.
3421
3422 2022-05-03 Alexandre Oliva <oliva@adacore.com>
3423
3424 PR c++/105324
3425 * testsuite/20_util/from_chars/pr105324.cc: Guard test body
3426 with conditional for floating-point overloads of from_char.
3427
3428 2022-05-02 Patrick Palka <ppalka@redhat.com>
3429
3430 PR libstdc++/103911
3431 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
3432 two delimeters for the exponent part in the form of a possibly
3433 NULL string of length two. Don't use std::tolower.
3434 (pattern): Adjust calls to find_end_of_float accordingly.
3435
3436 2022-05-02 Patrick Palka <ppalka@redhat.com>
3437
3438 PR libstdc++/105441
3439 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
3440 Also accept 'P' as the start of the exponent.
3441 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
3442
3443 2022-04-29 Jonathan Wakely <jwakely@redhat.com>
3444
3445 PR libstdc++/105417
3446 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
3447 Regenerate.
3448 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
3449 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
3450 symbols as aliases for corresponding symbols without abi-tag.
3451
3452 2022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3453
3454 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3455 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3456 Likewise.
3457 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3458 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3459 Likewise.
3460
3461 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
3462
3463 PR libstdc++/99290
3464 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
3465 directory_iterator constructor, and check on each iteration.
3466 * src/filesystem/ops.cc (fs::copy): Likewise.
3467 * testsuite/27_io/filesystem/operations/copy.cc: Check for
3468 errors during recursion.
3469 * testsuite/experimental/filesystem/operations/copy.cc:
3470 Likewise.
3471
3472 2022-04-28 François Dumont <fdumont@gcc.gnu.org>
3473
3474 * config/abi/pre/gnu-versioned-namespace.ver: Remove
3475 std::random_device::* pattern.
3476
3477 2022-04-27 Jakub Jelinek <jakub@redhat.com>
3478
3479 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3480 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3481 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3482 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3483 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3484 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
3485 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3486 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
3487
3488 2022-04-27 Jonathan Wakely <jwakely@redhat.com>
3489
3490 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
3491 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
3492 (StdAtomicPrinter): New printer.
3493 (build_libstdcxx_dictionary): Register new printer.
3494 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
3495 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
3496 pointers.
3497
3498 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
3499
3500 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
3501 constructor for constant initialization from nullptr_t.
3502 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
3503 Check for new constructor.
3504
3505 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
3506
3507 * include/bits/fs_path.h (hash<filesystem::path>): Define.
3508 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
3509 Check std::hash specialization.
3510
3511 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
3512
3513 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
3514 conditionally.
3515 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
3516 Define for C++23.
3517 (default_delete, default_delete<T[]>, __uniq_ptr_impl)
3518 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
3519 functions.
3520 * include/std/version (__cpp_lib_constexpr_memory): Define new
3521 value for C++23.
3522 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
3523 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
3524 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
3525 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
3526 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
3527 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
3528 New test.
3529
3530 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
3531
3532 PR libstdc++/105375
3533 * include/std/future (packaged_task): Add deduction guides.
3534 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
3535
3536 2022-04-25 Philipp Fent <fent@in.tum.de>
3537
3538 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
3539 Rename as iterator.
3540 (StdInitializerListPrinter): Define new printer.
3541 (build_libstdcxx_dictionary): Register new printer.
3542 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
3543 initializer_list.
3544
3545 2022-04-22 Thomas W Rodgers <trodgers@redhat.com>
3546
3547 PR libstdc++/102994
3548 * include/bits/atomic_base.h (atomic_flag::notify_one,
3549 notify_all): Remove const qualification.
3550 (__atomic_base::notify_one, notify_all): Likewise.
3551 * include/std/atomic (atomic<bool>::notify_one, notify_all):
3552 Likewise.
3553 (atomic::notify_one, notify_all): Likewise.
3554 (atomic<T*>::notify_one, notify_all): Likewise.
3555 (atomic_notify_one, atomic_notify_all): Likewise.
3556 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
3557 to account for change in notify_one/notify_all signature.
3558
3559 2022-04-21 Patrick Palka <ppalka@redhat.com>
3560
3561 * include/std/charconv (__from_chars_alnum_to_val_table):
3562 Simplify initialization of __lower/__upper_letters.
3563 (__from_chars_alnum_to_val): Default the template parameter to
3564 false.
3565 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
3566 assume the uppercase and lowercase letters are contiguous.
3567 (__floating_from_chars_hex): Likewise.
3568
3569 2022-04-21 Patrick Palka <ppalka@redhat.com>
3570
3571 PR c++/105297
3572 PR c++/105322
3573 * include/std/charconv (__from_chars_alnum_to_val): Make
3574 initializer for __table dependent in an artificial way.
3575
3576 2022-04-21 Jonathan Wakely <jwakely@redhat.com>
3577
3578 PR libstdc++/105324
3579 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
3580 Remove assertion.
3581 * testsuite/20_util/from_chars/pr105324.cc: New test.
3582
3583 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
3584
3585 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
3586 Check correct feature test macro.
3587
3588 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
3589
3590 PR libstdc++/93602
3591 * doc/xml/manual/prerequisites.xml: Document libiconv
3592 workarounds.
3593 * doc/html/manual/setup.html: Regenerate.
3594 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
3595 * src/Makefile.in: Regenerate.
3596
3597 2022-04-19 Patrick Palka <ppalka@redhat.com>
3598
3599 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
3600 define.
3601 (__floating_to_chars_shortest): Add __builtin_unreachable calls to
3602 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
3603 warnings.
3604 (__floating_to_chars_precision): Likewise.
3605
3606 2022-04-19 Philipp Fent <fent@in.tum.de>
3607
3608 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
3609 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
3610
3611 2022-04-19 Jonathan Wakely <jwakely@redhat.com>
3612
3613 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
3614 * configure: Regenerate.
3615
3616 2022-04-18 Patrick Palka <ppalka@redhat.com>
3617
3618 * include/std/charconv (__from_chars_pow2_base): Manually
3619 unroll the first iteration of the main loop and simplify
3620 accordingly.
3621
3622 2022-04-15 Patrick Palka <ppalka@redhat.com>
3623
3624 PR libstdc++/104858
3625 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
3626 __first twice at the start.
3627 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
3628
3629 2022-04-15 Patrick Palka <ppalka@redhat.com>
3630
3631 * include/std/charconv (__from_chars_alnum_to_val_table): Define.
3632 (__from_chars_alnum_to_val): Define.
3633 (__from_chars_binary): Rename to ...
3634 (__from_chars_pow2_base): ... this. Generalize to handle any
3635 power-of-two base using __from_chars_alnum_to_val.
3636 (__from_chars_digit): Optimize digit recognition to a single
3637 test instead of two tests. Use [[__unlikely___]] attribute.
3638 (__from_chars_alpha_to_num): Remove.
3639 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a
3640 nested loop for the overflow case. Maintain a lower bound
3641 on the number of available bits in the result and use it to
3642 omit the overflow check.
3643 (from_chars): Adjust appropriately.
3644 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
3645 (__floating_from_chars_hex): Use __from_chars_alnum_to_val
3646 to recognize a hex digit instead.
3647
3648 2022-04-14 Palmer Dabbelt <palmer@rivosinc.com>
3649
3650 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
3651 for RISC-V.
3652 * configure: Regenerate.
3653
3654 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
3655
3656 * doc/xml/manual/intro.xml: Fix comment.
3657
3658 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
3659
3660 * include/precompiled/stdc++.h: Include <stacktrace> and
3661 <stdatomic.h> for C++23.
3662
3663 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
3664
3665 PR libstdc++/105269
3666 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
3667 Define.
3668 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
3669 Define.
3670 * include/std/optional (__cpp_lib_optional): Define new value
3671 for C++23.
3672 (__cpp_lib_monadic_optional): Remove.
3673 * include/std/version (__cpp_lib_constexpr_vector): Define.
3674 (__cpp_lib_stdatomic_h): Define.
3675 (__cpp_lib_optional): Define new value for C++23.
3676 (__cpp_lib_monadic_optional): Remove.
3677 * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
3678 * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
3679 * testsuite/20_util/optional/version.cc: Likewise.
3680 * testsuite/23_containers/vector/cons/constexpr.cc: Check
3681 feature test macro.
3682 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
3683 Likewise.
3684 * testsuite/20_util/optional/monadic/version.cc: Removed.
3685 * testsuite/23_containers/vector/requirements/version.cc: New test.
3686 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
3687
3688 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
3689
3690 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
3691 * config.h.in: Regenerate.
3692 * configure: Regenerate.
3693
3694 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
3695
3696 * include/std/stacktrace (basic_stacktrace::current): Reallocate
3697 a smaller container if the unused capacity is larger than the
3698 used size.
3699
3700 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
3701
3702 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
3703 or _Impl::_M_assign to initialize elements in allocated storage.
3704 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
3705 _Impl::_M_destroy.
3706 (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
3707 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
3708 function.
3709 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
3710 new element using allocator.
3711 (basic_stacktrace::_Impl::_M_clone): New function.
3712 (basic_stacktrace::_Impl::_M_xclone): New function.
3713 (basic_stacktrace::_Impl::_M_assign): New function.
3714
3715 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
3716
3717 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
3718 Use nothrow new instead of try block for std::allocator.
3719 (basic_stacktrace::_Impl::_M_deallocate): Use delete for
3720 std::allocator.
3721
3722 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
3723
3724 * include/std/stacktrace (basic_stacktrace::current): Replace
3725 calls to _M_reserve and _S_curr_cb with call to _M_prepare.
3726 Check return value of backtrace_simple when max depth given.
3727 (basic_stacktrace::_M_reserve): Remove.
3728 (basic_stacktrace::_S_curr_cb): Remove.
3729 (basic_stacktrace::_M_prepare(size_type)): New function to
3730 reserve initial capacity and return callback.
3731 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
3732 and remove redundant zeroing of _M_frames and _M_capacity.
3733 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
3734 attribute. Assign _Impl instead of swapping.
3735 * testsuite/19_diagnostics/stacktrace/current.cc: New test.
3736
3737 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
3738
3739 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
3740 Change [[unlikely]] attribute to [[likely]].
3741
3742 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
3743
3744 PR libstdc++/105031
3745 * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
3746 Fix allocator usage in constructors.
3747 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
3748 try to reallocate using const allocator.
3749 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
3750 if-constexpr with non-constant condition. Do not allocate new
3751 storage if allocator propagates. Do not set _M_size if
3752 allocation fails.
3753 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
3754 assertion that non-propagating allocators are equal.
3755 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
3756
3757 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
3758
3759 * include/std/stacktrace (basic_stacktrace::current): Duplicate
3760 implementation into each overload. Add noinline attribute and
3761 skip current frame.
3762 (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
3763 (basic_stacktrace::_S_curr_cb()): New function defining lambda.
3764 (basic_stacktrace::_Impl::_S_max_size): New function defining
3765 maximum size in terms of allocator and size_type.
3766 (basic_stacktrace::_Impl::_M_allocate): Check against
3767 max_size().
3768 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
3769 for non-constexpr checks. Check line number is correct.
3770
3771 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
3772
3773 * testsuite/20_util/stacktrace/entry.cc: Moved to...
3774 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
3775 * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
3776 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
3777 * testsuite/20_util/stacktrace/version.cc: Moved to...
3778 * testsuite/19_diagnostics/stacktrace/version.cc: ...here.
3779
3780 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
3781
3782 * include/experimental/bits/fs_path.h (path): Define special
3783 members after path::_Cmpt is complete.
3784
3785 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
3786
3787 PR libstdc++/105153
3788 * include/std/expected
3789 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
3790 * testsuite/20_util/expected/cons.cc: Check constructor.
3791
3792 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
3793
3794 PR libstdc++/105154
3795 * include/std/expected (expected<void, E>::swap): Set
3796 _M_has_value to false for objects that previously had a value.
3797 * testsuite/20_util/expected/swap.cc: Fix test to check void
3798 specialization.
3799
3800 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
3801
3802 PR libstdc++/105146
3803 * include/std/expected (bad_expected_access): Move constructor
3804 parameter.
3805 * testsuite/20_util/expected/bad.cc: New test.
3806
3807 2022-04-07 Hans-Peter Nilsson <hp@axis.com>
3808
3809 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
3810 test.
3811
3812 2022-04-02 Jakub Jelinek <jakub@redhat.com>
3813
3814 PR libstdc++/105128
3815 * include/std/source_location (std::source_location::__impl): Move
3816 definition before using __builtin_ret_type.
3817
3818 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
3819
3820 * include/std/utility (unreachable): Define for C++23.
3821 * include/std/version (__cpp_lib_unreachable): Define.
3822 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
3823 arguments. Handle only the function being given.
3824 * testsuite/20_util/unreachable/1.cc: New test.
3825 * testsuite/20_util/unreachable/version.cc: New test.
3826
3827 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
3828
3829 * include/experimental/bits/fs_fwd.h (copy_file): Remove
3830 incorrect noexcept from declaration.
3831 * include/experimental/bits/fs_path.h (path::begin, path::end):
3832 Add noexcept to declarations, to match definitions.
3833
3834 2022-04-01 Timm Bäder <tbaeder@redhat.com>
3835
3836 * include/bits/fs_ops.h: Fix filename in Doxygen comment.
3837 * include/experimental/bits/fs_ops.h: Likewise.
3838
3839 2022-03-31 Jonathan Wakely <jwakely@redhat.com>
3840
3841 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
3842
3843 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
3844
3845 * testsuite/18_support/exception/38732.cc: Disable for C++23.
3846 * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
3847 * testsuite/18_support/unexpected_handler.cc: Likewise.
3848
3849 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
3850
3851 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
3852 static data members for _Fp_fmt enumerators.
3853
3854 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
3855
3856 * include/std/version (__cpp_lib_variant): Fix conditions to
3857 match <variant>.
3858 (__cpp_lib_expected): Fix condition to match <expected>.
3859
3860 2022-03-28 Jonathan Wakely <jwakely@redhat.com>
3861
3862 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
3863 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
3864 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
3865 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
3866 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
3867 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
3868 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
3869 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
3870
3871 2022-03-27 Jonathan Wakely <jwakely@redhat.com>
3872
3873 * doc/doxygen/user.cfg.in: Add new header.
3874 * include/Makefile.am: Likewise.
3875 * include/Makefile.in: Regenerate.
3876 * include/precompiled/stdc++.h: Add new header.
3877 * include/std/version (__cpp_lib_expected): Define.
3878 * libsupc++/exception [__cplusplus > 202002] (unexpected)
3879 (unexpected_handler, set_unexpected): Do not declare for C++23.
3880 * include/std/expected: New file.
3881 * testsuite/20_util/expected/assign.cc: New test.
3882 * testsuite/20_util/expected/cons.cc: New test.
3883 * testsuite/20_util/expected/illformed_neg.cc: New test.
3884 * testsuite/20_util/expected/observers.cc: New test.
3885 * testsuite/20_util/expected/requirements.cc: New test.
3886 * testsuite/20_util/expected/swap.cc: New test.
3887 * testsuite/20_util/expected/synopsis.cc: New test.
3888 * testsuite/20_util/expected/unexpected.cc: New test.
3889 * testsuite/20_util/expected/version.cc: New test.
3890
3891 2022-03-25 Jonathan Wakely <jwakely@redhat.com>
3892
3893 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
3894 comments.
3895
3896 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
3897
3898 PR libstdc++/105027
3899 * include/std/bit (bit_cast): Add constraints.
3900 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
3901
3902 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
3903
3904 * include/std/version [!_GLIBCXX_HOSTED]
3905 (__cpp_lib_hardware_interference_size): Define for freestanding.
3906 (__cpp_lib_bit_cast): Likewise.
3907 (__cpp_lib_is_layout_compatible): Likewise.
3908 (__cpp_lib_is_pointer_interconvertible): Likewise.
3909 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
3910 freestanding.
3911 (__cpp_lib_invoke_r): Likewise.
3912 (__cpp_lib_ios_noreplace): Likewise.
3913 (__cpp_lib_monadic_optional): Likewise.
3914 (__cpp_lib_move_only_function): Likewise.
3915 (__cpp_lib_spanstream): Likewise.
3916 (__cpp_lib_stacktrace): Likewise.
3917 (__cpp_lib_string_contains): Likewise.
3918 (__cpp_lib_string_resize_and_overwrite): Likewise.
3919 (__cpp_lib_to_underlying): Likewise.
3920
3921 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
3922
3923 PR libstdc++/105021
3924 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
3925 <bits/atomic_wait.h> for freestanding.
3926
3927 2022-03-22 Hans-Peter Nilsson <hp@axis.com>
3928
3929 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
3930 Conditionalize call to fesetround.
3931
3932 2022-03-21 Jakub Jelinek <jakub@redhat.com>
3933
3934 PR libstdc++/104990
3935 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
3936 isn't overloaded if __clang__ is defined.
3937
3938 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
3939
3940 PR libstdc++/104242
3941 * include/std/any (any(T&&)): Revert change to constraints.
3942 * testsuite/20_util/any/cons/104242.cc: New test.
3943
3944 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
3945
3946 PR libstdc++/92546
3947 * include/pstl/glue_algorithm_defs.h: Replace <functional> with
3948 <bits/stl_pair.h>.
3949 * include/pstl/utils.h: Replace <iterator> with <type_traits>.
3950 (__pstl::__internal::__except_handler): Use std::__terminate
3951 instead of std::terminate.
3952 * src/c++17/fs_path.cc: Include <array>.
3953 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
3954 <functional>.
3955 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
3956 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
3957 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
3958 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
3959 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
3960 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
3961 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
3962 * testsuite/25_algorithms/is_permutation/constrained.cc: Include
3963 <iterator>.
3964 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
3965 <functional>.
3966 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
3967 Likewise.
3968 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
3969 Likewise.
3970 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
3971 Likewise.
3972 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
3973 Include <array>.
3974 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
3975 <functional>.
3976 * testsuite/25_algorithms/max/constrained.cc: Likewise.
3977 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
3978 * testsuite/25_algorithms/min/constrained.cc: Likewise.
3979 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
3980 * testsuite/25_algorithms/minmax_element/constrained.cc:
3981 Likewise.
3982 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
3983 * testsuite/25_algorithms/move/93872.cc: Likewise.
3984 * testsuite/25_algorithms/move_backward/93872.cc: Include
3985 <iterator>.
3986 * testsuite/25_algorithms/nth_element/constexpr.cc: Include
3987 <functional>.
3988 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
3989 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
3990 Likewise.
3991 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
3992 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
3993 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
3994 * testsuite/25_algorithms/set_difference/constrained.cc:
3995 Likewise.
3996 * testsuite/25_algorithms/set_intersection/constexpr.cc:
3997 Likewise.
3998 * testsuite/25_algorithms/set_intersection/constrained.cc:
3999 Likewise.
4000 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
4001 Likewise.
4002 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
4003 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
4004 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
4005 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
4006 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
4007 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
4008 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
4009 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
4010 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
4011 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
4012 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
4013 * testsuite/std/ranges/adaptors/split.cc: Likewise.
4014
4015 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
4016
4017 PR libstdc++/92546
4018 * include/bits/fs_path.h (path::make_preferred): Use
4019 handwritten loop instead of std::replace.
4020
4021 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
4022
4023 PR middle-end/104966
4024 * include/bits/locale_facets_nonio.tcc
4025 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
4026 make all string copies before any stores to *this.
4027
4028 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
4029
4030 * testsuite/util/testsuite_character.h: Fix comment.
4031
4032 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
4033
4034 PR libstdc++/103407
4035 * config/abi/pre/gnu.ver: Make version for std::from_chars
4036 depend on HAVE_USELOCALE macro.
4037 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
4038 std::from_chars for floating-point types as undesignated if
4039 not found in the baseline symbols file.
4040
4041 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
4042
4043 * include/std/charconv (__cpp_lib_to_chars): Only define when
4044 both from_chars and to_chars are supported for floating-point
4045 types.
4046 (from_chars, to_chars): Adjust preprocessor conditions guarding
4047 declarations.
4048 * include/std/version (__cpp_lib_to_chars): Adjust condition to
4049 match <charconv> definition.
4050 * src/c++17/floating_from_chars.cc (from_chars_strtod): New
4051 function template.
4052 (from_chars): Simplify preprocessor checks and use
4053 from_chars_strtod when appropriate.
4054
4055 2022-03-14 Jonathan Wakely <jwakely@redhat.com>
4056
4057 PR libstdc++/104875
4058 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
4059 hold octets that will be left-shifted.
4060
4061 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
4062
4063 PR libstdc++/104870
4064 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
4065 before using fast_float.
4066
4067 2022-03-10 Detlef Vollmann <dv@vollmann.ch>
4068
4069 PR libstdc++/104866
4070 * include/bits/this_thread_sleep.h: Fix order of #endif and
4071 closing brace of namespace.
4072
4073 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
4074
4075 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
4076 Handle NaN.
4077
4078 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
4079
4080 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
4081 <=> comparison.
4082
4083 2022-03-09 Patrick Palka <ppalka@redhat.com>
4084
4085 PR libstdc++/104859
4086 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
4087 Be explicit when narrowing the shifted effective_mantissa,
4088 since it may have an integer-class type.
4089
4090 2022-03-08 Jonathan Wakely <jwakely@redhat.com>
4091
4092 * include/bits/uses_allocator_args.h: Remove incorrect copyright
4093 notice.
4094
4095 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
4096
4097 PR libstdc++/104807
4098 * include/bits/c++config (__terminate, __glibcxx_assert_fail):
4099 Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
4100 (__is_constant_evaluated): Add visibility pragma.
4101
4102 2022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
4103
4104 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
4105 include.
4106
4107 2022-03-05 Jonathan Wakely <jwakely@redhat.com>
4108
4109 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
4110 attribute.
4111 (__terminate): Likewise.
4112
4113 2022-03-04 Jonathan Wakely <jwakely@redhat.com>
4114
4115 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
4116 inside #if condition.
4117
4118 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
4119
4120 PR libstdc++/104748
4121 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
4122 constexpr test.
4123
4124 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
4125
4126 * testsuite/17_intro/names.cc (func): Undef on AIX.
4127
4128 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
4129
4130 PR libstdc++/96526
4131 * libsupc++/compare (strong_order): Add missing support for
4132 floating-point types.
4133 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
4134 New test.
4135
4136 2022-03-01 Jonathan Wakely <jwakely@redhat.com>
4137
4138 PR middle-end/103984
4139 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
4140 default member initializer.
4141
4142 2022-02-24 Jonathan Wakely <jwakely@redhat.com>
4143
4144 PR libstdc++/104602
4145 * include/std/source_location (source_location::current): Use
4146 deduced type of __builtin_source_location().
4147
4148 2022-02-22 Patrick Palka <ppalka@redhat.com>
4149
4150 * include/bits/ranges_base.h (__detail::__is_initializer_list):
4151 Define.
4152 (viewable_range): Adjust as per P2415R2.
4153 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
4154 * include/std/ranges (owning_view): Define as per P2415R2.
4155 (enable_borrowed_range<owning_view>): Likewise.
4156 (views::__detail::__can_subrange): Replace with ...
4157 (views::__detail::__can_owning_view): ... this.
4158 (views::_All::_S_noexcept): Sync with operator().
4159 (views::_All::operator()): Use owning_view instead of subrange
4160 as per P2415R2.
4161 * include/std/version (__cpp_lib_ranges): Adjust value.
4162 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
4163 views::all uses owning_view instead of subrange.
4164 (test08): New test.
4165 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
4166 now that rvalue non-view non-borrowed ranges are viewable.
4167 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
4168
4169 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
4170
4171 PR libstdc++/104559
4172 * doc/xml/manual/evolution.xml: Document deprecation.
4173 * doc/html/manual/api.html: Regenerate.
4174 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
4175 Remove default argument.
4176 (insert(const_iterator)): New overload with deprecated attribute.
4177 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
4178 New test.
4179
4180 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
4181
4182 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
4183 code that call cat->name() on std::error_category objects.
4184 Identify known categories by symbol name and use a hardcoded
4185 name. Print error code values as enumerators where appopriate.
4186 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
4187 name of custom category. Check io_errc and future_errc errors.
4188
4189 2022-02-15 Jonathan Wakely <jwakely@redhat.com>
4190
4191 PR libstdc++/104542
4192 * include/bits/uses_allocator_args.h (make_obj_using_allocator)
4193 (uninitialized_construct_using_allocator): Add constexpr.
4194 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
4195 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
4196
4197 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4198
4199 PR libstdc++/100912
4200 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
4201 namespace for IEEE128 long double mode.
4202 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
4203 version and export __gnu_cxx_ieee128::__convert_from_v.
4204 * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
4205 Make __ibm128 overload use snprintf directly
4206 * testsuite/util/testsuite_abi.cc: Add new symbol version.
4207 Remove stable IEEE128/LDBL versions.
4208
4209 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4210
4211 PR libstdc++/103891
4212 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
4213 Remove.
4214 * include/std/variant: Check feature test macros instead.
4215 * include/std/version: Likewise.
4216
4217 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4218
4219 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4220 Fix typo.
4221
4222 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4223
4224 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
4225 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
4226
4227 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
4228
4229 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
4230 selector.
4231
4232 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
4233
4234 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
4235 Ignore -Walloc-larger-than warning.
4236 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4237 Likewise.
4238 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
4239 to avoid linker error for __atomic_is_lock_free.
4240
4241 2022-02-10 Thomas Rodgers <rodgert@appliantology.com>
4242
4243 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
4244 __waiter_base::_S_do_spin_v): Change memory order from relaxed
4245 to acquire.
4246
4247 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
4248
4249 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
4250 using-declaration.
4251 (atomic_fetch_xor_explicit): Likewise.
4252 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
4253 arithmetic and logical operations for atomic_int.
4254
4255 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
4256
4257 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
4258 when <dirent.h> is not available.
4259 (_GLIBCXX_HAVE_UNLINKAT): Likewise.
4260
4261 2022-02-09 Thomas Rodgers <rodgert@appliantology.com>
4262
4263 PR libstdc++/104442
4264 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
4265 loop inside do loop so that threads failing the wait, reload
4266 _M_ver.
4267
4268 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4269
4270 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
4271 parameter to _Dir_base&&.
4272 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
4273 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
4274 parameter to _Dir_base&&.
4275
4276 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4277
4278 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
4279 checking for CAS on correct word size.
4280
4281 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4282
4283 * testsuite/experimental/filesystem/operations/create_directories.cc:
4284 Adjust expected results for Windows.
4285
4286 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4287
4288 PR libstdc++/104161
4289 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
4290 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
4291 instead of checking for errno values indicating a directory.
4292 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
4293 logic to non-throwing overload.
4294 (fs::remove_all(const path&, error_code&)): Add comments.
4295 * src/filesystem/ops-common.h: Likewise.
4296
4297 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4298
4299 * src/filesystem/dir-common.h (_Dir_base::openat): Change return
4300 type to use portable posix::DIR alias.
4301
4302 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4303
4304 * include/c_compatibility/stdatomic.h [__clang__]: Use
4305 #include_next <stdatomic.h>.
4306
4307 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4308
4309 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
4310 noexcept.
4311 (fs::create_directories): Likewise.
4312 (fs::remove_all): Likewise.
4313 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
4314 (fs::create_directories): Likewise.
4315 (fs::remove_all): Likewise.
4316
4317 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4318
4319 PR libstdc++/104161
4320 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
4321 and unlinkat.
4322 * config.h.in: Regenerate.
4323 * configure: Regenerate.
4324 * include/bits/fs_dir.h (recursive_directory_iterator): Declare
4325 remove_all overloads as friends.
4326 (recursive_directory_iterator::__erase): Declare new member
4327 function.
4328 * include/bits/fs_fwd.h (remove, remove_all): Declare.
4329 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
4330 constructor. Pass file descriptor argument to base constructor.
4331 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
4332 (_Dir::unlink, _Dir::rmdir): Define new member functions.
4333 (directory_iterator): Pass filename_only argument to _Dir
4334 constructor.
4335 (recursive_directory_iterator::_Dir_stack): Adjust constructor
4336 parameters to take a _Dir rvalue instead of creating one.
4337 (_Dir_stack::orig): Add data member for storing original path.
4338 (_Dir_stack::report_error): Define new member function.
4339 (__directory_iterator_nofollow): Move here from dir-common.h and
4340 fix value to be a power of two.
4341 (__directory_iterator_filename_only): Define new constant.
4342 (recursive_directory_iterator): Construct _Dir object and move
4343 into _M_dirs stack. Pass skip_permission_denied argument to first
4344 advance call.
4345 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
4346 (recursive_directory_iterator::__erase): Define new member
4347 function.
4348 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
4349 (fs::remove_all): Use new recursive_directory_iterator::__erase
4350 member function.
4351 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
4352 constructor and use openat to implement nofollow semantics.
4353 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
4354 Define new member functions.
4355 (__directory_iterator_nofollow): Move to fs_dir.cc.
4356 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
4357 base constructor.
4358 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
4359 functions.
4360 (recursive_directory_iterator::_Dir_stack): Adjust constructor
4361 parameters to take a _Dir rvalue instead of creating one.
4362 (recursive_directory_iterator): Check for new nofollow option.
4363 Construct _Dir object and move into _M_dirs stack. Pass
4364 skip_permission_denied argument to first advance call.
4365 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
4366 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
4367
4368 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4369
4370 * include/bits/allocator.h: Qualify std::allocator_traits in
4371 deprecated warnings.
4372 * libsupc++/exception (uncaught_exception): Add suggestion to
4373 deprecated warning.
4374
4375 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4376
4377 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
4378 Add [[maybe_unused]] attribute.
4379 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
4380 Likewise.
4381
4382 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4383
4384 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
4385 custom comparison function for multiset.
4386 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
4387 comparison function for set.
4388
4389 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4390
4391 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
4392 Change member function to data member of function pointer type.
4393
4394 2022-02-02 Martin Sebor <msebor@redhat.com>
4395
4396 PR libstdc++/101831
4397 * include/std/array (begin): Declare const member function attribute
4398 const.
4399 (end, rbegin, rend, size, max_size, empty, data): Same.
4400 * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
4401 * testsuite/23_containers/array/capacity/max_size.cc: Same.
4402 * testsuite/23_containers/array/capacity/size.cc: Same.
4403 * testsuite/23_containers/array/iterators/begin_end.cc: New test.
4404
4405 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4406
4407 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
4408 autoconf macro to check whether d_type is present.
4409 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
4410 Likewise.
4411
4412 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4413
4414 * testsuite/27_io/filesystem/iterators/97731.cc: New test.
4415 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
4416 Check follow_directory_symlink option.
4417 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
4418 Likewise.
4419
4420 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4421
4422 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
4423 Reset state to past-the-end iterator on error.
4424 (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
4425 (fs::recursive_directory_iterator::pop()): Check _M_dirs before
4426 it might get reset.
4427 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
4428 for the TS implementation.
4429 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
4430 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
4431
4432 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4433
4434 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
4435
4436 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4437
4438 PR libstdc++/104301
4439 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
4440 for stdio_pure and stdio_posix options.
4441 * configure: Regenerate.
4442
4443 2022-02-01 Thomas Rodgers <rodgert@appliantology.com>
4444
4445 * include/bits/atomic_wait.h: Change memory order from
4446 Acquire/Release with relaxed loads to SeqCst+Release for
4447 accesses to the waiter's count.
4448
4449 2022-01-31 Martin Liska <mliska@suse.cz>
4450
4451 * acinclude.m4: Detect *_ld_is_mold and use it.
4452 * configure: Regenerate.
4453
4454 2022-01-30 Hans-Peter Nilsson <hp@axis.com>
4455
4456 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
4457 simulator targets.
4458 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
4459
4460 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
4461
4462 PR libstdc++/100516
4463 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
4464 Add __builtin_unreachable to loop.
4465 * testsuite/23_containers/deque/100516.cc: New test.
4466
4467 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
4468
4469 * include/bits/ranges_base.h (ranges::advance): Avoid signed
4470 overflow. Do nothing if already equal to desired result.
4471 * testsuite/24_iterators/range_operations/advance_overflow.cc:
4472 New test.
4473
4474 2022-01-27 Martin Liska <mliska@suse.cz>
4475
4476 PR libstdc++/104259
4477 * acinclude.m4: Fix typo.
4478 * configure: Regenerate.
4479
4480 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
4481
4482 PR libstdc++/104019
4483 * include/bits/istream.tcc (basic_istream::sentry): Add braces
4484 around try-block.
4485 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
4486 Add pragmas to disable bogus warnings from PR 61596.
4487
4488 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
4489
4490 PR libstdc++/104217
4491 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
4492 * src/filesystem/dir.cc (_GNU_SOURCE): Define.
4493 * src/filesystem/ops.cc (_GNU_SOURCE): Define.
4494
4495 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
4496
4497 PR libstdc++/104161
4498 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
4499 fdopendir.
4500 * config.h.in: Regenerate.
4501 * configure: Regenerate.
4502 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
4503 and pass it to base class constructor.
4504 (directory_iterator): Pass nofollow flag to _Dir constructor.
4505 (fs::recursive_directory_iterator::increment): Likewise.
4506 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
4507 directory_iterator constructor. Move error check outside loop.
4508 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
4509 constructor and when it's set use ::open with O_NOFOLLOW and
4510 O_DIRECTORY.
4511 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
4512 and pass it to base class constructor.
4513 (directory_iterator): Pass nofollow flag to _Dir constructor.
4514 (fs::recursive_directory_iterator::increment): Likewise.
4515 * src/filesystem/ops.cc (remove_all): Use nofollow option for
4516 directory_iterator constructor. Move error check outside loop.
4517
4518 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4519
4520 PR libstdc++/104032
4521 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
4522 mem-initializer for _M_buf.
4523 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
4524 member access.
4525 * testsuite/27_io/spanstream/2.cc: New test.
4526
4527 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4528
4529 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
4530 Define macro for case where std::from_chars is implemented in
4531 terms of strtod, strtof or strtold.
4532 (buffer_resource, valid_fmt, find_end_of_float, pattern)
4533 (from_chars_impl, make_result, reserve_string): Do not define
4534 unless USE_STRTOD_FOR_FROM_CHARS is defined.
4535 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
4536 USE_STRTOD_FOR_FROM_CHARS is defined, instead of
4537 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
4538 is binary64.
4539
4540 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4541
4542 PR libstdc++/104174
4543 * include/bits/hashtable_policy.h (_Map_base): Add partial
4544 specialization for maps with const key types.
4545 * testsuite/23_containers/unordered_map/104174.cc: New test.
4546
4547 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4548
4549 PR libstdc++/104019
4550 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
4551 Set members to zero without type punning.
4552
4553 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4554
4555 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
4556
4557 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4558
4559 PR libstdc++/87193
4560 PR libstdc++/104019
4561 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
4562 Define as type long.
4563 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
4564 Likewise.
4565 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
4566 * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
4567 (__cpp_lib_chrono_udls): Likewise.
4568 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
4569 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
4570 * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
4571 Likewise.
4572 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
4573 Likewise.
4574 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
4575 (__cpp_lib_sample): Likewise.
4576 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
4577 Likewise.
4578 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
4579 Likewise.
4580 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
4581 Likewise.
4582 * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
4583 Likewise.
4584 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
4585 Likewise.
4586 * include/bits/unique_ptr.h (__cpp_lib_make_unique):
4587 Likewise.
4588 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
4589 Likewise.
4590 * include/c_global/cmath (__cpp_lib_hypot): Likewise.
4591 * include/c_global/cstddef (__cpp_lib_byte): Likewise.
4592 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
4593 Likewise.
4594 * include/std/complex (__cpp_lib_complex_udls): Likewise.
4595 * include/std/filesystem (__cpp_lib_filesystem): Likewise.
4596 * include/std/functional (__cpp_lib_not_fn): Likewise.
4597 (__cpp_lib_boyer_moore_searcher): Likewise.
4598 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
4599 * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
4600 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
4601 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
4602 * include/std/tuple (__cpp_lib_apply): Likewise.
4603 (__cpp_lib_make_from_tuple): Likewise.
4604 * include/std/type_traits (__cpp_lib_integral_constant_callable)
4605 (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
4606 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
4607 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
4608 (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
4609 (__cpp_lib_has_unique_object_representations)
4610 (__cpp_lib_is_aggregate): Likewise.
4611 * include/std/version: Likewise.
4612 * libsupc++/new (__cpp_lib_launder): Likewise.
4613
4614 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4615
4616 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
4617 condition for C++17 definition.
4618
4619 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4620
4621 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
4622 Add constexpr.
4623 (_Sp_atomic::_M_ptr): Add default member-initializer.
4624 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
4625 Check constant initialization.
4626 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
4627
4628 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
4629
4630 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
4631 equivalent attribute for Clang.
4632 * src/c++11/future.cc (__constinit): Likewise.
4633 * src/c++11/system_error.cc (__constinit): Likewise.
4634 * src/c++17/memory_resource.cc (__constinit): Likewise.
4635
4636 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
4637
4638 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
4639 src/libbacktrace/.libs to LDFLAGS if those directories exist.
4640
4641 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4642
4643 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
4644 from default flags.
4645 * configure: Regenerate.
4646
4647 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4648
4649 PR libstdc++/104123
4650 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
4651 <stddef.h>.
4652
4653 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4654
4655 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
4656 linker search paths.
4657 * src/Makefile.am: Fix src/debug/libbacktrace build.
4658 * src/Makefile.in: Regenerate.
4659 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
4660 variable. Use symlinks for the source files.
4661 * src/libbacktrace/Makefile.in: Regenerate.
4662
4663 2022-01-19 Matthias Kretz <m.kretz@gsi.de>
4664
4665 * include/experimental/bits/simd.h (__floating_point_flags): Do
4666 not rely on math_errhandling to expand to a constant expression.
4667
4668 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4669
4670 * doc/xml/manual/evolution.xml: Document deprecations.
4671 * doc/xml/manual/status_cxx2017.xml: Update status.
4672 * doc/html/*: Regenerate.
4673
4674 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4675
4676 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
4677 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
4678
4679 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4680
4681 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
4682 function.
4683
4684 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4685
4686 PR libstdc++/104101
4687 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
4688 Only use __thread_relax if __cpp_lib_atomic_wait is defined.
4689
4690 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4691
4692 PR libstdc++/104099
4693 * include/bits/basic_string.h (basic_string(nullptr_t)): Only
4694 define for C++23.
4695 (operator=(nullptr_t)): Likewise.
4696 * include/bits/cow_string.h: Likewise.
4697 * include/std/string_view (basic_string_view(nullptr_t)):
4698 Likewise.
4699 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
4700 expected error. Add examples that become ill-formed in C++23.
4701 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
4702 Adjust expected errors.
4703 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
4704 Likewise.
4705
4706 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4707
4708 PR libstdc++/104098
4709 * include/bits/stl_iterator.h (reverse_iterator): Check
4710 __cpp_lib_concepts instead of __cplusplus.
4711
4712 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4713
4714 PR libstdc++/101124
4715 * include/bits/stl_pair.h (pair): Adjust constraints on
4716 deprecated constructors accepting literal zero as null pointer
4717 constant. Improve wording of deprecated attribute.
4718 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
4719 constructors do not cause ambiguities for copyable types.
4720
4721 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4722
4723 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
4724 non-deprecated alternative.
4725
4726 2022-01-18 Tom Honermann <tom@honermann.net>
4727
4728 * acinclude.m4: Define config macros if uchar.h provides
4729 c8rtomb() and mbrtoc8().
4730 * config.h.in: Regenerate.
4731 * configure: Regenerate.
4732 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
4733 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
4734 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
4735 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
4736 New test.
4737 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
4738 New test.
4739
4740 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4741
4742 * include/Makefile.am: Install new header.
4743 * include/Makefile.in: Regenerate.
4744 * include/c_compatibility/stdatomic.h: New file.
4745 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
4746
4747 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4748
4749 PR libstdc++/104080
4750 * src/c++17/fast_float/LOCAL_PATCHES: Update.
4751 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
4752 Define in terms of __BYTE_ORDER__.
4753
4754 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4755
4756 PR libstdc++/104080
4757 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
4758 * src/c++17/fast_float/fast_float.h (round): Use explicit
4759 template argument list for std::min.
4760
4761 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4762
4763 * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
4764 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
4765 upcoming release.
4766 * doc/html/manual/status.html: Regenerate.
4767
4768 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4769
4770 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
4771 comments.
4772 * configure: Regenerate.
4773
4774 2022-01-17 Patrick Palka <ppalka@redhat.com>
4775
4776 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
4777 Conditionally define, and use it to conditionally include
4778 fast_float.
4779 (from_chars): Use fast_float for float and double when
4780 USE_LIB_FAST_FLOAT.
4781
4782 2022-01-17 Patrick Palka <ppalka@redhat.com>
4783
4784 * src/c++17/fast_float/LOCAL_PATCHES: Update.
4785 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
4786 case of over/underflow, return errc::result_out_of_range and don't
4787 modify 'value'.
4788
4789 2022-01-17 Patrick Palka <ppalka@redhat.com>
4790
4791 * src/c++17/fast_float/LOCAL_PATCHES: Update.
4792 * src/c++17/fast_float/fast_float.h: Apply local modifications.
4793
4794 2022-01-17 Patrick Palka <ppalka@redhat.com>
4795
4796 * src/c++17/fast_float/LOCAL_PATCHES: New file.
4797 * src/c++17/fast_float/MERGE: New file.
4798 * src/c++17/fast_float/README.md: New file, copied from the
4799 fast_float repository.
4800 * src/c++17/fast_float/fast_float.h: New file, an amalgamation
4801 of the fast_float library.
4802
4803 2022-01-17 Patrick Palka <ppalka@redhat.com>
4804
4805 * src/c++17/floating_from_chars.cc: Include <bit>.
4806 (ascii_to_hexit, starts_with_ci): Conditionally define.
4807 (__floating_from_chars_hex): Conditionally define.
4808 (from_chars): Use __floating_from_chars_hex for
4809 chars_format::hex parsing of binary32/64 float/double.
4810 (testsuite/20_util/from_chars/7.cc): New test.
4811 * testsuite/20_util/from_chars/7.cc: New file.
4812
4813 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
4814
4815 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
4816 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
4817 * include/Makefile.am: Add new header.
4818 * include/Makefile.in: Regenerate.
4819 * include/std/stacktrace: New header.
4820 * include/std/version (__cpp_lib_stacktrace): Define.
4821 * Makefile.in: Regenerate.
4822 * config.h.in: Regenerate.
4823 * configure: Regenerate.
4824 * doc/Makefile.in: Regenerate.
4825 * libsupc++/Makefile.in: Regenerate.
4826 * po/Makefile.in: Regenerate.
4827 * python/Makefile.in: Regenerate.
4828 * src/Makefile.am: Regenerate.
4829 * src/Makefile.in: Regenerate.
4830 * src/c++11/Makefile.in: Regenerate.
4831 * src/c++17/Makefile.in: Regenerate.
4832 * src/c++20/Makefile.in: Regenerate.
4833 * src/c++98/Makefile.in: Regenerate.
4834 * src/filesystem/Makefile.in: Regenerate.
4835 * testsuite/Makefile.in: Regenerate.
4836 * src/libbacktrace/Makefile.am: New file.
4837 * src/libbacktrace/Makefile.in: New file.
4838 * src/libbacktrace/backtrace-rename.h: New file.
4839 * src/libbacktrace/backtrace-supported.h.in: New file.
4840 * src/libbacktrace/config.h.in: New file.
4841 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
4842 New proc.
4843 * testsuite/20_util/stacktrace/entry.cc: New test.
4844 * testsuite/20_util/stacktrace/synopsis.cc: New test.
4845 * testsuite/20_util/stacktrace/version.cc: New test.
4846
4847 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
4848
4849 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
4850 names.
4851 * doc/html/manual/status.html: Regenerate.
4852
4853 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
4854
4855 PR libstdc++/103650
4856 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
4857 * include/Makefile.in: Regenerate.
4858 * testsuite/17_intro/headers/c++1998/103650.cc: New test.
4859
4860 2022-01-17 Matthias Kretz <m.kretz@gsi.de>
4861
4862 * include/experimental/bits/simd.h (__floating_point_flags): Do
4863 not rely on the presence of the math_errhandling macro.
4864
4865 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
4866
4867 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
4868 to qualified-id for dependent type.
4869
4870 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
4871
4872 * doc/xml/manual/status_cxx2020.xml: Update.
4873 * doc/html/manual/status.html: Regenerate.
4874
4875 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
4876 Thomas Rodgers <trodgers@redhat.com>
4877
4878 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
4879 New macro.
4880 (_Sp_atomic): New class template.
4881 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
4882 specializations.
4883 * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
4884 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
4885 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
4886 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
4887 test.
4888 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
4889
4890 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
4891
4892 * include/experimental/bits/simd.h: Move feature detection bools
4893 and add __have_avx512bitalg, __have_avx512vbmi2,
4894 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
4895 __have_avx512vnni, __have_avx512vpopcntdq.
4896 (__detail::__machine_flags): New function which returns a unique
4897 uint64 depending on relevant -m and -f flags.
4898 (__detail::__odr_helper): New type alias for either an anonymous
4899 type or a type specialized with the __machine_flags number.
4900 (_SimdIntOperators): Change template parameters from _Impl to
4901 _Tp, _Abi because _Impl now has an __odr_helper parameter which
4902 may be _OdrEnforcer from the anonymous namespace, which makes
4903 for a bad base class.
4904 (many): Either add __odr_helper template parameter or mark as
4905 always_inline.
4906 * include/experimental/bits/simd_detail.h: Add defines for
4907 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
4908 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
4909 * include/experimental/bits/simd_builtin.h: Add __odr_helper
4910 template parameter or mark as always_inline.
4911 * include/experimental/bits/simd_fixed_size.h: Ditto.
4912 * include/experimental/bits/simd_math.h: Ditto.
4913 * include/experimental/bits/simd_scalar.h: Ditto.
4914 * include/experimental/bits/simd_neon.h: Add __odr_helper
4915 template parameter.
4916 * include/experimental/bits/simd_ppc.h: Ditto.
4917 * include/experimental/bits/simd_x86.h: Ditto.
4918
4919 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
4920
4921 * testsuite/22_locale/numpunct/members/char/3.cc:
4922 Require pt_PT locale instead of nl_NL.
4923 (test02): Use pt_PT locale instead of nl_NL.
4924
4925 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
4926
4927 PR libstdc++/91260
4928 PR libstdc++/91383
4929 PR libstdc++/95065
4930 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
4931 attribute.
4932 * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
4933 Disable deprecated warnings for base classes.
4934 (_Reference_wrapper_base): Likewise.
4935 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
4936 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
4937 * include/bits/stl_function.h (unary_function, binary_function):
4938 Add deprecated attribute.
4939 (unary_negate, not1, binary_negate, not2, ptr_fun)
4940 (pointer_to_unary_function, pointer_to_binary_function)
4941 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
4942 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
4943 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
4944 attributes.
4945 * include/bits/stl_iterator.h: Disable deprecated warnings for
4946 std::iterator base classes.
4947 * include/bits/stl_iterator_base_types.h (iterator): Add
4948 deprecated attribute.
4949 * include/bits/stl_map.h (map::value_compare): Disable
4950 deprecated warnings for base class.
4951 * include/bits/stl_multimap.h (multimap::value_compare):
4952 Likewise.
4953 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
4954 Add deprecated attribute.
4955 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
4956 * include/bits/stream_iterator.h: Disable deprecated warnings.
4957 * include/bits/streambuf_iterator.h: Likewise.
4958 * include/ext/bitmap_allocator.h: Remove unary_function base
4959 classes.
4960 * include/ext/functional: Disable deprecated warnings.
4961 * include/ext/rope: Likewise.
4962 * include/ext/throw_allocator.h: Likewise.
4963 * include/std/type_traits (result_of): Add deprecated attribute.
4964 * include/tr1/functional: Disable deprecated warnings.
4965 * include/tr1/functional_hash.h: Likewise.
4966 * testsuite/20_util/function_objects/binders/1.cc: Add
4967 -Wno-disable-deprecations.
4968 * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
4969 * testsuite/20_util/function_objects/constexpr.cc: Add
4970 dg-warning.
4971 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
4972 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
4973 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
4974 Likewise.
4975 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
4976 Likewise.
4977 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
4978 Likewise.
4979 * testsuite/20_util/reference_wrapper/24803.cc:
4980 Likewise.
4981 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
4982 C++20 and check for absence of nested types.
4983 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
4984 std::binary_function base class.
4985 * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
4986 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
4987 std::iterator base class.
4988 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
4989 Likewise.
4990 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
4991 Likewise.
4992 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
4993 Likewise.
4994 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
4995 Likewise.
4996 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
4997 Likewise.
4998 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
4999 Likewise.
5000 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
5001 Likewise.
5002 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
5003 Likewise.
5004 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
5005 Likewise.
5006 * testsuite/25_algorithms/copy/34595.cc:
5007 Likewise.
5008 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
5009 base class.
5010 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
5011 Disable deprecated warnings.
5012 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
5013 Likewise.
5014 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
5015 Likewise.
5016 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
5017 Likewise.
5018 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
5019 Likewise.
5020 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
5021 Likewise.
5022 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
5023 Likewise.
5024 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
5025 Likewise.
5026 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
5027 Likewise.
5028 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
5029 Likewise.
5030 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
5031 Likewise.
5032 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
5033 Likewise.
5034 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
5035 Likewise.
5036 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
5037 Likewise.
5038 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
5039 Likewise.
5040 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
5041 Likewise.
5042 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
5043 Likewise.
5044 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
5045 Likewise.
5046 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
5047 Likewise.
5048 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
5049 Likewise.
5050 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
5051 Likewise.
5052 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
5053 Likewise.
5054 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
5055 Likewise.
5056 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
5057 Likewise.
5058 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
5059 Likewise.
5060 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
5061 Likewise.
5062 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
5063 Likewise.
5064 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
5065 Likewise.
5066 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
5067 Likewise.
5068 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
5069 Likewise.
5070 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
5071 Likewise.
5072 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
5073 Likewise.
5074 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
5075 Likewise.
5076 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
5077 Likewise.
5078 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
5079 Likewise.
5080 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
5081 Likewise.
5082 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
5083 Likewise.
5084 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
5085 Likewise.
5086 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
5087 Likewise.
5088 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
5089 Likewise.
5090 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
5091 Likewise.
5092 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
5093 Likewise.
5094 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
5095 Likewise.
5096 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
5097 Likewise.
5098 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
5099 Likewise.
5100 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
5101 Likewise.
5102 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
5103 Likewise.
5104 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
5105 Likewise.
5106 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
5107 dg-warning.
5108 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
5109 Likewise.
5110 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
5111 Likewise.
5112 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
5113 Disable deprecated warnings.
5114 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
5115 Likewise.
5116 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
5117 std::unary_function base classes.
5118 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
5119 Remove std::iterator base classes.
5120
5121 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5122
5123 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
5124 Correct type of macro value.
5125 (shared_ptr): Add additional friend declarations.
5126 (make_shared, allocate_shared): Constrain existing overloads and
5127 remove static_assert.
5128 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
5129 New macro.
5130 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
5131 specialization for use with make_shared_for_overwrite.
5132 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
5133 (_Sp_counted_array_base): New class template.
5134 (_Sp_counted_array): New class template.
5135 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
5136 New constructor for allocating shared arrays.
5137 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
5138 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
5139 type.
5140 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
5141 (__cpp_lib_smart_ptr_for_overwrite): New macro.
5142 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
5143 expected errors.
5144 * testsuite/20_util/shared_ptr/creation/array.cc: New test.
5145 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
5146 * testsuite/20_util/shared_ptr/creation/version.cc: New test.
5147 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
5148 feature test macro. Test non-trivial default-initialization.
5149
5150 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5151
5152 * include/bits/stl_construct.h (_Construct, _Construct_novalue):
5153 Also cast away cv-qualifiers when converting pointer to void.
5154 * testsuite/20_util/allocator/void.cc: Test construct function
5155 with cv-qualified types.
5156
5157 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5158
5159 PR libstdc++/103992
5160 * include/bits/stl_iterator.h (common_iterator): Use
5161 std::construct_at instead of placement new.
5162 * testsuite/24_iterators/common_iterator/1.cc: Check copy
5163 construction is usable in constant expressions.
5164
5165 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5166
5167 * doc/xml/manual/status_cxx2011.xml: Document new tokens
5168 accepted by std::random_device constructor.
5169 * doc/html/manual/status.html: Regenerate.
5170
5171 2022-01-12 Patrick Palka <ppalka@redhat.com>
5172
5173 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
5174 directive.
5175
5176 2022-01-12 Patrick Palka <ppalka@redhat.com>
5177
5178 PR libstdc++/103955
5179 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
5180 Track the excess precision separately from the effective
5181 precision. Avoid overflow in bounds check by splitting it into
5182 two checks.
5183 (__floating_to_chars_precision): Avoid overflow in bounds checks
5184 similarly.
5185 * testsuite/20_util/to_chars/103955.cc: New test.
5186
5187 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5188
5189 PR libstdc++/103726
5190 * include/Makefile.am: Install <source_location> for
5191 freestanding.
5192 * include/Makefile.in: Regenerate.
5193 * include/std/version (__cpp_lib_source_location): Define for
5194 freestanding.
5195
5196 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5197
5198 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
5199 Add neoxcept (LWG 3593).
5200
5201 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5202
5203 * include/std/ranges (ranges::__detail::__box): Add constexpr to
5204 assignment operators (LWG 3572).
5205 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
5206 view that uses copyable-box.
5207
5208 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5209
5210 PR libstdc++/103726
5211 * include/Makefile.am: Install <coroutine> for freestanding.
5212 * include/Makefile.in: Regenerate.
5213 * include/std/coroutine: Adjust headers and preprocessor
5214 conditions.
5215 (__coroutine_traits_impl): Use concepts when available.
5216 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
5217
5218 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5219
5220 * include/std/ostream (operator<<(basic_ostream&, charT)):
5221 Use unformatted input if no padding is needed.
5222 (operator<<(basic_ostream<char>&, char)): Likewise.
5223
5224 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5225
5226 PR libstdc++/103891
5227 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
5228 Define.
5229 * include/std/variant (__cpp_lib_variant): Only define C++20
5230 value when the compiler is known to support conditionally
5231 trivial destructors.
5232 * include/std/version (__cpp_lib_variant): Likewise.
5233
5234 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5235
5236 * include/bits/stl_iterator.h (common_iterator): Add constexpr
5237 to all member functions (LWG 3574).
5238 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
5239 tests as constant expressions.
5240 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
5241
5242 2022-01-10 Jakub Jelinek <jakub@redhat.com>
5243
5244 PR libstdc++/77760
5245 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
5246 (time_get::_M_extract_via_format): Declare new method with
5247 __time_get_state& as an extra argument.
5248 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
5249 __state argument, set various fields in it while parsing. Handle %j,
5250 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
5251 for %p immediately. Add a wrapper around the method without the
5252 __state argument for backwards compatibility.
5253 (_M_extract_num): Remove all __len == 4 special cases.
5254 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
5255 initialize __state, pass it to _M_extract_via_format and finalize it
5256 at the end.
5257 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
5258 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
5259 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
5260 version, don't call do_get but call _M_extract_via_format instead to
5261 pass around state.
5262 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
5263 with extra __time_get_state and __time_get_state::_M_finalize_state.
5264 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
5265 day_of_the_year): New functions in anon namespace.
5266 (mon_yday): New var in anon namespace.
5267 (__time_get_state::_M_finalize_state): Define.
5268 * testsuite/22_locale/time_get/get/char/4.cc: New test.
5269 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
5270 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
5271 as year 197AD instead of error.
5272 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
5273 year 2001 instead of error.
5274 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
5275 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
5276 197 as year 197AD instead of error.
5277 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
5278 1 as year 2001 instead of error.
5279 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
5280
5281 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5282
5283 PR libstdc++/103866
5284 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
5285 nothing for freestanding builds.
5286 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
5287 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
5288 with --without-headers. Do not use GCC_HEADER_STDINT for
5289 freestanding builds.
5290 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
5291 for freestanding builds.
5292 * configure: Regenerate.
5293 * Makefile.in: Regenerate.
5294 * doc/Makefile.in: Regenerate.
5295 * include/Makefile.in: Regenerate.
5296 * libsupc++/Makefile.in: Regenerate.
5297 * po/Makefile.in: Regenerate.
5298 * python/Makefile.in: Regenerate.
5299 * src/Makefile.in: Regenerate.
5300 * src/c++11/Makefile.in: Regenerate.
5301 * src/c++17/Makefile.in: Regenerate.
5302 * src/c++20/Makefile.in: Regenerate.
5303 * src/c++98/Makefile.in: Regenerate.
5304 * src/filesystem/Makefile.in: Regenerate.
5305 * testsuite/Makefile.in: Regenerate.
5306
5307 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5308
5309 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
5310 Add dg-timeout-factor directive.
5311 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
5312 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
5313 * testsuite/28_regex/match_results/102667.cc: Likewise.
5314
5315 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5316
5317 * doc/xml/manual/using.xml: Update documentation around default
5318 -std option.
5319 * doc/html/*: Regenerate.
5320
5321 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5322
5323 PR libstdc++/100017
5324 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
5325 * src/c++17/Makefile.in: Regenerate.
5326
5327 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
5328
5329 * testsuite/18_support/type_info/constexpr.cc: Add explicit
5330 -fdelete-null-pointer-checks option.
5331
5332 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
5333 Jonathan Wakely <jwakely@redhat.com>
5334
5335 PR libstdc++/103853
5336 * include/bits/forward_list.tcc (forward_list::merge): Check for
5337 self-merge.
5338 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
5339
5340 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
5341
5342 * include/bits/regex.h (basic_regex, match_results): Qualify
5343 name in friend declaration, to work around Clang bug.
5344
5345 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
5346
5347 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
5348
5349 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
5350
5351 PR libstdc++/103911
5352 * include/std/charconv (__from_chars_alpha_to_num): Return
5353 char instead of unsigned char. Change invalid return value to
5354 127 instead of using numeric trait.
5355 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
5356 Change type of variable to char.
5357
5358 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
5359
5360 PR libstdc++/68303
5361 * include/bits/hashtable_policy.h
5362 (_Hashtable_hash_traits<_Hash>): New.
5363 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
5364 (_Hashtable_base<>::_M_key_equals): New.
5365 (_Hashtable_base<>::_M_equals): Use latter.
5366 (_Hashtable_base<>::_M_key_equals_tr): New.
5367 (_Hashtable_base<>::_M_equals_tr): Use latter.
5368 * include/bits/hashtable.h
5369 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
5370 (_Hashtable<>::find): Loop through elements to look for key if size is lower
5371 than __small_size_threshold().
5372 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
5373 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
5374 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
5375 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
5376 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
5377 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
5378 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
5379 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
5380 * testsuite/util/testsuite_performance.h
5381 (report_performance): Use 9 width to display memory.
5382 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
5383 New performance test case.
5384
5385 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5386
5387 PR libstdc++/103919
5388 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
5389 Relax constraints on string_view parameter.
5390 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
5391 Likewise.
5392 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
5393
5394 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5395
5396 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
5397 ARM EABI.
5398 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
5399 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
5400 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
5401 is emitted.
5402 (type_info::__equal): Define alias symbol.
5403 * libsupc++/typeinfo (type_info::before): Combine different
5404 implementations into one.
5405 (type_info::operator==): Likewise. Use address equality for
5406 constant evaluation. Call __equal for targets that require the
5407 definition to be non-inline.
5408 * testsuite/18_support/type_info/constexpr.cc: New test.
5409
5410 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5411
5412 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
5413 class and virtual functions as 'final'.
5414 (io_category_instance): Use constinit union to make the object
5415 immortal.
5416 * src/c++11/future.cc (future_error_category): Define class and
5417 virtual functions as 'final'.
5418 (future_category_instance): Use constinit union.
5419
5420 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5421
5422 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
5423 versioned namespace from the type name that is printed.
5424
5425 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5426
5427 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
5428 printer for std::regex NFA states.
5429
5430 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5431
5432 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
5433 placeholders in comments.
5434 * testsuite/23_containers/forward_list/operations/2.cc:
5435 Likewise.
5436 * testsuite/23_containers/forward_list/operations/3.cc:
5437 Likewise.
5438 * testsuite/23_containers/forward_list/operations/4.cc:
5439 Likewise.
5440 * testsuite/23_containers/forward_list/operations/5.cc:
5441 Likewise.
5442 * testsuite/23_containers/forward_list/operations/6.cc:
5443 Likewise.
5444 * testsuite/23_containers/forward_list/operations/7.cc:
5445 Likewise.
5446
5447 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5448
5449 PR libstdc++/103848
5450 * include/bits/stl_deque.h (operator-): Do not use 0 as null
5451 pointer constant.
5452
5453 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5454
5455 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
5456 Use std::_Construct for construct.
5457
5458 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5459
5460 PR libstdc++/103877
5461 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
5462 * doc/html/faq.html: Regenerate.
5463
5464 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5465
5466 * include/bits/regex.h (__regex_algo_impl): Change __policy and
5467 __match_mode template parameters to be function parameters.
5468 (regex_match, regex_search): Pass policy and match mode as
5469 function arguments.
5470 * include/bits/regex.tcc (__regex_algo_impl): Change template
5471 parameters to function parameters.
5472 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
5473 'if constexpr' for conditions using template parameters.
5474 (_RegexTranslator): Likewise.
5475 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
5476 Likewise.
5477 * testsuite/util/testsuite_regex.h (regex_match_debug)
5478 (regex_search_debug): Move template arguments to function
5479 arguments.
5480
5481 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5482
5483 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
5484 results even if the match failed.
5485
5486 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5487
5488 * include/bits/regex_compiler.tcc: Adjust all calls to
5489 __throw_regex_error.
5490 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
5491 attribute.
5492 * include/bits/regex_scanner.tcc: Likewise.
5493 * src/c++11/regex.cc (desc): New helper function.
5494 (regex_error::regex_error(error_type)): Use desc to get a string
5495 corresponding to the error code.
5496
5497 \f
5498 Copyright (C) 2022 Free Software Foundation, Inc.
5499
5500 Copying and distribution of this file, with or without modification,
5501 are permitted in any medium without royalty provided the copyright
5502 notice and this notice are preserved.