PR libstdc++/85632 fix wraparound in filesystem::space
[gcc.git] / libstdc++-v3 / ChangeLog
1 2018-05-03 Jonathan Wakely <jwakely@redhat.com>
2
3 PR libstdc++/85632 use uintmax_t for arithmetic
4 * src/filesystem/ops.cc (experimental::filesystem::space): Perform
5 arithmetic in result type.
6 * src/filesystem/std-ops.cc (filesystem::space): Likewise.
7 * testsuite/27_io/filesystem/operations/space.cc: Check total capacity
8 is greater than free space.
9 * testsuite/experimental/filesystem/operations/space.cc: New.
10
11 * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
12 * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
13 New.
14 * testsuite/20_util/remove_cvref/value.cc: New.
15 * testsuite/20_util/remove_cvref/value_ext.cc: New.
16
17 PR libstdc++/84087 LWG DR 2268 basic_string default arguments
18 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
19 (append(const basic_string&, size_type, size_type)
20 (assign(const basic_string&, size_type, size_type)
21 (insert(size_type, const basic_string&, size_type, size_type)
22 (replace(size_type,size_type,const basic_string&,size_type,size_type)
23 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
24 Add default arguments (LWG 2268).
25 [_GLIBCXX_USE_CXX11_ABI=0]
26 (append(const basic_string&, size_type, size_type)
27 (assign(const basic_string&, size_type, size_type)
28 (insert(size_type, const basic_string&, size_type, size_type)
29 (replace(size_type,size_type,const basic_string&,size_type,size_type)
30 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
31 Likewise.
32 * testsuite/21_strings/basic_string/dr2268.cc: New test.
33
34 PR libstdc++/84535
35 * include/std/thread (thread::__not_same): New SFINAE helper.
36 (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
37 first argument is not a std::thread. Add static assertion to check
38 INVOKE expression is valid.
39 (thread::thread(thread&), thread::thread(const thread&&)): Remove.
40 (thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
41 __invoke_result for return types and remove exception specifications.
42 * testsuite/30_threads/thread/cons/84535.cc: New.
43
44 * include/std/future (__async_result_of): Use __invoke_result instead
45 of result_of.
46
47 * include/std/any (any_cast): Use __remove_cvref_t.
48 * include/std/tuple (__make_tuple): Likewise.
49 * include/std/type_traits (__remove_cvref_t): Define.
50 (__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
51 [__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
52 * include/std/variant (__erased_hash): Use __remove_cvref_t.
53
54 2018-05-02 François Dumont <fdumont@gcc.gnu.org>
55
56 * include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
57 ensure overloaded comma not used.
58 * include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
59 * include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
60 * include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
61 * testsuite/23_containers/deque/modifiers/assign/1.cc: New.
62 * testsuite/23_containers/list/modifiers/assign/1.cc: New.
63 * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
64 * testsuite/23_containers/vector/modifiers/assign/1.cc: New.
65
66 2018-05-02 Jonathan Wakely <jwakely@redhat.com>
67
68 PR libstdc++/68197
69 * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
70 indices to unsigned.
71 * src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
72 as failure. Refactor error handling.
73 * testsuite/27_io/ios_base/storage/68197.cc: New.
74
75 PR libstdc++/57997
76 PR libstdc++/83860
77 * include/bits/gslice_array.h (gslice_array): Define default
78 constructor as deleted, as per C++11 standard.
79 * include/bits/mask_array.h (mask_array): Likewise.
80 * include/bits/slice_array.h (slice_array): Likewise.
81 * include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
82 to namespace __detail.
83 (_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
84 members.
85 * include/bits/valarray_before.h (_ValArrayRef): New helper for type
86 of data members in closure objects.
87 (_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
88 (_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
89 __detail.
90 (_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
91 (_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
92 (_SBase::_M_expr): Use _ValArrayRef for type of data members.
93 * include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
94 (_ValFunClos, _RefFunClos): Move to namespace __detail and add
95 using-declarations to namespace std.
96 * testsuite/26_numerics/valarray/83860.cc: New.
97
98 * testsuite/backward/strstream_move.cc: Remove duplicate function
99 call.
100
101 PR libstdc++/69608
102 * include/backward/strstream (strstreambuf): Define move constructor
103 and move assignment operator.
104 (istrstream, ostrstream, strstream): Likewise.
105 * testsuite/backward/strstream_move.cc: New.
106
107 2018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
108
109 PR libstdc++/84654
110 * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
111 * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
112 * configure: Regenerate.
113 * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
114 based on ENABLE_FLOAT128.
115 * include/Makefile.in: Regenerate.
116 * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
117 [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
118 _GLIBCXX_USE_FLOAT128.
119
120 2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
121
122 * configure: Regenerated.
123
124 2018-04-19 Jakub Jelinek <jakub@redhat.com>
125
126 * configure: Regenerated.
127
128 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
129 Jakub Jelinek <jakub@redhat.com>
130
131 PR libstdc++/85442
132 * src/c++11/Makefile.am: Don't generate debuginfo again for
133 cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
134 * src/c++11/Makefile.in: Regenerate.
135
136 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
137
138 PR libstdc++/84442
139 * testsuite/30_threads/thread/cons/terminate.cc
140 [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
141
142 2018-04-18 David Malcolm <dmalcolm@redhat.com>
143
144 PR jit/85384
145 * configure: Regenerate.
146
147 2018-04-16 Jonathan Wakely <jwakely@redhat.com>
148
149 * testsuite/experimental/filesystem/file_status/1.cc: Add
150 -DUSE_FILESYSTEM_TS to dg-options.
151 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
152 Likewise.
153 * testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
154 * testsuite/experimental/filesystem/iterators/
155 recursive_directory_iterator.cc: Likewise.
156 * testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
157 * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
158 * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
159 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
160 * testsuite/experimental/filesystem/operations/create_directories.cc:
161 Likewise.
162 * testsuite/experimental/filesystem/operations/create_directory.cc:
163 Likewise.
164 * testsuite/experimental/filesystem/operations/create_symlink.cc:
165 Likewise.
166 * testsuite/experimental/filesystem/operations/current_path.cc:
167 Likewise.
168 * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
169 * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
170 * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
171 * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
172 * testsuite/experimental/filesystem/operations/last_write_time.cc:
173 Likewise.
174 * testsuite/experimental/filesystem/operations/permissions.cc:
175 Likewise.
176 * testsuite/experimental/filesystem/operations/read_symlink.cc:
177 Likewise.
178 * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
179 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
180 * testsuite/experimental/filesystem/operations/status.cc: Likewise.
181 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
182 Likewise.
183 * testsuite/experimental/filesystem/path/append/path.cc: Likewise.
184 * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
185 * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
186 * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
187 * testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
188 * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
189 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
190 * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
191 * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
192 * testsuite/experimental/filesystem/path/construct/default.cc:
193 Likewise.
194 * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
195 * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
196 * testsuite/experimental/filesystem/path/construct/string_view.cc:
197 Likewise.
198 * testsuite/experimental/filesystem/path/decompose/extension.cc:
199 Likewise.
200 * testsuite/experimental/filesystem/path/decompose/filename.cc:
201 Likewise.
202 * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
203 Likewise.
204 * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
205 Likewise.
206 * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
207 Likewise.
208 * testsuite/experimental/filesystem/path/decompose/root_name.cc:
209 Likewise.
210 * testsuite/experimental/filesystem/path/decompose/root_path.cc:
211 Likewise.
212 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
213 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
214 Likewise.
215 * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
216 * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
217 * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
218 Likewise.
219 * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
220 Likewise.
221 * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
222 Likewise.
223 * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
224 Likewise.
225 * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
226 * testsuite/experimental/filesystem/path/native/string.cc: Likewise.
227 * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
228 Likewise.
229 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
230 * testsuite/experimental/filesystem/path/query/has_extension.cc:
231 Likewise.
232 * testsuite/experimental/filesystem/path/query/has_filename.cc:
233 Likewise.
234 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
235 Likewise.
236 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
237 Likewise.
238 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
239 Likewise.
240 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
241 Likewise.
242 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
243 Likewise.
244 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
245 * testsuite/experimental/filesystem/path/query/is_relative.cc:
246 Likewise.
247
248 2018-04-13 Jonathan Wakely <jwakely@redhat.com>
249
250 * src/c++11/Makefile.am: Fix sed command.
251 * src/c++11/Makefile.in: Regenerate.
252
253 * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
254 handle mangled names starting with double underscores on darwin.
255 * src/c++11/Makefile.in: Regenerate.
256
257 2018-04-12 Jonathan Wakely <jwakely@redhat.com>
258
259 * src/c++11/Makefile.am: Fix comment.
260 * src/c++11/Makefile.in: Regenerate.
261 * src/c++11/cxx11-ios_failure.cc: Fix comment.
262 * src/c++98/ios_failure.cc: Likewise.
263
264 * src/c++11/ios.cc: Remove redundant macro definition.
265
266 2018-04-11 Jonathan Wakely <jwakely@redhat.com>
267
268 * doc/xml/manual/abi.xml: Document header locations in recent
269 releases.
270 * doc/xml/manual/evolution.xml: Add API changes since GCC 5.
271 * doc/xml/manual/spine.xml: Update copyright years.
272 * doc/xml/manual/strings.xml: Adjust tolower example to avoid
273 undefined behaviour.
274 * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
275 * doc/html/*: Regenerate.
276
277 2018-04-10 Jonathan Wakely <jwakely@redhat.com>
278
279 * doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
280 * doc/xml/manual/backwards_compatibility.xml: Likewise.
281 * doc/xml/manual/containers.xml: Likewise.
282 * doc/xml/manual/debug_mode.xml: Likewise.
283 * doc/xml/manual/extensions.xml: Likewise.
284 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
285 * doc/xml/manual/using.xml: Likewise.
286 * doc/xml/manual/utilities.xml: Likewise.
287
288 PR libstdc++/85222
289 * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
290 cxx11-ios_failure.cc to rewrite type info for __ios_failure.
291 * src/c++11/Makefile.in: Regenerate.
292 * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
293 New types.
294 [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
295 * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
296 * src/c++98/ios_failure.cc (__construct_ios_failure)
297 (__destroy_ios_failure, is_ios_failure_handler): New functions.
298 [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
299 * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
300 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
301 handler types, to always catch std::ios_base::failure.
302 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
303 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
304 exceptions_failbit.cc: Likewise.
305 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
306 exceptions_failbit.cc: Likewise.
307 * testsuite/27_io/basic_istream/extractors_other/char/
308 exceptions_null.cc: Likewise.
309 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
310 exceptions_null.cc: Likewise.
311 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
312 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
313 * testsuite/27_io/basic_ostream/inserters_other/char/
314 exceptions_null.cc: Likewise.
315 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
316 exceptions_null.cc: Likewise.
317 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
318
319 2018-04-05 Jonathan Wakely <jwakely@redhat.com>
320
321 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
322 __get calls to avoid ADL and avoid ambiguity due to Clang bug.
323
324 2018-04-03 Jonathan Wakely <jwakely@redhat.com>
325
326 PR libstdc++/85183
327 * include/std/variant (_Move_assign_base::operator=): Fix incorrect
328 value categories.
329 * testsuite/20_util/variant/85183.cc: New.
330
331 2018-03-26 Jonathan Wakely <jwakely@redhat.com>
332
333 * include/std/variant (__get): Qualify calls to avoid ADL.
334 (__select_index): Adjust whitespace.
335 (variant): Add using-declaration to workaround Clang bug.
336
337 2018-03-22 Jonathan Wakely <jwakely@redhat.com>
338
339 PR libstdc++/85040
340 * include/bits/stl_function.h (greater::__not_overloaded)
341 (less::__not_overloaded, greater_equal::__not_overloaded)
342 (less_equal::__not_overloaded): Fix ambiguous specializations.
343 * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
344 tests for type with overloaded operators.
345
346 2018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
347
348 PR libstdc++/77691
349 * testsuite/experimental/memory_resource/resource_adaptor.cc:
350 xfail execution on 32-bit Solaris/x86.
351
352 2018-03-21 Jonathan Wakely <jwakely@redhat.com>
353
354 * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
355 VERIFY instead of assert.
356 * testsuite/20_util/hash/84998.cc: New test.
357 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
358 copy of test adjusted for Debug Mode.
359 * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
360 test in Debug Mode.
361
362 2018-03-20 François Dumont <fdumont@gcc.gnu.org>
363
364 PR libstdc++/84998
365 * include/bits/stl_bvector.h: Fix std::hash friend declaration.
366 * include/std/bitset: Likewise.
367 * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
368 declaration.
369 * include/bits/stl_multimap.h (std::multimap<>): Likewise.
370 * include/bits/stl_multiset.h (std::multiset<>): Likewise.
371 * include/bits/stl_set.h (std::set<>): Likewise.
372 * include/bits/unordered_map.h (std::unordered_map<>): Fix
373 _Hash_merge_helper friend declaration.
374 (std::unordered_multimap<>): Likewise.
375 * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
376 (std::unordered_multiset<>): Likewise.
377
378 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
379
380 * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
381 trailing slash for domain level link.
382 * doc/xml/faq.xml: Ditto.
383 * doc/xml/manual/appendix_free.xml (software): Ditto.
384 * doc/xml/manual/intro.xml: Ditto.
385 * doc/xml/manual/spine.xml: Ditto.
386 * doc/xml/spine.xml: Ditto.
387
388 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
389
390 * doc/xml/manual/documentation_hacking.xml: Adjust link to
391 docbook.org.
392
393 2018-03-17 Jonathan Wakely <jwakely@redhat.com>
394
395 * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
396 to compile as C++98.
397
398 2018-03-14 Jonathan Wakely <jwakely@redhat.com>
399
400 PR libstdc++/78420
401 * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
402 (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
403 to ensure total order for pointers.
404 (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
405 Add operator() overloads for pointer arguments and make generic
406 overloads dispatch to new _S_cmp functions when comparisons would
407 use built-in operators for pointers.
408 * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
409
410 2018-03-12 Jonathan Wakely <jwakely@redhat.com>
411
412 PR libstdc++/84773
413 PR libstdc++/83662
414 * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
415 * configure: Regenerate.
416 * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
417 (aligned_alloc): Add using-declaration.
418 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
419
420 2018-03-09 François Dumont <fdumont@gcc.gnu.org>
421
422 * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
423 Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
424 registration.
425
426 2018-03-09 Jonathan Wakely <jwakely@redhat.com>
427
428 PR libstdc++/84769
429 * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
430 Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
431
432 src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
433 src/filesystem/std-ops.cc (create_dir): Likewise.
434
435 2018-03-08 François Dumont <fdumont@gcc.gnu.org>
436
437 * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
438 (StdListIteratorPrinter): Inherit from latter.
439 (StdFwdListIteratorPrinter): New, inherit from latter.
440 (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
441 when iterator has no associated container.
442 (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
443 __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
444 registrations.
445 * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
446 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
447
448 2018-03-06 Ville Voutilainen <ville.voutilainen@gmail.com>
449
450 PR libstdc++/84601
451 * include/std/optional (_Optional_payload): Split into multiple
452 specializations that can handle different cases of trivial or
453 non-trivial assignment operators.
454 * testsuite/20_util/optional/84601.cc: New.
455 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
456
457 2018-03-02 Jonathan Wakely <jwakely@redhat.com>
458
459 PR libstdc++/84671
460 * include/bits/parse_numbers.h (_Number_help): Add partial
461 specialization to handle digit separators. Adjust partial
462 specialization for recursion temrination to require _Pow == 1ULL.
463 * testsuite/20_util/duration/literals/84671.cc: New
464
465 2018-02-27 Ville Voutilainen <ville.voutilainen@gmail.com>
466
467 Implement the missing bits of LWG 2769
468 * include/std/any (any_cast(const any&)): Add static_assert.
469 (any_cast(any&)): Likewise.
470 (any_cast(any&&)): Likewise, and remove the handling
471 for copyable-but-not-movable type.
472 * testsuite/20_util/any/misc/any_cast.cc: Adjust.
473 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
474 add new tests.
475
476 2018-02-23 Jonathan Wakely <jwakely@redhat.com>
477
478 PR libstdc++/84532
479 * include/std/thread (thread::__make_invoker): Construct tuple
480 directly instead of using make_tuple.
481 * testsuite/30_threads/async/84532.cc: New.
482 * testsuite/30_threads/thread/84532.cc: New.
483
484 2018-02-20 François Dumont <fdumont@gcc.gnu.org>
485
486 * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
487 (template<> __aligned_buffer): Define as __aligned_membuf alias.
488
489 2018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
490
491 PR target/84148
492 * configure: Regenerate.
493
494 2018-02-15 Jonathan Wakely <jwakely@redhat.com>
495
496 PR libstdc++/81797
497 * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
498 * configure: Regenerate.
499 * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
500 defined.
501 * include/Makefile.in: Regenerate.
502
503 2018-01-29 Jonathan Wakely <jwakely@redhat.com>
504
505 PR libstdc++/83833
506 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
507 Add -ffloat-store to options for m68k and ia32.
508
509 * doc/xml/faq.xml: Update copyright years.
510 * doc/html/*: Regenerate.
511
512 PR libstdc++/83658
513 * include/std/any (any::__do_emplace): Only set _M_manager after
514 constructing the contained object.
515 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
516 * testsuite/20_util/any/modifiers/83658.cc: New test.
517
518 2018-01-25 Jonathan Wakely <jwakely@redhat.com>
519
520 PR libstdc++/81076
521 * include/c_global/cstddef (__byte_operand): Define primary template.
522 * testsuite/18_support/byte/81076.cc: New test.
523
524 2018-01-19 Christophe Lyon <christophe.lyon@linaro.org>
525
526 * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
527 dg-options and dg-add-options order.
528 * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
529 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
530 Likewise.
531 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
532 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
533 Likewise.
534 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
535 Likewise.
536 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
537 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
538 Likewise.
539 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
540 Likewise.
541 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
542 Likewise.
543 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
544 Likewise.
545 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
546 Likewise.
547 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
548 Likewise.
549 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
550 Likewise.
551 * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
552 Likewise.
553 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
554 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
555 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
556 * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
557 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
558 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
559 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
560 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
561 * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
562 Likewise.
563 * testsuite/special_functions/19_sph_bessel/check_nan.cc:
564 Likewise.
565 * testsuite/special_functions/20_sph_legendre/check_nan.cc:
566 Likewise.
567 * testsuite/special_functions/21_sph_neumann/check_nan.cc:
568 Likewise.
569
570 2018-01-18 Uros Bizjak <ubizjak@gmail.com>
571
572 * configure.ac (AC_CHECK_HEADERS): Add linux/types.h. Conditionally
573 include linux/types.h when checking linux/random.h header.
574 * config.h.in: Regenerate.
575 * configure: Ditto.
576 * src/c++11/random.cc: Conditionally include linux/types.h.
577
578 2018-01-16 Eric Botcazou <ebotcazou@adacore.com>
579
580 * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
581
582 2018-01-16 Jonathan Wakely <jwakely@redhat.com>
583
584 PR libstdc++/83834
585 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
586 pattern with exact match for std::cerr.
587
588 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
589
590 PR libstdc++/83833
591 * include/bits/random.h (chi_squared_distribution::param): Update
592 gamma distribution parameter.
593 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
594 test.
595
596 PR libstdc++/83830
597 * include/std/type_traits (has_unique_object_representations_v): Add
598 variable template.
599 * testsuite/20_util/has_unique_object_representations/value.cc: Check
600 variable template.
601
602 2018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com>
603
604 Make optional conditionally
605 trivially_{copy,move}_{constructible,assignable}
606 * include/std/optional (_Optional_payload): Fix the comment in
607 the class head and turn into a primary and one specialization.
608 (_Optional_payload::_M_engaged): Strike the NSDMI.
609 (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
610 New.
611 (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
612 Likewise.
613 (_Optional_payload<_Tp, false>::_M_get): Likewise.
614 (_Optional_payload<_Tp, false>::_M_reset): Likewise.
615 (_Optional_base_impl): Likewise.
616 (_Optional_base): Turn into a primary and three specializations.
617 (optional(nullopt)): Change the base init.
618 * testsuite/20_util/optional/assignment/8.cc: New.
619 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
620 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
621
622 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
623
624 PR libstdc++/80276
625 * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
626 (get_template_arg_list): New.
627 (StdVariantPrinter._template_args): Remove, use get_template_arg_list
628 instead.
629 (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
630 of strings and regular expressions.
631 (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
632 (FilteringTypePrinter): Add docstring. Match using startswith. Use
633 strip_inline_namespaces instead of strip_versioned_namespace.
634 (add_one_type_printer): Prepend namespace to match argument.
635 (register_type_printers): Add type printers for char16_t and char32_t
636 string types and for types using cxx11 ABI. Update calls to
637 add_one_template_type_printer to provide default argument dicts.
638 * testsuite/libstdc++-prettyprinters/80276.cc: New test.
639 * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
640 basic_string<unsigned char> and basic_string<signed char>.
641 * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
642 to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
643
644 2018-01-14 Andreas Schwab <schwab@linux-m68k.org>
645
646 PR libstdc++/81092
647 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
648
649 2018-01-13 Tim Shen <timshen@google.com>
650
651 PR libstdc++/83601
652 * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
653 * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
654 * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
655
656 2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
657
658 PR libstdc++/64054
659 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
660 Remove dg-xfail-run-if.
661
662 2018-01-10 François Dumont <fdumont@gcc.gnu.org>
663
664 * include/bits/forward_list.h
665 (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
666 (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
667 (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
668 (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
669 (_Fwd_list_impl()): Add noexcept qualification.
670 (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
671 (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
672 (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
673 (_Fwd_list_base()): Default.
674 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
675 (_Fwd_list_base(_Fwd_list_base&&)): Default.
676 (forward_list<>()): Default.
677 (forward_list<>(forward_list&&)): Default.
678 (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
679 (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
680 (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
681 * include/bits/forward_list.tcc
682 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
683 _M_impl._M_head move assignment.
684 (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
685 * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
686
687 2018-01-09 Jonathan Wakely <jwakely@redhat.com>
688
689 PR libstdc++/80276
690 * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
691 (UniquePointerPrinter): Print correct template argument, not type of
692 the pointer.
693 (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
694 a type.
695 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
696 array type.
697 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
698 weak_ptr of array types.
699
700 2018-01-09 François Dumont <fdumont@gcc.gnu.org>
701
702 PR libstdc++/83709
703 * include/bits/hashtable_policy.h
704 (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
705 __first != __last.
706 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
707 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
708 Add false_type parameter.
709 (_Insert_base::insert): Adapt.
710 * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
711 Adapt.
712 (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
713 Add __n_elt parameter, defaulted to 1.
714 (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
715 policy _M_need_rehash.
716 (_Hashtable::_M_merge_unique): Pass target number of elements to add to
717 produce only 1 rehash if necessary.
718 * testsuite/23_containers/unordered_map/insert/83709.cc: New.
719 * testsuite/23_containers/unordered_set/insert/83709.cc: New.
720
721 2018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr>
722 Jonathan Wakely <jwakely@redhat.com>
723
724 PR libstdc++/59253 (partial)
725 * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
726 type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
727 (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
728 children.
729 * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
730 of unique_ptr printer.
731 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
732 output of shared_ptr printer.
733
734 2018-01-05 Jonathan Wakely <jwakely@redhat.com>
735
736 PR libstdc++/83626
737 * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
738 unnecessary symlink_status call.
739 (remove_all(const path&, error_code&)): Use filesystem::remove.
740 * src/filesystem/std-ops.cc: Likewise.
741
742 PR libstdc++/83279
743 * src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with
744 sendfile.
745
746 PR libstdc++/83626
747 * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
748 report an error for ENOENT.
749 (remove_all(const path&)): Fix type of result variable.
750 (remove_all(const path&, error_code&)): Use non-throwing increment
751 for directory iterator. Call POSIX remove directly to avoid redundant
752 calls to symlink_status. Do not report errors for ENOENT.
753 * src/filesystem/std-ops.cc: Likewise.
754 * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
755 overload.
756 * testsuite/experimental/filesystem/operations/remove_all.cc:
757 Likewise.
758
759 2018-01-04 Jonathan Wakely <jwakely@redhat.com>
760
761 PR libstdc++/83626
762 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
763 redundant call to ec.clear().
764 (remove_all(const path&, error_code&))): Do not return an error for
765 non-existent paths.
766 * src/filesystem/std-ops.cc: Likewise.
767 * testsuite/27_io/filesystem/operations/remove.cc: New test.
768 * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
769 results for non-existent paths.
770 * testsuite/experimental/filesystem/operations/remove.cc: New test.
771 * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
772 expected results for non-existent paths.
773
774 * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
775 check status_known once.
776 * include/experimental/bits/fs_ops.h: Likewise.
777
778 PR libstdc++/83607
779 * include/std/functional (__is_byte_like): New trait.
780 (__is_std_equal_to): Remove.
781 (__boyer_moore_base_t): Use __is_byte_like instead of
782 __is_std_equal_to.
783 * include/experimental/functional (__is_std_equal_to): Remove.
784 (__boyer_moore_base_t): Use __is_byte_like instead of
785 __is_std_equal_to.
786 * testsuite/20_util/function_objects/83607.cc: New test.
787
788 2018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com>
789
790 Protect optional's deduction guide with the feature macro
791 * include/std/optional: Use the feature macro.
792
793 2018-01-03 Jakub Jelinek <jakub@redhat.com>
794
795 Update copyright years.
796 \f
797 Copyright (C) 2018 Free Software Foundation, Inc.
798
799 Copying and distribution of this file, with or without modification,
800 are permitted in any medium without royalty provided the copyright
801 notice and this notice are preserved.