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