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