]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/ChangeLog
Fix condition for std::variant to be copy constructible
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
CommitLineData
88dbeb04 12019-04-17 Jonathan Wakely <jwakely@redhat.com>
2
37a7dbf9 3 * include/std/variant (__detail::__variant::_Traits::_S_copy_assign):
4 Do not depend on whether all alternative types are move constructible.
5 (__detail::__variant::_Copy_assign_base::operator=): Remove cv-quals
6 from the operand when deciding whether to perform the assignment.
7 * testsuite/20_util/variant/compile.cc (DeletedMoves): Define type
8 with deleted move constructor and deleted move assignment operator.
9 (default_ctor, copy_ctor, move_ctor, copy_assign, move_assign): Check
10 behaviour of variants with DeletedMoves as an alternative.
11 * testsuite/20_util/variant/run.cc (DeletedMoves): Define same type.
12 (move_ctor, move_assign): Check that moving a variant with a
13 DeletedMoves alternative falls back to copying instead of moving.
14
e9a490a4 15 * testsuite/20_util/variant/compile.cc: Remove empty string literals
16 from static_assert declarations.
17
c4495ab1 18 * testsuite/20_util/variant/compile.cc (MoveCtorOnly): Fix type to
19 actually match its name.
20 (MoveCtorAndSwapOnly): Define new type that adds swap to MoveCtorOnly.
21 (test_swap()): Fix result for MoveCtorOnly and check
22 MoveCtorAndSwapOnly.
23
88dbeb04 24 * include/std/optional (optional::value_or(U&&) &&): Add missing
25 constexpr specifier.
26 * testsuite/20_util/optional/constexpr/observers/4.cc: Check value_or
27 for disengaged optionals and rvalue optionals.
28 * testsuite/20_util/optional/observers/4.cc: Likewise.
29
11deac81 302019-04-12 Thomas Rodgers <trodgers@redhat.com>
31
32 * include/pstl/algorithm_impl.h: Uglify identfiers.
33 * include/pstl/numeric_impl.h: Uglify identfiers.
34 * include/pstl/parallel_backend_tbb.h: Uglify identfiers.
35
34d8d757 362019-04-11 Thomas Rodgers <trodgers@redhat.com>
37
38 * include/bits/c++config:
39 Add definition for __PSTL_ASSERT.
40 Add definition for __PSTL_ASSERT_MSG.
41 * include/pstl/algorithm_impl.h: Replace use of assert().
42 * include/pstl/numeric_impl.h: Replace use of assert().
43 * include/pstl/parallel_backend_tbb.h:
44 Replace use of assert().
45 Replace use of __TBB_ASSERT().
34d8d757 46 * include/pstl/parallel_backend_utils.h: Replace use of assert().
47
629a2d18 482019-04-11 Jonathan Wakely <jwakely@redhat.com>
49
50 PR libstdc++/90046
51 * src/c++17/memory_resource.cc
52 (monotonic_buffer_resource::_Chunk::allocate): Increase alignment if
53 needed to allow placing a _Chunk at the end of the buffer.
54 (monotonic_buffer_resource::_M_new_buffer): Remove static_assert.
55
b047c9ae 562019-04-10 Jonathan Wakely <jwakely@redhat.com>
57
6a98b075 58 * doc/xml/faq.xml: Add information about emergency EH pool.
59 * doc/xml/manual/debug.xml: Update list of memory debugging tools.
60 Move outdated information on mt_allocator to a separate section.
61 * doc/xml/manual/evolution.xml: Clarify that GLIBCXX_FORCE_NEW
62 doesn't affect the default allocator.
63
706bf2a5 64 * testsuite/lib/libstdc++.exp (check_v3_target_parallel_mode): Fix
65 typo.
66
b047c9ae 67 PR libstdc++/89851
68 * testsuite/20_util/variant/89851.cc: New test.
69
faa382bd 702019-04-09 Jonathan Wakely <jwakely@redhat.com>
71
492debfa 72 * include/std/variant: Adjust whitespace. Add comments.
73 (_Multi_array): Leave primary template undefined.
74 (_Multi_array<_Tp>): Define partial specialization for base case of
75 recursion.
76 (__gen_vtable_impl, __gen_vtable): Remove redundant && from type
77 which is always a reference.
78 (__gen_vtable::_S_apply()): Remove function, inline body into
79 default member initializer.
80 * testsuite/20_util/variant/visit.cc: Test with noncopyable types.
81
47cf9c4c 82 * include/std/variant (__variant_idx_cookie): Add member type.
83 (__visitor_result_type): Remove.
84 (__do_visit): Use invoke_result instead of __visitor_result_type.
85 * testsuite/20_util/variant/visit.cc: New test.
86
faa382bd 87 PR libstdc++/90008
88 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Remove
89 unused capture.
90 * testsuite/20_util/variant/90008.cc: New test.
91
e4da4897 922019-04-09 Thomas Rodgers <trodgers@redhat.com>
93
94 * include/pstl/algorithm_impl.h: Add namespace qualification.
95 * include/pstl/execution_defs.h: Add namespace qualification.
96 * include/pstl/execution_impl.h: Add namespace qualification.
97 * include/pstl/numeric_impl.h: Add namespace qualification.
98 * include/pstl/parallel_backend_tbb.h: Add namespace qualification.
99 * include/pstl/unseq_backend_simd.h: Add namespace qualification.
100 * include/pstl/parallel_backend_utils.h: Include <cassert>.
101
ff7d433d 1022019-04-08 Ville Voutilainen <ville.voutilainen@gmail.com>
103
104 Fix visit<R> for variant.
105 * include/std/variant (__do_visit): Add a template parameter
106 for enforcing same return types for visit.
107 (__gen_vtable_impl): Likewise.
108 (_S_apply_single_alt): Adjust.
109 (__visit_invoke_impl): New. Handle casting to void.
110 (__do_visit_invoke): New. Enforces same return types.
111 (__do_visit_invoke_r): New. Converts return types.
112 (__visit_invoke): Adjust.
113 (__gen_vtable): Add a template parameter for enforcing
114 same return types for visit.
115 * testsuite/20_util/variant/visit_r.cc: Add a test for a visitor with
116 different return types.
117 * testsuite/20_util/variant/visit_neg.cc: New. Ensures that
118 visitors with different return types don't accidentally
119 compile with regular visitation.
120
d0f56531 1212019-04-08 Christophe Lyon <christophe.lyon@linaro.org>
122
123 * testsuite/27_io/filesystem/iterators/caching.cc: Add
124 dg-require-filesystem-ts.
125
781cb64d 1262019-04-05 Jonathan Wakely <jwakely@redhat.com>
127
bfbd20f7 128 * doc/xml/manual/status_cxx2020.xml: Update status.
129 * include/std/variant (visit<R>): Define for C++2a (P0655R1).
130 * testsuite/20_util/variant/visit_r.cc: New test.
131
83bd31bf 132 * include/bits/fs_dir.h (directory_iterator::operator*)
133 (directory_iterator::operator->): Add noexcept.
134 (operator==, operator!=): Replace namespace-scope equality operators
135 for directory iterators with hidden friends.
136
0067a809 137 PR libstdc++/89986
138 * config/abi/pre/gnu.ver: Add missing exports.
139 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Test
140 increment member.
141
7d0ae205 142 * config/abi/pre/gnu.ver: Export new symbols.
143 * include/bits/fs_dir.h (recursive_directory_iterator::options())
144 (recursive_directory_iterator::recursion_pending())
145 (recursive_directory_iterator::disable_recursion_pending()): Remove
146 inline definitions. Make noexcept.
147 (recursive_directory_iterator::depth())
148 (recursive_directory_iterator::operator*())
149 (recursive_directory_iterator::operator->()): Make noexcept.
150 (recursive_directory_iterator::_M_options)
151 (recursive_directory_iterator::_M_pending): Remove data members.
152 * src/c++17/fs_path.cc (_Dir_stack): Add constructor and data members.
153 (recursive_directory_iterator::recursive_directory_iterator): Remove
154 ctor-initializer. Use new constructor for _Dir_stack.
155 (recursive_directory_iterator::options())
156 (recursive_directory_iterator::recursion_pending())
157 (recursive_directory_iterator::disable_recursion_pending()): Add
158 non-inline definitions.
159 (recursive_directory_iterator::depth()): Make noexcept.
160 (recursive_directory_iterator::increment(error_code&))
161 (recursive_directory_iterator::pop(error_code&)): Adjust to new
162 location of options and recursion_pending members.
163 * testsuite/27_io/filesystem/iterators/recursion_pending.cc: New test.
164 * testsuite/util/testsuite_fs.h (__gnu_test::scoped_file): Add
165 user-declared move constructor and assignment operator, to make the
166 type move-only.
167
5a6e0b73 168 * src/c++17/fs_dir.cc (_Dir::advance(bool, error_code&)): Handle
169 d_type == DT_UNKNOWN immediately.
170 (_Dir::should_recurse(bool, error_code&)): Remove file_type::unknown
171 handling here.
172 * testsuite/27_io/filesystem/iterators/caching.cc: New test.
173
aa9c570e 174 * include/bits/fs_path.h (path::operator=(path&&)): Check for self
175 assignment.
176 * src/c++17/fs_path.cc (path::operator=(const path&)): Likewise.
177 * testsuite/27_io/filesystem/path/assign/copy.cc: Test self
178 assignment.
179
781cb64d 180 PR libstdc++/87431 (again)
181 * include/bits/basic_string.h (__variant::_Never_valueless_alt):
182 Define partial specialization for basic_string.
183 * include/bits/shared_ptr.h (_Never_valueless_alt): Likewise for
184 shared_ptr and weak_ptr.
185 * include/bits/std_function.h (_Never_valueless_alt): Likewise for
186 function.
187 * include/bits/stl_vector.h (_Never_valueless_alt): Likewise for
188 vector.
189 * include/bits/unique_ptr.h (_Never_valueless_alt): Likewise for
190 unique_ptr.
191 * include/debug/vector (_Never_valueless_alt): Likewise for debug
192 vector.
193 * include/std/any (_Never_valueless_alt): Define explicit
194 specialization for any.
195 * include/std/variant (_Never_valueless_alt): Define primary template.
196 (__never_valueless): Use _Never_valueless_alt instead of
197 is_trivially_copyable.
198 (variant::emplace<N>(Args&&...)): Add special case for non-throwing
199 initializations to avoid try-catch overhead. Add special case for
200 scalars produced by potentially-throwing conversions. Use
201 _Never_valueless_alt instead of is_trivially_copyable for the
202 remaining strong exception-safety cases.
203 (variant::emplace<N>(initializer_list<U>, Args&&...)): Likewise.
204 * testsuite/20_util/variant/87431.cc: Run both test functions.
205 * testsuite/20_util/variant/exception_safety.cc: New test.
206 * testsuite/20_util/variant/run.cc: Use pmr::string instead of string,
207 so the variant becomes valueless.
208
62fd39e8 2092019-04-03 Jonathan Wakely <jwakely@redhat.com>
210
e1d699b8 211 PR libstdc++/85184
212 * include/std/variant (_Copy_assign_base, _Move_assign_base, variant):
213 Remove assertions.
72be2bb7 214 (variant::emplace<_Tp>): Return result of emplace<N> directly.
e1d699b8 215
62fd39e8 216 * include/std/string (__hash_string_base): New class template defining
217 operator() for hashing strings.
218 (hash<pmr::string>, hash<pmr::u8string>, hash<pmr::u16string>)
219 (hash<pmr::u32string>, hash<pmr::wstring>): Define for C++17.
220 * testsuite/21_strings/basic_string/hash/hash.cc: New test.
221 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc: New test.
222
4f3e024d 2232019-04-01 Ville Voutilainen <ville.voutilainen@gmail.com>
224
225 Use single-visitation in variant assignment and swap and relops.
226 Also use indices instead of types when checking whether
227 variants hold the same thing.
228 * include/std/variant (__do_visit): Add a template parameter
229 for index visitation, invoke with indices if index visitation
230 is used.
231 (__variant_idx_cookie): New.
232 (__visit_with_index): Likewise.
233 (_Copy_assign_base::operator=): Do single-visitation with
234 an index visitor.
235 (_Move_assign_base::operator=): Likewise.
236 (_Extra_visit_slot_needed): Adjust.
237 (__visit_invoke): Call with indices if it's an index visitor.
238 (relops): Do single-visitation with an index visitor.
239 (swap): Likewise.
240 (__visitor_result_type): New.
241
106979b7 2422019-03-30 Eric Botcazou <ebotcazou@adacore.com>
243
244 * src/c++17/fs_ops.cc (fs::permissions): Use std::errc::not_supported.
245
225ca87b 2462019-03-28 Ville Voutilainen <ville.voutilainen@gmail.com>
247
248 Don't revisit a variant we are already visiting.
249 * include/std/variant (__variant_construct_single): New.
250 (__variant_construct): Use it.
251 (_M_destructive_move): Likewise.
252 (_M_destructive_copy): Likewise.
253 (_Copy_assign_base::operator=): Adjust.
254 (_Move_assign_base::operator=): Likewise.
255 (swap): Likewise.
256
7237dce7 2572019-03-26 Jonathan Wakely <jwakely@redhat.com>
258
259 PR libstdc++/85965
260 * include/bits/hashtable.h (_Hashtable): Move static assertions to
261 destructor so they are not evaluated until the _Key type is complete.
262 * include/bits/stl_tree.h (_Rb_tree): Likewise.
263 * testsuite/23_containers/set/85965.cc: New test.
264 * testsuite/23_containers/unordered_set/85965.cc: New test.
265 * testsuite/23_containers/map/48101_neg.cc: Replace "here" errors
266 with regexp matching the corresponding _Rb_tree specialization.
267 * testsuite/23_containers/multimap/48101_neg.cc: Likewise.
268 * testsuite/23_containers/multiset/48101_neg.cc: Remove "here" error.
269 * testsuite/23_containers/set/48101_neg.cc: Likewise.
270 * testsuite/23_containers/unordered_map/48101_neg.cc: Likewise.
271 * testsuite/23_containers/unordered_multimap/48101_neg.cc: Likewise.
272 * testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise.
273 * testsuite/23_containers/unordered_set/48101_neg.cc: Likewise.
274
4c0ef551 2752019-03-26 Ville Voutilainen <ville.voutilainen@gmail.com>
276
277 PR libstdc++/89825
278 Fix based on a suggestion by Antony Polukhin.
279 * include/std/variant (__never_valueless): New.
280 (_M_valid): Use it.
281 (_Extra_visit_slot_needed): New.
282 (_Multi_array): Use it.
283 (_S_apply_all_alts): Likewise.
284
28b460dd 2852019-03-26 Ville Voutilainen <ville.voutilainen@gmail.com>
286
287 PR libstdc++/89824
288 Fix based on a suggestion by Antony Polukhin.
289 * include/std/variant (__gen_vtable): Don't reserve an
290 additional table slot, _Multi_array already does that.
291
4d235dc5 2922019-03-26 Ville Voutilainen <ville.voutilainen@gmail.com>
293
294 PR libstdc++/89816
295 Fix based on a suggestion by Antony Polukhin.
296 * include/std/variant (__variant_construct): Capture a pointer
297 to the storage and visit just one variant.
298
d0595c7e 2992019-03-22 Jonathan Wakely <jwakely@redhat.com>
300
5c34f7ca 301 * doc/xml/manual/backwards_compatibility.xml: Remove link to
302 Doxygen-generated pages with unstable URL.
303 * doc/xml/manual/concurrency_extensions.xml: Likewise.
304 * doc/xml/manual/extensions.xml: Likewise.
305 * doc/xml/manual/parallel_mode.xml: Likewise.
306 * doc/xml/manual/support.xml: Likewise.
307
d0595c7e 308 * include/bits/stl_algobase.h (__lg): Do arithmetic on type int to
309 avoid -Wconversion warnings.
310
7e155e54 3112019-03-21 Thomas Rodgers <trodgers@redhat.com>
312
313 * include/Makefile.am (std_header): Add ${std_srcdir}/execution.
314 (pstl_srcdir, pstl_builddir, pstl_headers): New variables.
315 (allstamped): Add stamp-pstl.
316 (install-headers): Add ptsl_builddir.
317 * include/Makefile.in: Regenerate.
318 * include/bits/c++config: Add pstl configuration.
319 * include/pstl/LICENSE.txt: New file.
320 * include/pstl/algorithm_fwd.h: New file.
321 * include/pstl/algorithm_impl.h: New file.
322 * include/pstl/execution_defs.h: New file.
323 * include/pstl/execution_impl.h: New file.
324 * include/pstl/glue_algorithm_defs.h: New file.
325 * include/pstl/glue_algorithm_impl.h: New file.
326 * include/pstl/glue_execution_defs.h: New file.
327 * include/pstl/glue_memory_defs.h: New file.
328 * include/pstl/glue_memory_impl.h: New file.
329 * include/pstl/glue_numeric_defs.h: New file.
330 * include/pstl/glue_numeric_impl.h: New file.
331 * include/pstl/memory_impl.h: New file.
332 * include/pstl/numeric_fwd.h: New file.
333 * include/pstl/numeric_impl.h: New file.
334 * include/pstl/parallel_backend.h: New file.
335 * include/pstl/parallel_backend_tbb.h: New file.
336 * include/pstl/parallel_backend_utils.h: New file.
337 * include/pstl/parallel_impl.h: New file.
338 * include/pstl/pstl_config.h: New file.
339 * include/pstl/unseq_backend_simd.h: New file.
340 * include/pstl/utils.h: New file.
341 * include/std/algorithm: Include parallel algorithm implementations.
342 * include/std/execution: New file.
343 * include/std/memory: Include parallel algorithm implementations.
344 * include/std/numeric: Include parallel algorithm implementations.
345 * include/std/version: Add parallel algorithms feature test macro.
346 * testsuite/util/pstl/pstl_test_config.h: New file.
347 * testsuite/util/pstl/test_utils.h: New file.
348 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc: New file.
349 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: New file.
350 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc: New file.
351 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: New file.
352 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: New file.
353 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: New file.
354 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: New file.
355 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc: New file.
356 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc: New file.
357 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: New file.
358 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: New file.
359 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: New file.
360 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: New file.
361 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc: New file.
362 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc: New file.
363 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc: New file.
364 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: New file.
365 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: New file.
366 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc: New file.
367 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc: New file.
368 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc: New file.
369 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: New file.
370 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: New file.
371 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc: New file.
372 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: New file.
373 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: New file.
374 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: New file.
375 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: New file.
376 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: New file.
377 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: New file.
378 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc: New file.
379 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: New file.
380 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc: New file.
381 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc: New file.
382 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: New file.
383 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc: New file.
384 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: New file.
385 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc: New file.
386 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: New file.
387 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc: New file.
388 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: New file.
389 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc: New file.
390 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: New file.
391 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: New file.
392 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: New file.
393 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc: New file.
394 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: New file.
395 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: New file.
396 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc: New file.
397 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: New file.
398 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: New file.
399 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: New file.
400 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: New file.
401 * testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc: New file.
402 * testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: New file.
403 * testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc: New file.
404 * testsuite/testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: New file.
405 * testsuite/testsuite/25_algorithms/pstl/alg_merge/merge.cc: New file.
406 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: New file.
407 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: New file.
408 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc: New file.
409 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc: New file.
410 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: New file.
411 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: New file.
412 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: New file.
413 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: New file.
414 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc: New file.
415 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc: New file.
416 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc: New file.
417 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: New file.
418 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: New file.
419 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc: New file.
420 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc: New file.
421 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc: New file.
422 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: New file.
423 * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: New file.
424 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc: New file.
425 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: New file.
426 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: New file.
427 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: New file.
428 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: New file.
429 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: New file.
430 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: New file.
431 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc: New file.
432 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: New file.
433 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc: New file.
434 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc: New file.
435 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: New file.
436 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc: New file.
437 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: New file.
438 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc: New file.
439 * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: New file.
440 * testsuite/testsuite/25_algorithms/pstl/alg_sorting/includes.cc: New file.
441 * testsuite/testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: New file.
442 * testsuite/testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc: New file.
443 * testsuite/testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: New file.
444 * testsuite/testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: New file.
445 * testsuite/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: New file.
446 * testsuite/testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc: New file.
447 * testsuite/testsuite/25_algorithms/pstl/alg_sorting/set.cc: New file.
448 * testsuite/testsuite/25_algorithms/pstl/alg_sorting/sort.cc: New file.
449 * testsuite/testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc: New file.
450 * testsuite/testsuite/26_numerics/pstl/numeric_ops/reduce.cc: New file.
451 * testsuite/testsuite/26_numerics/pstl/numeric_ops/scan.cc: New file.
452 * testsuite/testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: New file.
453 * testsuite/testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: New file.
454
480b3b75 4552019-03-21 Jonathan Wakely <jwakely@redhat.com>
456
0a4390ac 457 * include/c_compatibility/math.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]
458 (assoc_laguerre, assoc_laguerref, assoc_laguerrel, assoc_legendre)
459 (assoc_legendref, assoc_legendrel, beta, betaf, betal, comp_ellint_1)
460 (comp_ellint_1f, comp_ellint_1l, comp_ellint_2, comp_ellint_2f)
461 (comp_ellint_2l, comp_ellint_3, comp_ellint_3f, comp_ellint_3l)
462 (cyl_bessel_i, cyl_bessel_if, cyl_bessel_il, cyl_bessel_j)
463 (cyl_bessel_jf, cyl_bessel_jl, cyl_bessel_k, cyl_bessel_kf)
464 (cyl_bessel_kl, cyl_neumann, cyl_neumannf, cyl_neumannl, ellint_1)
465 (ellint_1f, ellint_1l, ellint_2, ellint_2f, ellint_2l, ellint_3)
466 (ellint_3f, ellint_3l, expint, expintf, expintl, hermite, hermitef)
467 (hermitel, laguerre, laguerref, laguerrel, legendre, legendref)
468 (legendrel, riemann_zeta, riemann_zetaf, riemann_zetal, sph_bessel)
469 (sph_besself, sph_bessell, sph_legendre, sph_legendref, sph_legendrel)
470 (sph_neumann, sph_neumannf, sph_neumannl): Only add using-declarations
471 when the special functions IS is enabled, not for C++17.
472 * testsuite/26_numerics/headers/cmath/functions_global_c++17.cc:
473 Replace with ...
474 * testsuite/26_numerics/headers/cmath/functions_global.cc: New test,
475 without checks for special functions in C++17.
476 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
477 New test.
478
480b3b75 479 PR libstdc++/88066
480 * include/backward/hash_map: Use <> for includes not "".
481 * include/backward/hash_set: Likewise.
482 * include/backward/strstream: Likewise.
483 * include/tr1/bessel_function.tcc: Likewise.
484 * include/tr1/exp_integral.tcc: Likewise.
485 * include/tr1/legendre_function.tcc: Likewise.
486 * include/tr1/modified_bessel_func.tcc: Likewise.
487 * include/tr1/riemann_zeta.tcc: Likewise.
488
ed360d55 4892019-03-19 Jonathan Wakely <jwakely@redhat.com>
490
491 * doc/xml/manual/allocator.xml: Link to table documenting evolution
492 of extension allocators.
493 * doc/xml/manual/evolution.xml: Use angle brackets for header names.
494 Document new headers in 7.2, 8.1 and 9.1 releases.
495 * doc/xml/manual/using.xml: Adjust link target for new_allocator.
496 * doc/html/*: Regenerate.
497
8f9d7eb1 4982019-03-12 John David Anglin <dave.anglin@bell.net>
499
500 PR libstdc++/89461
501 * testsuite/lib/libstdc++.exp: Locate libatomic.
502 * testsuite/lib/dg-options.exp (add_options_for_libatomic): New.
503 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Add
504 libatomic options.
505 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
506 * testsuite/experimental/net/timer/waitable/cons.cc: Likewise.
507 * testsuite/experimental/net/timer/waitable/dest.cc: Likewise.
508 * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
509
0bd005b6 5102019-03-11 Jonathan Wakely <jwakely@redhat.com>
511
5995ba3a 512 PR libstdc++/89460
513 * configure.ac: Check for sockatmark.
514 * crossconfig.m4: Check for sockatmark.
515 * config.h.in: Regenerate.
516 * configure: Regenerate.
517 * include/experimental/internet (address_v4::_S_hton): Rename
518 overloaded functions to _S_hton_16 and _S_ntoh_16.
519 (address_v4::_S_ntoh): Rename to _S_ntoh_16 and _S_ntoh_32.
520 (basic_endpoint): Adjust calls to _S_hton and _S_ntoh.
521 * include/experimental/socket (basic_socket::at_mark): Check
522 _GLIBCXX_HAVE_SOCKATMARK.
523
5aa8571a 524 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Use
525 const variables instead of macros.
526
0bd005b6 527 PR libstdc++/89629
528 * libsupc++/hash_bytes.cc [__SIZEOF_SIZE_T__ == 8] (_Hash_bytes):
529 Use correct type for len_aligned.
530 * testsuite/20_util/hash/89629.cc: New test.
531
bc204227 5322019-03-11 Jakub Jelinek <jakub@redhat.com>
533
534 PR libstdc++/89641
535 * include/std/atomic (atomic<T>::store, atomic<T>::load,
536 atomic<T>::exchange, atomic<T>::compare_exchange_weak,
537 atomic<T>::compare_exchange_strong): Cast __m or __s and __f to int.
538 * include/bits/atomic_base.h (__atomic_base<T>::operator++,
539 __atomic_base<T>::operator--, __atomic_base<T>::operator+=,
540 __atomic_base<T>::operator-=, __atomic_base<T>::operator&=,
541 __atomic_base<T>::operator|=, __atomic_base<T>::operator^=,
542 __atomic_base<T*>::operator++, __atomic_base<T*>::operator--,
543 __atomic_base<T*>::operator+=, __atomic_base<T*>::operator-=): Cast
544 memory_order_seq_cst to int.
545
fc557c2b 5462019-03-08 Jonathan Wakely <jwakely@redhat.com>
547
59b5e890 548 * doc/xml/manual/using.xml: Use link element instead of xref.
549 * doc/html/*: Regenerate.
550
fc557c2b 551 * include/bits/fs_path.h (path::format): Add fixed underlying type.
552
66c6ff9e 5532019-03-08 François Dumont <fdumont@gcc.gnu.org>
554
448338d0 555 PR libstdc++/89477
556 * include/debug/map.h (map): Use _RequireNotAllocator to constrain
557 parameters in deduction guides.
558 * include/debug/multimap.h (multimap): Likewise.
559 * include/debug/set.h (multimap): Likewise.
560 * include/debug/multiset.h (multimap): Likewise.
561 * include/debug/unordered_map (unordered_map): Likewise.
562 (unordered_multimap): Likewise.
563 * include/debug/unordered_set (unordered_set): Likewise.
564 (unordered_multiset): Likewise.
565
66c6ff9e 566 PR libstdc++/89608
567 * include/debug/unordered_map (unordered_map<>::_M_check_rehashed):
568 Invalidate all iterators in case of rehash.
569 (unordered_multimap<>::_M_check_rehashed): Likewise.
570 * include/debug/unordered_set
571 (unordered_set<>::_M_check_rehashed): Likewise.
572 (unordered_multiset<>::_M_check_rehashed): Likewise.
573 * testsuite/23_containers/unordered_set/debug/89608_neg.cc: New.
574
32e92dc2 5752019-03-07 Andreas Schwab <schwab@suse.de>
576
577 * config/abi/post/riscv64-linux-gnu: New directory.
578 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: New file.
579
61dcf2e1 5802019-03-07 Jonathan Wakely <jwakely@redhat.com>
581
682ee94e 582 * testsuite/20_util/function_objects/bind_front/1.cc: Change from
583 compile test to run. Fix typo.
584
f24442bd 585 * doc/xml/manual/status_cxx2020.xml: Update C++20 status.
586 * doc/html/*: Regenerate.
587
61dcf2e1 588 P0356R5 Simplified partial function application
589 * include/std/functional [C++20] (_Bind_front, _Bind_front_t): Define
590 helpers for bind_front.
591 (bind_front, __cpp_lib_bind_front): Define.
592 * testsuite/20_util/function_objects/bind_front/1.cc: New test.
593
b4af2395 5942019-03-06 Jonathan Wakely <jwakely@redhat.com>
595
596 * include/std/type_traits (__cpp_lib_bounded_array_traits): Define.
597 * include/std/version (__cpp_lib_bounded_array_traits): Likewise.
598 * testsuite/20_util/is_bounded_array/value.cc: Check for macro.
599 * testsuite/20_util/is_unbounded_array/value.cc: Likewise.
600
f1857b8b 6012019-03-06 Edward Smith-Rowland <3dw4rd@verizon.net>
602
603 PR libstdc++/86655 - std::assoc_legendre should not constrain
604 the value of m (or x).
605 * include/tr1/legendre_function.tcc (__assoc_legendre_p,
606 __sph_legendre): If degree > order Don't throw, return 0.
607 (__legendre_p, __assoc_legendre_p): Don't constrain x either.
608 * testsuite/special_functions/02_assoc_legendre/pr86655.cc: New test.
609 * testsuite/special_functions/20_sph_legendre/pr86655.cc: New test.
610 * testsuite/tr1/5_numerical_facilities/special_functions/
611 02_assoc_legendre/pr86655.cc: New test.
612 * testsuite/tr1/5_numerical_facilities/special_functions/
613 22_sph_legendre/pr86655.cc: New test.
614
49c83dca 6152019-03-06 Ville Voutilainen <ville.voutilainen@gmail.com>
616
617 Rewrite variant.
618 Also PR libstdc++/85517
619 * include/std/variant (__do_visit): New.
620 (__variant_cast): Likewise.
621 (__variant_cookie): Likewise.
622 (__erased_*): Remove.
623 (_Variant_storage::_S_vtable): Likewise.
624 (_Variant_storage::__M_reset_impl): Adjust to use __do_visit.
625 (_Variant_storage::__M_reset): Adjust.
626 (__variant_construct): New.
627 (_Copy_ctor_base(const _Copy_ctor_base&)): Adjust to use
628 __variant_construct.
629 (_Move_ctor_base(_Move_ctor_base&&)): Likewise.
630 (_Move_ctor_base::__M_destructive_copy): New.
631 (_Move_ctor_base::__M_destructive_move): Adjust to use
632 __variant_construct.
633 (_Copy_assign_base::operator=): Adjust to use __do_visit.
634 (_Copy_assign_alias): Adjust to check both copy assignment
635 and copy construction for triviality.
636 (_Move_assign_base::operator=): Adjust to use __do_visit.
637 (_Multi_array): Add support for visitors that accept and return
638 a __variant_cookie.
639 (__gen_vtable_impl::_S_apply_all_alts): Likewise.
640 (__gen_vtable_impl::_S_apply_single_alt): Likewise.
641 (__gen_vtable_impl::__element_by_index_or_cookie): New. Generate
642 a __variant_cookie temporary for a variant that is valueless and..
643 (__gen_vtable_impl::__visit_invoke): ..adjust here.
644 (__gen_vtable::_Array_type): Conditionally make space for
645 the __variant_cookie visitor case.
646 (__variant_construct_by_index): New.
647 (get_if): Adjust to use std::addressof.
648 (relops): Adjust to use __do_visit.
649 (variant): Add __variant_cast and __variant_construct_by_index
650 as friends.
651 (variant::emplace): Use _M_reset() and __variant_construct_by_index
652 instead of self-destruction.
653 (variant::swap): Adjust to use __do_visit.
654 (visit): Reimplement in terms of __do_visit.
655 (__variant_hash_call_base_impl::operator()): Adjust to use __do_visit.
656 * testsuite/20_util/variant/compile.cc: Adjust.
657 * testsuite/20_util/variant/run.cc: Likewise.
658
13825fb2 6592019-03-06 Jonathan Wakely <jwakely@redhat.com>
660
2613fa6b 661 * include/bits/c++config.h (_cpp_lib_char8_t): Add L suffix to
662 constant.
663 * testsuite/experimental/feat-char8_t.cc: Likewise.
664
a17f06b3 665 * include/std/type_traits [C++20] (is_bounded_array)
666 (is_unbounded_array, is_bounded_array_v, is_unbounded_array_v):
667 Define.
668 * testsuite/20_util/is_bounded_array/requirements/
669 explicit_instantiation.cc: New test.
670 * testsuite/20_util/is_bounded_array/requirements/typedefs.cc: New
671 test.
672 * testsuite/20_util/is_bounded_array/value.cc: New test.
673 * testsuite/20_util/is_unbounded_array/requirements/
674 explicit_instantiation.cc: New test.
675 * testsuite/20_util/is_unbounded_array/requirements/typedefs.cc: New
676 * test.
677 * testsuite/20_util/is_unbounded_array/value.cc: New test.
678
13825fb2 679 * include/bits/ptr_traits.h [C++20] (pointer_traits<T*>::pointer_to):
680 Add constexpr.
681 * testsuite/20_util/pointer_traits/pointer_to_constexpr.cc: New test.
682
2e73e63a 6832019-03-05 Jonathan Wakely <jwakely@redhat.com>
684
685 * include/c_compatibility/math.h [C++20] (lerp): Add using
686 declaration.
687 * include/c_global/cmath [C++20] (__cpp_lib_interpolate): Define.
688 (__lerp): Define function template to implement lerp.
689 (lerp(float, float, float), lerp(double, double, double))
690 (lerp(long double, long double, long double)): Define for C++20.
691 * include/std/numeric [C++20] (__cpp_lib_interpolate): Define.
692 (midpoint(T, T), midpoint(T*, T*)): Define.
693 * include/std::version [C++20] (__cpp_lib_interpolate): Define.
694 * testsuite/26_numerics/lerp.cc: New test.
695 * testsuite/26_numerics/midpoint/floating.cc: New test.
696 * testsuite/26_numerics/midpoint/integral.cc: New test.
697 * testsuite/26_numerics/midpoint/pointer.cc: New test.
698
08d3ce5b 6992019-03-04 Edward Smith-Rowland <3dw4rd@verizon.net>
700
701 PR libstdc++/88996 Implement P0439R0
702 Make std::memory_order a scoped enumeration.
703 * include/bits/atomic_base.h: For C++20 make memory_order a scoped enum,
704 add variables for the old enumerators. Adjust calls.
705 * testsuite/29_atomics/headers/atomic/types_std_c++2a.cc: New test.
706 * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc: New test.
707
ad29ad75 7082019-03-04 Jonathan Wakely <jwakely@redhat.com>
709
4233f2a8 710 * testsuite/26_numerics/bit/bitops.rot/rotl.cc: Remove bogus dg-do
711 directive.
712
ad29ad75 713 * include/std/memory_resource (polymorphic_allocator): Add default
714 template argument for C++20.
715 (polymorphic_allocator::allocate_bytes)
716 (polymorphic_allocator::deallocate_bytes)
717 (polymorphic_allocator::allocate_object)
718 (polymorphic_allocator::deallocate_object)
719 (polymorphic_allocator::new_object)
720 (polymorphic_allocator::delete_object): New member functions for
721 C++20.
722 * testsuite/20_util/polymorphic_allocator/allocate_object.cc: New
723 test.
724
d4c27c4a 7252019-03-03 Jonathan Wakely <jwakely@redhat.com>
726
727 PR libstdc++/89562
728 * src/filesystem/ops-common.h (do_copy_file): Open files in binary
729 mode for mingw.
730
6a9c77f1 7312019-03-01 Jonathan Wakely <jwakely@redhat.com>
732
5b313df9 733 * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource)
734 [!__cpp_sized_deallocation]: Do not pass size to operator delete.
735
6a9c77f1 736 * include/std/memory (uses_allocator_construction_args): New set of
737 overloaded functions.
738 (make_obj_using_allocator, uninitialized_construct_using_allocator):
739 New functions.
740 * include/std/memory_resource (polymorphic_allocator::construct)
741 [__cplusplus > 201703l]: Replace all overloads with a single function
742 using uses_allocator_construction_args.
743 * testsuite/20_util/polymorphic_allocator/construct_c++2a.cc: New
744 test.
745 * testsuite/20_util/uses_allocator/make_obj.cc: New test.
746
53ea0887 7472019-02-27 Jonathan Wakely <jwakely@redhat.com>
748
749 PR libstdc++/89466
750 * acinclude.m4 (GLIBCXX_CONFIGURE_DOCBOOK): Reorder check for local
751 stylesheet directories before check for xsltproc. Try to use
752 xmlcatalog to find local stylesheet directory before trying hardcoded
753 paths. Add path used by suse to hardcoded paths. Adjust xsltproc
754 check to look for the same stylesheet as doc/Makefile.am uses. Don't
755 use xsltproc if xmlcatalog fails to find a local stylesheet.
756 * configure.ac: Check for xmlcatalog.
757 * Makefile.in: Regenerate.
758 * configure: Likewise.
759 * doc/Makefile.in: Likewise.
760 * include/Makefile.in: Likewise.
761 * libsupc++/Makefile.in: Likewise.
762 * po/Makefile.in: Likewise.
763 * python/Makefile.in: Likewise.
764 * src/Makefile.in: Likewise.
765 * src/c++11/Makefile.in: Likewise.
766 * src/c++17/Makefile.in: Likewise.
767 * src/c++98/Makefile.in: Likewise.
768 * src/filesystem/Makefile.in: Likewise.
769 * testsuite/Makefile.in: Likewise.
770
72ebb7e8 7712019-02-26 Jonathan Wakely <jwakely@redhat.com>
772
a7f2f1b1 773 PR libstdc++/89477
774 * include/bits/alloc_traits.h (_RequireNotAllocator): New helper for
775 container deduction guides.
776 * include/bits/hashtable.h (_RequireNotAllocatorOrIntegral): Likewise.
777 * include/bits/stl_map.h (map): Use _RequireNotAllocator to constrain
778 parameters in deduction guides.
779 * include/bits/stl_multimap.h (multimap): Likewise.
780 * include/bits/stl_multiset.h (multiset): Likewise.
781 * include/bits/stl_queue.h (queue, priority_queue): Likewise.
782 * include/bits/stl_set.h (set): Likewise.
783 * include/bits/stl_stack.h (stack): Likewise.
784 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
785 use _RequireNotAllocator and _RequireNotAllocatorOrIntegral to
786 constrain parameters in deduction guides.
787 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
788 Likewise.
789 * testsuite/23_containers/map/cons/deduction.cc: Test additional
790 deduction cases.
791 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
792 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
793 * testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
794 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
795 Likewise.
796 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
797 Likewise.
798 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
799
72ebb7e8 800 PR libstdc++/89416
801 * include/bits/alloc_traits.h (__is_alloc_insertable_impl): Change
802 to class template and partial specialization using void_t.
803 (__is_copy_insertable, __is_move_insertable): Adjust base class.
804
c9f61a64 8052019-02-24 Jonathan Wakely <jwakely@redhat.com>
806
807 PR libstdc++/89416
808 * include/bits/alloc_traits.h (__is_alloc_insertable_impl): Make
809 copy and move members public.
810
61e2d6f7 8112019-02-23 Jonathan Wakely <jwakely@redhat.com>
812
87798f3f 813 * include/std/type_traits (__underlying_type_impl): New helper to
814 make underlying_type SFINAE-friendly.
815 (underlying_type): Derive from __underlying_type_impl.
816 * testsuite/20_util/underlying_type/requirements/typedefs-3.cc: New
817 test.
818
61e2d6f7 819 PR libstdc++/89446
820 * include/bits/char_traits.h (__constant_char_array): Check index is
821 in range before dereferencing.
822 (char_traits<char>::compare, char_traits<char>::find)
823 (char_traits<char8_t>::compare, char_traits<char8_t>::find): Return
824 immediately if n is zero.
825 (char_traits<wchar_t>::compare, char_traits<wchar_t>::find): Likewise.
826 Remove workarounds for PR 67026.
827 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
828 New test.
829 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
830 New test.
831
90a443b3 8322019-02-22 Eric Botcazou <ebotcazou@adacore.com>
833
834 * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Adjust.
835 * config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise.
836
98485ce3 8372019-02-22 Jakub Jelinek <jakub@redhat.com>
838
839 PR libstdc++/89402
840 * src/c++98/compatibility-ldbl.cc (_ZNKSt4hashIeEclEe): Change return
841 type to std::size_t and argument to type to long double.
842
26b4fc38 8432019-02-22 Eric Botcazou <ebotcazou@adacore.com>
844
845 * configure.host (abi_baseline_pair): Adjust for SPARC64/Linux.
846 * config/abi/post/sparc64-linux-gnu: New directory.
847 * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: New file.
848 * config/abi/post/sparc64-linux-gnu/32: New directory.
849 * config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: New file.
850
4f847a8e 8512019-02-21 Jonathan Wakely <jwakely@redhat.com>
852
853 * testsuite/29_atomics/headers/atomic/types_std_c++20.cc: New test.
854 * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc: New
855 test.
856
aad651b3 8572019-02-22 Tom Honermann <tom@honermann.net>
858
859 * python/libstdcxx/v6/printers.py (register_type_printers): Add type
860 printers for u8string and u8string_view.
861
c783b3cc 8622019-02-22 Tom Honermann <tom@honermann.net>
863
864 * testsuite/18_support/byte/ops.cc: Validate
865 std::to_integer<char8_t>, std::to_integer<char16_t>, and
866 std::to_integer<char32_t>.
867 * testsuite/18_support/numeric_limits/dr559.cc: Validate
868 std::numeric_limits<char8_t>.
869 * testsuite/18_support/numeric_limits/lowest.cc: Validate
870 std::numeric_limits<char8_t>::lowest().
871 * testsuite/18_support/numeric_limits/max_digits10.cc: Validate
872 std::numeric_limits<char8_t>::max_digits10.
873 * testsuite/18_support/type_info/fundamental.cc: Validate
874 typeinfo for char8_t.
875 * testsuite/20_util/from_chars/1_c++20_neg.cc: New test, validating
876 std::from_chars with char8_t.
877 * testsuite/20_util/hash/requirements/explicit_instantiation.cc:
878 Validate explicit instantiation of std::hash<char8_t>.
879 * testsuite/20_util/is_integral/value.cc: Validate
880 std::is_integral<char8_t>.
881 * testsuite/20_util/make_signed/requirements/typedefs-4.cc:
882 Validate std::make_signed<char8_t>.
883 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
884 Validate u8string construction from char8_t sources.
885 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Validate
886 std::pmr::u8string.
887 * testsuite/21_strings/basic_string_view/operations/compare/
888 char/70483.cc: Validate substr operations on u8string_view.
889 * testsuite/21_strings/basic_string_view/typedefs.cc: Validate that
890 the u8string_view typedef is defined.
891 * testsuite/21_strings/char_traits/requirements/
892 constexpr_functions.cc: Validate char_traits<char8_t> constexpr
893 member functions.
894 * testsuite/21_strings/char_traits/requirements/
895 constexpr_functions_c++17.cc: Validate char_traits<char8_t> C++17
896 constexpr member functions.
897 * testsuite/21_strings/headers/string/types_std_c++0x.cc: Validate
898 that the u8string typedef is defined.
899 * testsuite/22_locale/locale/cons/unicode.cc: Validate the presence
900 of the std::codecvt<char16_t, char8_t, std::mbstate_t> and
901 std::codecvt<char32_t, char8_t, std::mbstate_t> facets.
902 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Update line
903 numbers.
904 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
905 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
906 Likewise.
907 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
908 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
909 Validate std::atomic<char8_t>::is_always_lock_free
910 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
911 Update line numbers.
912 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
913 Likewise.
914 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
915 Likewise.
916 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
917 Validate std::experimental::pmr::u8string.
918 * testsuite/experimental/string_view/typedefs.cc: Validate that the
919 u8string_view typedef is defined.
920 * testsuite/util/testsuite_common_types.h: Add char8_t, char16_t and
921 char32_t to the typelists.
922
ef96a935 9232019-02-22 Tom Honermann <tom@honermann.net>
924
925 * include/ext/typelist.h: Constrain a partial specialization of
926 typelist::detail::append_ to only match chain<T1,T2>.
927
d373b606 9282019-02-21 Jonathan Wakely <jwakely@redhat.com>
929
930 PR libstdc++/89416
931 * include/bits/alloc_traits.h (__is_alloc_insertable_impl): Replace
932 class template with class. Replace move and copy member types with
933 member alias templates, so they are only instantiated when needed.
934 (__is_copy_insertable, __is_move_insertable): Adjust base class.
935 * testsuite/23_containers/vector/modifiers/push_back/89130.cc: Enable
936 test for C++11/14/17 as well.
937 * testsuite/23_containers/vector/modifiers/push_back/89416.cc: New
938 test.
939
25395ee8 9402019-02-20 Jakub Jelinek <jakub@redhat.com>
941
942 PR libstdc++/89402
943 * src/c++98/compatibility-ldbl.cc (_ZNKSt4hashIeEclEe): Add
944 _GLIBCXX_PURE to the alias declaration.
945
affcb65b 9462019-02-19 Jonathan Wakely <jwakely@redhat.com>
947
948 * testsuite/21_strings/basic_string/literals/types.cc
949 [_GLIBCXX_USE_CHAR8_T]: Adjust expected string type for u8 literal.
950 * testsuite/21_strings/basic_string/literals/values.cc
951 [_GLIBCXX_USE_CHAR8_T]: Likewise.
952 * testsuite/22_locale/codecvt/char16_t.cc: Adjust for u8 literals
953 potentially having different type.
954 * testsuite/22_locale/codecvt/char32_t.cc: Likewise.
955 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: Cast u8 literal
956 to char.
957 * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: Likewise.
958 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
959 * testsuite/22_locale/conversions/string/2.cc: Remove u8 prefix from
960 string literals only using basic character set.
961 * testsuite/22_locale/conversions/string/3.cc: Likewise. Cast other
962 u8 literals to char.
963 * testsuite/29_atomics/headers/atomic/macros.cc [_GLIBCXX_USE_CHAR8_T]:
964 Test ATOMIC_CHAR8_T_LOCK_FREE.
965 Add missing #error to ATOMIC_CHAR16_T_LOCK_FREE test.
966 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc
967 [_GLIBCXX_USE_CHAR8_T]: Check for std::atomic_char8_t.
968 * testsuite/experimental/string_view/literals/types.cc
969 [_GLIBCXX_USE_CHAR8_T]: Adjust expected string_view type for u8
970 literal.
971 * testsuite/experimental/string_view/literals/values.cc
972 [_GLIBCXX_USE_CHAR8_T]: Likewise.
973
4acc5060 9742019-02-19 Tom Honermann <tom@honermann.net>
975
976 * testsuite/18_support/numeric_limits/char8_t.cc: New test cloned
977 from char16_32_t.cc; validates numeric_limits<char8_t>.
978 * testsuite/21_strings/basic_string/literals/types-char8_t.cc: New
979 test cloned from types.cc; validates operator""s for char8_t
980 returns u8string.
981 * testsuite/21_strings/basic_string/literals/values-char8_t.cc: New
982 test cloned from values.cc; validates construction and comparison
983 of u8string values.
984 * testsuite/21_strings/basic_string/requirements/
985 /explicit_instantiation/char8_t/1.cc: New test cloned from
986 char16_t/1.cc; validates explicit instantiation of
987 basic_string<char8_t>.
988 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
989 New test cloned from types.cc; validates operator""sv for char8_t
990 returns u8string_view.
991 * testsuite/21_strings/basic_string_view/literals/
992 values-char8_t.cc: New test cloned from values.cc; validates
993 construction and comparison of u8string_view values.
994 * testsuite/21_strings/basic_string_view/requirements/
995 explicit_instantiation/char8_t/1.cc: New test cloned from
996 char16_t/1.cc; validates explicit instantiation of
997 basic_string_view<char8_t>.
998 * testsuite/21_strings/char_traits/requirements/char8_t/65049.cc:
999 New test cloned from char16_t/65049.cc; validates that
1000 char_traits<char8_t> is not vulnerable to the concerns in PR65049.
1001 * testsuite/21_strings/char_traits/requirements/char8_t/
1002 typedefs.cc: New test cloned from char16_t/typedefs.cc; validates
1003 that char_traits<char8_t> member typedefs are present and correct.
1004 * testsuite/21_strings/char_traits/requirements/
1005 explicit_instantiation/char8_t/1.cc: New test cloned from
1006 char16_t/1.cc; validates explicit instantiation of
1007 char_traits<char8_t>.
1008 * testsuite/22_locale/codecvt/char16_t-char8_t.cc: New test cloned
1009 from char16_t.cc: validates
1010 codecvt<char16_t, char8_t, mbstate_t>.
1011 * testsuite/22_locale/codecvt/char32_t-char8_t.cc: New test cloned
1012 from char32_t.cc: validates
1013 codecvt<char32_t, char8_t, mbstate_t>.
1014 * testsuite/22_locale/codecvt/utf8-char8_t.cc: New test cloned from
1015 utf8.cc; validates codecvt<char16_t, char8_t, std::mbstate_t> and
1016 codecvt<char32_t, char8_t, std::mbstate_t>.
1017 * testsuite/27_io/filesystem/path/native/string-char8_t.cc: New
1018 test cloned from string.cc; validates filesystem::path construction
1019 from char8_t input.
1020 * testsuite/experimental/feat-char8_t.cc: New test; validates that
1021 the __cpp_lib_char8_t feature test macro is defined with the
1022 correct value.
1023 * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
1024 New test cloned from string.cc; validates filesystem::path
1025 construction from char8_t input.
1026 * testsuite/experimental/string_view/literals/types-char8_t.cc: New
1027 test cloned from types.cc; validates operator""sv for char8_t
1028 returns u8string_view.
1029 * testsuite/experimental/string_view/literals/values-char8_t.cc:
1030 New test cloned from values.cc; validates construction and
1031 comparison of u8string_view values.
1032 * testsuite/experimental/string_view/requirements/
1033 explicit_instantiation/char8_t/1.cc: New test cloned from
1034 char16_t/1.cc; validates explicit instantiation of
1035 basic_string_view<char8_t>.
1036 * testsuite/ext/char8_t/atomic-1.cc: New test; validates that
1037 ATOMIC_CHAR8_T_LOCK_FREE is not defined if char8_t support is not
1038 enabled.
1039
25694c85 10402019-02-19 Tom Honermann <tom@honermann.net>
1041
1042 P0482R5 char8_t: Standard library support
1043 * config/abi/pre/gnu-versioned-namespace.ver (CXXABI_2.0): Add
1044 typeinfo symbols for char8_t.
1045 * config/abi/pre/gnu.ver: Add CXXABI_1.3.12.
1046 (GLIBCXX_3.4.26): Add symbols for specializations of
1047 numeric_limits and codecvt that involve char8_t.
1048 (CXXABI_1.3.12): Add typeinfo symbols for char8_t.
1049 * include/bits/atomic_base.h: Add atomic_char8_t.
1050 * include/bits/basic_string.h: Add std::hash<u8string> and
1051 operator""s(const char8_t*, size_t).
1052 * include/bits/c++config: Define _GLIBCXX_USE_CHAR8_T and
1053 __cpp_lib_char8_t.
1054 * include/bits/char_traits.h: Add char_traits<char8_t>.
1055 * include/bits/codecvt.h: Add
1056 codecvt<char16_t, char8_t, mbstate_t>,
1057 codecvt<char32_t, char8_t, mbstate_t>,
1058 codecvt_byname<char16_t, char8_t, mbstate_t>, and
1059 codecvt_byname<char32_t, char8_t, mbstate_t>.
1060 * include/bits/cpp_type_traits.h: Add __is_integer<char8_t> to
1061 recognize char8_t as an integral type.
1062 * include/bits/fs_path.h: (path::__is_encoded_char): Recognize
1063 char8_t.
1064 (path::u8string): Return std::u8string when char8_t support is
1065 enabled.
1066 (path::generic_u8string): Likewise.
1067 (path::_S_convert): Handle conversion from char8_t input.
1068 (path::_S_str_convert): Likewise.
1069 * include/bits/functional_hash.h: Add hash<char8_t>.
1070 * include/bits/locale_conv.h (__str_codecvt_out): Add overloads for
1071 char8_t.
1072 * include/bits/locale_facets.h (_GLIBCXX_NUM_UNICODE_FACETS): Bump
1073 for new char8_t specializations.
1074 * include/bits/localefwd.h: Add missing declarations of
1075 codecvt<char16_t, char, mbstate_t> and
1076 codecvt<char32_t, char, mbstate_t>. Add char8_t declarations
1077 codecvt<char16_t, char8_t, mbstate_t> and
1078 codecvt<char32_t, char8_t, mbstate_t>.
1079 * include/bits/postypes.h: Add u8streampos
1080 * include/bits/stringfwd.h: Add declarations of
1081 char_traits<char8_t> and u8string.
1082 * include/c_global/cstddef: Add __byte_operand<char8_t>.
1083 * include/experimental/bits/fs_path.h (path::__is_encoded_char):
1084 Recognize char8_t.
1085 (path::u8string): Return std::u8string when char8_t support is
1086 enabled.
1087 (path::generic_u8string): Likewise.
1088 (path::_S_convert): Handle conversion from char8_t input.
1089 (path::_S_str_convert): Likewise.
1090 * include/experimental/string: Add u8string.
1091 * include/experimental/string_view: Add u8string_view,
1092 hash<experimental::u8string_view>, and
1093 operator""sv(const char8_t*, size_t).
1094 * include/std/atomic: Add atomic<char8_t> and atomic_char8_t.
1095 * include/std/charconv (__is_int_to_chars_type): Recognize char8_t
1096 as a character type.
1097 * include/std/limits: Add numeric_limits<char8_t>.
1098 * include/std/string_view: Add u8string_view,
1099 hash<experimental::u8string_view>, and
1100 operator""sv(const char8_t*, size_t).
1101 * include/std/type_traits: Add __is_integral_helper<char8_t>,
1102 __make_unsigned<char8_t>, and __make_signed<char8_t>.
1103 * libsupc++/atomic_lockfree_defines.h: Define
1104 ATOMIC_CHAR8_T_LOCK_FREE.
1105 * src/c++11/Makefile.am: Compile with -fchar8_t when compiling
1106 codecvt.cc and limits.cc so that char8_t specializations of
1107 numeric_limits and codecvt and emitted.
1108 * src/c++11/Makefile.in: Likewise.
1109 * src/c++11/codecvt.cc: Define members of
1110 codecvt<char16_t, char8_t, mbstate_t>,
1111 codecvt<char32_t, char8_t, mbstate_t>,
1112 codecvt_byname<char16_t, char8_t, mbstate_t>, and
1113 codecvt_byname<char32_t, char8_t, mbstate_t>.
1114 * src/c++11/limits.cc: Define members of
1115 numeric_limits<char8_t>.
1116 * src/c++98/Makefile.am: Compile with -fchar8_t when compiling
1117 locale_init.cc and localename.cc.
1118 * src/c++98/Makefile.in: Likewise.
1119 * src/c++98/locale_init.cc: Add initialization for the
1120 codecvt<char16_t, char8_t, mbstate_t> and
1121 codecvt<char32_t, char8_t, mbstate_t> facets.
1122 * src/c++98/localename.cc: Likewise.
1123 * testsuite/util/testsuite_abi.cc: Validate ABI bump.
1124
140615bb 11252019-02-18 Wilco Dijkstra <wdijkstr@arm.com>
1126
1127 * 27_io/filesystem/operations/all.cc: Add dg-require-filesystem-ts.
1128 * 27_io/filesystem/operations/resize_file.cc: Likewise.
1129 * 27_io/filesystem/path/generation/normal2.cc: Likewise.
1130
c677a9d7 11312019-02-14 Jonathan Wakely <jwakely@redhat.com>
1132
1bbfe9f8 1133 * doc/xml/manual/status_cxx2020.xml: Update P0887R1 status.
1134 * doc/html/*: Regenerate.
1135
b24f00b1 1136 * doc/xml/manual/status_cxx2017.xml: Add P0063R3 to status table.
1137 * doc/html/*: Regenerate.
1138
a3d1baa9 1139 * doc/xml/manual/intro.xml: Document LWG 2586 status.
1140 * include/bits/uses_allocator.h (__uses_alloc): Use const lvalue
1141 allocator type in is_constructible checks.
1142 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
1143 * testsuite/20_util/scoped_allocator/dr2586.cc: New test.
1144 * testsuite/20_util/tuple/cons/allocators.cc: Add test using
1145 problematic type from LWG 2586 discussion.
1146 * testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error.
1147 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
1148
99d130bf 1149 * configure.ac: Check for C11 timespec_get function.
1150 * crossconfig.m4 (freebsd, linux, gnu, cygwin, solaris, netbsd)
1151 (openbsd): Likewise
1152 * config.h.in: Regenerate.
1153 * configure: Regenerate.
1154 * include/c_global/ctime (timespec, timespec_get): Add to namespace
1155 std for C++17 and up.
1156
48772ec3 1157 * doc/xml/manual/intro.xml: Document LWG 2537 status.
1158 * include/bits/stl_queue.h
1159 (priority_queue(const Compare&, const Container&, const Alloc&))
1160 (priority_queue(const Compare&, Container&&, const Alloc&)): Call
1161 make_heap.
1162 * testsuite/23_containers/priority_queue/dr2537.cc: New test.
1163
ee32dd64 1164 * doc/xml/manual/intro.xml: Document LWG 2566 status.
1165 * include/bits/stl_queue.h (queue, priority_queue): Add static
1166 assertions to enforce LWG 2566 requirement on value_type.
1167 * include/bits/stl_stack.h (stack): Likewise.
1168
9724de38 1169 PR middle-end/89303
1170 * testsuite/20_util/enable_shared_from_this/89303.cc: New test.
1171
c677a9d7 1172 * doc/xml/manual/intro.xml: Document LWG 2735 status.
1173 * include/bits/std_abs.h: Add comment about LWG 2735.
1174 * testsuite/26_numerics/headers/cstdlib/dr2735.cc: New test.
1175
4194f872 11762019-02-13 Jonathan Wakely <jwakely@redhat.com>
1177
1178 PR libstdc++/89345
1179 * include/std/version [__cpp_impl_destroying_delete]
1180 (__cpp_lib_destroying_delete): Only define for C++2a and later.
1181 * libsupc++/new [__cpp_impl_destroying_delete]
1182 (__cpp_lib_destroying_delete): Likewise.
1183 (destroying_delete_t, destroying_delete): Likewise, but define even
1184 when __cpp_impl_destroying_delete is not defined.
1185 * testsuite/18_support/destroying_delete.cc: New test.
1186
aaacaee2 11872019-02-11 Jonathan Wakely <jwakely@redhat.com>
1188
1189 PR libstdc++/89023
1190 * testsuite/17_intro/headers/c++2011/parallel_mode.cc: New test.
1191 * testsuite/17_intro/headers/c++2014/parallel_mode.cc: New test.
1192 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: New test.
1193 * testsuite/28_regex/headers/regex/parallel_mode.cc: Remove.
1194
5256b0dd 11952019-02-09 Jonathan Wakely <jwakely@redhat.com>
1196
1197 PR libstdc++/71044
1198 * include/bits/fs_path.h (path::has_root_name)
1199 (path::has_root_directory, path::has_root_path)
1200 (path::has_relative_path, path::has_parent_path)
1201 (path::has_filename, path::has_stem, path::has_extension)
1202 (path::is_absolute, path::is_relative, path::_M_find_extension): Add
1203 noexcept.
1204 * src/c++17/fs_path.cc (path::has_root_name)
1205 (path::has_root_directory, path::has_root_path)
1206 (path::has_relative_path, path::has_parent_path)
1207 (path::has_filename, path::_M_find_extension): Add noexcept.
1208
e32f625e 12092019-02-06 Jonathan Wakely <jwakely@redhat.com>
1210
1211 PR libstdc++/89102 (partial)
1212 * include/std/type_traits (common_type<>): Define.
1213 (common_type<T>): Derive from common_type<T, T>.
1214 * testsuite/20_util/common_type/requirements/explicit_instantiation.cc:
1215 Test zero-length template argument list.
1216 * testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc:
1217 Test additional single argument cases.
1218 * testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc:
1219 Adjust expected error.
1220
b03489db 12212019-02-05 Jonathan Wakely <jwakely@redhat.com>
1222
e89e4fec 1223 PR libstdc++/89128
1224 * include/bits/stl_queue.h (queue, priority_queue): Add deduction
1225 guides.
1226 * include/bits/stl_stack.h (stack): Likewise.
1227 * testsuite/23_containers/priority_queue/deduction.cc: New test.
1228 * testsuite/23_containers/queue/deduction.cc: New test.
1229 * testsuite/23_containers/stack/deduction.cc: New test.
1230
b640dd11 1231 PR libstdc++/89194
1232 * include/std/type_traits (__is_convertible_helper)
1233 (__is_convertible_helper<_From, _To, false>): Revert changes to
1234 support is_nothrow_convertible.
1235 (__is_nt_convertible_helper): New helper.
1236 (is_nothrow_convertible): Use __is_nt_convertible_helper.
1237
74c88c5f 1238 * testsuite/23_containers/vector/modifiers/push_back/49836.cc: Restore
1239 use of CopyConsOnlyType, but also test DelAnyAssign for completeness.
1240
eca5e8d4 1241 PR libstdc++/89130
1242 * include/bits/alloc_traits.h (__is_copy_insertable_impl): Rename to
1243 __is_alloc_insertable_impl. Replace single type member with two
1244 members, one for each of copy and move insertable.
1245 (__is_move_insertable): New trait for internal use.
1246 * include/bits/stl_vector.h (vector::_S_nothrow_relocate(true_type))
1247 (vector::_S_nothrow_relocate(true_type)): New functions to
1248 conditionally check if __relocate_a can throw.
1249 (vector::_S_use_relocate()): Dispatch to _S_nothrow_relocate based
1250 on __is_move_insertable.
1251 (vector::_S_do_relocate): New overloaded functions to conditionally
1252 call __relocate_a.
1253 (vector::_S_relocate): New function that dispatches to _S_do_relocate
1254 based on _S_use_relocate.
1255 * include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
1256 (vector::_M_default_append): Call _S_relocate instead of __relocate_a.
1257 * testsuite/23_containers/vector/modifiers/push_back/89130.cc: New.
1258
b03489db 1259 PR libstdc++/89090
1260 * include/bits/stl_uninitialized.h (__relocate_a_1): Make unused
1261 parameter unnamed. Add message to static assertion.
1262 * include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
1263 (vector::_M_default_append): Use _GLIBCXX17_CONSTEXPR for if constexpr
1264 in C++11 code.
1265
71625a15 12662019-02-05 Marc Glisse <marc.glisse@inria.fr>
1267
1268 PR libstdc++/87106
1269 * include/bits/stl_uninitialized.h (__is_trivially_relocatable):
1270 Rename...
1271 (__is_bitwise_relocatable): ... to this.
1272 (__relocate_a_1): Adapt.
1273 * include/bits/stl_deque.h (__is_trivially_relocatable): Rename...
1274 (__is_bitwise_relocatable): ... to this.
1275
e7b22e58 12762019-01-30 Jonathan Wakely <jwakely@redhat.com>
1277
1278 PR libstdc++/89117
1279 * src/c++17/fs_path.cc (path::replace_extension): Erase extension from
1280 final component as well as from _M_pathname. Append the dot using
1281 operator+= instead of only to _M_pathname.
1282 (path::_M_find_extension): Reformat slightly.
1283 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
1284 Add more test cases.
1285
dae923a7 12862019-01-30 Ulrich Drepper <drepper@redhat.com>
1287
1288 * doc/xml/manual/status_cxx2020.xml: Update P0600 entry.
1289
710397ad 12902019-01-29 Jonathan Wakely <jwakely@redhat.com>
1291
5efc4356 1292 * testsuite/26_numerics/headers/complex/synopsis.cc: Remove incorrect
1293 constexpr specifiers from arg and proj.
1294
5f15e718 1295 * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Add missing exports for
1296 __shared_ptr instantiations used by gcc4-compatible ABI.
1297
307e86fc 1298 * include/experimental/forward_list (experimental::erase): Qualify
1299 call to erase_if.
1300 * include/experimental/list (experimental::erase): Likewise.
1301 * include/std/forward_list (std::erase): Likewise.
1302 * include/std/list (std::erase): Likewise.
1303
38129d1a 1304 * testsuite/20_util/reference_wrapper/result_type.cc: Disable for
1305 C++2a.
1306 * testsuite/20_util/reference_wrapper/typedefs-2.cc: Likewise.
1307 * testsuite/20_util/reference_wrapper/typedefs-3.cc: Likewise.
1308 * testsuite/20_util/reference_wrapper/typedefs.cc: Likewise.
1309 * testsuite/30_threads/async/54297.cc: Suppress nodiscard warning.
1310 * testsuite/ext/array_allocator/26875.cc: Likewise.
1311 * testsuite/ext/pool_allocator/allocate_chunk.cc: Likewise.
1312 * testsuite/util/replacement_memory_operators.h: Likewise.
1313 * testsuite/util/testsuite_allocator.h: Likewise.
1314
710397ad 1315 * include/std/memory_resource (__pool_resource::_M_unpooled): Use
1316 normal mode vector, even for debug mode.
1317 * include/std/vector [_GLIBCXX_DEBUG] (_GLIBCXX_STD_C::pmr::vector):
1318 Define alias template for normal mode vector.
1319
70f71249 13202019-01-28 Jonathan Wakely <jwakely@redhat.com>
1321
1322 PR libstdc++/68737
1323 * config/locale/generic/c_locale.h (__convert_from_v)
1324 [_GLIBCXX_USE_C99_STDIO]: Also check _GLIBCXX_HAVE_BROKEN_VSNPRINTF.
1325 * config/os/hpux/os_defines.h: Define _GLIBCXX_HAVE_BROKEN_VSNPRINTF.
1326 * include/bits/locale_facets.tcc (num_put::_M_insert_float)
1327 [_GLIBCXX_USE_C99_STDIO]: Also check _GLIBCXX_HAVE_BROKEN_VSNPRINTF.
1328
f1074115 13292019-01-24 Jonathan Wakely <jwakely@redhat.com>
1330
4bc4fd90 1331 PR libstdc++/88840
1332 * include/bits/stl_vector.h (vector::__use_relocate): Replace static
1333 data member with static member function _S_use_relocate().
1334 * include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
1335 (vector::_M_default_append): Use _S_use_relocate() instead of
1336 __use_relocate.
1337
f1074115 1338 * testsuite/27_io/filesystem/path/compare/strings.cc: Only compare
1339 sign of results.
1340
1c4657a3 13412019-01-22 Jonathan Wakely <jwakely@redhat.com>
1342
1343 PR libstdc++/88740
1344 * testsuite/util/testsuite_hooks.h [stderr] (VERIFY): Use fprintf to
1345 write to stderr instead of using printf.
1346
dafe8c59 13472019-01-21 Jakub Jelinek <jakub@redhat.com>
1348
1349 PR libstdc++/86590
1350 * include/bits/char_traits.h (__constant_string_p,
1351 __constant_char_array_p): Use __builtin_is_constant_evaluated if
1352 available.
1353
eaf966f3 13542019-01-20 Ulrich Drepper <drepper@redhat.com>
1355
1356 Implement C++20 P0600r1.
1357 * include/backward/hash_map: Add nodiscard attribute to empty.
1358 * include/backward/hash_set: Likewise.
1359 * backward/hashtable.h: Likewise.
1360 * include/bits/basic_string.h: Likewise.
1361 * include/bits/forward_list.h: Likewise.
1362 * include/bits/hashtable.h: Likewise.
1363 * include/bits/regex.h: Likewise.
1364 * include/bits/stl_deque.h: Likewise.
1365 * include/bits/stl_list.h: Likewise.
1366 * include/bits/stl_map.h: Likewise.
1367 * include/bits/stl_multimap.h: Likewise.
1368 * include/bits/stl_multiset.h: Likewise.
1369 * include/bits/stl_queue.h: Likewise.
1370 * include/bits/stl_set.h: Likewise.
1371 * include/bits/stl_stack.h: Likewise.
1372 * include/bits/stl_tree.h: Likewise.
1373 * include/bits/stl_vector.h: Likewise.
1374 * include/bits/unordered_map.h: Likewise.
1375 * include/bits/unordered_set.h: Likewise.
1376 * include/debug/array: Likewise.
1377 * include/experimental/any: Likewise.
1378 * include/experimental/bits/fs_path.h: Likewise.
1379 * include/experimental/internet: Likewise.
1380 * include/experimental/string_view: Likewise.
1381 * include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp:
1382 Likewise.
1383 * include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp:
1384 Likewise.
1385 * include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp:
1386 Likewise.
1387 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp:
1388 Likewise.
1389 * include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp:
1390 Likewise.
1391 * include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp:
1392 Likewise.
1393 * include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp:
1394 Likewise.
1395 * include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp:
1396 Likewise.
1397 * include/ext/pb_ds/detail/left_child_next_sibling_heap_/
1398 info_fn_imps.hpp: Likewise.
1399 * include/ext/pb_ds/detail/left_child_next_sibling_heap_/
1400 left_child_next_sibling_heap_.hpp: Likewise.
1401 * include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp:
1402 Likewise.
1403 * include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp:
1404 Likewise.
1405 * include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp:
1406 Likewise.
1407 * include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hp:
1408 Likewise.
1409 * include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp:
1410 Likewise.
1411 * include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp:
1412 Likewise.
1413 * include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp:
1414 Likewise.
1415 * include/ext/pb_ds/detail/tree_trace_base.hpp: Likewise.
1416 * include/ext/pb_ds/trie_policy.hpp: Likewise.
1417 * include/ext/rope: Likewise.
1418 * include/ext/slist: Likewise.
1419 * include/ext/vstring.h: Likewise.
1420 * include/profile/array: Likewise.
1421 * include/std/array: Likewise.
1422 * include/tr1/array: Likewise.
1423 * include/tr1/hashtable.h: Likewise.
1424 * include/tr1/regex: Likewise.
1425 * include/tr2/dynamic_bitset: Likewise.
1426 * include/bits/alloc_traits.h: Add nodiscard attribute to
1427 allocate.
1428 * include/experimental/memory_resource: Likewise.
1429 * include/ext/alloc_traits.h: Likewise.
1430 * include/ext/array_allocator.h: Likewise.
1431 * include/ext/bitmap_allocator.h: Likewise.
1432 * include/ext/debug_allocator.h: Likewise.
1433 * include/ext/extptr_allocator.h: Likewise.
1434 * include/ext/mt_allocator.h: Likewise.
1435 * include/ext/new_allocator.h: Likewise.
1436 * include/ext/pool_allocator.h: Likewise.
1437 * include/ext/throw_allocator.h: Likewise.
1438 * include/std/scoped_allocator: Likewise.
1439 * libsupc++/eh_alloc.cc: Likewise.
1440 * include/std/future: Add nodiscard attribute to async.
1441 * libsupc++/new: Add nodiscard attribute to new.
1442
3c1c2a8c 14432019-01-18 Jonathan Wakely <jwakely@redhat.com>
1444
1445 PR libstdc++/87514
1446 PR libstdc++/87520
1447 PR libstdc++/88782
1448 * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export new symbol.
1449 * include/bits/shared_ptr.h
1450 (shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...))
1451 (allocate_shared): Change to use new tag type.
1452 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_eq):
1453 Declare new member function.
1454 (_Sp_alloc_shared_tag): Define new type.
1455 (_Sp_counted_ptr_inplace): Declare __shared_count<_Lp> as a friend.
1456 (_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Use
1457 _Sp_make_shared_tag::_S_eq to check type_info.
1458 (__shared_count(Ptr, Deleter),__shared_count(Ptr, Deleter, Alloc)):
1459 Constrain to prevent being called with _Sp_alloc_shared_tag.
1460 (__shared_count(_Sp_make_shared_tag, const _Alloc&, Args&&...)):
1461 Replace constructor with ...
1462 (__shared_count(Tp*&, _Sp_alloc_shared_tag<_Alloc>, Args&&...)): Use
1463 reference parameter so address of the new object can be returned to
1464 the caller. Obtain the allocator from the tag type.
1465 (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Replace
1466 constructor with ...
1467 (__shared_ptr(_Sp_alloc_shared_tag<Alloc>, Args&&...)): Pass _M_ptr
1468 to the __shared_count constructor.
1469 (__allocate_shared): Change to use new tag type.
1470 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq): Define.
1471
21a962b2 14722019-01-17 Jonathan Wakely <jwakely@redhat.com>
1473
464ac146 1474 * src/c++17/fs_ops.cc
1475 (equivalent(const path&, const path&, error_code&))
1476 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use GetFileInformationByHandle to
1477 compare files instead of relying on incomplete info returned by stat.
1478
2987a93d 1479 PR libstdc++/88884
1480 * src/c++17/fs_ops.cc (absolute(const path&, error_code&)): Do nothing
1481 if the path is already absolute.
1482 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Normalize root-directory.
1483 [!_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Pass error_code to current_path.
1484
21a962b2 1485 PR libstdc++/88881
1486 * src/c++17/fs_ops.cc (canonical(const path&, error_code&))
1487 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Normalize path, to match behaviour
1488 of filesystem::exists.
1489 (create_directories(const path&, error_code&)): Add assertions.
1490 (status(const path&, error_code&)) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]:
1491 Add workaround for bug in _wstat for paths with trailing slash.
1492 * testsuite/27_io/filesystem/operations/create_directories.cc: Adjust
1493 for expected behaviour on mingw.
1494 * testsuite/experimental/filesystem/operations/create_directories.cc:
1495 Likewise.
1496 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: Use
1497 "TMP" instead of "TMPDIR" and clean environment before each test. Do
1498 not test permissions on mingw targets.
1499
93478c9f 15002019-01-16 Jonathan Wakely <jwakely@redhat.com>
1501
1502 * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Add exports for fstream
1503 constructors and open members taking wide strings. Fix patterns for
1504 filesystem::path members to match wstring_view parameters. Add
1505 exports for shared_ptr members used by directory iterators.
1506 * src/c++17/fs_ops.cc (remove(const path&, error_code&)): Clear the
1507 error code parameter if the file doesn't exist.
1508 * src/filesystem/ops.cc (remove(const path&, error_code&)):
1509 Likewise.
1510 * testsuite/27_io/filesystem/operations/canonical.cc: Fix expected
1511 values for mingw targets, where "/" is not an absolute path. Do not
1512 test symlinks on mingw targets.
1513 * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
1514 * testsuite/27_io/filesystem/operations/copy.cc: Do not test symlinks
1515 on mingw targets.
1516 * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
1517 * testsuite/27_io/filesystem/operations/create_directories.cc: Check
1518 that each component of the path is created.
1519 * testsuite/experimental/filesystem/operations/create_directories.cc:
1520 Likewise.
1521 * testsuite/27_io/filesystem/operations/exists.cc: Do not test
1522 permissions on mingw targets.
1523 * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
1524 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
1525 * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
1526 * testsuite/27_io/filesystem/operations/permissions.cc: XFAIL for
1527 mingw targets.
1528 * testsuite/experimental/filesystem/operations/permissions.cc:
1529 Likewise.
1530 * testsuite/27_io/filesystem/operations/remove.cc: Do not test
1531 symlinks or permissions on mingw targets.
1532 * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
1533 * testsuite/27_io/filesystem/operations/remove_all.cc: Do not test
1534 symlinks on mingw targets.
1535 * testsuite/experimental/filesystem/operations/remove_all.cc:
1536 Likewise.
1537 * testsuite/27_io/filesystem/operations/status.cc: Do not test
1538 permissions on mingw targets.
1539 * testsuite/27_io/filesystem/operations/weakly_canonical.cc: Do not
1540 test symlinks on mingw targets.
1541 * testsuite/experimental/filesystem/operations/space.cc: Fix test
1542 for mingw targets.
1543
af93b844 15442019-02-14 Ulrich Drepper <drepper@redhat.com>
1545
1546 PR libstdc++/88738
1547 Warn about unused comparisons of shared_ptr/unique_ptr
1548 * include/bits/c++config [_GLIBCXX_NODISCARD]: Define.
1549 * include/bits/shared_ptr.h: Use it for operator ==, !=,
1550 <, <=, >, >= for shared_ptr.
1551 * include/bits/unique_ptr.h: Likewise for unique_ptr.
1552
8793c0de 15532019-01-15 Jonathan Wakely <jwakely@redhat.com>
1554
afa61572 1555 * include/bits/shared_ptr_base.h (__cpp_lib_shared_ptr_arrays): Define
1556 as 201611L, because P0497R0 changes are supported.
1557 * include/std/version (__cpp_lib_shared_ptr_arrays): Likewise.
1558
feb89906 1559 * include/bits/erase_if.h [__cplusplus > 201703L]
1560 (__cpp_lib_erase_if): Only define for C++2a.
1561 * include/std/iterator [__cplusplus >= 201402L && !_GLIBCXX_DEBUG]
1562 (__cpp_lib_null_iterators): Define.
1563 * include/std/version [__cplusplus >= 201402L && !_GLIBCXX_DEBUG]
1564 (__cpp_lib_null_iterators): Define.
1565 [__cpp_impl_destroying_delete] (__cpp_lib_destroying_delete): Define.
1566
d253bcb1 1567 * doc/xml/manual/status_cxx2017.xml: Document P0032R3 and P0307R2
1568 status.
1569 * include/bits/stl_uninitialized.h (__cpp_lib_raw_memory_algorithms):
1570 Define.
1571 * include/std/any (__cpp_lib_any): Define as 201606L, because P0032R3
1572 changes are supported.
1573 * include/std/optional (__cpp_lib_optional): Likewise.
1574 * include/std/variant (__cpp_lib_variant): Likewise.
1575 * include/std/version [!__STRICT_ANSI__]
1576 (__cpp_lib_uncaught_exceptions): Define as long integer.
1577 [__cplusplus >= 201703L] (__cpp_lib_any)
1578 (__cpp_lib_raw_memory_algorithms, __cpp_lib_uncaught_exceptions)
1579 (__cpp_lib_variant): Define for C++17.
1580 [__cplusplus >= 201703L] (__cpp_lib_optional): Update value and define
1581 as long integer.
1582 * libsupc++/exception (__cpp_lib_uncaught_exceptions): Define as long
1583 integer.
1584
8793c0de 1585 * doc/xml/manual/status_cxx2020.xml: Update P1123R0 status.
1586
a8cd4b2b 15872019-01-12 Jonathan Wakely <jwakely@redhat.com>
1588
1589 PR libstdc++/88811
1590 PR libstdc++/83306
1591 * src/filesystem/path.cc: Fix typo. If first path is empty, show []
1592 before second path.
1593 * testsuite/experimental/filesystem/filesystem_error/cons.cc: New
1594 test.
1595
a5b1332c 15962019-01-11 Jonathan Wakely <jwakely@redhat.com>
1597
656ac8b7 1598 * doc/xml/manual/intro.xml: Include new section.
1599 * doc/xml/manual/status_cxx2017.xml: Document more
1600 implementation-defined properties of the library.
1601 * doc/xml/manual/status_cxx2020.xml: Document C++2a status.
1602 * doc/html/*: Regenerate.
1603
f5480b8c 1604 * include/bits/refwrap.h [__cplusplus > 201703L]
1605 (_Refwrap_base_arg1, _Refwrap_base_arg2, _Reference_wrapper_base)
1606 (_Reference_wrapper_base_memfun): Do not define for C++2a.
1607 (reference_wrapper): Do not derive from _Reference_wrapper_base_memfun
1608 for C++2a.
1609 (reference_wrapper::operator()): Add static assertion.
1610 * testsuite/20_util/reference_wrapper/incomplete.cc: New test.
1611
36496c4d 1612 * include/std/chrono (duration_values::zero(), duration_values::min())
1613 (duration_values::max()): Add noexcept.
1614 (duration::zero(), duration::min(), duration::max()): Likewise.
1615 (time_point::zero(), time_point::min(), time_point::max()): Likewise.
1616 * testsuite/20_util/duration/requirements/noexcept.cc: New test.
1617 * testsuite/20_util/time_point/requirements/noexcept.cc: New test.
1618
a5b1332c 1619 * include/std/version (__cpp_lib_erase_if): Move to C++20 group.
1620
d9de68bc 16212019-01-11 Jakub Jelinek <jakub@redhat.com>
1622
1623 * include/std/type_traits (__cpp_lib_is_constant_evaluated): Define.
1624 * include/std/version (__cpp_lib_is_constant_evaluated): Define.
1625
beb370cb 16262019-01-11 Jonathan Wakely <jwakely@redhat.com>
1627
1d628fd4 1628 PR libstdc++/88802
1629 * include/bits/functional_hash.h (hash<nullptr_t>): Define
1630 specialization for C++17 (P0513R0, LWG 2817).
1631 * testsuite/20_util/hash/nullptr.cc: New test.
1632
a18b3766 1633 PR libstdc++/88125
1634 * config/abi/pre/gnu.ver (GLIBCXX_3.4.6): Remove unused duplicate
1635 pattern for std::basic_stringbuf::str().
1636
beb370cb 1637 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Correct recent changes to
1638 basic_ostream::operator<< patterns.
1639
cbbb35ec 16402019-01-10 Jonathan Wakely <jwakely@redhat.com>
1641
1715824b 1642 * testsuite/27_io/filesystem/operations/last_write_time.cc: Fix
1643 test failures on targets with 32-bit time_t.
1644
f5529091 1645 * include/bits/erase_if.h: Define __cpp_lib_erase_if.
1646 * include/std/deque: Likewise.
1647 * include/std/forward_list: Likewise.
1648 * include/std/list: Likewise.
1649 * include/std/string: Likewise.
1650 * include/std/vector: Likewise.
1651 * include/std/version: Likewise.
1652 * testsuite/21_strings/basic_string/erasure.cc: Test macro.
1653 * testsuite/23_containers/deque/erasure.cc: Likewise.
1654 * testsuite/23_containers/forward_list/erasure.cc: Likewise.
1655 * testsuite/23_containers/list/erasure.cc: Likewise.
1656 * testsuite/23_containers/map/erasure.cc: Likewise.
1657 * testsuite/23_containers/set/erasure.cc: Likewise.
1658 * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
1659 * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
1660 * testsuite/23_containers/vector/erasure.cc: Likewise.
1661
cbbb35ec 1662 * include/experimental/internet [AI_NUMERICSERV]
1663 (resolver_base::numeric_service): Define conditionally.
1664 * testsuite/experimental/net/internet/resolver/base.cc: Test it
1665 conditionally.
1666 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1667 Likewise.
1668
ac9a8436 16692019-01-10 Ville Voutilainen <ville.voutilainen@gmail.com>
1670 Jonathan Wakely <jwakely@redhat.com>
1671
1672 Implement LWG 2221
1673 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Tighten patterns.
1674 (GLIBCXX_3.4.26): Add new exports.
1675 * include/Makefile.am: Add ostream-inst.cc. Move string-inst.cc to
1676 correct list of sources.
1677 * include/Makefile.in: Regenerate.
1678 * include/std/ostream (operator<<(nullptr_t)): New member function.
1679 * src/c++17/ostream-inst.cc: New file.
1680 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc: New
1681 test.
1682
5f027941 16832019-01-10 Jonathan Wakely <jwakely@redhat.com>
1684
1685 * testsuite/util/testsuite_fs.h (nonexistent_path): Include name
1686 of the source file containing the caller.
1687 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Remove
1688 directories created by test.
1689 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1690 Likewise.
1691 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
1692 Likewise.
1693 * testsuite/experimental/filesystem/iterators/
1694 recursive_directory_iterator.cc: Likewise.
1695
3273d2e6 16962019-01-10 Jakub Jelinek <jakub@redhat.com>
1697
1698 PR tree-optimization/88775
1699 * include/bits/stl_function.h (greater<_Tp*>::operator(),
1700 less<_Tp*>::operator(), greater_equal<_Tp*>::operator(),
1701 less_equal<_Tp*>::operator()): Use __builtin_is_constant_evaluated
1702 instead of __builtin_constant_p if available. Don't bother with
1703 the pointer comparison in C++11 and earlier.
1704
f4d3c071 17052019-01-09 Sandra Loosemore <sandra@codesourcery.com>
1706
1707 PR other/16615
1708
1709 * include/ext/bitmap_allocator.h: Mechanically replace "can not"
1710 with "cannot".
1711
8eba10af 17122019-01-09 Jonathan Wakely <jwakely@redhat.com>
1713
6a6ade9f 1714 * testsuite/libstdc++-prettyprinters/cxx17.cc: Fix expected output
1715 for filesystem::path. Give variables more distinctive names.
1716
41cda271 1717 * include/std/optional (_Optional_payload_base::_M_copy_assign): New
1718 member function to perform non-trivial assignment.
1719 (_Optional_payload_base::_M_move_assign): Likewise.
1720 (_Optional_payload<T, true, false, true>::operator=)
1721 (_Optional_payload<T, true, true, false>::operator=)
1722 (_Optional_payload<T, true, false, false>::operator=): Call
1723 _M_copy_assign and/or _M_move_assign to do non-trivial assignments.
1724
8eba10af 1725 PR libstdc++/88204
1726 * testsuite/26_numerics/complex/operators/more_constexpr.cc: Do not
1727 test std::complex<long double> if long double format is IBM128.
1728 * testsuite/26_numerics/complex/requirements/more_constexpr.cc:
1729 Likewise.
1730
64a50f48 17312019-01-08 Jonathan Wakely <jwakely@redhat.com>
1732
73f3ad16 1733 * testsuite/libstdc++-prettyprinters/compat.cc: Test printer support
1734 for old std::unique_ptr layout.
1735 * testsuite/libstdc++-prettyprinters/cxx17.cc: Fix std::variant test
1736 to become valueless. Add filesystem::path tests.
1737
58e897da 1738 PR libstdc++/87855
1739 * include/std/optional (_Optional_payload_base): New class template
1740 for common code hoisted from _Optional_payload specializations. Use
1741 a template for the union, to allow a partial specialization for
1742 types with non-trivial destructors. Add constructors for in-place
1743 initialization to the union.
1744 (_Optional_payload(bool, const _Optional_payload&)): Use _M_construct
1745 to perform non-trivial copy construction, instead of relying on
1746 non-standard copy elision in a delegating constructor.
1747 (_Optional_payload(bool, _Optional_payload&&)): Likewise for
1748 non-trivial move construction.
1749 (_Optional_payload): Derive from _Optional_payload_base and use it
1750 for everything except the non-trivial assignment operators, which are
1751 defined as needed.
1752 (_Optional_payload<false, C, M>): Derive from the specialization
1753 _Optional_payload<true, false, false> and add a destructor.
1754 (_Optional_base_impl::_M_destruct, _Optional_base_impl::_M_reset):
1755 Forward to corresponding members of _Optional_payload.
1756 (_Optional_base_impl::_M_is_engaged, _Optional_base_impl::_M_get):
1757 Hoist common members from _Optional_base.
1758 (_Optional_base): Make all members and base class public.
1759 (_Optional_base::_M_get, _Optional_base::_M_is_engaged): Move to
1760 _Optional_base_impl.
1761 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Add
1762 support for new std::optional layout.
1763 * testsuite/libstdc++-prettyprinters/compat.cc: New test.
1764
64a50f48 1765 PR libstdc++/88066
1766 * include/bits/locale_conv.h: Use <> for includes not "".
1767 * include/ext/random: Likewise.
1768 * include/ext/vstring.h: Likewise.
1769
95b40931 17702019-01-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1771
1772 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Tighten existing patterns.
1773 (GLIBCXX_3.4.21): Likewise.
1774
fa00ec77 17752019-01-08 Jonathan Wakely <jwakely@redhat.com>
1776
1777 PR libstdc++/88749
1778 * src/filesystem/ops.cc (last_write_time): Fix preprocessor condition
1779 to match the one that controls whether utimbuf and utime are declared.
1780
3f304b2d 17812019-01-07 Jonathan Wakely <jwakely@redhat.com>
1782
fc6ac813 1783 PR libstdc++/87787
1784 * include/bits/char_traits.h (char_traits::move): Do not pass null
1785 pointers to memmove.
1786 * include/bits/locale_facets.h
1787 (ctype<char>::widen(const char*, const char*, char*)): Do not
1788 pass null pointers to memcpy.
1789 (ctype<char>::narrow(const char*, const char*, char, char*)):
1790 Likewise.
1791 (ctype<char>::do_widen(const char*, const char*, char*)):
1792 Likewise.
1793 (ctype<char>::do_narrow(const char*, const char*, char, char*)):
1794 Likewise.
1795
bbc66c45 1796 * doc/xml/manual/spine.xml: Update copyright years.
1797 * doc/xml/manual/status_cxx2017.xml: Adjust note about -lstdc++fs.
1798 * doc/xml/manual/using.xml: Remove requirement to link with -lstdc++fs
1799 for C++17 filesystem library.
1800 * doc/html/*: Regenerate.
1801
3f304b2d 1802 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for truncate.
1803 * config.h.in: Regenerate.
1804 * config/abi/pre/gnu.ver: Order patterns for filesystem operations
1805 alphabetically and add missing entries for copy_symlink,
1806 hard_link_count, rename, and resize_file.
1807 * configure: Regenerate.
1808 * src/c++17/fs_ops.cc (resize_file): Remove #if so posix::truncate is
1809 used unconditionally.
1810 * src/filesystem/ops-common.h (__gnu_posix::truncate)
1811 [!_GLIBCXX_HAVE_TRUNCATE]: Provide fallback definition that only
1812 supports truncating to zero length.
1813 * testsuite/27_io/filesystem/operations/all.cc: New test.
1814 * testsuite/27_io/filesystem/operations/resize_file.cc: New test.
1815
0ebb0980 18162019-01-06 Jonathan Wakely <jwakely@redhat.com>
1817
3935f409 1818 PR libstdc++/86756
1819 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for utime and
1820 lstat and define _GLIBCXX_USE_UTIME and _GLIBCXX_USE_LSTAT.
1821 * config.h.in: Regenerate.
1822 * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export symbols for
1823 remaining std::filesystem types and functions.
1824 * configure: Regenerate.
1825 * src/c++17/Makefile.am: Add C++17 filesystem sources.
1826 * src/c++17/Makefile.in: Regenerate.
1827 * src/c++17/cow-fs_dir.cc: Move src/filesystem/cow-std-dir.cc to
1828 here, and change name of included file.
1829 * src/c++17/cow-fs_ops.cc: Move src/filesystem/cow-std-ops.cc to
1830 here, and change name of included file.
1831 * src/c++17/fs_dir.cc: Move src/filesystem/std-dir.cc to here. Change
1832 path to dir-common.h.
1833 * src/c++17/fs_ops.cc: Move src/filesystem/std-ops.cc to here. Change
1834 path to ops-common.h. Disable -Wunused-parameter warnings.
1835 (internal_file_clock): Define unconditionally.
1836 [!_GLIBCXX_HAVE_SYS_STAT_H] (internal_file_clock::from_stat): Do not
1837 define.
1838 (do_copy_file, do_space): Move definitions to ops.common.h.
1839 (copy, file_size, hard_link_count, last_write_time, space): Only
1840 perform operation when _GLIBCXX_HAVE_SYS_STAT_H is defined, otherwise
1841 report an error.
1842 (last_write_time, read_symlink): Remove unused attributes from
1843 parameters.
1844 * src/filesystem/Makefile.am: Remove C++17 filesystem sources.
1845 * src/filesystem/Makefile.in: Regenerate.
1846 * src/filesystem/cow-std-dir.cc: Move to src/c++17/cow-fs_dir.cc.
1847 * src/filesystem/cow-std-ops.cc: Move to src/c++17/cow-fs_ops.cc.
1848 * src/filesystem/std-dir.cc: Move to src/c++17/fs_dir.cc.
1849 * src/filesystem/std-ops.cc: Move to src/c++17/fs_ops.cc.
1850 * src/filesystem/dir-common.h [!_GLIBCXX_HAVE_DIRENT_H]: Define
1851 dummy types and functions instead of using #error.
1852 * src/filesystem/dir.cc [!_GLIBCXX_HAVE_DIRENT_H]: Use #error.
1853 * src/filesystem/ops-common.h [!_GLIBCXX_USE_LSTAT] (lstat): Define
1854 in terms of stat.
1855 [!_GLIBCXX_HAVE_UNISTD_H]: Define dummy types and functions.
1856 (do_copy_file, do_space): Move definitions here from std-ops.cc.
1857 * src/filesystem/ops.cc: Adjust calls to do_copy_file and do_space
1858 to account for new namespace.
1859 * testsuite/27_io/filesystem/directory_entry/86597.cc: Remove
1860 -lstdc++fs from dg-options.
1861 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc: Likewise.
1862 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
1863 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
1864 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
1865 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
1866 Likewise.
1867 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
1868 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1869 Likewise.
1870 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
1871 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
1872 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
1873 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
1874 * testsuite/27_io/filesystem/operations/create_directories.cc:
1875 Likewise.
1876 * testsuite/27_io/filesystem/operations/create_directory.cc: Likewise.
1877 * testsuite/27_io/filesystem/operations/create_symlink.cc: Likewise.
1878 * testsuite/27_io/filesystem/operations/current_path.cc: Likewise.
1879 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
1880 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
1881 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
1882 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
1883 * testsuite/27_io/filesystem/operations/last_write_time.cc: Likewise.
1884 * testsuite/27_io/filesystem/operations/permissions.cc: Likewise.
1885 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
1886 * testsuite/27_io/filesystem/operations/read_symlink.cc: Likewise.
1887 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
1888 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
1889 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
1890 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
1891 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
1892 * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
1893 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1894 Likewise.
1895 * testsuite/27_io/filesystem/operations/weakly_canonical.cc: Likewise.
1896
1897
c6e37a9f 1898 PR libstdc++/86756
1899 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Make various patterns for
1900 typeinfo and vtables less greedy.
1901 (GLIBCXX_3.4.26): Export symbols for std::filesystem::path.
1902 * src/c++17/Makefile.am: Add fs_path.cc and cow-fs_path.cc.
1903 * src/c++17/Makefile.in: Regenerate.
1904 * src/c++17/cow-fs_path.cc: Move src/filesystem/cow-std-path.cc to
1905 here, and change name of included file.
1906 * src/c++17/fs_path.cc: Move src/filesystem/std-path.cc to here.
1907 * src/filesystem/Makefile.am: Remove std-path.cc and cow-std-path.cc
1908 from sources.
1909 * src/filesystem/Makefile.in: Regenerate.
1910 * src/filesystem/cow-std-path.cc: Move to src/c++17/cow-fs_path.cc.
1911 * src/filesystem/std-path.cc: Move to src/c++17/fs_path.cc.
1912 * testsuite/27_io/filesystem/path/append/path.cc: Remove -lstdc++fs
1913 from dg-options and remove dg-require-filesystem-ts.
1914 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
1915 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
1916 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
1917 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
1918 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
1919 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
1920 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
1921 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
1922 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
1923 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
1924 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
1925 * testsuite/27_io/filesystem/path/construct/default.cc: Likewise.
1926 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
1927 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
1928 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
1929 * testsuite/27_io/filesystem/path/construct/string_view.cc: Likewise.
1930 * testsuite/27_io/filesystem/path/decompose/extension.cc: Likewise.
1931 * testsuite/27_io/filesystem/path/decompose/filename.cc: Likewise.
1932 * testsuite/27_io/filesystem/path/decompose/parent_path.cc: Likewise.
1933 * testsuite/27_io/filesystem/path/decompose/relative_path.cc: Likewise.
1934 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
1935 Likewise.
1936 * testsuite/27_io/filesystem/path/decompose/root_name.cc: Likewise.
1937 * testsuite/27_io/filesystem/path/decompose/root_path.cc: Likewise.
1938 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
1939 * testsuite/27_io/filesystem/path/generation/normal.cc: Likewise.
1940 * testsuite/27_io/filesystem/path/generation/normal2.cc: Likewise.
1941 * testsuite/27_io/filesystem/path/generation/proximate.cc: Likewise.
1942 * testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
1943 * testsuite/27_io/filesystem/path/generic/generic_string.cc: Likewise.
1944 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
1945 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
1946 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
1947 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
1948 Likewise.
1949 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
1950 Likewise.
1951 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
1952 Likewise.
1953 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
1954 Likewise.
1955 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
1956 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
1957 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
1958 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: Likewise.
1959 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
1960 * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
1961 * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
1962 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
1963 * testsuite/27_io/filesystem/path/query/has_relative_path.cc: Likewise.
1964 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
1965 Likewise.
1966 * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
1967 * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
1968 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
1969 * testsuite/27_io/filesystem/path/query/is_absolute.cc: Likewise.
1970 * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
1971
8815ac91 1972 PR libstdc++/87431
1973 * include/std/variant (_Variant_storage<true, _Types...>::_M_valid):
1974 Check is_trivially_copyable instead of is_scalar.
1975 (variant::emplace<N, Args>(Args&&...)): If construction of the new
1976 contained value can throw and its type is trivially copyable then
1977 construct into a temporary variant and move from it, to provide the
1978 strong exception safety guarantee.
1979 (variant::emplace<N, U, Args>(initializer_list<U>, Args&&...)):
1980 Likewise.
1981 * testsuite/20_util/variant/87431.cc: New test.
1982 * testsuite/20_util/variant/run.cc: Adjust test so that throwing
1983 conversion causes valueless state.
1984
0ebb0980 1985 PR libstdc++/88607
1986 * testsuite/17_intro/headers/c++1998/charset.cc: New test.
1987 * testsuite/17_intro/headers/c++2011/charset.cc: New test.
1988 * testsuite/17_intro/headers/c++2014/charset.cc: New test.
1989 * testsuite/17_intro/headers/c++2017/charset.cc: New test.
1990 * testsuite/17_intro/headers/c++2020/charset.cc: New test.
1991
adc6beee 19922019-01-05 Jonathan Wakely <jwakely@redhat.com>
1993
1994 * include/bits/fs_fwd.h (__file_clock): Define new clock.
1995 (file_time_type): Redefine in terms of __file_clock.
1996 * src/filesystem/ops-common.h (file_time): Add FIXME comment about
1997 overflow.
1998 * src/filesystem/std-ops.cc (is_set(perm_options, perm_options)): Give
1999 internal linkage.
2000 (internal_file_lock): New helper type for accessing __file_clock.
2001 (do_copy_file): Use internal_file_lock to convert system time to
2002 file_time_type.
2003 (last_write_time(const path&, error_code&)): Likewise.
2004 (last_write_time(const path&, file_time_type, error_code&)): Likewise.
2005
6b4a77f2 20062019-01-04 Jonathan Wakely <jwakely@redhat.com>
2007
98185b9f 2008 * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Make patterns less greedy
2009 for const member functions of std::basic_string.
2010 (GLIBCXX_3.4.26): Export member functions of std::basic_string added
2011 in C++17.
2012 * include/bits/basic_string.h (basic_string(__sv_wrapper, const A&)):
2013 Make non-standard constructor private.
2014 [!_GLIBCXX_USE_CXX11_ABI] (basic_string(__sv_wrapper, const A&)):
2015 Likewise.
2016 * include/bits/basic_string.tcc (std::string, std::wstring): Declare
2017 explicit instantiations for C++17 as well as earlier dialects.
2018 * src/c++17/Makefile.am: Add new source files.
2019 * src/c++17/Makefile.in: Regenerate.
2020 * src/c++17/cow-string-inst.cc: New file defining explicit
2021 instantiations for basic_string member functions added in C++17.
2022 * src/c++17/string-inst.cc: Likewise.
2023
859e6fed 2024 * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export allocator-extended
2025 copy/move constructors for old std::basic_string.
2026 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2027 (basic_string::reference, basic_string::const_reference): Define
2028 as plain references for C++11 and later.
2029 (basic_string::basic_string()): Put constructor body outside
2030 preprocessor conditional groups.
2031 (basic_string::basic_string(basic_string&&)): Move _Alloc_hider
2032 instead of copying it.
2033 (basic_string::basic_string(const basic_string&, const _Alloc&)):
2034 Define.
2035 (basic_string::basic_string(basic_string&&, const _Alloc&)):
2036 Define.
2037 * include/bits/fs_path.h [!_GLIBCXX_USE_CXX11_ABI]: Remove special
2038 cases for old basic_string.
2039 * testsuite/21_strings/basic_string/cons/char/8.cc: Test
2040 allocator-extended constructors unconditionally. Add extra members to
2041 allocator type when using old string ABI.
2042 * testsuite/21_strings/basic_string/allocator/71964.cc: Enable test
2043 for old string ABI.
2044 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
2045
e13f6a7f 2046 * testsuite/23_containers/list/61347.cc: Avoid spurious failure when
2047 -fno-inline added to test flags.
2048
a18fccd0 2049 * testsuite/21_strings/basic_string/requirements/
2050 explicit_instantiation/debug.cc: Remove XFAIL for old ABI.
2051
7f77ca07 2052 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Fix static
2053 assertion failures with old std::string ABI.
2054
9346fb0e 2055 * include/bits/fs_path.h (path::_List::erase): Replace both overloads
2056 with ...
2057 (path::pop_back(), path::_M_erase_from(const_iterator)): New member
2058 functions that will only erase elements at the end.
2059 * src/filesystem/std-path.cc (path::_List::_Impl::pop_back()): Define.
2060 (path::_List::_Impl::_M_erase_from(const_iterator)): Define.
2061 (path::_List::operator=(const _List&)): Use _M_erase_from(p) instead
2062 of erase(p, end()).
2063 (path::_List::pop_back()): Define.
2064 (path::_List::_M_erase_from(const_iterator)): Define.
2065 (path::operator/=(const path&)): Use pop_back to remove last component
2066 and _M_erase_from to remove multiple components.
2067 (path::_M_append(basic_string_view<value_type>)): Likewise.
2068 (path::operator+=(const path&)): Likewise.
2069 (path::_M_concat(basic_string_view<value_type>)): Likewise.
2070 (path::remove_filename()): Likewise.
2071 (path::lexically_normal()): Use _List::_Impl iterators instead of
2072 path::iterator. Use pop_back to remove components from the end. Clear
2073 trailing filename, instead of using erase(const_iterator) to remove
2074 a non-final component.
2075 * testsuite/27_io/filesystem/path/generation/normal.cc: Test
2076 additional cases.
2077 * testsuite/27_io/filesystem/path/generation/normal2.cc: New test.
2078
24230cab 2079 * src/filesystem/std-path.cc (path::operator+=(const path&)): Fix
2080 incorrect treatment of empty filename after trailing slash.
2081 * testsuite/27_io/filesystem/path/concat/path.cc: Test problem case.
2082
6b4a77f2 2083 * testsuite/21_strings/basic_string/modifiers/assign/char/
2084 move_assign_optim.cc: Avoid spurious failure when -fno-inline added
2085 to test flags.
2086 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
2087 move_assign_optim.cc: Likewise.
2088
02df5941 20892019-01-03 Jonathan Wakely <jwakely@redhat.com>
2090 Jakub Jelinek <jakub@redhat.com>
2091
2092 PR libstdc++/88607
2093 * include/experimental/memory: Replace UTF-8 quote characters.
2094 * include/std/future: Replace UTF-8 "em dash" characters.
2095
f8ad40d8 20962019-01-03 Jonathan Wakely <jwakely@redhat.com>
2097
9013258b 2098 PR libstdc++/88607
2099 * include/bits/forward_list.h: Replace UTF-8 "ligature fi" character.
2100 * include/debug/forward_list: Likewise.
2101 * include/experimental/bits/shared_ptr.h: Remove UTF-8 "section sign"
2102 character.
2103 * include/experimental/chrono: Likewise.
2104 * include/experimental/functional: Likewise.
2105 * include/experimental/ratio: Likewise.
2106 * include/experimental/system_error: Likewise.
2107 * include/experimental/tuple: Likewise.
2108 * include/experimental/type_traits: Likewise.
2109 * include/parallel/workstealing.h: Replace UTF-8 "en dash" character.
2110 * include/parallel/multiseq_selection.h: Likewise.
2111
f8ad40d8 2112 PR libstdc++/88681
2113 * config/abi/pre/gnu.ver: Add missing exports.
2114 * testsuite/22_locale/collate_byname/88681.cc: New test.
2115 * testsuite/22_locale/time_get/get/char/88681.cc: New test.
2116 * testsuite/22_locale/time_get/get/wchar_t/88681.cc: New test.
2117
138292f4 21182019-01-02 Jonathan Wakely <jwakely@redhat.com>
2119
553d41a8 2120 * testsuite/23_containers/map/cons/deduction.cc: Test deduction from
2121 initializer_list<value_type> and from input iterator ranges.
2122 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
2123
138292f4 2124 * testsuite/experimental/string_view/element_access/char/empty.cc:
2125 Fix year range in copyright header.
2126
963c0125 21272019-01-02 Joel Brobecker <brobecker@adacore.com>
2128
2129 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2130 Fix year range in copyright header.
2131
fbd26352 21322019-01-01 Jakub Jelinek <jakub@redhat.com>
d353bf18 2133
2134 Update copyright years.
fb96fbb3 2135\f
fbd26352 2136Copyright (C) 2019 Free Software Foundation, Inc.
fb96fbb3 2137
2138Copying and distribution of this file, with or without modification,
2139are permitted in any medium without royalty provided the copyright
2140notice and this notice are preserved.