]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
Remove duplicate tests
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2018-10-19 Jonathan Wakely <jwakely@redhat.com>
2
3 * testsuite/23_containers/list/requirements/explicit_instantiation/
4 5_c++0x.cc: Remove redundant test that is functionally identical to
5 the 5.cc test.
6 * testsuite/23_containers/map/requirements/explicit_instantiation/
7 5_c++0x.cc: Likewise.
8 * testsuite/23_containers/multimap/requirements/explicit_instantiation/
9 5_c++0x.cc: Likewise.
10 * testsuite/23_containers/multiset/requirements/explicit_instantiation/
11 5_c++0x.cc: Likewise.
12 * testsuite/23_containers/set/requirements/explicit_instantiation/
13 5_c++0x.cc: Likewise.
14
15 * include/bits/regex_executor.tcc (_Backref_matcher::_M_apply): Use
16 _GLIBCXX_STD_A to refer to normal mode algorithms.
17 * testsuite/28_regex/headers/regex/parallel_mode.cc: New test.
18 * testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Remove empty
19 whitespace.
20
21 * include/debug/map.h (map::erase(iterator)): Add abi-tag so that
22 C++11 version mangles differently from incompatible C++98 version.
23 * include/debug/multimap.h (multimap::erase(iterator)): Likewise.
24 * include/debug/multiset.h (multiset::erase(iterator))
25 (multiset::erase(const_iterator, const_iterator)): Likewise.
26 * include/debug/set.h (set::erase(iterator))
27 (multiset::erase(const_iterator, const_iterator)): Likewise.
28
29 2018-10-18 Jonathan Wakely <jwakely@redhat.com>
30
31 * testsuite/20_util/duration/cons/2.cc: Add -ffloat-store to fix
32 failure when compiled without optimisation.
33 * testsuite/ext/profile/mutex_extensions_neg.cc: Prune additional
34 errors caused by C++17 std::pmr alias templates.
35
36 PR libstdc++/87642
37 * config/locale/gnu/monetary_members.cc
38 (moneypunct<char, true>::_M_initialize_moneypunct): Use
39 __narrow_multibyte_chars to convert multibyte thousands separators
40 to a single char.
41 * config/locale/gnu/numeric_members.cc
42 (numpunct<char>::_M_initialize_numpunct): Likewise.
43 (__narrow_multibyte_chars): New function.
44
45 PR libstdc++/87641
46 * include/bits/valarray_array.h (__valarray_sum): Use first element
47 to initialize accumulator instead of value-initializing it.
48 (__valarray_product<_Tp>): Move to ...
49 * src/c++98/valarray.cc (__valarray_product<_Tp>): Here. Use first
50 element to initialize accumulator.
51 (__valarray_product(const valarray<size_t>&)): Remove const_cast made
52 unnecessary by LWG 389.
53 * testsuite/26_numerics/valarray/87641.cc: New test.
54
55 2018-10-18 François Dumont <fdumont@gcc.gnu.org>
56
57 Partial revert.
58 2018-10-08 François Dumont <fdumont@gcc.gnu.org>
59
60 * include/debug/list (list<>::cbegin()): Use C++11 direct
61 initialization.
62 (list<>::cend()): Likewise.
63 (list<>::erase(const_iterator, const_iterator)): Ensure consistent
64 iterator comparisons.
65 (list<>::splice(const_iterator, list&&, const_iterator,
66 const_iterator)): Likewise.
67
68 Partial revert.
69 2018-10-15 François Dumont <fdumont@gcc.gnu.org>
70
71 * include/debug/vector (vector<>::cbegin()): Use C++11 direct
72 initialization.
73 (vector<>::cend()): Likewise.
74 (vector<>::insert(const_iterator, const _Tp&)): Use consistent
75 iterator comparison.
76 (vector<>::erase(const_iterator)): Likewise.
77 (vector<>::erase(const_iterator, const_iterator)): Likewise.
78
79 2018-10-17 Ville Voutilainen <ville.voutilainen@gmail.com>
80
81 PR libstdc++/87619
82 * include/std/variant (__select_index): Fix an off-by-one.
83 * testsuite/20_util/variant/87619.cc: New.
84
85 2018-10-16 Jonathan Wakely <jwakely@redhat.com>
86
87 * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
88 Fix default constructor to call correct function.
89
90 * testsuite/experimental/net/internet/address/v4/creation.cc: Do not
91 declare ip in global namespace, to avoid collision with struct ip
92 defined in <netinet/ip.h>.
93
94 * include/experimental/bits/net.h: Move versioned namespace macros
95 to correct location.
96 * include/experimental/buffer: Likewise.
97 * include/experimental/executor: Likewise.
98 * include/experimental/internet: Likewise.
99 * include/experimental/io_context: Likewise.
100 * include/experimental/netfwd: Likewise.
101 * include/experimental/socket: Likewise.
102 * include/experimental/timer: Likewise.
103
104 * config.h.in: Regenerate.
105 * configure: Regenerate.
106 * configure.ac: Check for headers used by Networking TS.
107 * include/experimental/executor: Include <condition_variable>
108 instead of <mutex>.
109 * include/experimental/internet: Use autoconf macros for available
110 headers. Include <sys/socket.h> for. Remove <cstring> and use
111 __builtin_memcpy and __builtin_strchr.
112 (resolver_errc) [!_GLIBCXX_HAVE_NETDB_H]: Do not define.
113 (address_v4::to_string, address_v6::to_string)
114 [!_GLIBCXX_HAVE_ARPA_INET_H]: Likewise.
115 (basic_resolver_results) [!_GLIBCXX_HAVE_NETDB_H]: Make private
116 constructors report errors.
117 [!_GLIBCXX_HAVE_NETINET_TCP_H] (tcp::no_delay): Do not define.
118 * include/experimental/io_context: Likewise.
119 * include/experimental/socket: Likewise.
120 [!_GLIBCXX_HAVE_SYS_SOCKET_H, !_GLIBCXX_HAVE_POLL_H] (socket_base): Do
121 not define nested types when relevant header not available.
122 (__socket_impl::native_non_blocking) [!_GLIBCXX_HAVE_FCNTL_H]: Report
123 an error.
124 (__basic_socket_impl::open, __basic_socket_impl::local_endpoint)
125 (__basic_socket_impl::bind) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
126 (__basic_socket_impl::io_control) [!_GLIBCXX_HAVE_SYS_IOCTL_H]:
127 Likewise.
128 (basic_socket::at_mark, basic_socket::shutdown)
129 (basic_socket::remote_endpoint, basic_socket::connect)
130 (basic_socket::async_connect) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
131 (basic_socket::available) [_GLIBCXX_HAVE_SYS_IOCTL_H]: Check macro
132 for <sys/ioctl.h> availability.
133 (basic_socket::wait) [!_GLIBCXX_HAVE_POLL_H]: Likewise.
134 (basic_datagram_socket::receive, basic_datagram_socket::async_receive)
135 (basic_datagram_socket::receive_from)
136 (basic_datagram_socket::async_receive_from)
137 (basic_datagram_socket::send, basic_datagram_socket::async_send)
138 (basic_datagram_socket::send_to, basic_datagram_socket::async_send_to)
139 [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
140 (basic_stream_socket::receive, basic_stream_socket::async_receive)
141 (basic_stream_socket::send, basic_stream_socket::async_send)
142 [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
143 (basic_socket_acceptor::listen, basic_socket_acceptor::accept)
144 (basic_socket_acceptor::async_accept) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
145 Likewise.
146 (basic_socket_acceptor::wait) [!_GLIBCXX_HAVE_POLL_H]: Likewise.
147
148 * testsuite/experimental/net/headers.cc: Remove dg-options.
149 * testsuite/experimental/net/buffer/arithmetic.cc: Replace dg-options
150 with dg-do using effective target.
151 * testsuite/experimental/net/buffer/const.cc: Likewise.
152 * testsuite/experimental/net/buffer/creation.cc: Likewise.
153 * testsuite/experimental/net/buffer/mutable.cc: Likewise.
154 * testsuite/experimental/net/buffer/size.cc: Likewise.
155 * testsuite/experimental/net/buffer/traits.cc: Likewise.
156 * testsuite/experimental/net/execution_context/use_service.cc:
157 Likewise.
158 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
159 Likewise.
160 * testsuite/experimental/net/internet/address/v4/cons.cc: Likewise.
161 * testsuite/experimental/net/internet/address/v4/creation.cc:
162 Likewise.
163 * testsuite/experimental/net/internet/address/v4/members.cc: Likewise.
164 * testsuite/experimental/net/internet/resolver/base.cc: Likewise.
165 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
166 Likewise.
167 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
168 Likewise.
169 * testsuite/experimental/net/timer/waitable/cons.cc: Likewise.
170 * testsuite/experimental/net/timer/waitable/dest.cc: Likewise.
171 * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
172
173 * include/experimental/socket (basic_socket::at_mark): Add missing
174 return.
175
176 * acinclude.m4 (GLIBCXX_CHECK_RANDOM_TR1): Replace with ...
177 (GLIBCXX_CHECK_DEV_RANDOM): New macro with more descriptive name.
178 Define _GLIBCXX_USE_DEV_RANDOM as well as _GLIBCXX_USE_RANDOM_TR1.
179 * config.h.in: Regenerate.
180 * configure: Regenerate.
181 * configure.ac: Use GLIBCXX_CHECK_DEV_RANDOM instead of
182 GLIBCXX_CHECK_RANDOM_TR1.
183 crossconfig.m4: Likewise.
184 * include/bits/random.h (random_device): Use _GLIBCXX_USE_DEV_RANDOM
185 instead of _GLIBCXX_USE_RANDOM_TR1.
186 * testsuite/26_numerics/random/random_device/cons/token.cc: Likewise.
187
188 2018-10-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
189
190 * testsuite/lib/dg-options.exp (add_options_for_net_ts): New proc.
191 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
192 Add dg-add-options net_ts.
193 * testsuite/experimental/net/internet/address/v4/cons.cc: Likewise.
194 * testsuite/experimental/net/internet/address/v4/creation.cc: Likewise.
195 * testsuite/experimental/net/internet/address/v4/members.cc: Likewise.
196 * testsuite/experimental/net/internet/resolver/base.cc: Likewise.
197 * testsuite/experimental/net/internet/resolver/ops/lookup.cc: Likewise.
198 * testsuite/experimental/net/internet/resolver/ops/reverse.cc: Likewise.
199
200 2018-10-16 Jonathan Wakely <jwakely@redhat.com>
201
202 * testsuite/20_util/duration/literals/range_neg.cc: Adjust pruned
203 diagnostic to account for quotes around 'constexpr'.
204 * testsuite/23_containers/deque/capacity/max_size.cc: Define static
205 variable.
206 * testsuite/23_containers/vector/capacity/max_size.cc: Likewise.
207
208 PR libstdc++/87618
209 * config/abi/pre/gnu.ver: Fix typos in patterns for basic_stringbuf.
210 * testsuite/27_io/basic_stringbuf/cons/char/default.cc: Disable
211 optimisation to check constructor definition can be linked to.
212 * testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: Likewise.
213
214 2018-10-15 Jonathan Wakely <jwakely@redhat.com>
215
216 * testsuite/22_locale/numpunct/members/char/3.cc: Adjust test to
217 account for change to glibc it_IT localedata (glibc bz#10797).
218
219 PR libstdc++/87587
220 * src/c++11/cxx11-shim_facets.cc: Suppress -Wabi warnings.
221
222 2018-10-15 François Dumont <fdumont@gcc.gnu.org>
223
224 * include/debug/vector (vector<>::cbegin()): Use C++11 direct
225 initialization.
226 (vector<>::cend()): Likewise.
227 (vector<>::emplace(const_iterator, _Args&&...)): Likewise and use
228 consistent iterator comparison.
229 (vector<>::insert(const_iterator, size_type, const _Tp&)): Likewise.
230 (vector<>::insert(const_iterator, _InputIterator, _InputIterator)):
231 Likewise.
232 (vector<>::erase(const_iterator)): Likewise.
233 (vector<>::erase(const_iterator, const_iterator)): Likewise.
234
235 2018-10-12 Jonathan Wakely <jwakely@redhat.com>
236
237 Initial commit of Networking TS implementation.
238 * include/Makefile.am: Add new headers.
239 * include/Makefile.in: Regenerate.
240 * include/experimental/bits/net.h: New header for common
241 implementation details of Networking TS.
242 * include/experimental/buffer: New header.
243 * include/experimental/executor: New header.
244 * include/experimental/internet: New header.
245 * include/experimental/io_context: New header.
246 * include/experimental/net: New header.
247 * include/experimental/netfwd: New header.
248 * include/experimental/socket: New header.
249 * include/experimental/timer: New header.
250 * testsuite/experimental/net/buffer/arithmetic.cc: New test.
251 * testsuite/experimental/net/buffer/const.cc: New test.
252 * testsuite/experimental/net/buffer/creation.cc: New test.
253 * testsuite/experimental/net/buffer/mutable.cc: New test.
254 * testsuite/experimental/net/buffer/size.cc: New test.
255 * testsuite/experimental/net/buffer/traits.cc: New test.
256 * testsuite/experimental/net/execution_context/use_service.cc: New
257 test.
258 * testsuite/experimental/net/headers.cc: New test.
259 * testsuite/experimental/net/internet/address/v4/comparisons.cc: New
260 test.
261 * testsuite/experimental/net/internet/address/v4/cons.cc: New test.
262 * testsuite/experimental/net/internet/address/v4/creation.cc: New
263 test.
264 * testsuite/experimental/net/internet/address/v4/members.cc: New
265 test.
266 * testsuite/experimental/net/internet/resolver/base.cc: New test.
267 * testsuite/experimental/net/internet/resolver/ops/lookup.cc: New
268 test.
269 * testsuite/experimental/net/internet/resolver/ops/reverse.cc: New
270 test.
271 * testsuite/experimental/net/timer/waitable/cons.cc: New test.
272 * testsuite/experimental/net/timer/waitable/dest.cc: New test.
273 * testsuite/experimental/net/timer/waitable/ops.cc: New test.
274
275 PR libstdc++/77691
276 * include/experimental/memory_resource (__resource_adaptor_imp): Do
277 not allocate sizes smaller than alignment when relying on guaranteed
278 alignment.
279 * testsuite/experimental/memory_resource/new_delete_resource.cc:
280 Adjust expected number of bytes allocated for alignof(max_align_t).
281
282 2018-10-11 François Dumont <fdumont@gcc.gnu.org>
283
284 * include/debug/forward_list
285 (forward_list<>::before_begin()): Use C++11 direct initialization.
286 (forward_list<>::begin()): Likewise.
287 (forward_list<>::end()): Likewise.
288 (forward_list<>::cbefore_begin()): Likewise.
289 (forward_list<>::cbegin()): Likewise.
290 (forward_list<>::cend()): Likewise.
291 (forward_list<>::emplace_after<>(const_iterator, _Args&&...)): Likewise.
292 (forward_list<>::insert_after(const_iterator, const _Tp&)): Likewise.
293 (forward_list<>::insert_after(const_iterator, _Tp&&)): Likewise.
294 (forward_list<>::insert_after(const_iterator, size_type, const _Tp&)):
295 Likewise.
296 (forward_list<>::insert_after(const_iterator, initializer_list<>)):
297 Likewise.
298 (forward_list<>::erase_after(const_iterator)): Likewise.
299 (forward_list<>::erase_after(const_iterator, const_iterator)): Likewise
300 and ensure consistent iterator comparison.
301
302 * include/bits/forward_list.h
303 (_Fwd_list_iterator<>::operator==): Replace member function with inline
304 friend.
305 (_Fwd_list_iterator<>::operator!=): Likewise.
306 (_Fwd_list_const_iterator<>::operator==): Likewise.
307 (_Fwd_list_const_iterator<>::operator!=): Likewise.
308 (operator==(const _Fwd_list_iterator<>&,
309 const _Fwd_list_const_iterator<>&)): Remove.
310 (operator!=(const _Fwd_list_iterator<>&,
311 const _Fwd_list_const_iterator<>&)): Remove.
312 (forward_list<>::_Node): Take typedef from base type.
313 (forward_list<>::iterator): Likewise.
314 (forward_list<>::const_iterator): Likewise.
315
316 2018-10-11 Jonathan Wakely <jwakely@redhat.com>
317
318 PR libstdc++/80538
319 * src/c++11/thread.cc (this_thread::__sleep_for)
320 [_GLIBCXX_HAVE_SLEEP]: Only call sleep for non-zero values.
321 Loop while sleep call is interrupted and until steady_clock
322 shows requested duration has elapsed.
323 (!_GLIBCXX_HAVE_USLEEP]: Use the _GLIBCXX_HAVE_SLEEP code path, but
324 avoiding the usleep call.
325 * testsuite/30_threads/this_thread/60421.cc: Test repeated
326 signal interruptions.
327
328 * include/bits/allocator.h
329 (operator==(const allocator<_Tp>&, const allocator<_Tp>))
330 (operator!=(const allocator<_Tp>&, const allocator<_Tp>)): Replace
331 with inline friends.
332 * include/ext/debug_allocator.h (operator==, operator!=): Replace
333 with inline friend functions that compare to rebound allocators.
334 * include/ext/malloc_allocator.h (operator==, operator!=): Likewise.
335 * include/ext/new_allocator.h (operator==, operator!=): Likewise.
336 * testsuite/ext/debug_allocator/eq.cc: New test.
337 * testsuite/ext/ext_pointer/alloc_eq.cc: New test.
338 * testsuite/ext/malloc_allocator/eq.cc: New test.
339 * testsuite/ext/new_allocator/eq.cc: New test.
340
341 2018-10-10 Jonathan Wakely <jwakely@redhat.com>
342
343 PR libstdc++/87544
344 * include/bits/stl_vector.h (vector::_S_max_size): Limit size to
345 PTRDIFF_MAX / sizeof(value_type).
346 * include/ext/malloc_allocator.h (malloc_allocator::max_size):
347 Likewise.
348 * include/ext/new_allocator.h (new_allocator::max_size): Likewise.
349 * testsuite/23_containers/vector/allocator/minimal.cc: Adjust
350 expected value for max_size().
351 * testsuite/23_containers/vector/capacity/87544.cc: New test.
352
353 2018-10-09 François Dumont <fdumont@gcc.gnu.org>
354
355 * include/bits/stl_list.h
356 (_List_operator<>::operator==): Replace member function with inline
357 friend.
358 (_List_operator<>::operator!=): Likewise.
359 (_List_const_operator<>::operator==): Likewise.
360 (_List_const_operator<>::operator!=): Likewise.
361 (operator==(const _List_iterator<>&, const _List_const_iterator<>&)):
362 Remove.
363 (operator!=(const _List_iterator<>&, const _List_const_iterator<>&)):
364 Remove.
365
366 2018-10-09 Jonathan Wakely <jwakely@redhat.com>
367
368 * include/bits/stringfwd.h (string, wstring, u16string, u32string):
369 Define typedefs outside of __cxx11 inline namespace.
370 * python/libstdcxx/v6/printers.py (register_type_printers): Also
371 register printers for typedefs in new location.
372
373 2018-10-08 Jonathan Wakely <jwakely@redhat.com>
374
375 PR libstdc++/87538
376 * testsuite/experimental/functional/87538.cc: New test.
377
378 PR libstdc++/87538
379 * include/std/functional (_Not_fn::operator()): Check value of
380 __is_nothrow_invocable as well.
381 * testsuite/20_util/function_objects/not_fn/87538.cc: New test.
382
383 2018-10-08 François Dumont <fdumont@gcc.gnu.org>
384
385 * include/debug/list (list<>::cbegin()): Use C++11 direct
386 initialization.
387 (list<>::cend()): Likewise.
388 (list<>::emplace<>(const_iterator, _Args&&...)): Likewise.
389 (list<>::insert(const_iterator, initializer_list<>)): Likewise.
390 (list<>::insert(const_iterator, size_type, const _Tp&)): Likewise.
391 (list<>::erase(const_iterator, const_iterator)): Ensure consistent
392 iterator comparisons.
393 (list<>::splice(const_iterator, list&&, const_iterator,
394 const_iterator)): Likewise.
395
396 2018-10-05 François Dumont <fdumont@gcc.gnu.org>
397
398 * include/bits/stl_tree.h
399 (_Rb_tree_iterator<>::operator==): Make inline friend.
400 (_Rb_tree_iterator<>::operator!=): Likewise.
401 (_Rb_tree_const_iterator<>::operator==): Likewise.
402 (_Rb_tree_const_iterator<>::operator!=): Likewise.
403 (operator==(const _Rb_tree_iterator<>&,
404 const _Rb_tree_const_iterator&)): Remove.
405 (operator!=(const _Rb_tree_iterator<>&,
406 const _Rb_tree_const_iterator&)): Remove.
407 (operator==(const _Rb_tree<>&, const _Rb_tree<>&)): Make inline friend.
408 (operator<(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
409 (operator!=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise and
410 deprecate.
411 (operator>(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
412 (operator<=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
413 (operator>=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
414 * include/debug/map.h (map<>::erase(const_iterator, const_iterator)):
415 Compare __victim with _Base::cend().
416 * include/debug/multimap.h
417 (multimap<>::erase(const_iterator, const_iterator)): Likewise.
418 * include/debug/set.h (set<>::erase(const_iterator, const_iterator)):
419 Compare __victim with _Base::cend().
420 * include/debug/multiset.h
421 (multiset<>::erase(const_iterator, const_iterator)): Likewise.
422
423 2018-10-03 Jonathan Wakely <jwakely@redhat.com>
424
425 PR libstdc++/59439
426 * src/c++98/locale.cc (locale::locale(const locale&)): Bypass
427 reference count updates for the classic locale.
428 (locale::~locale()): Likewise.
429 (locale::operator=(const locale&)): Likewise.
430 * src/c++98/locale_init.cc (locale::locale()): Likewise.
431 (locale::global(const locale&)): Likewise.
432
433 2018-10-03 François Dumont <fdumont@gcc.gnu.org>
434
435 * include/debug/map.h
436 (map<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
437 (map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
438 (map<>::insert(value_type&&)): Likewise.
439 (map<>::insert<>(_Pair&&)): Likewise.
440 (map<>::insert<>(const_iterator, _Pair&&)): Likewise.
441 (map<>::try_emplace): Likewise.
442 (map<>::insert_or_assign): Likewise.
443 (map<>::insert(node_type&&)): Likewise.
444 (map<>::insert(const_iterator, node_type&&)): Likewise.
445 (map<>::erase(const_iterator)): Likewise.
446 (map<>::erase(const_iterator, const_iterator)): Likewise.
447 * include/debug/multimap.h
448 (multimap<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
449 (multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
450 (multimap<>::insert<>(_Pair&&)): Likewise.
451 (multimap<>::insert<>(const_iterator, _Pair&&)): Likewise.
452 (multimap<>::insert(node_type&&)): Likewise.
453 (multimap<>::insert(const_iterator, node_type&&)): Likewise.
454 (multimap<>::erase(const_iterator)): Likewise.
455 (multimap<>::erase(const_iterator, const_iterator)): Likewise.
456 * include/debug/set.h
457 (set<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
458 (set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
459 (set<>::insert(value_type&&)): Likewise.
460 (set<>::insert<>(const_iterator, value_type&&)): Likewise.
461 (set<>::insert(const_iterator, node_type&&)): Likewise.
462 (set<>::erase(const_iterator)): Likewise.
463 (set<>::erase(const_iterator, const_iterator)): Likewise.
464 * include/debug/multiset.h
465 (multiset<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
466 (multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
467 (multiset<>::insert<>(value_type&&)): Likewise.
468 (multiset<>::insert<>(const_iterator, value_type&&)): Likewise.
469 (multiset<>::insert(node_type&&)): Likewise.
470 (multiset<>::insert(const_iterator, node_type&&)): Likewise.
471 (multiset<>::erase(const_iterator)): Likewise.
472 (multiset<>::erase(const_iterator, const_iterator)): Likewise.
473
474 2018-10-02 Marc Glisse <marc.glisse@inria.fr>
475
476 PR libstdc++/87258
477 * include/bits/stl_bvector.h (vector::begin(), vector::cbegin()):
478 Rebuild _M_start with an explicit 0 offset.
479
480 2018-10-02 Jonathan Wakely <jwakely@redhat.com>
481
482 * include/std/variant (__gen_vtable_impl::__visit_invoke): Call __get
483 directly instead of get, as caller ensures correct index is used.
484 (holds_alternative, get, get_if): Remove redundant inline specifiers.
485 (_VARIANT_RELATION_FUNCTION_TEMPLATE): Likewise.
486
487 2018-10-02 Joseph Myers <joseph@codesourcery.com>
488
489 * testsuite/lib/libstdc++.exp (libstdc++_init): Use
490 -fno-show-column in default cxxflags.
491
492 2018-10-01 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
493
494 * config/os/uclibc/os_defines.h (__NO_STRING_INLINES): Delete.
495
496 2018-10-01 Gerald Pfeifer <gerald@pfeifer.com>
497
498 * doc/xml/manual/allocator.xml: Adjust link to "Reconsidering
499 Custom Memory Allocation".
500
501 2018-10-01 Jonathan Wakely <jwakely@redhat.com>
502
503 * doc/html/*: Regenerate.
504
505 2018-09-30 Gerald Pfeifer <gerald@pfeifer.com>
506
507 * doc/xml/manual/messages.xml: Switch link to www.oracle.com
508 to https.
509
510 2018-09-30 Gerald Pfeifer <gerald@pfeifer.com>
511
512 * doc/xml/manual/policy_data_structures_biblio.xml: Update
513 link to Microsoft Component Model Object Technologies.
514
515 2018-09-29 Gerald Pfeifer <gerald@pfeifer.com>
516
517 * doc/xml/gnu/fdl-1.3.xml: The Free Software Foundation web
518 site now uses https. Also omit the unnecessary trailing slash.
519 * doc/xml/gnu/gpl-3.0.xml: Ditto.
520
521 2018-09-28 François Dumont <fdumont@gcc.gnu.org>
522
523 * include/debug/functions.h
524 (__foreign_iterator_aux3(const _Safe_iterator<>&, const _InputeIter&,
525 const _InputIter&, __true_type)): Use empty() rather than begin() ==
526 end().
527
528 2018-09-25 Mike Crowe <mac@mcrowe.com>
529
530 * include/std/condition_variable (condition_variable::wait_for): Use
531 steady clock in overload that uses a predicate.
532
533 2018-09-25 Jonathan Wakely <jwakely@redhat.com>
534
535 PR libstdc++/87431
536 * include/std/variant (_Variant_storage<true, _Types...>::_M_valid):
537 Avoid runtime test when all alternatives are scalars and so cannot
538 throw during initialization.
539
540 2018-09-25 Gerald Pfeifer <gerald@pfeifer.com>
541
542 * doc/xml/manual/codecvt.xml: Move link to "UTF-8 and Unicode FAQ"
543 to https.
544
545 2018-09-24 Gerald Pfeifer <gerald@pfeifer.com>
546
547 * doc/xml/manual/policy_data_structures_biblio.xml: Update link
548 to "Priority Queues and the STL".
549
550 2018-09-23 Gerald Pfeifer <gerald@pfeifer.com>
551
552 * doc/xml/manual/using_exceptions.xml: Move boost.orgs link to
553 https.
554
555 2018-09-21 François Dumont <fdumont@gcc.gnu.org>
556
557 PR libstdc++/87135
558 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
559 Use __builtin_floor to compute _M_next_resize.
560 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: Adapt.
561 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc:
562 Adapt.
563
564 2018-09-21 Jonathan Wakely <jwakely@redhat.com>
565
566 * testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Remove.
567 * testsuite/26_numerics/headers/cmath/hypot.cc: Restore test for
568 long double unconditionally, but use lower tolerance when
569 sizeof(long double) == sizeof(double).
570
571 2018-09-20 Christophe Lyon <christophe.lyon@linaro.org>
572
573 * testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Skip
574 on arm*.
575
576 2018-09-19 Jonathan Wakely <jwakely@redhat.com>
577
578 * include/bits/regex_automaton.tcc (_StateSeq<_TraitsT>::_M_clone()):
579 Remove __glibcxx_assert statements and use map::find instead of
580 map::operator[].
581
582 2018-09-18 François Dumont <fdumont@gcc.gnu.org>
583
584 PR libstdc++/87135
585 * src/c++11/hashtable_c++0x.cc:
586 (_Prime_rehash_policy::_M_next_bkt): Return a prime no smaller than
587 requested size, but not necessarily greater.
588 (_Prime_rehash_policy::_M_need_rehash): Rehash only if target size is
589 strictly greater than next resize threshold.
590 * testsuite/23_containers/unordered_map/modifiers/reserve.cc: Adapt test
591 to validate that there is no rehash as long as number of insertion is
592 lower or equal to the reserved number of elements.
593
594 2018-09-18 Jonathan Wakely <jwakely@redhat.com>
595
596 * include/bits/unique_ptr.h (__uniq_ptr_impl): Remove static assertion
597 checking invocable condition.
598 (unique_ptr::~unique_ptr, unique_ptr::reset): Restore static assertion
599 here, where types must be complete. Pass pointer to deleter as an
600 rvalue.
601 * testsuite/20_util/unique_ptr/requirements/incomplete.cc: New test.
602
603 2018-09-13 Jonathan Wakely <jwakely@redhat.com>
604
605 * include/std/variant (variant) [__clang__]: Limit workaround to
606 Clang 7 and older.
607
608 2018-09-11 Jonathan Wakely <jwakely@redhat.com>
609
610 PR libstdc++/87278
611 * include/bits/shared_ptr.h (make_shared): Use remove_cv instead of
612 remove_const.
613 * testsuite/20_util/shared_ptr/creation/87278.cc: New test.
614
615 Implement LWG 2905 changes to constrain unique_ptr constructors
616 * include/bits/unique_ptr.h (__uniq_ptr_impl): Add assertions to
617 check deleter type.
618 (unique_ptr::unique_ptr(pointer, const deleter_type&)): Add copy
619 constructible constraint.
620 (unique_ptr::unique_ptr(pointer, deleter_type&&)): Disable for
621 deleters of reference type and add move constructible constraint.
622 (unique_ptr::unique_ptr(pointer, remove_reference_t<deleter_type>&&)):
623 Disable for deleters of non-reference type. Define as deleted.
624 (unique_ptr<T[], D>): Likewise.
625 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Replace dg-error
626 directives with unstable line numbers with dg-prune-output.
627 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
628 * testsuite/20_util/unique_ptr/cons/lwg2905.cc: New test.
629 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
630 Make deleter types invocable.
631
632 2018-09-05 Jonathan Wakely <jwakely@redhat.com>
633
634 * libsupc++/cxxabi.h (__cxa_demangle): Clarify doxygen comment.
635
636 2018-09-03 Jonathan Wakely <jwakely@redhat.com>
637
638 PR libstdc++/78179
639 * testsuite/26_numerics/headers/cmath/hypot-long-double.cc: New test
640 that runs the long double part of hypot.cc.
641 * testsuite/26_numerics/headers/cmath/hypot.cc: Disable long double
642 tests unless TEST_HYPOT_LONG_DOUBLE is defined.
643
644 * include/bits/stl_vector.h (vector::_Temporary_value::_M_ptr):
645 Return raw pointer not allocator's pointer type.
646 (vector::_Temporary_value::_M_val): Use _M_ptr.
647
648 PR libstdc++/87194
649 * include/bits/stl_map.h
650 (map::map(initializer_list<value_type>, const Compare&, const Alloc&))
651 (map::map(initializer_list<value_type>, const Alloc&))
652 (map::map(InputIterator, InputIterator, const Alloc&))
653 (map::map(InputIterator, InputIterator))
654 (map::map(InputIterator, InputIterator, const Compare&, const Alloc&))
655 (map::insert(InputIterator, InputIterator)):
656 Call _M_insert_range_unique instead of _M_insert_unique.
657 * include/bits/stl_multimap.h
658 (multimap::multimap(initializer_list<value_type>, const C&, const A&))
659 (multimap::multimap(initializer_list<value_type>, const A&))
660 (multimap::multimap(InputIterator, InputIterator, const A&))
661 (multimap::multimap(InputIterator, InputIterator))
662 (multimap::multimap(InputIterator, InputIterator, const C&, const A&))
663 (multimap::insert(InputIterator, InputIterator)): Call
664 _M_insert_range_equal instead of _M_insert_equal.
665 * include/bits/stl_multiset.h
666 (multiset::multiset(InputIterator, InputIterator))
667 (multiset::multiset(InputIterator, InputIterator, const C&, const A&))
668 (multiset::multiset(initializer_list<value_type>, const C&, const A&))
669 (multiset::multiset(initializer_list<value_type>, const A&))
670 (multiset::multiset(InputIterator, InputIterator, const A&))
671 (multiset::insert(InputIterator, InputIterator)): Call
672 _M_insert_range_equal instead of _M_insert_equal.
673 * include/bits/stl_set.h
674 (set::set(InputIterator, InputIterator))
675 (set::set(InputIterator, InputIterator, const Compare&, const Alloc&))
676 (set::set(initializer_list<value_type>, const Compare&, const Alloc&))
677 (set::set(initializer_list<value_type>, const Alloc&))
678 (set::set(InputIterator, InputIterator, const Alloc&))
679 (set::insert(InputIterator, InputIterator)):
680 Call _M_insert_range_unique instead of _M_insert_unique.
681 * include/bits/stl_tree.h
682 [__cplusplus >= 201103L] (_Rb_tree::__same_value_type): New alias
683 template for SFINAE constraints.
684 [__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_unique): Pair of
685 constrained overloads that either insert or emplace, depending on
686 iterator's value_type.
687 [__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_equal): Likewise.
688 [__cplusplus < 201103L] (_Rb_tree::_M_insert_range_unique)
689 (_Rb_tree::_M_insert_range_equal): New functions replacing range
690 versions of _M_insert_unique and _M_insert_equal.
691 (_Rb_tree::_M_insert_unique(_InputIterator, _InputIterator))
692 (_Rb_tree::_M_insert_equal(_InputIterator, _InputIterator)): Remove.
693 * testsuite/23_containers/map/modifiers/insert/87194.cc: New test.
694 * testsuite/23_containers/multimap/modifiers/insert/87194.cc: New test.
695 * testsuite/23_containers/multiset/modifiers/insert/87194.cc: New test.
696 * testsuite/23_containers/set/modifiers/insert/87194.cc: New test.
697
698 PR libstdc++/78595
699 * include/bits/stl_map.h (map::insert(_Pair&&))
700 (map::insert(const_iterator, _Pair&&)): Do emplace instead of insert.
701 * include/bits/stl_multimap.h (multimap::insert(_Pair&&))
702 (multimap::insert(const_iterator, _Pair&&)): Likewise.
703 * include/bits/unordered_map.h (unordered_map::insert(_Pair&&))
704 (unordered_map::insert(const_iterator, _Pair&&))
705 (unordered_multimap::insert(_Pair&&))
706 (unordered_multimap::insert(const_iterator, _Pair&&)): Likewise.
707 * testsuite/23_containers/map/modifiers/insert/78595.cc: New test.
708 * testsuite/23_containers/multimap/modifiers/insert/78595.cc: New test.
709 * testsuite/23_containers/unordered_map/modifiers/78595.cc: New test.
710 * testsuite/23_containers/unordered_multimap/modifiers/78595.cc: New
711 test.
712
713 2018-09-02 François Dumont <fdumont@gcc.gnu.org>
714
715 * include/debug/safe_iterator.h
716 (_Safe_iterator<_It, _Seq, _Cat>::_Self): New.
717 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>::_Self):
718 New.
719 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
720 ::_OtherSelf): New.
721 (_GLIBCXX_DEBUG_VERIFY_OPERANDS, _GLIBCXX_DEBUG_VERIFY_EQ_OPERANDS)
722 (_GLIBCXX_DEBUG_VERIFY_REL_OPERANDS)
723 (_GLIBCXX_DEBUG_VERIFY_DIST_OPERANDS): Define macros.
724 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
725 ::operator+(difference_type)): Use latters, inline as friend.
726 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
727 ::operator-(difference_type)): Likewise.
728 (operator==(const _Safe_iterator<>&, const _Safe_iterator<>&)):
729 Likewise.
730 (operator!=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
731 Likewise.
732 (operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
733 (operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
734 Likewise.
735 (operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
736 (operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
737 Likewise.
738 (operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
739 (operator+(difference_type, const _Safe_iterator<>&)): Likewise.
740 (operator-(const _Safe_iterator<>&, difference_type)): Likewise.
741 * include/debug/safe_iterator.tcc
742 (_Safe_iterator<>::_M_can_advance(difference_type)): Take parameter by
743 copy.
744 * include/debug/safe_local_iterator.h
745 (_Safe_local_iterator<_It, _Seq>::_Self): New.
746 (_Safe_local_iterator<_It, _Seq>::_OtherSelf): New.
747 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Define macro.
748 (operator==(const _Safe_local_iterator<>&,
749 const _Safe_local_iterator<>&)): Use latter, inline as friend.
750 (operator!=(const _Safe_local_iterator<>&,
751 const _Safe_local_iterator<>&)): Likewise.
752 * testsuite/util/testsuite_containers.h: Include utility.
753 (struct forward_members_unordered<_Tp, bool>): Remove 2nd template
754 parameter.
755 (forward_members_unordered<>::forward_members_unordered(value_type&)):
756 Add using namespace std::rel_ops.
757 Add iterator_concept_checks on local_iterator and const_local_iterator.
758 Add asserts on comparison between const_local_iterator and
759 local_iterator.
760 (struct forward_members_unordered<_Tp, false>): Remove partial
761 specialization.
762 * testsuite/23_containers/forward_list/types/1.cc: New.
763 * testsuite/23_containers/list/types/1.cc: New.
764
765 2018-09-01 Gerald Pfeifer <gerald@pfeifer.com>
766
767 * doc/xml/manual/profile_mode.xml: Update three ieeexplore.ieee.org
768 references.
769
770 2018-08-31 Sandra Loosemore <sandra@codesourcery.com>
771
772 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
773 Add dg-require-fileio.
774 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
775 Likewise.
776 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc:
777 Likewise.
778 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
779 Likewise.
780 * testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc:
781 Likewise.
782 * testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
783 Likewise.
784 * testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc: Likewise.
785 * testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc: Likewise.
786 * testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc: Likewise.
787 * testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc: Likewise.
788 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc: Likewise.
789 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc:
790 Likewise.
791 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc:
792 Likewise.
793 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc:
794 Likewise.
795 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc:
796 Likewise.
797 * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc:
798 Likewise.
799 * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc:
800 Likewise.
801 * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc:
802 Likewise.
803 * testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise.
804 * testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise.
805 * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: Likewise.
806 * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: Likewise.
807 * testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc:
808 Likewise.
809 * testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc:
810 Likewise.
811 * testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise.
812 * testsuite/27_io/basic_istream/getline/wchar_t/5.cc: Likewise.
813 * testsuite/27_io/basic_istream/ignore/wchar_t/2.cc: Likewise.
814 * testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise.
815 * testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc: Likewise.
816 * testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc: Likewise.
817 * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: Likewise.
818 * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: Likewise.
819 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc:
820 Likewise.
821 * testsuite/27_io/objects/wchar_t/10.cc: Likewise.
822 * testsuite/27_io/objects/wchar_t/12048-1.cc: Likewise.
823 * testsuite/27_io/objects/wchar_t/12048-2.cc: Likewise.
824 * testsuite/27_io/objects/wchar_t/12048-3.cc: Likewise.
825 * testsuite/27_io/objects/wchar_t/12048-4.cc: Likewise.
826 * testsuite/27_io/objects/wchar_t/12048-5.cc: Likewise.
827 * testsuite/experimental/string_view/inserters/wchar_t/2.cc:
828 Likewise.
829 * testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc: Likewise.
830
831 2018-08-30 Sandra Loosemore <sandra@codesourcery.com>
832
833 * testsuite/experimental/propagate_const/observers/1.cc: Make
834 dependence on -fdelete-null-pointer-checks explicit.
835
836 2018-08-30 Jonathan Wakely <jwakely@redhat.com>
837
838 * include/bits/hashtable_policy.h (__clp2): Fix calculation for LLP64
839 targets where sizeof(size_t) > sizeof(long). Avoid undefined shifts
840 of the number of bits in the type.
841 * include/std/bit (__ceil2): Avoid undefined shifts.
842 * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Test values with
843 the most signifiant bit set.
844
845 * config/abi/pre/gnu.ver: Add missing exports for mingw.
846
847 * include/ext/pointer.h (_Pointer_adapter): Define operators for
848 pointer arithmetic using long long offsets.
849 * testsuite/ext/ext_pointer/1.cc: Test pointer arithmetic using
850 long long values.
851
852 2018-08-29 Jonathan Wakely <jwakely@redhat.com>
853
854 PR libstdc++/31413
855 * testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Check D_FMT
856 string for alternative format.
857
858 2018-08-28 Jonathan Wakely <jwakely@redhat.com>
859
860 PR libstdc++/87116
861 * src/filesystem/std-path.cc (path::lexically_normal): When handling
862 a dot-dot filename, preserve an empty final component in the iteration
863 sequence.
864 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use preferred-separator for
865 root-directory.
866 * testsuite/27_io/filesystem/path/generation/normal.cc: Add new tests
867 for more than two adjacent dot-dot filenames.
868 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Replace slashes with
869 preferred-separator in expected normalized strings.
870
871 2018-08-25 Iain Sandoe <iain@sandoe.co.uk>
872
873 PR libstdc++/70694
874 * configure.host (OPT_LDFLAGS): Don't append
875 -fvisibility-inlines-hidden for newer Darwin.
876
877 2018-08-24 Marc Glisse <marc.glisse@inria.fr>
878
879 PR libstdc++/86822
880 * libsupc++/new (operator new(size_t, nothrow_t), operator
881 new[](size_t, nothrow_t), operator new(size_t, align_val_t, nothrow_t),
882 operator new[](size_t, align_val_t, nothrow_t)): Add malloc attribute.
883
884 2018-08-24 Jonathan Wakely <jwakely@redhat.com>
885
886 * include/debug/deque (std::__debug::deque): Declare.
887 * include/debug/forward_list (std::__debug::forward_list): Declare.
888 * include/debug/list (std::__debug::list): Declare.
889 * include/debug/map (std::__debug::map): Declare.
890 * include/debug/set (std::__debug::set): Declare.
891 * include/debug/unordered_map (std::__debug::unordered_map): Declare.
892 * include/debug/unordered_set (std::__debug::unordered_set): Declare.
893 * include/debug/vector (std::__debug::vector): Declare.
894 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: New test.
895 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: New
896 test.
897 * testsuite/23_containers/list/pmr_typedefs_debug.cc: New test.
898 * testsuite/23_containers/map/pmr_typedefs_debug.cc: New test.
899 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc: New test.
900 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc: New test.
901 * testsuite/23_containers/set/pmr_typedefs_debug.cc: New test.
902 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc: New
903 test.
904 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
905 New test.
906 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
907 New test.
908 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc: New
909 test.
910 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
911 Adjust dg-error lineno.
912 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: New
913 test.
914
915 2018-08-23 Jonathan Wakely <jwakely@redhat.com>
916
917 * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
918 Only define when RTTI is enabled.
919
920 * include/debug/vector (__niter_base): Define for C++98.
921
922 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
923 Fix C++98 test to not use C++11 features.
924 * testsuite/25_algorithms/fill_n/2.cc: Likewise.
925
926 * scripts/check_compile: Fix comments.
927
928 * include/debug/string (insert(__const_iterator, _InIter, _InIter)):
929 [!_GLIBCXX_USE_CXX11_ABI]: Replace use of C++11-only cbegin() with
930 begin(), for C++98 compatibility.
931
932 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
933 (basic_string::__const_iterator): Change access to protected.
934 [!_GLIBCXX_USE_CXX11_ABI] (basic_string::__const_iterator): Define
935 as typedef for iterator.
936 * include/debug/string (__const_iterator): Use typedef from base.
937 (insert(const_iterator, _CharT))
938 (replace(const_iterator, const_iterator, const basic_string&))
939 (replace(const_iterator, const_iterator, const _CharT*, size_type))
940 (replace(const_iterator, const_iterator, const CharT*))
941 (replace(const_iterator, const_iterator, size_type, _CharT))
942 (replace(const_iterator, const_iterator, _InputIter, _InputIter))
943 (replace(const_iterator, const_iterator, initializer_list<_CharT>)):
944 Change const_iterator parameters to __const_iterator.
945 (insert(iterator, size_type, _CharT)): Add C++98 overload.
946 (insert(const_iterator, _InputIterator, _InputIterator)): Change
947 const_iterator parameter to __const_iterator.
948 [!_GLIBCXX_USE_CXX11_ABI]: Add workaround for incorrect return type
949 of base's member function.
950 (insert(const_iterator, size_type, _CharT)) [!_GLIBCXX_USE_CXX11_ABI]:
951 Likewise.
952 (insert(const_iterator, initializer_list<_CharT>))
953 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
954 * testsuite/21_strings/basic_string/init-list.cc: Remove effective
955 target directive.
956
957 * testsuite/20_util/reference_wrapper/lwg2993.cc: Fix C++11 test to
958 not use C++14 feature.
959 * testsuite/23_containers/list/68222_neg.cc: Likewise.
960
961 * testsuite/21_strings/basic_string/init-list.cc:
962 Require cxx11-abi.
963 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
964 Likewise.
965 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
966 Likewise.
967
968 * testsuite/23_containers/deque/capacity/max_size.cc: Fix test for
969 C++98 mode.
970 * testsuite/23_containers/deque/modifiers/assign/1.cc: Likewise.
971 * testsuite/23_containers/list/modifiers/assign/1.cc: Likewise.
972 * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: Likewise.
973 * testsuite/23_containers/vector/capacity/max_size.cc: Likewise.
974 * testsuite/23_containers/vector/modifiers/assign/1.cc: Likewise.
975
976 2018-08-22 Jonathan Wakely <jwakely@redhat.com>
977
978 PR libstdc++/87061
979 * include/experimental/regex [!_GLIBCXX_USE_CXX11_ABI]
980 (experimental::pmr::match_results, experimental::pmr::cmatch)
981 (experimental::pmr::smatch, experimental::pmr::wcmatch)
982 (experimental::pmr::wsmatch): Do not declare for gcc4-compatible ABI,
983 because COW strings don't support C++11 allocator model.
984 * include/experimental/string [!_GLIBCXX_USE_CXX11_ABI]
985 (experimental::pmr::basic_string, experimental::pmr::string)
986 (experimental::pmr::u16string, experimental::pmr::u32string)
987 (experimental::pmr::wstring): Likewise.
988 * include/std/regex [!_GLIBCXX_USE_CXX11_ABI] (pmr::match_results)
989 (pmr::cmatch, pmr::smatch, pmr::wcmatch, pmr::wsmatch): Likewise.
990 * include/std/string [!_GLIBCXX_USE_CXX11_ABI] (pmr::basic_string)
991 (pmr::string, pmr::u16string, pmr::u32string, pmr::wstring): Likewise.
992 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Require
993 cxx11-abi.
994 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
995
996 PR libstdc++/78448
997 * include/bits/deque.tcc (deque::_M_range_initialize): Use
998 _S_check_init_len to check size.
999 (deque::_M_push_back_aux, deque::_M_push_front_aux): Throw length
1000 error if size would exceed max_size().
1001 * include/bits/stl_deque.h (_Deque_base::size_type): Remove typedef.
1002 (_Deque_base(_Deque_base&&, const allocator_type&, size_t)): Use
1003 size_t instead of size_type.
1004 (deq(size_type, const allocator_type&)
1005 (deq(size_type, const value_type&, const allocator_type&)
1006 (deque::_M_initialize_dispatch): Use _S_check_init_len to check size.
1007 (deque::max_size): Call _S_max_size.
1008 (deque::_S_check_init_len, deque::_S_max_size): New functions.
1009 * include/bits/stl_vector.h (vector(size_type, const allocator_type&))
1010 (vector(size_type, const value_type&, const allocator_type&))
1011 (vector::_M_initialize_dispatch, vector::_M_range_initialize): Use
1012 _S_check_init_len to check size.
1013 (vector::max_size): Call _S_max_size.
1014 (vector::_M_check_len): Prevent max from being expanded as a
1015 function-like macro.
1016 (vector::_S_check_init_len, vector::_S_max_size): New functions.
1017 * include/bits/vector.tcc (vector::_M_assign_aux): Use
1018 _S_check_init_len to check size.
1019 * testsuite/23_containers/deque/capacity/max_size.cc: New test.
1020 * testsuite/23_containers/vector/capacity/max_size.cc: New test.
1021
1022 2018-08-22 François Dumont <fdumont@gcc.gnu.org>
1023
1024 PR libstdc++/68222
1025 * include/debug/safe_iterator.h
1026 (_Safe_iterator<_It, _Sq, _Cat>): Add category template parameter.
1027 (_Safe_iterator<>::_Const_iterator): Remove.
1028 (_Safe_iterator<>::_IsConstant): New.
1029 (_Safe_iterator<>::_OtherIterator): New.
1030 (_Safe_iterator<_It, _Sq, _Cat>::_Safe_iterator<_MutIte>(
1031 const _Safe_iterator<_MutIte, _Sq, _Cat>&)): Add _IsConstant::__value in
1032 __gnu_cxx::__enable_if condition.
1033 (_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_to): New.
1034 (_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_from_begin): New.
1035 (_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_to_end): New.
1036 (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>): New.
1037 (_Safe_iterator<_It, _Sq, _Cat>::operator--()): Move...
1038 (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
1039 ::operator--()): ...here.
1040 (_Safe_iterator<_It, _Sq, _Cat>::operator--(int)): Move...
1041 (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
1042 ::operator--(int)): ...here.
1043 (_Safe_iterator<_It, _Sq, _Cat>::_M_decrementable()): Move...
1044 (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
1045 ::_M_decrementable()): ...here.
1046 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>): New.
1047 (_Safe_iterator<_It, _Sq, _Cat>::operator[](const difference_type&)):
1048 Move...
1049 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
1050 ::operator[](const difference_type&)): ...here.
1051 (_Safe_iterator<_It, _Sq, _Cat>::operator+=(const difference_type&)):
1052 Move...
1053 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
1054 ::operator+=(const difference_type&)): ...here.
1055 (_Safe_iterator<_It, _Sq, _Cat>::operator+(const difference_type&)):
1056 Move...
1057 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
1058 ::operator+(const difference_type&)): ...here.
1059 (_Safe_iterator<_It, _Sq, _Cat>::operator-=(const difference_type&)):
1060 Move...
1061 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
1062 ::operator-=(const difference_type&)): ...here.
1063 (_Safe_iterator<_It, _Sq, _Cat>::operator-(const difference_type&)):
1064 Move...
1065 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
1066 ::operator-(const difference_type&)): ...here.
1067 (operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)):
1068 Constraint to random access iterators.
1069 (operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
1070 Likewise.
1071 (operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
1072 (operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
1073 Likewise.
1074 (operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
1075 (operator+(const difference_type&, const _Safe_iterator<>&)): Likewise.
1076 (__check_dereferenceable(const _Safe_iterator<>&)): Remove.
1077 (__get_distance): Remove.
1078 (__get_distance_from_begin): Remove.
1079 (__get_distance_to_end): Remove.
1080 (struct __is_safe_random_iterator<_Safe_iterator<>>): Remove partial
1081 specialization.
1082 (__base(const _Safe_iterator<>&, std::input_iterator_tag)): Remove.
1083 (__base(const _Safe_iterator<>&, std::random_access_iterator_tag)): Remove.
1084 (__base(const _Safe_iterator<>&)): Constraint to random access iterator.
1085 * include/debug/safe_iterator.tcc
1086 (_Safe_iterator<>::_M_get_distance_from_begin()): New.
1087 (_Safe_iterator<>::_M_get_distance_to_end()): New.
1088 (_Safe_iterator<>::_M_get_distance_to(const _Safe_iterator<>&)): New.
1089 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
1090 ::_M_valid_range): New.
1091 * include/debug/safe_local_iterator.h
1092 (_Safe_local_iterator<>::_Const_local_iterator): Remove.
1093 (_Safe_local_iterator<>::_IsConstant): New.
1094 (_Safe_local_iterator<>::_OtherIterator): New.
1095 (_Safe_local_iterator<_It, _Cont>::_Safe_local_iterator<_MutIte, _Cont>(
1096 const _Safe_local_iterator<_MutIte, _Seq>&)): Add _IsConstant::__value
1097 in __gnu_cxx::__enable_if condition. If singular compare base iterator
1098 with _MutIte rather than _It.
1099 (_Safe_local_iterator<>::_S_constant): Make constexpr.
1100 (_Safe_local_iterator<>::_M_get_distance_to): New.
1101 (__check_dereferenceable(const _Safe_local_iterator<>&)): Remove.
1102 (__get_distance(const _Safe_local_iterator<>&,
1103 const _Safe_local_iterator<>&, std::input_iterator_tag)): Remove.
1104 (__valid_range(const _Safe_local_iterator<>&,
1105 const _Safe_local_iterator<>&)): New.
1106 * include/debug/safe_local_iterator.tcc
1107 (_Safe_local_iterator<>::_M_get_distance_to): New.
1108 * include/debug/deque (std::__debug::deque<>): Add
1109 ::__gnu_debug::_Safe_iterator<> friend declaration.
1110 * include/debug/forward_list (std::__debug::forward_list<>): Likewise.
1111 * include/debug/list (std::__debug::list<>): Likewise.
1112 * include/debug/map.h (std::__debug::map<>): Likewise.
1113 * include/debug/multimap.h (std::__debug::multimap<>): Likewise.
1114 * include/debug/set.h (std::__debug::set<>): Likewise.
1115 * include/debug/multiset.h (std::__debug::multiset<>): Likewise.
1116 * include/debug/string (std::__debug::basic_string<>): Likewise.
1117 * include/debug/unordered_map (std::__debug::unordered_map<>): Likewise
1118 and add ::__gnu_debug::_Safe_local_iterator<> friend declaration.
1119 (std::__debug::unordered_multimap<>): Likewise.
1120 * include/debug/unordered_set (std::__debug::unordered_set<>): Likewise.
1121 (std::__debug::unordered_multiset<>): Likewise.
1122 * include/debug/formatter.h: Adapt.
1123 * include/debug/helper_functions.h
1124 (__gnu_debug::_Safe_local_iterator<>): Add declaration.
1125 (__get_distance<_Ite>(_Ite, _Ite, std::random_access_iterator_tag):
1126 Pass parameter by copy.
1127 (__get_distance<_Ite>(_Ite, _Ite, std::input_iterator_tag): Likewise.
1128 (__get_distance<_Ite>(_Ite, _Ite): Likewise.
1129 (__valid_range_aux<_Integral>): Pass _Integral by copy.
1130 (__valid_range<_InputIterator>): Pass _InputIterator by copy.
1131 (__valid_range<>(const _Safe_iterator<>&,
1132 const _Safe_iterator<>&, typename _Distance_traits<>::__type&)):
1133 Declare.
1134 (__valid_range(const _Safe_local_iterator<>&,
1135 const _Safe_local_iterator<>&, typename _Distance_traits<>::__type&)):
1136 Declare.
1137 (__valid_range<>(const _Safe_iterator<>&, const _Safe_iterator<>&)):
1138 Declare.
1139 (__valid_range(const _Safe_local_iterator<>&, const _Safe_local_iterator<>&)):
1140 Declare.
1141 (__can_advance): Adapt.
1142 (struct __is_safe_random_iterator<>): Remove.
1143 (struct _SIter_base<>): Remove.
1144 * include/debug/functions.h: Include <bits/stl_iterator.h>.
1145 (__check_dereferenceable): Remove.
1146 (__foreign_iterator_aux4, __foreign_iterator_aux3): Adapt.
1147 (__foreign_iterator_aux2, __foreign_iterator_aux): Adapt.
1148 (__foreign_iterator): Adapt.
1149 * include/debug/stl_iterator.h
1150 (__is_safe_random_iterator<std::reverse_iterator<>>): Remove.
1151 (__base(const std::reverse_iterator<_Safe_iterator<_It, _Sq>)):
1152 Constraint for random access iterators.
1153 (__niter_base): Adapt.
1154 * testsuite/util/testsuite_containers.h:
1155 Include <bits/boost_concept_check.h>.
1156 (iterator_concept_checks<_It, _Mutable, _Category>): New.
1157 (citerator<_Cont>::forward_members::forward_members()): Instantiate
1158 latter for container iterator and const_iterator.
1159 * testsuite/23_containers/list/68222_neg.cc: New.
1160 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: Adapt
1161 line number.
1162 * testsuite/23_containers/unordered_set/debug/debug_functions.cc:
1163 (test01): Remove.
1164 * testsuite/23_containers/vector/debug/debug_functions.cc (test01):
1165 Remove.
1166
1167 2018-08-22 Jonathan Wakely <jwakely@redhat.com>
1168
1169 PR libstdc++/77854
1170 * doc/xml/manual/status_cxx1998.xml: Document size_type and
1171 difference_type for containers.
1172 * doc/html/*: Regenerate.
1173
1174 2018-08-21 François Dumont <fdumont@gcc.gnu.org>
1175
1176 P0646R1 Improving the Return Value of Erase-Like Algorithms I
1177 * include/debug/forward_list (forward_list::__remove_return_type):
1178 Define typedef as size_type or void, according to __cplusplus value.
1179 (_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
1180 empty, according to __cplusplus value.
1181 (_GLIBCXX20_ONLY): Define macro.
1182 (forward_list::remove, forward_list::unique): Use typedef and macro
1183 to change return type and add abi-tag for C++2a. Return number of
1184 removed elements for C++2a.
1185 (forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
1186 typedef to change return type for C++2a. Return number of removed
1187 elements for C++2a.
1188 * include/debug/list (list::__remove_return_type): Define typedef as
1189 size_type or void, according to __cplusplus value.
1190 (_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
1191 empty, according to __cplusplus value.
1192 (_GLIBCXX20_ONLY): Define macro.
1193 (list::remove, list::unique): Use typedef and macro to change return
1194 type and add abi-tag for C++2a. Return number of removed elements for
1195 C++2a.
1196 (list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use typedef
1197 to change return type for C++2a. Return number of removed elements for
1198 C++2a.
1199
1200 2018-08-21 David Edelsohn <dje.gcc@gmail.com>
1201
1202 * testsuite/18_support/new_nothrow.cc: XFAIL on AIX.
1203
1204 2018-08-21 Jonathan Wakely <jwakely@redhat.com>
1205
1206 * testsuite/26_numerics/bit/bitops.count/countl_one.cc: Remove
1207 redundant dg-do directive.
1208 * testsuite/26_numerics/bit/bitops.count/countl_zero.cc: Likewise.
1209 * testsuite/26_numerics/bit/bitops.count/countr_one.cc: Likewise.
1210 * testsuite/26_numerics/bit/bitops.count/countr_zero.cc: Likewise.
1211 * testsuite/26_numerics/bit/bitops.count/popcount.cc: Likewise.
1212
1213 2018-08-20 Jonathan Wakely <jwakely@redhat.com>
1214
1215 PR libstdc++/86963
1216 * include/std/tuple (_Tuple_impl::operator=): Define as deleted.
1217 (_Tuple_impl::_M_assign): New functions to perform assignment instead
1218 of assignment operators.
1219 (_Tuple_impl::_M_swap): Remove exception specification.
1220 (_Tuple_impl<_Idx, _Head>): Likewise.
1221 (_TC::_NonNestedTuple, _TC::_NotSameTuple): Use __remove_cvref_t.
1222 (__tuple_base): Remove.
1223 (tuple, tuple<_T1, _T2>): Remove inheritance from __tuple_base.
1224 (tuple::operator=, tuple<_T1, _T2>::operator=): Call _M_assign.
1225 (tuple::swap, tuple<_T1, _T2>::swap): Define exception specification
1226 using __is_nothrow_swappable.
1227 (tuple<_T1, _T2>::tuple(_U1&&, _U2&&)): Use __remove_cvref_t.
1228
1229 * include/std/optional (_Optional_payload): Use variable templates
1230 for conditions in default template arguments and exception
1231 specifications.
1232 (optional): Likewise. Adjust indentation.
1233 (optional::__not_self, optional::__not_tag, optional::_Requires): New
1234 SFINAE helpers.
1235 (optional::optional): Use new helpers in constructor constraints.
1236 * include/std/type_traits (__or_v, __and_v): New variable templates.
1237 * testsuite/20_util/optional/cons/value_neg.cc: Change dg-error to
1238 dg-prune-output. Remove unused header.
1239
1240 2018-08-18 François Dumont <fdumont@gcc.gnu.org>
1241
1242 * testsuite/25_algorithms/copy/86658.cc: Use dg-options to define
1243 _GLIBCXX_DEBUG.
1244
1245 2018-08-17 Jonathan Wakely <jwakely@redhat.com>
1246
1247 PR libstdc++/86963
1248 * include/std/tuple (__tuple_base): New class template with deleted
1249 copy assignment operator.
1250 (tuple, tuple<_T1, _T2>): Derive from __tuple_base<tuple> so that
1251 implicit copy/move assignment operator will be deleted/suppressed.
1252 (tuple::__assignable, tuple<_T1, _T2>::__assignable): New helper
1253 functions for SFINAE constraints on assignment operators.
1254 (tuple::__nothrow_assignable, tuple<_T1, _T2>::__nothrow_assignable):
1255 New helper functions for exception specifications.
1256 (tuple::operator=(const tuple&), tuple::operator=(tuple&&))
1257 (tuple<_T1, _T2>::operator=(const tuple&))
1258 (tuple<_T1, _T2>::operator=(tuple&&)): Change parameter types to
1259 __nonesuch_no_braces when the operator should be defined implicitly.
1260 Use __nothrow_assignable for exception specifications.
1261 (tuple::operator=(const tuple<_UElements...>&))
1262 (tuple::operator=(tuple<_UElements...>&&))
1263 (tuple<_T1, _T2>::operator=(const tuple<_U1, _U2>&))
1264 (tuple<_T1, _T2>::operator=(tuple<_U1, _U2>&&))
1265 (tuple<_T1, _T2>::operator=(const pair<_U1, _U2>&))
1266 (tuple<_T1, _T2>::operator=(pair<_U1, _U2>&&)): Constrain using
1267 __assignable and use __nothrow_assignable for exception
1268 specifications.
1269 * python/libstdcxx/v6/printers.py (is_specialization_of): Accept
1270 gdb.Type as first argument, instead of a string.
1271 (StdTuplePrinter._iterator._is_nonempty_tuple): New method to check
1272 tuple for expected structure.
1273 (StdTuplePrinter._iterator.__init__): Use _is_nonempty_tuple.
1274 * testsuite/20_util/tuple/dr2729.cc: New test.
1275 * testsuite/20_util/tuple/element_access/get_neg.cc: Change dg-error
1276 to dg-prune-output.
1277
1278 2018-08-16 Jonathan Wakely <jwakely@redhat.com>
1279
1280 * include/tr1/legendre_function.tcc (__sph_legendre): Avoid warning
1281 about signed/unsigned comparison.
1282
1283 * include/std/ostream (basic_ostream::sentry::~sentry): Suppress
1284 deprecation warnings for using uncaught_exception().
1285
1286 PR libstdc++/86447
1287 * src/c++11/cow-stdexcept.cc [_GLIBCXX_FULLY_DYNAMIC_STRING]
1288 (logic_error::logic_error(logic_error&&))
1289 (logic_error::operator=(logic_error&&))
1290 (runtime_error::runtime_error(runtime_error&&))
1291 (runtime_error::operator=(runtime_error&&)): Copy strings instead of
1292 moving, to avoid allocating empty reps for moved-from strings.
1293
1294 2018-08-15 Jonathan Wakely <jwakely@redhat.com>
1295
1296 * include/experimental/regex: Remove begin/end macros for namespace.
1297 * include/experimental/string: Likewise.
1298 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc:
1299 New test.
1300 * testsuite/experimental/polymorphic_allocator/
1301 pmr_typedefs_forward_list.cc: New test.
1302 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc:
1303 New test.
1304 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc:
1305 New test.
1306 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
1307 New test.
1308 * testsuite/experimental/polymorphic_allocator/
1309 pmr_typedefs_multimap.cc: New test.
1310 * testsuite/experimental/polymorphic_allocator/
1311 pmr_typedefs_multiset.cc: New test.
1312 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc:
1313 New test.
1314 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
1315 New test.
1316 * testsuite/experimental/polymorphic_allocator/
1317 pmr_typedefs_unordered_map.cc: New test.
1318 * testsuite/experimental/polymorphic_allocator/
1319 pmr_typedefs_unordered_multimap.cc: New test.
1320 * testsuite/experimental/polymorphic_allocator/
1321 pmr_typedefs_unordered_multiset.cc: New test.
1322 * testsuite/experimental/polymorphic_allocator/
1323 pmr_typedefs_unordered_set.cc: New test.
1324 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc:
1325 New test.
1326
1327 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
1328 calls to __uses_allocator_construct_impl and __use_alloc.
1329 * include/experimental/memory_resource
1330 (polymorphic_allocator::_M_construct): Remove.
1331 (polymorphic_allocator::construct): Call __uses_allocator_construct.
1332 Qualify calls to __use_alloc.
1333 * include/std/memory_resource (polymorphic_allocator::construct): Fix
1334 type in SFINAE constraint. Use constexpr if instead of tag dispatching
1335 to _S_construct overloads.
1336 (polymorphic_allocator::construct(pair<T1, T2>*, ...)): Fix order of
1337 arguments to _S_construct_p.
1338 (polymorphic_allocator::_S_construct): Remove.
1339 (polymorphic_allocator::_S_construct_p): Return allocators by value
1340 not by reference.
1341 * include/std/scoped_allocator (scoped_allocator_adaptor::construct):
1342 Qualify calls to __use_alloc.
1343 * testsuite/20_util/polymorphic_allocator/construct_pair.cc: New test,
1344 copied from testsuite/20_util/scoped_allocator/construct_pair.cc.
1345 * testsuite/experimental/polymorphic_allocator/1.cc: New test.
1346 * testsuite/experimental/polymorphic_allocator/construct_pair.cc:
1347 New test.
1348
1349 * src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS]
1350 (atomic_mem_res): Add unsynchronized definition for single-threaded.
1351
1352 2018-08-14 Jonathan Wakely <jwakely@redhat.com>
1353
1354 PR libstdc++/86954
1355 * include/bits/stl_tempbuf.h (return_temporary_buffer): Use
1356 non-placement delete.
1357
1358 * include/std/chrono (__check_overflow): Simplify definition.
1359 (_Checked_integral_constant): Remove.
1360
1361 PR libstdc++/86846
1362 * src/c++17/default_resource.h: New file, defining default_res.
1363 * src/c++17/memory_resource.cc [ATOMIC_POINTER_LOCK_FREE != 2]
1364 (atomic_mem_res): Define alternative for atomic<memory_resource*>
1365 using a mutex instead of atomics.
1366
1367 PR libstdc++/85343
1368 * config/abi/pre/gnu.ver: Export new symbol.
1369 * doc/xml/manual/abi.xml: Document new versions.
1370 * include/bits/fstream.tcc (basic_filebuf<C, T>::underflow)
1371 (basic_filebuf<C, T>::xsgetn): Pass errno to __throw_ios_failure.
1372 * include/bits/functexcept.h (__throw_ios_failure(const char*, int)):
1373 Declare new overload.
1374 * src/c++11/cxx11-ios_failure.cc (__ios_failure): Add new constructor
1375 and static member function.
1376 (__throw_ios_failure(const char*, int)): Define.
1377 * src/c++98/ios_failure.cc [!_GLIBCXX_USE_DUAL_ABI]
1378 (__throw_ios_failure(const char*, int)): Define.
1379
1380 2018-08-14 Jeremy Sawicki <jeremy-gcc@sawicki.us>
1381
1382 * include/ext/rope (_Rope_iterator_base(const _Rope_iterator_base&))
1383 (_Rope_const_iterator::operator=(const _Rope_const_iterator&))
1384 (_Rope_iterator::operator=(const _Rope_iterator&)): Ensure
1385 copied/assigned rope iterators don't retain pointers to the iterator
1386 they were copied/assigned from.
1387 * testsuite/ext/rope/7.cc: New.
1388
1389 2018-08-13 Jonathan Wakely <jwakely@redhat.com>
1390
1391 PR libstdc++/45093
1392 * include/bits/stl_tree.h (_Rb_tree::_M_destroy_node(_Link_type)):
1393 Combine definitions to avoid --detect-odr-violations warning.
1394
1395 * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Use
1396 __is_pow2 to check for valid alignment. Avoid branching when rounding
1397 size to multiple of alignment.
1398
1399 * include/Makefile.am: Install <bit> and <version> for freestanding.
1400 * include/Makefile.in: Regenerate.
1401 * testsuite/17_intro/freestanding.cc: Check for <bit> and <version>.
1402
1403 Revert
1404 2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
1405
1406 PR target/85904
1407 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for
1408 Newlib.
1409 * configure: Regenerate.
1410
1411 2018-08-10 Jonathan Wakely <jwakely@redhat.com>
1412
1413 PR libstdc++/68210
1414 * doc/xml/manual/intro.xml: Document LWG 206 change.
1415 * libsupc++/del_op.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
1416 * libsupc++/del_opa.cc: Likewise.
1417 * libsupc++/del_opant.cc: Likewise.
1418 * libsupc++/del_opnt.cc: Likewise. Call operator delete(ptr) instead
1419 of free(ptr).
1420 * libsupc++/del_ops.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
1421 * libsupc++/del_opsa.cc: Likewise.
1422 * libsupc++/del_opva.cc: Likewise.
1423 * libsupc++/del_opvant.cc: Likewise.
1424 * libsupc++/del_opvnt.cc: Likewise. Call operator delete[](ptr)
1425 instead of operator delete(ptr).
1426 * libsupc++/del_opvs.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
1427 * libsupc++/del_opvsa.cc: Likewise.
1428 * libsupc++/new_op.cc: Use __builtin_expect in check for zero size.
1429 * libsupc++/new_opa.cc: Use nullptr instead of literal 0.
1430 * libsupc++/new_opant.cc: Likewise. Replace _GLIBCXX_USE_NOEXCEPT
1431 with noexcept.
1432 * libsupc++/new_opnt.cc: Likewise. Call operator new(sz) instead of
1433 malloc(sz).
1434 * libsupc++/new_opvant.cc: Use nullptr and noexcept.
1435 * libsupc++/new_opvnt.cc: Likewise. Call operator new[](sz) instead of
1436 operator new(sz, nothrow).
1437 * testsuite/18_support/new_nothrow.cc: New test.
1438
1439 2018-08-10 Martin Liska <mliska@suse.cz>
1440
1441 * libsupc++/new_op.cc (new): Remove __builtin_expect as malloc
1442 predictor can handle that.
1443 * libsupc++/new_opa.cc: Likewise.
1444 * libsupc++/new_opnt.cc (new): Likewise.
1445
1446 2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
1447
1448 PR target/85904
1449 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for
1450 Newlib.
1451 * configure: Regenerate.
1452
1453 2018-08-10 Jonathan Wakely <jwakely@redhat.com>
1454
1455 * include/std/deque (std::pmr::deque): Declare alias.
1456 * include/std/forward_list (std::pmr::forward_list): Likewise.
1457 * include/std/list (std::pmr::list): Likewise.
1458 * include/std/map (std::pmr::map, std::pmr::multimap): Likewise.
1459 * include/std/regex (std::pmr::match_results, std::pmr::cmatch)
1460 (std::pmr::smatch, std::pmr::wcmatch, std::pmr::wsmatch): Likewise.
1461 * include/std/set (std::pmr::set, std::pmr::multiset): Likewise.
1462 * include/std/string (std::pmr::basic_string, std::pmr::string)
1463 (std::pmr::u16string, std::pmr::u32string, std::pmr::wstring):
1464 Likewise.
1465 * include/std/unordered_map (std::pmr::unordered_map)
1466 (std::pmr::unordered_multimap): Likewise.
1467 * include/std/unordered_set (std::pmr::unordered_set)
1468 (std::pmr::unordered_multiset): Likewise.
1469 * include/std/vector (std::pmr::vector): Likewise.
1470 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: New test.
1471 * testsuite/23_containers/deque/types/pmr_typedefs.cc: New test.
1472 * testsuite/23_containers/forward_list/pmr_typedefs.cc: New test.
1473 * testsuite/23_containers/list/pmr_typedefs.cc: New test.
1474 * testsuite/23_containers/map/pmr_typedefs.cc: New test.
1475 * testsuite/23_containers/multimap/pmr_typedefs.cc: New test.
1476 * testsuite/23_containers/multiset/pmr_typedefs.cc: New test.
1477 * testsuite/23_containers/set/pmr_typedefs.cc: New test.
1478 * testsuite/23_containers/unordered_map/pmr_typedefs.cc: New test.
1479 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: New
1480 test.
1481 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: New
1482 test.
1483 * testsuite/23_containers/unordered_set/pmr_typedefs.cc: New test.
1484 * testsuite/23_containers/vector/pmr_typedefs.cc: New test.
1485 * testsuite/28_regex/match_results/pmr_typedefs.cc: New test.
1486
1487 2018-08-08 François Dumont <fdumont@gcc.gnu.org>
1488
1489 * include/bits/stl_algo.h
1490 (__rotate(_Ite, _Ite, _Ite, forward_iterator_tag))
1491 (__rotate(_Ite, _Ite, _Ite, bidirectional_iterator_tag))
1492 (__rotate(_Ite, _Ite, _Ite, random_access_iterator_tag)): Move code
1493 duplication...
1494 (rotate(_Ite, _Ite, _Ite)): ...here.
1495 (__stable_partition_adaptive(_FIt, _FIt, _Pred, _Dist, _Pointer, _Dist)):
1496 Simplify rotate call.
1497 (__rotate_adaptive(_BIt1, _BIt1, _BIt1, _Dist, _Dist, _Bit2, _Dist)):
1498 Likewise.
1499 (__merge_without_buffer(_BIt, _BIt, _BIt, _Dist, _Dist, _Comp)):
1500 Likewise.
1501
1502 2018-08-08 Jonathan Wakely <jwakely@redhat.com>
1503
1504 * libsupc++/new_opa.cc (aligned_alloc): Declare inside namespace to
1505 avoid clashing with an ::aligned_alloc function that was not detected
1506 by configure.
1507
1508 * doc/xml/manual/using.xml: Fix markup for empty table entry.
1509 * doc/html/*: Regenerate.
1510
1511 * doc/xml/manual/using.xml: Add missing header to table and fix typo.
1512 * doc/html/*: Regenerate.
1513
1514 PR libstdc++/86597
1515 * include/bits/fs_dir.h (directory_entry::_M_file_type(error_code&)):
1516 Clear error_code when cached type is used.
1517 * testsuite/27_io/filesystem/directory_entry/86597.cc: New test.
1518
1519 2018-08-07 Jonathan Wakely <jwakely@redhat.com>
1520
1521 PR libstdc++/86874
1522 * include/std/variant (_Copy_ctor_base::_M_destructive_move): Define
1523 here instead of in _Move_assign_base.
1524 (_Copy_ctor_base<true, _Types...>::_M_destructive_move): Define.
1525 (_Copy_assign_base::operator=): Use _M_destructive_move when changing
1526 the contained value to another alternative.
1527 (_Move_assign_base::operator=): Likewise.
1528 (_Move_assign_base::_M_destructive_move): Remove.
1529 * testsuite/20_util/variant/86874.cc: New test.
1530
1531 PR libstdc++/86861
1532 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc):
1533 Replace macro with inline function.
1534 [__sun]: Increase alignment to meet memalign precondition.
1535 [!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN]
1536 (aligned_alloc): Move check for valid alignment to operator new.
1537 Remove redundant check for non-zero size, it's enforced by the caller.
1538 (operator new): Move check for valid alignment here. Use
1539 __builtin_expect on check for zero size.
1540
1541 * config/abi/pre/gnu.ver: Export monotonic_buffer_resource members.
1542 * include/std/memory_resource (monotonic_buffer_resource::release):
1543 Call _M_release_buffers to free buffers.
1544 (monotonic_buffer_resource::do_allocate): Call _M_new_buffer to
1545 allocate a new buffer from upstream.
1546 (monotonic_buffer_resource::_M_new_buffer): Declare.
1547 (monotonic_buffer_resource::_M_release_buffers): Declare.
1548 (monotonic_buffer_resource::_Chunk): Replace definition with
1549 declaration as opaque type.
1550 * src/c++17/memory_resource.cc (monotonic_buffer_resource::_Chunk):
1551 Define.
1552 (monotonic_buffer_resource::_M_new_buffer): Define.
1553 (monotonic_buffer_resource::_M_release_buffers): Define.
1554
1555 2018-08-05 François Dumont <fdumont@gcc.gnu.org>
1556
1557 * include/bits/stl_iterator.h: Fix comment.
1558
1559 2018-08-03 Jonathan Wakely <jwakely@redhat.com>
1560
1561 * src/c++11/system_error.cc
1562 (system_error_category::default_error_condition): Add workaround for
1563 ENOTEMPTY and EEXIST having the same value on AIX.
1564 * testsuite/19_diagnostics/error_category/system_category.cc: Add
1565 extra testcases for EDOM, EILSEQ, ERANGE, EEXIST and ENOTEMPTY.
1566
1567 2018-08-01 Jonathan Wakely <jwakely@redhat.com>
1568
1569 * configure: Regenerate.
1570 * configure.ac: Add -D_GLIBCXX_ASSERTIONS to default DEBUG_FLAGS.
1571 * src/c++11/futex.cc: Use __glibcxx_assert instead of
1572 _GLIBCXX_DEBUG_ASSERT.
1573
1574 2018-08-01 Mike Crowe <mac@mcrowe.com>
1575
1576 * include/std/condition_variable (wait_for): Use steady_clock.
1577
1578 2018-08-01 Mike Crowe <mac@mcrowe.com>
1579
1580 * include/std/condition_variable (wait_until): Only report timeout
1581 if we really have timed out when measured against the
1582 caller-supplied clock.
1583 * testsuite/30_threads/condition_variable/members/2.cc: Add test
1584 case to confirm above behaviour.
1585
1586 2018-08-01 Jonathan Wakely <jwakely@redhat.com>
1587
1588 PR libstdc++/60555
1589 * src/c++11/system_error.cc
1590 (system_error_category::default_error_condition): New override to
1591 check for POSIX errno values.
1592 * testsuite/19_diagnostics/error_category/generic_category.cc: New
1593 * testsuite/19_diagnostics/error_category/system_category.cc: New
1594 test.
1595
1596 2018-07-31 Jonathan Wakely <jwakely@redhat.com>
1597
1598 PR libstdc++/86751
1599 * include/bits/stl_pair.h (__pair_base): New class with deleted copy
1600 assignment operator.
1601 (pair): Derive from __pair_base.
1602 (pair::operator=): Remove deleted overload.
1603 * python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer
1604 so that new base class isn't shown in GDB.
1605 * testsuite/20_util/pair/86751.cc: New test.
1606 * testsuite/20_util/pair/ref_assign.cc: New test.
1607
1608 * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
1609 (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Move definitions here.
1610 (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Likewise. Use !__is_identifier
1611 instead of __has_builtin.
1612 * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
1613 (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Remove definitions from here.
1614 * include/std/version [!_GLIBCXX_HAS_GTHREADS]
1615 (__cpp_lib_shared_timed_mutex, __cpp_lib_scoped_lock)
1616 (__cpp_lib_shared_mutex): Don't define when Gthreads not in use.
1617 [!_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP]
1618 (__cpp_lib_has_unique_object_representations): Don't define when
1619 builtin not available.
1620 [!_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE] (__cpp_lib_is_aggregate):
1621 Likewise.
1622 [!_GLIBCXX_HAVE_BUILTIN_LAUNDER] (__cpp_lib_launder): Likewise.
1623 * libsupc++/new (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Remove definition
1624 from here.
1625
1626 * doc/xml/manual/test.xml: Improve documentation on writing tests for
1627 newer standards.
1628 * doc/xml/manual/using.xml: Document all headers for C++11 and later.
1629 * doc/html/*: Regenerate.
1630
1631 * include/ext/pointer.h [__cplusplus >= 201103L]
1632 (_Pointer_adapter::operator bool): Add explicit conversion operator
1633 to replace safe bool idiom.
1634
1635 2018-07-30 Jonathan Wakely <jwakely@redhat.com>
1636
1637 PR libstdc++/86734
1638 * include/bits/stl_iterator.h (reverse_iterator::operator->): Call
1639 _S_to_pointer (LWG 1052, LWG 2118).
1640 (reverse_iterator::_S_to_pointer): Define overloaded helper functions.
1641 * testsuite/24_iterators/reverse_iterator/dr1052.cc: New test.
1642 * testsuite/24_iterators/reverse_iterator/dr2188.cc: New test.
1643
1644 * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add
1645 workaround for aligned_alloc bug on AIX.
1646 * testsuite/18_support/new_aligned.cc: New test.
1647
1648 2018-07-26 Marek Polacek <polacek@redhat.com>
1649
1650 * testsuite/30_threads/condition_variable_any/cond.cc: New.
1651
1652 2018-07-26 Marek Polacek <polacek@redhat.com>
1653
1654 * src/c++98/locale_init.cc: Fix #ifdef condition.
1655
1656 2018-07-26 Jonathan Wakely <jwakely@redhat.com>
1657
1658 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Add
1659 dg-require-cstdint directive.
1660 * testsuite/20_util/allocator/overaligned.cc: Likewise.
1661 * testsuite/20_util/any/cons/aligned.cc: Likewise.
1662 * testsuite/20_util/monotonic_buffer_resource/allocate.cc: Likewise.
1663 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: Likewise.
1664 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1665 Likewise.
1666 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1667 * testsuite/23_containers/list/modifiers/insert/25288.cc: Likewise.
1668 * testsuite/23_containers/set/allocator/move_assign.cc: Likewise.
1669 * testsuite/25_algorithms/make_heap/complexity.cc: Likewise.
1670 * testsuite/25_algorithms/pop_heap/complexity.cc: Require cstdint and
1671 random_device effective-target.
1672 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
1673 * testsuite/25_algorithms/sample/1.cc: Require cstdint.
1674 * testsuite/25_algorithms/sample/2.cc: Likewise.
1675 * testsuite/25_algorithms/sort_heap/complexity.cc: Require cstdint
1676 and random_device.
1677 * testsuite/26_numerics/headers/random/types_std_c++0x.cc: Require
1678 cstdint.
1679 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
1680 Likewise.
1681 * testsuite/26_numerics/random/discard_block_engine/requirements/
1682 constexpr_data.cc: Likewise.
1683 * testsuite/26_numerics/random/discard_block_engine/requirements/
1684 constexpr_functions.cc: Likewise.
1685 * testsuite/26_numerics/random/independent_bits_engine/requirements/
1686 constexpr_functions.cc: Likewise.
1687 * testsuite/26_numerics/random/linear_congruential_engine/requirements/
1688 constexpr_data.cc: Likewise.
1689 * testsuite/26_numerics/random/linear_congruential_engine/requirements/
1690 constexpr_functions.cc: Likewise.
1691 * testsuite/26_numerics/random/mersenne_twister_engine/requirements/
1692 constexpr_data.cc: Likewise.
1693 * testsuite/26_numerics/random/mersenne_twister_engine/requirements/
1694 constexpr_functions.cc: Likewise.
1695 * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
1696 * testsuite/26_numerics/random/seed_seq/cons/65631.cc: Likewise.
1697 * testsuite/26_numerics/random/shuffle_order_engine/requirements/
1698 constexpr_data.cc: Add dg-require-cstdint directive.
1699 * testsuite/26_numerics/random/shuffle_order_engine/requirements/
1700 constexpr_functions.cc: Likewise.
1701 * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
1702 constexpr_data.cc: Likewise.
1703 * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
1704 constexpr_functions.cc: Likewise.
1705 * testsuite/26_numerics/random/uniform_real_distribution/operators/
1706 64351.cc: Likewise.
1707 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Likewise.
1708 * testsuite/experimental/algorithm/sample-2.cc: Likewise.
1709 * testsuite/experimental/algorithm/sample.cc: Likewise.
1710 * testsuite/experimental/algorithm/search.cc: Likewise.
1711 * testsuite/experimental/algorithm/shuffle.cc: Likewise.
1712 * testsuite/experimental/any/cons/aligned.cc: Likewise.
1713 * testsuite/experimental/memory_resource/new_delete_resource.cc:
1714 Likewise.
1715 * testsuite/experimental/memory_resource/resource_adaptor.cc: Likewise.
1716 * testsuite/experimental/random/randint.cc: Likewise.
1717 * testsuite/experimental/source_location/1.cc: Likewise.
1718 * testsuite/ext/bitmap_allocator/overaligned.cc: Likewise.
1719 * testsuite/ext/malloc_allocator/overaligned.cc: Likewise.
1720 * testsuite/ext/mt_allocator/overaligned.cc: Likewise.
1721 * testsuite/ext/new_allocator/overaligned.cc: Likewise.
1722 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
1723 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1724 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1725 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1726 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1727 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1728 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1729 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1730 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1731 * testsuite/ext/pool_allocator/overaligned.cc: Likewise.
1732 * testsuite/ext/throw_allocator/check_allocate_max_size.cc: Likewise.
1733 * testsuite/ext/throw_allocator/check_deallocate_null.cc: Likewise.
1734 * testsuite/ext/throw_allocator/check_delete.cc: Likewise.
1735 * testsuite/ext/throw_allocator/check_new.cc: Likewise.
1736 * testsuite/ext/throw_allocator/deallocate_global.cc: Likewise.
1737 * testsuite/ext/throw_allocator/deallocate_local.cc: Likewise.
1738 * testsuite/ext/throw_allocator/explicit_instantiation.cc: Likewise.
1739 * testsuite/ext/throw_allocator/variadic_construct.cc: Likewise.
1740 * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Likewise.
1741
1742 * testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
1743 * testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise.
1744 * testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise.
1745 * testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
1746 Likewise.
1747 * testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
1748 * testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
1749 * testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
1750 Likewise.
1751 * testsuite/30_threads/recursive_mutex/requirements/standard_layout.cc:
1752 Likewise.
1753 * testsuite/30_threads/recursive_mutex/requirements/typedefs.cc:
1754 Likewise.
1755 * testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
1756 * testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
1757 * testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
1758 * testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
1759 * testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
1760 * testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
1761 Likewise.
1762 * testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc:
1763 Likewise.
1764 * testsuite/30_threads/recursive_timed_mutex/dest/
1765 destructor_locked.cc: Likewise.
1766 * testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
1767 * testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
1768 * testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
1769 Likewise.
1770 * testsuite/30_threads/recursive_timed_mutex/native_handle/
1771 typesizes.cc: Likewise.
1772 * testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc:
1773 Likewise.
1774 * testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
1775 Likewise.
1776 * testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
1777 Likewise.
1778 * testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
1779 Likewise.
1780 * testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
1781 Likewise.
1782 * testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
1783 Likewise.
1784 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
1785 Likewise.
1786 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
1787 Likewise.
1788 * testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
1789 * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
1790 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
1791 * testsuite/30_threads/scoped_lock/requirements/
1792 explicit_instantiation.cc: Likewise.
1793 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
1794 * testsuite/30_threads/shared_future/cons/assign.cc: Likewise.
1795 * testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
1796 * testsuite/30_threads/shared_future/cons/copy.cc: Likewise.
1797 * testsuite/30_threads/shared_future/cons/default.cc: Likewise.
1798 * testsuite/30_threads/shared_future/cons/move.cc: Likewise.
1799 * testsuite/30_threads/shared_future/cons/move_assign.cc: Likewise.
1800 * testsuite/30_threads/shared_future/members/45133.cc: Likewise.
1801 * testsuite/30_threads/shared_future/members/get.cc: Likewise.
1802 * testsuite/30_threads/shared_future/members/get2.cc: Likewise.
1803 * testsuite/30_threads/shared_future/members/valid.cc: Likewise.
1804 * testsuite/30_threads/shared_future/members/wait.cc: Likewise.
1805 * testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
1806 * testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
1807 * testsuite/30_threads/shared_future/requirements/
1808 explicit_instantiation.cc: Likewise.
1809 * testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
1810 * testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
1811 * testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
1812 * testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
1813 * testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
1814 * testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
1815 * testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
1816 * testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
1817 * testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
1818 * testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
1819 * testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
1820 * testsuite/30_threads/shared_lock/requirements/
1821 explicit_instantiation.cc: Likewise.
1822 * testsuite/30_threads/shared_lock/requirements/typedefs.cc: Likewise.
1823 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
1824 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: Likewise.
1825 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
1826 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
1827 Likewise.
1828 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
1829 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
1830 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
1831 * testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
1832 * testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc: Likewise.
1833 * testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc: Likewise.
1834 * testsuite/30_threads/shared_timed_mutex/requirements/
1835 standard_layout.cc: Likewise.
1836 * testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
1837 * testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
1838 * testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
1839 * testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
1840 * testsuite/30_threads/this_thread/1.cc: Likewise.
1841 * testsuite/30_threads/this_thread/2.cc: Likewise.
1842 * testsuite/30_threads/this_thread/3.cc: Likewise.
1843 * testsuite/30_threads/this_thread/4.cc: Likewise.
1844 * testsuite/30_threads/this_thread/58038.cc: Likewise.
1845 * testsuite/30_threads/thread/70503.cc: Likewise.
1846 * testsuite/30_threads/thread/84532.cc: Likewise.
1847 * testsuite/30_threads/thread/adl.cc: Likewise.
1848 * testsuite/30_threads/thread/cons/1.cc: Likewise.
1849 * testsuite/30_threads/thread/cons/2.cc: Likewise.
1850 * testsuite/30_threads/thread/cons/3.cc: Likewise.
1851 * testsuite/30_threads/thread/cons/4.cc: Likewise.
1852 * testsuite/30_threads/thread/cons/49668.cc: Likewise.
1853 * testsuite/30_threads/thread/cons/5.cc: Likewise.
1854 * testsuite/30_threads/thread/cons/6.cc: Likewise.
1855 * testsuite/30_threads/thread/cons/7.cc: Likewise.
1856 * testsuite/30_threads/thread/cons/8.cc: Likewise.
1857 * testsuite/30_threads/thread/cons/84535.cc: Likewise.
1858 * testsuite/30_threads/thread/cons/9.cc: Likewise.
1859 * testsuite/30_threads/thread/cons/assign_neg.cc: Likewise.
1860 * testsuite/30_threads/thread/cons/copy_neg.cc: Likewise.
1861 * testsuite/30_threads/thread/cons/lwg2097.cc: Likewise.
1862 * testsuite/30_threads/thread/cons/moveable.cc: Likewise.
1863 * testsuite/30_threads/thread/cons/terminate.cc: Likewise.
1864 * testsuite/30_threads/thread/id/operators.cc: Likewise.
1865 * testsuite/30_threads/thread/members/1.cc: Likewise.
1866 * testsuite/30_threads/thread/members/2.cc: Likewise.
1867 * testsuite/30_threads/thread/members/3.cc: Likewise.
1868 * testsuite/30_threads/thread/members/4.cc: Likewise.
1869 * testsuite/30_threads/thread/members/5.cc: Likewise.
1870 * testsuite/30_threads/thread/members/hardware_concurrency.cc:
1871 Likewise.
1872 * testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
1873 * testsuite/30_threads/thread/swap/1.cc: Likewise.
1874 * testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
1875 * testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
1876 * testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
1877 * testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
1878 * testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
1879 * testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
1880 * testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
1881 Likewise.
1882 * testsuite/30_threads/timed_mutex/requirements/
1883 standard_layout.cc: Likewise.
1884 * testsuite/30_threads/timed_mutex/requirements/typedefs.cc: Likewise.
1885 * testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
1886 * testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
1887 * testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
1888 * testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
1889 * testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
1890 * testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
1891 * testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
1892 * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
1893 * testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
1894 * testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
1895 * testsuite/30_threads/try_lock/1.cc: Likewise.
1896 * testsuite/30_threads/try_lock/2.cc: Likewise.
1897 * testsuite/30_threads/try_lock/3.cc: Likewise.
1898 * testsuite/30_threads/try_lock/4.cc: Likewise.
1899 * testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
1900 * testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
1901 * testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
1902 * testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
1903 * testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
1904 * testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
1905 * testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
1906 * testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
1907 * testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
1908 * testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
1909 * testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
1910 * testsuite/30_threads/unique_lock/requirements/
1911 explicit_instantiation.cc: Likewise.
1912 * testsuite/30_threads/unique_lock/requirements/typedefs.cc: Likewise.
1913
1914 * testsuite/30_threads/async/42819.cc: Remove dg-require-cstdint
1915 directive.
1916 * testsuite/30_threads/async/49668.cc: Likewise.
1917 * testsuite/30_threads/async/54297.cc: Likewise.
1918 * testsuite/30_threads/async/84532.cc: Likewise.
1919 * testsuite/30_threads/async/any.cc: Likewise.
1920 * testsuite/30_threads/async/async.cc: Likewise.
1921 * testsuite/30_threads/async/except.cc: Likewise.
1922 * testsuite/30_threads/async/forced_unwind.cc: Likewise.
1923 * testsuite/30_threads/async/launch.cc: Likewise.
1924 * testsuite/30_threads/async/lwg2021.cc: Likewise.
1925 * testsuite/30_threads/async/sync.cc: Likewise.
1926 * testsuite/30_threads/call_once/39909.cc: Likewise.
1927 * testsuite/30_threads/call_once/49668.cc: Likewise.
1928 * testsuite/30_threads/call_once/60497.cc: Likewise.
1929 * testsuite/30_threads/call_once/call_once1.cc: Likewise.
1930 * testsuite/30_threads/call_once/constexpr.cc: Likewise.
1931 * testsuite/30_threads/call_once/dr2442.cc: Likewise.
1932 * testsuite/30_threads/call_once/once_flag.cc: Likewise.
1933 * testsuite/30_threads/condition_variable/54185.cc: Likewise.
1934 * testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
1935 * testsuite/30_threads/condition_variable/cons/assign_neg.cc:
1936 Likewise.
1937 * testsuite/30_threads/condition_variable/cons/copy_neg.cc: Likewise.
1938 * testsuite/30_threads/condition_variable/members/1.cc: Likewise.
1939 * testsuite/30_threads/condition_variable/members/2.cc: Likewise.
1940 * testsuite/30_threads/condition_variable/members/3.cc: Likewise.
1941 * testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
1942 * testsuite/30_threads/condition_variable/members/68519.cc: Likewise.
1943 * testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
1944 Likewise.
1945 * testsuite/30_threads/condition_variable/requirements/
1946 standard_layout.cc: Likewise.
1947 * testsuite/30_threads/condition_variable/requirements/typedefs.cc:
1948 * Likewise.
1949 * testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
1950 * testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
1951 * testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
1952 * testsuite/30_threads/condition_variable_any/cons/assign_neg.cc:
1953 Likewise.
1954 * testsuite/30_threads/condition_variable_any/cons/copy_neg.cc:
1955 Likewise.
1956 * testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
1957 * testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
1958 * testsuite/30_threads/future/cons/assign_neg.cc: Likewise.
1959 * testsuite/30_threads/future/cons/constexpr.cc: Likewise.
1960 * testsuite/30_threads/future/cons/copy_neg.cc: Likewise.
1961 * testsuite/30_threads/future/cons/default.cc: Likewise.
1962 * testsuite/30_threads/future/cons/move.cc: Likewise.
1963 * testsuite/30_threads/future/cons/move_assign.cc: Likewise.
1964 * testsuite/30_threads/future/members/45133.cc: Likewise.
1965 * testsuite/30_threads/future/members/get.cc: Likewise.
1966 * testsuite/30_threads/future/members/get2.cc: Likewise.
1967 * testsuite/30_threads/future/members/share.cc: Likewise.
1968 * testsuite/30_threads/future/members/valid.cc: Likewise.
1969 * testsuite/30_threads/future/members/wait.cc: Likewise.
1970 * testsuite/30_threads/future/members/wait_for.cc: Likewise.
1971 * testsuite/30_threads/future/members/wait_until.cc: Likewise.
1972 * testsuite/30_threads/future/requirements/explicit_instantiation.cc:
1973 Likewise.
1974 * testsuite/30_threads/headers/condition_variable/types_std_c++0x.cc:
1975 Likewise.
1976 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
1977 * testsuite/30_threads/headers/mutex/types_std_c++0x.cc: Likewise.
1978 * testsuite/30_threads/headers/thread/std_c++0x_neg.cc: Likewise.
1979 * testsuite/30_threads/headers/thread/types_std_c++0x.cc: Likewise.
1980 * testsuite/30_threads/lock/1.cc: Likewise.
1981 * testsuite/30_threads/lock/2.cc: Likewise.
1982 * testsuite/30_threads/lock/3.cc: Likewise.
1983 * testsuite/30_threads/lock/4.cc: Likewise.
1984 * testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
1985 * testsuite/30_threads/lock_guard/requirements/
1986 explicit_instantiation.cc: Likewise.
1987 * testsuite/30_threads/lock_guard/requirements/typedefs.cc: Likewise.
1988 * testsuite/30_threads/mutex/cons/1.cc: Likewise.
1989 * testsuite/30_threads/mutex/cons/assign_neg.cc: Likewise.
1990 * testsuite/30_threads/mutex/cons/constexpr.cc: Likewise.
1991 * testsuite/30_threads/mutex/cons/copy_neg.cc: Likewise.
1992 * testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
1993 * testsuite/30_threads/mutex/lock/1.cc: Likewise.
1994 * testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
1995 * testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
1996 * testsuite/30_threads/mutex/requirements/standard_layout.cc::
1997 Likewise.
1998 * testsuite/30_threads/mutex/requirements/typedefs.cc: Likewise.
1999 * testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
2000 * testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
2001 * testsuite/30_threads/mutex/unlock/1.cc: Likewise.
2002 * testsuite/30_threads/mutex/unlock/2.cc: Likewise.
2003 * testsuite/30_threads/once_flag/cons/constexpr.cc: Likewise.
2004 * testsuite/30_threads/packaged_task/49668.cc: Likewise.
2005 * testsuite/30_threads/packaged_task/60564.cc: Likewise.
2006 * testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
2007 * testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
2008 * testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
2009 * testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
2010 * testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
2011 * testsuite/30_threads/packaged_task/cons/alloc2.cc: Likewise.
2012 * testsuite/30_threads/packaged_task/cons/alloc_min.cc: Likewise.
2013 * testsuite/30_threads/packaged_task/cons/assign_neg.cc: Likewise.
2014 * testsuite/30_threads/packaged_task/cons/copy_neg.cc: Likewise.
2015 * testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
2016 * testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
2017 * testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
2018 Likewise.
2019 * testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
2020 * testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
2021 * testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
2022 * testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
2023 * testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
2024 * testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
2025 * testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
2026 * testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
2027 * testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
2028 * testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
2029 * testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
2030 * testsuite/30_threads/packaged_task/requirements/
2031 explicit_instantiation.cc: Likewise.
2032 * testsuite/30_threads/packaged_task/uses_allocator.cc: Likewise.
2033 * testsuite/30_threads/promise/60966.cc: Likewise.
2034 * testsuite/30_threads/promise/69106.cc: Likewise.
2035 * testsuite/30_threads/promise/cons/1.cc: Likewise.
2036 * testsuite/30_threads/promise/cons/alloc.cc: Likewise.
2037 * testsuite/30_threads/promise/cons/alloc2.cc: Likewise.
2038 * testsuite/30_threads/promise/cons/alloc_min.cc: Likewise.
2039 * testsuite/30_threads/promise/cons/assign_neg.cc: Likewise.
2040 * testsuite/30_threads/promise/cons/copy_neg.cc: Likewise.
2041 * testsuite/30_threads/promise/cons/move.cc: Likewise.
2042 * testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
2043 * testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
2044 * testsuite/30_threads/promise/members/at_thread_exit2.cc: Likewise.
2045 * testsuite/30_threads/promise/members/get_future.cc: Likewise.
2046 * testsuite/30_threads/promise/members/get_future2.cc: Likewise.
2047 * testsuite/30_threads/promise/members/set_exception.cc: Likewise.
2048 * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
2049 * testsuite/30_threads/promise/members/set_value.cc: Likewise.
2050 * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
2051 * testsuite/30_threads/promise/members/set_value3.cc: Likewise.
2052 * testsuite/30_threads/promise/members/swap.cc: Likewise.
2053 * testsuite/30_threads/promise/requirements/explicit_instantiation.cc:
2054 * Likewise.
2055 * testsuite/30_threads/promise/uses_allocator.cc: Likewise.
2056
2057 * testsuite/18_support/numeric_limits/char16_32_t.cc: Qualify names
2058 from namespace std.
2059 * testsuite/20_util/align/2.cc: Remove dg-require-cstdint directive.
2060 * testsuite/20_util/duration/arithmetic/1.cc: Likewise.
2061 * testsuite/20_util/duration/arithmetic/2.cc: Likewise.
2062 * testsuite/20_util/duration/arithmetic/dr2020.cc: Likewise.
2063 * testsuite/20_util/duration/arithmetic/dr934-1.cc: Likewise.
2064 * testsuite/20_util/duration/arithmetic/dr934-2.cc: Likewise.
2065 * testsuite/20_util/duration/comparison_operators/1.cc: Likewise.
2066 * testsuite/20_util/duration/cons/1.cc: Likewise.
2067 * testsuite/20_util/duration/cons/1_neg.cc: Likewise.
2068 * testsuite/20_util/duration/cons/2.cc: Likewise.
2069 * testsuite/20_util/duration/cons/54025.cc: Likewise.
2070 * testsuite/20_util/duration/cons/dr974_neg.cc: Likewise.
2071 * testsuite/20_util/duration/requirements/explicit_instantiation/
2072 explicit_instantiation.cc: Likewise.
2073 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
2074 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
2075 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
2076 * testsuite/20_util/make_signed/requirements/typedefs-4.cc: Likewise.
2077 * testsuite/20_util/ratio/comparisons/comp1.cc: Likewise.
2078 * testsuite/20_util/ratio/comparisons/comp2.cc: Likewise.
2079 * testsuite/20_util/ratio/comparisons/comp3.cc: Likewise.
2080 * testsuite/20_util/ratio/cons/cons1.cc: Likewise.
2081 * testsuite/20_util/ratio/operations/45866.cc: Likewise.
2082 * testsuite/20_util/ratio/operations/47913.cc: Likewise.
2083 * testsuite/20_util/ratio/operations/53840.cc: Likewise.
2084 * testsuite/20_util/ratio/operations/ops1.cc: Likewise.
2085 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
2086 * testsuite/20_util/system_clock/1.cc: Likewise.
2087 * testsuite/20_util/time_point/1.cc: Likewise.
2088 * testsuite/20_util/time_point/2.cc: Likewise.
2089 * testsuite/20_util/time_point/3.cc: Likewise.
2090 * testsuite/20_util/time_point/requirements/explicit_instantiation/
2091 explicit_instantiation.cc: Likewise.
2092 * testsuite/21_strings/basic_string/requirements/
2093 explicit_instantiation/char16_t/1.cc: Likewise.
2094 * testsuite/21_strings/basic_string/requirements/
2095 explicit_instantiation/char32_t/1.cc: Likewise.
2096 * testsuite/21_strings/basic_string_view/requirements/
2097 explicit_instantiation/char16_t/1.cc: Likewise.
2098 * testsuite/21_strings/basic_string_view/requirements/
2099 explicit_instantiation/char32_t/1.cc: Likewise.
2100 * testsuite/21_strings/char_traits/requirements/
2101 explicit_instantiation/char16_t/1.cc: Likewise.
2102 * testsuite/21_strings/char_traits/requirements/
2103 explicit_instantiation/char32_t/1.cc: Likewise.
2104 * testsuite/21_strings/headers/string/types_std_c++0x.cc: Likewise.
2105 * testsuite/22_locale/codecvt/char16_t.cc: Likewise.
2106 * testsuite/22_locale/codecvt/char32_t.cc: Likewise.
2107 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
2108 Likewise.
2109 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc:
2110 Likewise.
2111 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
2112 Likewise.
2113 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
2114 * testsuite/23_containers/vector/bool/72847.cc: Likewise.
2115 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
2116 Likewise.
2117 * testsuite/experimental/string_view/requirements/
2118 explicit_instantiation/char16_t/1.cc: Likewise.
2119 * testsuite/experimental/string_view/requirements/
2120 explicit_instantiation/char32_t/1.cc: Likewise.
2121 * testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/
2122 1.cc: Likewise.
2123 * testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/
2124 1.cc: Likewise.
2125
2126 * include/ext/throw_allocator.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2127 (random_condition, throw_value_random, throw_allocator_random)
2128 (std::hash<throw_value_random>): Do not define when <tr1/random> is
2129 not usable.
2130 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_C99_STDINT_TR1]: Do not
2131 define transactional memory support when <stdint.h> is not usable.
2132
2133 * include/bits/hashtable_policy.h (__detail::__clp2): Use faster
2134 implementation that doesn't depend on <stdint.h> types.
2135 * include/std/memory (align) [!_GLIBCXX_USE_C99_STDINT_TR1]: Use
2136 std::size_t when std::uintptr_t is not usable.
2137 [!_GLIBCXX_USE_C99_STDINT_TR1] (pointer_safety, declare_reachable)
2138 (undeclare_reachable, declare_no_pointers, undeclare_no_pointers):
2139 Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
2140
2141 * include/bits/basic_string.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2142 (hash<u16string>, hash<u32string>): Remove dependency on
2143 _GLIBCXX_USE_C99_STDINT_TR1.
2144 * include/bits/char_traits.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2145 (char_traits<char16_t>, char_traits<char32_t>): Remove dependency on
2146 _GLIBCXX_USE_C99_STDINT_TR1. Use __UINT_LEAST16_TYPE__ and
2147 __UINT_LEAST32_TYPE__ or make_unsigned when <stdint.h> is not usable.
2148 * include/bits/codecvt.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2149 (codecvt<char16_t, char, mbstate_t>)
2150 (codecvt<char32_t, char, mbstate_t>)
2151 (codecvt_byname<char16_t, char, mbstate_t>)
2152 (codecvt_byname<char32_t, char, mbstate_t>): Remove dependency
2153 on _GLIBCXX_USE_C99_STDINT_TR1.
2154 * include/bits/locale_facets.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2155 (_GLIBCXX_NUM_UNICODE_FACETS): Likewise.
2156 * include/bits/stringfwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2157 (char_traits<char16_t>, char_traits<char32_t>)
2158 (basic_string<char16_t>, basic_string<char32_t>): Remove dependency
2159 on _GLIBCXX_USE_C99_STDINT_TR1.
2160 * include/experimental/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
2161 (u16string_view, u32string_view, hash<u16string_view>)
2162 (hash<u32string_view>, operator""sv(const char16_t, size_t))
2163 (operator""sv(const char32_t, size_t)): Likewise.
2164 * include/ext/vstring.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2165 (hash<__u16vstring>, hash<__u32vstring>): Likewise.
2166 * include/ext/vstring_fwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2167 (__u16vstring, __u16sso_string, __u16rc_string, __u32vstring)
2168 (__u32sso_string, __u32rc_string): Likewise.
2169 * include/std/codecvt [!_GLIBCXX_USE_C99_STDINT_TR1] (codecvt_mode)
2170 (codecvt_utf8, codecvt_utf16, codecvt_utf8_utf16): Likewise.
2171 * include/std/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
2172 (u16string_view, u32string_view, hash<u16string_view>)
2173 (hash<u32string_view>, operator""sv(const char16_t, size_t))
2174 (operator""sv(const char32_t, size_t)): Likewise.
2175 * src/c++11/codecvt.cc: Likewise.
2176 * src/c++98/locale_init.cc: Likewise.
2177 * src/c++98/localename.cc: Likewise.
2178
2179 * include/bits/atomic_futex.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2180 (__atomic_futex_unsigned_base): Remove dependency on
2181 _GLIBCXX_USE_C99_STDINT_TR1 macro.
2182 * include/bits/unique_lock.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2183 (unique_lock): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1.
2184 * include/c_global/cstdint [!_GLIBCXX_USE_C99_STDINT_TR1] (intmax_t)
2185 (uintmax_t): Define using predefined macros.
2186 * include/std/chrono [!_GLIBCXX_USE_C99_STDINT_TR1] (duration)
2187 (time_point, system_clock, high_resolution_clock, steady_clock): Remove
2188 dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro.
2189 (nanoseconds, microseconds, milliseconds, seconds, minutes, hours):
2190 [!_GLIBCXX_USE_C99_STDINT_TR1]: Define using __INT64_TYPE__ or
2191 long long when <stdint.h> is not usable.
2192 * include/std/condition_variable [!_GLIBCXX_USE_C99_STDINT_TR1]
2193 (condition_variable, condition_variable_any): Remove dependency on
2194 _GLIBCXX_USE_C99_STDINT_TR1.
2195 * include/std/future [!_GLIBCXX_USE_C99_STDINT_TR1] (future, promise)
2196 (packaged_task, async): Likewise.
2197 * include/std/mutex [!_GLIBCXX_USE_C99_STDINT_TR1] (recursive_mutex)
2198 (timed_mutex, recursive_timed_mutex, try_lock, lock, scoped_lock)
2199 (once_flag, call_once): Likewise.
2200 * include/std/ratio [!_GLIBCXX_USE_C99_STDINT_TR1] (ratio): Likewise.
2201 * include/std/shared_mutex [!_GLIBCXX_USE_C99_STDINT_TR1]
2202 (shared_mutex, shared_timed_mutex, shared_lock): Likewise.
2203 * include/std/thread [!_GLIBCXX_USE_C99_STDINT_TR1] (thread)
2204 (this_thread::get_id, this_thread::yield, this_thread::sleep_for)
2205 (this_thread::sleep_until): Likewise.
2206 * src/c++11/chrono.cc: Remove dependency on
2207 _GLIBCXX_USE_C99_STDINT_TR1 macro.
2208 * src/c++11/condition_variable.cc: Likewise.
2209 * src/c++11/futex.cc: Likewise.
2210 * src/c++11/future.cc: Likewise.
2211 * src/c++11/mutex.cc: Likewise.
2212 * src/c++11/thread.cc: Likewise.
2213 * testsuite/20_util/duration/literals/range_neg.cc: Adjust dg-error.
2214 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
2215 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
2216 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
2217 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
2218 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
2219
2220 2018-07-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2221
2222 PR libstdc++/77691
2223 * testsuite/experimental/memory_resource/new_delete_resource.cc:
2224 xfail execution on 32-bit Solaris/x86.
2225
2226 2018-07-26 Marc Glisse <marc.glisse@inria.fr>
2227
2228 * include/bits/stl_vector.h (_Vector_impl_data::_M_copy_data): New.
2229 (_Vector_impl_data::_M_swap_data): Use _M_copy_data.
2230 (vector::_M_move_assign): Reorder the swaps.
2231
2232 2018-07-26 Jonathan Wakely <jwakely@redhat.com>
2233
2234 PR libstdc++/86676
2235 * testsuite/20_util/monotonic_buffer_resource/release.cc: Request
2236 same alignment for post-release allocation.
2237
2238 2018-07-25 Jonathan Wakely <jwakely@redhat.com>
2239
2240 PR libstdc++/86676
2241 * testsuite/20_util/monotonic_buffer_resource/release.cc: Allow for
2242 buffer being misaligned and so returned pointer not being at start.
2243
2244 * include/experimental/memory_resource: Include <cstddef> header.
2245
2246 * acinclude.m4 (glibcxx_SUBDIRS): Add src/c++17.
2247 * src/Makefile.am: Add comment.
2248 * src/c++17/Makefile.in: Regenerate.
2249
2250 * include/Makefile.am: Add new <bits/unique_lock.h> header.
2251 * include/Makefile.in: Regenerate.
2252 * include/bits/std_mutex.h [!_GLIBCXX_USE_C99_STDINT_TR1] (mutex)
2253 (lock_guard): Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
2254 (unique_lock): Move definition to ...
2255 * include/bits/unique_lock.h: New header.
2256 [!_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock): Define unconditionally.
2257 [_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock(mutex_type&, time_point))
2258 (unique_lock(mutex_type&, duration), unique_lock::try_lock_until)
2259 (unique_lock::try_lock_for): Define only when <chrono> is usable.
2260 * include/std/condition_variable: Include <bits/unique_lock.h>.
2261 * include/std/mutex: Likewise.
2262
2263 2018-07-24 Jonathan Wakely <jwakely@redhat.com>
2264
2265 * config/abi/pre/gnu.ver: Export new symbols.
2266 * configure: Regenerate.
2267 * include/Makefile.am: Add new <memory_resource> header.
2268 * include/Makefile.in: Regenerate.
2269 * include/precompiled/stdc++.h: Include <memory_resource> for C++17.
2270 * include/std/memory_resource: New header.
2271 (memory_resource, polymorphic_allocator, new_delete_resource)
2272 (null_memory_resource, set_default_resource, get_default_resource)
2273 (pool_options, monotonic_buffer_resource): Define.
2274 * src/Makefile.am: Add c++17 directory.
2275 * src/Makefile.in: Regenerate.
2276 * src/c++11/Makefile.am: Fix comment.
2277 * src/c++17/Makefile.am: Add makefile for new sub-directory.
2278 * src/c++17/Makefile.in: Generate.
2279 * src/c++17/memory_resource.cc: New.
2280 (newdel_res_t, null_res_t, constant_init, newdel_res, null_res)
2281 (default_res, new_delete_resource, null_memory_resource)
2282 (set_default_resource, get_default_resource): Define.
2283 * testsuite/20_util/memory_resource/1.cc: New test.
2284 * testsuite/20_util/memory_resource/2.cc: New test.
2285 * testsuite/20_util/monotonic_buffer_resource/1.cc: New test.
2286 * testsuite/20_util/monotonic_buffer_resource/allocate.cc: New test.
2287 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: New test.
2288 * testsuite/20_util/monotonic_buffer_resource/release.cc: New test.
2289 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
2290 New test.
2291 * testsuite/20_util/polymorphic_allocator/1.cc: New test.
2292 * testsuite/20_util/polymorphic_allocator/resource.cc: New test.
2293 * testsuite/20_util/polymorphic_allocator/select.cc: New test.
2294 * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
2295 Define concrete memory resource for testing.
2296 (__gnu_test::default_resource_mgr): Define RAII helper for changing
2297 default resource.
2298
2299 PR libstdc++/86658
2300 * include/bits/stl_algobase.h (__niter_wrap<_Iterator>): Pass unused
2301 parameter by reference, to avoid copying invalid iterators.
2302 * testsuite/25_algorithms/copy/86658.cc: New test.
2303
2304 * include/std/bit (__countl_zero, __countr_zero, __popcount): Use
2305 local variables for number of digits instead of type aliases.
2306 (__log2p1): Remove redundant branch also checked in __countl_zero.
2307
2308 * include/bits/uses_allocator.h (__is_erased_or_convertible): Reorder
2309 conditions. Add comments.
2310 * testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error line.
2311 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
2312 * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
2313
2314 * include/bits/uses_allocator.h (__is_erased_or_convertible): Remove.
2315 (__uses_allocator_helper): Check conditions directly instead of
2316 using __is_erased_or_convertible.
2317
2318 * include/experimental/memory_resource: Adjust comments and
2319 whitespace.
2320 (__resource_adaptor_imp): Add second template parameter for type of
2321 memory resource base class.
2322 (memory_resource): Define default constructor, destructor, copy
2323 constructor and copy assignment operator as defaulted.
2324
2325 PR libstdc++/70966
2326 * include/experimental/memory_resource (__get_default_resource): Use
2327 placement new to create an object with dynamic storage duration.
2328
2329 2018-07-23 Jonathan Wakely <jwakely@redhat.com>
2330
2331 PR libstdc++/70940
2332 * include/experimental/memory_resource
2333 (__resource_adaptor_common::_AlignMgr::_M_unadjust): Add assertion.
2334 (__resource_adaptor_common::__guaranteed_alignment): New helper to
2335 give maximum alignment an allocator guarantees. Specialize for known
2336 allocators using new and malloc.
2337 (__resource_adaptor_imp::do_allocate): Use __guaranteed_alignment.
2338 (__resource_adaptor_imp::do_deallocate): Likewise.
2339 * testsuite/experimental/memory_resource/new_delete_resource.cc:
2340 Check that new and delete are called with expected sizes.
2341
2342 2018-07-20 Jonathan Wakely <jwakely@redhat.com>
2343
2344 PR libstdc++/86595
2345 * include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add
2346 noexcept.
2347
2348 2018-07-20 Fangrui Song <maskray@google.com>
2349
2350 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use
2351 _GLIBCXX_VISIBILITY(default).
2352
2353 2018-07-20 Jonathan Wakely <jwakely@redhat.com>
2354
2355 PR libstdc++/86603
2356 * include/std/version: Move __cpp_lib_list_remove_return_type macro.
2357
2358 2018-07-19 Jonathan Wakely <jwakely@redhat.com>
2359
2360 * include/std/type_traits (__is_member_object_pointer_helper): Use
2361 __not_<is_function<_Tp>>::type instead of integral_constant.
2362 (__is_member_function_pointer_helper): Likewise for
2363 is_function<_Tp>::type.
2364 (is_compund): Likewise for __not_<is_fundamental<_Tp>>::type.
2365 (__do_is_nt_destructible_impl): Use __bool_constant and reindent.
2366 (is_trivially_constructible): Remove redundant use of
2367 is_constructible.
2368 (__is_trivially_copy_assignable_impl): Remove redundant use of
2369 is_copy_assignable.
2370 (__is_trivially_move_assignable_impl): Remove redundant use of
2371 is_move_assignable.
2372 (is_trivially_destructible): Use __bool_constant.
2373 * testsuite/20_util/is_trivially_assignable/value.cc: Add some more
2374 tests for scalar types.
2375
2376 2018-07-19 Glen Joseph Fernandes <glenjofe@gmail.com>
2377
2378 * include/bits/stl_algobase.h (__copy_move_a): Used
2379 __is_trivially_copyable.
2380 (__copy_move_backward_a): Likewise.
2381 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
2382 New test.
2383
2384 2018-07-17 Jonathan Wakely <jwakely@redhat.com>
2385
2386 PR libstdc++/86450
2387 * acinclude.m4 (GLIBCXX_CHECK_COMPILER_FEATURES): Don't define WERROR.
2388 (GLIBCXX_EXPORT_FLAGS): Use -Wabi=2 instead of -Wabi.
2389 * configure: Regenerate.
2390 * configure.ac: Change GLIBCXX_ENABLE_WERROR default to "no".
2391 * doc/Makefile.in: Regenerate.
2392 * fragment.am: Set WERROR_FLAG to -Werror instead of $(WERROR).
2393 * include/Makefile.in: Regenerate.
2394 * libsupc++/Makefile.in: Regenerate.
2395 * po/Makefile.in: Regenerate.
2396 * python/Makefile.in: Regenerate.
2397 * src/Makefile.in: Regenerate.
2398 * src/c++11/Makefile.in: Regenerate.
2399 * src/c++11/debug.cc: Use diagnostic pragmas to suppress warnings
2400 from -Wabi=2 that don't affect exported symbols.
2401 * src/c++98/Makefile.in: Regenerate.
2402 * src/filesystem/Makefile.in: Regenerate.
2403 * testsuite/Makefile.in: Regenerate.
2404
2405 * src/c++11/compatibility-thread-c++0x.cc [_GLIBCXX_SHARED]
2406 (_Async_state_common::_M_join): Simplify use of std::call_once and
2407 corresponding explicit instantiation.
2408 (_Maybe_wrap_member_pointer, _Bind_simple, _Bind_simple_helper)
2409 (__bind_simple): Remove definitions and explicit instantiation that
2410 are not required by exported symbols.
2411
2412 2018-07-16 Jonathan Wakely <jwakely@redhat.com>
2413
2414 * scripts/create_testsuite_files: Fix typo in comment.
2415
2416 PR libstdc++/86537
2417 * include/bits/shared_ptr.h (less<shared_ptr<_Tp>>): Remove
2418 non-standard partial specialization.
2419 * include/bits/shared_ptr_base.h (_Sp_less): Remove class definition.
2420 (less<__shared_ptr<_Tp, _Lp>): Remove partial specialization.
2421 * testsuite/20_util/shared_ptr/comparison/86537.cc: New test.
2422
2423 2018-07-16 Andreas Krebbel <krebbel@linux.ibm.com>
2424
2425 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
2426 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update.
2427 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
2428
2429 2018-07-06 François Dumont <fdumont@gcc.gnu.org>
2430
2431 * include/debug/functions.h (__gnu_debug::__check_string): Move...
2432 * include/debug/string (__gnu_debug::__check_string): ... here.
2433 (_GLIBCXX_DEBUG_VERIFY_STR_COND_AT): New.
2434 (__glibcxx_check_string_n_constructor): New.
2435 (__gnu_debug::basic_string<>(const _CharT*, size_type, const _Alloc&)):
2436 Use latter.
2437 (__glibcxx_check_string_constructor): New.
2438 (__gnu_debug::basic_string<>(const _CharT*, const _Alloc&)):
2439 Use latter.
2440 * testsuite/21_strings/basic_string/debug/1_neg.cc: New.
2441 * testsuite/21_strings/basic_string/debug/2_neg.cc: New.
2442
2443 2018-07-06 Jonathan Wakely <jwakely@redhat.com>
2444
2445 PR libstdc++/84928 use std::move in <numeric> algorithms
2446 * include/bits/stl_numeric.h (_GLIBCXX_MOVE_IF_20): Define macro to
2447 conditionally move, according to __cplusplus value.
2448 (accumulate, inner_product, partial_sum, adjacent_difference): Use
2449 _GLIBCXX_MOVE_IF_20.
2450 * testsuite/26_numerics/accumulate/lwg2055.cc: New test.
2451 * testsuite/26_numerics/adjacent_difference/lwg2055.cc: New test.
2452 * testsuite/26_numerics/inner_product/lwg2055.cc: New test.
2453 * testsuite/26_numerics/partial_sum/lwg2055.cc: New test.
2454
2455 * config/abi/pre/gnu.ver: Use wildcards to combine related patterns.
2456
2457 P0935R0 Eradicating unnecessarily explicit default constructors
2458 * config/abi/pre/gnu.ver: Tighten existing patterns and export new
2459 default constructor symbols.
2460 * include/std/sstream (basic_stringbuf, basic_istringstream)
2461 (basic_ostringstream, basic_stringstream): Remove default arguments
2462 from explicit constructors taking ios_base::openmode and add separate
2463 non-explicit default constructors.
2464 * testsuite/27_io/basic_istringstream/cons/default.cc: New.
2465 * testsuite/27_io/basic_ostringstream/cons/default.cc: New.
2466 * testsuite/27_io/basic_stringstream/cons/default.cc: New.
2467 * testsuite/27_io/basic_stringbuf/cons/char/default.cc: New.
2468 * testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: New.
2469
2470 * include/std/variant (__accepted_index): Use void_t.
2471
2472 2018-07-05 Jonathan Wakely <jwakely@redhat.com>
2473
2474 PR libstdc++/85831
2475 * config/abi/pre/gnu.ver: Export move constructors and move
2476 assignment operators for std::logic_error and std::runtime_error.
2477 * include/std/stdexcept: Use _GLIBCXX_NOTHROW instead of
2478 _GLIBCXX_USE_NOEXCEPT.
2479 (logic_error, runtime_error): Declare move constructors and move
2480 assignment operators. When not declared already, define copy
2481 constructors and copy assignment operators as explicit-defaulted.
2482 (domain_error, invalid_argument, length_error, out_of_range)
2483 (overflow_error, underflow_error): Define move constructors and move
2484 assignment operators as explicitly-defaulted.
2485 * libsupc++/exception.h (exception): Likewise.
2486 * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Define
2487 move constructors and move assignment operators as defaulted.
2488 * testsuite/19_diagnostics/stdexcept.cc: Check that constructors and
2489 assignment operators are defined.
2490
2491 * testsuite/21_strings/basic_string/cons/char/deduction.cc: XFAIL for
2492 COW strings.
2493 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
2494 Likewise.
2495 * testsuite/21_strings/basic_string/requirements/
2496 explicit_instantiation/debug.cc: Likewise.
2497
2498 PR libstdc++/58265
2499 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2500 (basic_string::assign(basic_string&&)): Add conditional noexcept
2501 depending on the allocator's is_always_equal property (LWG 2063).
2502 * testsuite/21_strings/basic_string/modifiers/assign/char/
2503 move_assign.cc: Check for non-throwing exception specification.
2504 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
2505 move_assign.cc: Likewise.
2506
2507 PR libstdc++/58265
2508 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2509 [_GLIBCXX_FULLY_DYNAMIC_STRING==0] (basic_string::basic_string()):
2510 Add GLIBCXX_NOEXCEPT.
2511 (basic_string::operator=(basic_string&&)): Add _GLIBCXX_NOEXCEPT_IF
2512 to depend on the allocator's is_always_equal property (LWG 2063).
2513 (basic_string::swap(basic_string&)): Likewise.
2514 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]
2515 (basic_string::swap(basic_string&)): Likewise.
2516 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
2517 Check is_nothrow_move_assignable.
2518 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
2519 Check is_nothrow_move_assignable.
2520 * testsuite/21_strings/basic_string/cons/char/
2521 noexcept_move_construct.cc: Likewise.
2522 * testsuite/21_strings/basic_string/cons/wchar_t/
2523 noexcept_move_construct.cc: Likewise.
2524
2525 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
2526
2527 P0646R1 Improving the Return Value of Erase-Like Algorithms I
2528 * include/bits/forward_list.h (__cpp_lib_list_remove_return_type):
2529 Define.
2530 (forward_list::__remove_return_type): Define typedef as size_type or
2531 void, according to __cplusplus value.
2532 (_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
2533 empty, according to __cplusplus value.
2534 (forward_list::remove, forward_list::unique): Use typedef and macro
2535 to change return type and add abi-tag for C++2a.
2536 (forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
2537 typedef to change return type for C++2a.
2538 * include/bits/forward_list.tcc (_GLIBCXX20_ONLY): Define macro.
2539 (forward_list::remove, forward_list::remove_if<Pred>)
2540 (forward_list::unique<BinPred>): Return number of removed elements
2541 for C++2a.
2542 * include/bits/list.tcc (_GLIBCXX20_ONLY): Define macro.
2543 (list::remove, list::unique, list::remove_if<Predicate>)
2544 (list::unique<BinaryPredicate>): Return number of removed elements
2545 for C++2a.
2546 * include/bits/stl_list.h (__cpp_lib_list_remove_return_type): Define.
2547 (list::__remove_return_type): Define typedef as size_type or
2548 void, according to __cplusplus value.
2549 (_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
2550 empty, according to __cplusplus value.
2551 (list::remove, list::unique): Use typedef and macro to change return
2552 type and add abi-tag for C++2a.
2553 (list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use
2554 typedef to change return type for C++2a.
2555 * include/std/version (__cpp_lib_list_remove_return_type): Define.
2556 * testsuite/23_containers/forward_list/operations/
2557 remove_cxx20_return.cc: New.
2558 * testsuite/23_containers/forward_list/operations/
2559 unique_cxx20_return.cc: New.
2560
2561 P0458R2 Checking for Existence of an Element in Associative Containers
2562 * include/bits/stl_map.h (map::contains): Add for C++2a.
2563 * include/bits/stl_multimap.h (multimap::contains): Likewise.
2564 * include/bits/stl_multiset.h (multiset::contains): Likewise.
2565 * include/bits/stl_set.h (set::contains): Likewise.
2566 * include/bits/stl_tree.h (__has_is_transparent_t): Define alias.
2567 (_Rb_tree::_M_find_tr, _Rb_tree::_M_count_tr)
2568 (_Rb_tree::_M_lower_bound_tr, _Rb_tree::_M_upper_bound_tr)
2569 (_Rb_tree::_M_equal_range_tr): Use __has_is_transparent_t.
2570 * include/bits/unordered_map.h (unordered_map::contains)
2571 (unordered_multimap::contains): Add for C++2a.
2572 * include/bits/unordered_set.h (unordered_set::contains)
2573 (unordered_multiset::contains): Likewise.
2574 * testsuite/23_containers/map/operations/contains.cc: New.
2575 * testsuite/23_containers/multimap/operations/contains.cc: New.
2576 * testsuite/23_containers/multiset/operations/contains.cc: New.
2577 * testsuite/23_containers/set/operations/contains.cc: New.
2578 * testsuite/23_containers/unordered_map/operations/contains.cc: New.
2579 * testsuite/23_containers/unordered_multimap/operations/contains.cc:
2580 New.
2581 * testsuite/23_containers/unordered_multiset/operations/contains.cc:
2582 New.
2583 * testsuite/23_containers/unordered_set/operations/contains.cc: New.
2584
2585 2018-07-04 François Dumont <fdumont@gcc.gnu.org>
2586
2587 PR libstdc++/86272
2588 * include/debug/string
2589 (__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)):
2590 Use __glibcxx_check_insert_range.
2591 * 21_strings/basic_string/cons/char/1.cc: Adapt test to use
2592 __gnu_debug::string when _GLIBCXX_DEBUG.
2593 * 21_strings/basic_string/init-list.cc: Likewise.
2594 * 21_strings/basic_string/modifiers/insert/char/1.cc: Likewise.
2595 * 21_strings/basic_string/modifiers/insert/char/2.cc: Likewise.
2596 * 21_strings/basic_string/modifiers/insert/char/83328.cc: Likewise.
2597 * 21_strings/basic_string/types/1.cc: Likewise.
2598
2599 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
2600
2601 * testsuite/25_algorithms/make_heap/complexity.cc: Require effective
2602 target for std::random_device.
2603 * testsuite/26_numerics/random/random_device/cons/default.cc:
2604 Likewise.
2605 * testsuite/experimental/algorithm/sample-2.cc: Likewise.
2606 * testsuite/experimental/algorithm/shuffle.cc: Likewise.
2607 * testsuite/experimental/random/randint.cc: Likewise.
2608 * testsuite/lib/libstdc++.exp
2609 (check_effective_target_random_device): New proc.
2610
2611 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
2612 Jakub Jelinek <jakub@redhat.com>
2613
2614 * include/std/bit (__rotl, __rotr): Fix for non-power of two sizes.
2615
2616 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
2617
2618 PR libstdc++/86398
2619 * include/std/type_traits (is_trivially_constructible): Check
2620 is_constructible before __is_trivially_constructible.
2621 * testsuite/20_util/is_trivially_constructible/value.cc: Add more
2622 tests, including negative cases.
2623 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use
2624 zero for dg-error lineno.
2625 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
2626 Likewise.
2627
2628 * include/std/bit (__rotl, __rotr): Avoid branch.
2629 (_If_is_unsigned_integer): Use remove_cv_t.
2630 * testsuite/26_numerics/bit/bitops.count/popcount.cc: New.
2631
2632 2018-07-03 Jonathan Wakely <jwakely@redhat.com>
2633
2634 P0556R3 Integral power-of-2 operations, P0553R2 Bit operations
2635 * include/Makefile.am: Add new header.
2636 * include/Makefile.in: Regenerate.
2637 * include/precompiled/stdc++.h: Include new header.
2638 * include/std/bit: New header.
2639 (__rotl, __rotr, __countl_zero, __countl_one, __countr_zero)
2640 (__countr_one, __popcount, __ispow2, __ceil2, __floor2, __log2p1):
2641 Define for C++14.
2642 [!__STRICT_ANSI__] (rotl, rotr, countl_zero, countl_one, countr_zero)
2643 (countr_one, popcount): Define for C++2a. Also overload for std::byte.
2644 (ispow2, ceil2, floor2, log2p1): Define for C++2a.
2645 [!__STRICT_ANSI__] (ispow2, ceil2, floor2, log2p1): Overload for
2646 std::byte.
2647 * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: New.
2648 * testsuite/26_numerics/bit/bit.pow.two/floor2.cc: New.
2649 * testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: New.
2650 * testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: New.
2651 * testsuite/26_numerics/bit/bitops.rot/rotl.cc: New.
2652 * testsuite/26_numerics/bit/bitops.rot/rotr.cc: New.
2653 * testsuite/26_numerics/bit/bitops.count/countl_one.cc: New.
2654 * testsuite/26_numerics/bit/bitops.count/countl_zero.cc: New.
2655 * testsuite/26_numerics/bit/bitops.count/countr_one.cc: New.
2656 * testsuite/26_numerics/bit/bitops.count/countr_zero.cc: New.
2657
2658 * include/bits/alloc_traits.h: Remove redundant preprocessor
2659 condition.
2660
2661 2018-07-03 François Dumont <fdumont@gcc.gnu.org>
2662
2663 * include/bits/stl_algobase.h (__niter_wrap): New.
2664 (__copy_move_a2(_II, _II, _OI)): Use latter.
2665 (__copy_move_backward_a2(_BI1, _BI1, _BI2)): Likewise.
2666 (fill_n(_OI, _Size, const _Tp&)): Likewise.
2667 (equal(_II1, _II1, _II2)): Use __glibcxx_requires_can_increment.
2668 * include/debug/stl_iterator.h
2669 (std::__niter_base(const __gnu_cxx::_Safe_iterator<
2670 __gnu_cxx::__normal_iterator<>, _Sequence>&)): New declaration.
2671 * include/debug/vector (__niter_base(const __gnu_cxx::_Safe_iterator<
2672 __gnu_cxx::__normal_iterator<>, _Sequence>&)): New.
2673
2674 2018-07-02 Jonathan Wakely <jwakely@redhat.com>
2675
2676 P0758R1 Implicit conversion traits
2677 * include/std/type_traits [__cplusplus > 201703]
2678 (__is_convertible_helper::__is_nothrow_type): Define new member.
2679 (__is_convertible_helper<_From, _To, false>::__test_aux1): Add
2680 noexcept.
2681 (__is_convertible_helper<_From, _To, false>::__test_nothrow)
2682 (__is_convertible_helper<_From, _To, false>::__is_nothrow_type): Add
2683 new members.
2684 (is_nothrow_convertible, is_nothrow_convertible_v): Define for C++2a.
2685 * testsuite/20_util/is_nothrow_convertible/value.cc: New.
2686 * testsuite/20_util/is_nothrow_convertible/requirements/
2687 explicit_instantiation.cc: New.
2688 * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
2689 New.
2690
2691 P0887R1 The identity metafunction
2692 * include/std/type_traits (type_identity, type_identity_t): Define
2693 for C++2a.
2694 * testsuite/20_util/type_identity/requirements/alias_decl.cc: New.
2695 * testsuite/20_util/type_identity/requirements/
2696 explicit_instantiation.cc:New.
2697 * testsuite/20_util/type_identity/requirements/typedefs.cc: New.
2698
2699 * include/bits/regex.h (sub_match::operator string_type): Call str().
2700 (sub_match::compare): Use _M_str() instead of str().
2701 (sub_match::_M_compare): New public function.
2702 (sub_match::__string_view): New helper type.
2703 (sub_match::_M_str): New overloaded functions to avoid creating a
2704 string_type object when not needed.
2705 (operator==, operator!=, operator<, operator>, operator<=, operator>=):
2706 Use sub_match::_M_compare instead of creating string_type objects.
2707 Fix Doxygen comments.
2708 * include/bits/regex_compiler.h (__has_contiguous_iter): Remove.
2709 (__is_contiguous_normal_iter): Rename to __is_contiguous_iter and
2710 simplify.
2711 (__enable_if_contiguous_iter, __disable_if_contiguous_iter): Use
2712 __enable_if_t.
2713 * include/std/type_traits (__enable_if_t): Define for C++11.
2714 * testsuite/28_regex/sub_match/compare.cc: New.
2715 * testsuite/util/testsuite_iterators.h (remove_cv): Add transformation
2716 trait.
2717 (input_iterator_wrapper): Use remove_cv for value_type argument of
2718 std::iterator base class.
2719
2720 2018-06-29 Jonathan Wakely <jwakely@redhat.com>
2721
2722 * testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc:
2723 Add whitespace to dejagnu directive.
2724 * testsuite/23_containers/array/element_access/at_neg.cc: Likewise.
2725
2726 2018-06-27 François Dumont <fdumont@gcc.gnu.org>
2727
2728 * include/bits/stl_vector.h
2729 (struct _Vector_base<>::_Vector_impl_data): New.
2730 (struct _Vector_base<>::_Vector_impl): Inherit from latter.
2731 (_Vector_base<>::_Vector_impl::_M_swap_data): Move...
2732 (_Vector_base<>::_Vector_impl_data::_M_swap_data): ...here.
2733 (_Vector_base<>::_Vector_impl()): Add noexcept qualification.
2734 (_Vector_base<>::_Vector_impl(_Vector_impl&&)): New.
2735 (_Vector_base<>::_Vector_impl(_Tp_alloc_type&&, _Vector_impl&&)): New.
2736 (_Vector_base(const allocator_type&, _Vector_base&&)): New, use latter.
2737 (_Vector_base()): Default.
2738 (_Vector_base(_Vector_base&&)): Default.
2739 (_Vector_base(size_t)) [_GLIBCXX_INLINE_VERSION]: Delete.
2740 (_Vector_base(_Tp_alloc_type&&)) [_GLIBCXX_INLINE_VERSION]: Delete.
2741 (_Vector_base::_M_create_storage(size_t)): Make protected.
2742 (vector()): Default.
2743 (vector(vector&&)): Default.
2744 (vector(vector&&, const allocator_type&, true_type)): New.
2745 (vector(vector&&, const allocator_type&, false_type)): New.
2746 (vector(vector&&, const allocator_type&)): Use latters.
2747 (vector(_InputIte, _InputIte, const allocator_type&)): Call
2748 _M_range_initialize directly.
2749 * include/debug/vector
2750 (vector(vector&&, const allocator_type&)): Add noexcept qualification.
2751 * testsuite/23_containers/vector/allocator/default_init.cc: New.
2752 * testsuite/23_containers/vector/cons/noexcept_move_construct.cc: Add
2753 static assertions.
2754
2755 2018-06-27 Jonathan Wakely <jwakely@redhat.com>
2756
2757 * include/bits/cpp_type_traits.h [__cplusplus >= 201703]
2758 (__is_byte<byte>): Define specialization for std::byte.
2759
2760 PR libstdc++/86138
2761 * include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0]
2762 Declare explicit instantiations of COW empty reps and I/O functions.
2763
2764 2018-06-26 David Edelsohn <dje.gcc@gmail.com>
2765
2766 * testsuite/experimental/algorithm/sample-2.cc: Add TLS DejaGNU
2767 directives.
2768 * testsuite/experimental/algorithm/shuffle.cc: Likewise.
2769
2770 2018-06-26 Jonathan Wakely <jwakely@redhat.com>
2771
2772 * include/bits/regex.tcc (regex_iterator::operator==): Add missing
2773 noexcept.
2774
2775 2018-06-25 Jonathan Wakely <jwakely@redhat.com>
2776
2777 PR libstdc++/86112
2778 * python/libstdcxx/v6/printers.py (add_one_template_type_printer):
2779 Replace dict comprehension.
2780
2781 PR libstdc++/81092
2782 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2783
2784 PR libstdc++/86292
2785 * include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
2786 Add try-catch block.
2787 * testsuite/23_containers/vector/cons/86292.cc: New.
2788
2789 * doc/xml/manual/status_cxx2017.xml: Document N4531 status.
2790
2791 * include/experimental/algorithm (sample, shuffle): Add new overloads
2792 using per-thread random number engine.
2793 * testsuite/experimental/algorithm/sample.cc: Simpify and reduce
2794 dependencies by using __gnu_test::test_container.
2795 * testsuite/experimental/algorithm/sample-2.cc: New.
2796 * testsuite/experimental/algorithm/shuffle.cc: New.
2797
2798 2018-06-22 Jonathan Wakely <jwakely@redhat.com>
2799
2800 * config/abi/pre/gnu.ver: Fix __cxx11::basic_string patterns for
2801 different size_t mangling on 32-bit targets.
2802
2803 PR libstdc++/86280
2804 * include/experimental/memory_resource
2805 (__resource_adaptor_common::_AlignMgr::_M_token_size): Use type large
2806 enough for result of left shift.
2807
2808 PR libstdc++/86138
2809 * include/bits/basic_string.tcc:
2810 [__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
2811 (basic_string<char>::_Rep::_S_empty_rep_storage)
2812 (basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
2813 instantiation declarations.
2814 [__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
2815 explicit instantiation declarations.
2816 * testsuite/21_strings/basic_string/cons/char/86138.cc: New.
2817 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.
2818
2819 2018-06-21 Jonathan Wakely <jwakely@redhat.com>
2820
2821 PR libstdc++/83328
2822 * acinclude.m4 (libtool_VERSION): Bump to 6:26:0.
2823 * config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 and export new symbol.
2824 * configure: Regenerate.
2825 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2826 (basic_string::insert(const_iterator, initializer_list<C>)): Add.
2827 [_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
2828 (basic_string::insert(iterator, initializer_list<C>)): Suppress
2829 definition.
2830 * include/debug/string (basic_string::insert(iterator, C)): Change
2831 first parameter to const_iterator.
2832 (basic_string::insert(iterator, size_type, C)): Likewise. Change
2833 return type to iterator.
2834 (basic_string::insert(iterator, InputIterator, InputIterator)):
2835 Likewise.
2836 (basic_string::insert(iterator, initializer_list<C>)): Change first
2837 parameter to const_iterator and return type to iterator.
2838 * src/c++11/string-inst.cc: Extend comment.
2839 * testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc:
2840 New.
2841 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc:
2842 New.
2843 * testsuite/util/testsuite_abi.cc: Add new symbol version.
2844
2845 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2846
2847 PR libstdc++/70940
2848 * include/experimental/memory_resource
2849 (__resource_adaptor_imp::do_deallocate): Add missing return.
2850 * testsuite/experimental/memory_resource/new_delete_resource.cc: New.
2851 * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
2852 resource_adaptor with std::allocator, __gnu_cxx::new_allocator and
2853 __gnu_cxx::malloc_allocator.
2854
2855 PR libstdc++/70940
2856 * include/experimental/memory_resource (__resource_adaptor_common):
2857 New base class.
2858 (__resource_adaptor_common::_AlignMgr): Helper for obtaining aligned
2859 pointer from unaligned, and vice versa.
2860 (__resource_adaptor_imp::do_allocate): Use _AlignMgr to adjust
2861 allocated pointer to meet alignment request.
2862 (__resource_adaptor_imp::do_deallocate): Use _AlignMgr to retrieve
2863 original pointer for deallocation.
2864 (__resource_adaptor_imp::do_is_equal): Reformat.
2865 (__resource_adaptor_imp::_S_aligned_size): Remove.
2866 (__resource_adaptor_imp::_S_supported): Remove.
2867 (new_delete_resource): Use __gnu_cxx::new_allocator.
2868 * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
2869 extended alignments and use debug_allocator to check for matching
2870 allocate/deallocate pairs.
2871
2872 2018-06-21 François Dumont <fdumont@gcc.gnu.org>
2873
2874 * include/debug/safe_iterator.h
2875 (_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)):
2876 Compare __x base iterator with a value-initialized iterator of the
2877 same type.
2878
2879 2018-06-20 Jonathan Wakely <jwakely@redhat.com>
2880
2881 PR libstdc++/70966
2882 * include/experimental/memory_resource (__resource_adaptor_imp): Add
2883 static assertions to enforce requirements on pointer types.
2884 (__resource_adaptor_imp::get_allocator()): Add noexcept.
2885 (new_delete_resource, null_memory_resource): Return address of an
2886 object with dynamic storage duration.
2887 (__null_memory_resource): Remove.
2888 * testsuite/experimental/memory_resource/70966.cc: New.
2889
2890 * testsuite/20_util/duration/arithmetic/dr3050.cc: Add new test
2891 missed from recent commit.
2892
2893 2018-06-19 Jonathan Wakely <jwakely@redhat.com>
2894
2895 * include/std/utility: Remove unused <exception> header.
2896
2897 2018-06-18 Jonathan Wakely <jwakely@redhat.com>
2898
2899 LWG 2975 ensure construct(pair<T,U>*, ...) used to construct pairs
2900 * include/std/scoped_allocator (__not_pair): Define SFINAE helper.
2901 (construct(_Tp*, _Args&&...)): Remove from overload set when _Tp is
2902 a specialization of std::pair.
2903 * testsuite/20_util/scoped_allocator/construct_pair.cc: Ensure
2904 pair elements are constructed correctly.
2905
2906 LWG 2989 hide path iostream operators from normal lookup
2907 * include/bits/fs_path.h (operator<<, operator>>): Define inline as
2908 friends.
2909 * testsuite/27_io/filesystem/path/io/dr2989.cc: New.
2910
2911 LWG 3050 Fix cv-qualification of convertibility constraints
2912 * include/std/chrono (duration, operator*, operator/, operator%): Use
2913 const-qualified type as source type in is_convertible constraints.
2914 * testsuite/20_util/duration/arithmetic/dr3050.cc: New.
2915 * testsuite/20_util/duration/cons/dr3050.cc: New.
2916 * testsuite/20_util/duration/literals/range.cc: Rename to...
2917 * testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
2918 dg-error lineno.
2919
2920 2018-06-18 Maya Rashish <coypu@sdf.org>
2921
2922 * crossconfig.m4: Handle OpenBSD just like NetBSD.
2923 * configure: Rebuilt.
2924
2925 2018-06-18 Jonathan Wakely <jwakely@redhat.com>
2926
2927 P0754R2 <version> header
2928 * include/Makefile.am: Add new header.
2929 * include/Makefile.in: Regenerate.
2930 * include/bits/c++config: Change doxygen comment to suggest <version>
2931 instead of <iosfwd>.
2932 * include/precompiled/stdc++.h: Include <cwchar> and <cwctype>
2933 unconditionally. Add C++17 and C++20 headers.
2934 * include/std/version: New header.
2935 * testsuite/17_intro/headers/c++2017/all_attributes.cc: New.
2936 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: New.
2937 * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: New.
2938 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: New.
2939 * testsuite/17_intro/headers/c++2017/operator_names.cc: New.
2940 * testsuite/17_intro/headers/c++2017/stdc++.cc: New.
2941 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
2942 New.
2943 * testsuite/17_intro/headers/c++2020/all_attributes.cc: New.
2944 * testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: New.
2945 * testsuite/17_intro/headers/c++2020/all_no_rtti.cc: New.
2946 * testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: New.
2947 * testsuite/17_intro/headers/c++2020/operator_names.cc: New.
2948 * testsuite/17_intro/headers/c++2020/stdc++.cc: New.
2949 * testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc:
2950 New.
2951 * testsuite/18_support/headers/version/macros.cc: New.
2952 * testsuite/18_support/headers/version/macros.cc: New.
2953
2954 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Only check when
2955 enable_libstdcxx_filesystem_ts = yes. Check for link, readlink and
2956 symlink.
2957 * config.h.in: Regenerate.
2958 * configure: Regenerate.
2959 * configure.ac: Remove AC_CHECK_FUNCS for link, readlink and symlink.
2960
2961 LWG 3035. std::allocator's constructors should be constexpr
2962 * include/bits/allocator.h (allocator): Add constexpr to constructors
2963 for C++2a. Replace dynamic exception specifications with NOTHROW
2964 macro.
2965 (allocator, operator==, operator!=): Replace USE_NOEXCEPT macro with
2966 NOTHROW.
2967 * include/bits/c++config (_GLIBCXX20_CONSTEXPR): Define.
2968 * include/ext/malloc_allocator.h (malloc_allocator): Add constexpr
2969 to constructors for C++2a.
2970 * include/ext/new_allocator.h (new_allocator): Likewise.
2971
2972 2018-06-16 Jonathan Wakely <jwakely@redhat.com>
2973
2974 LWG 3076 basic_string CTAD ambiguity
2975 * doc/xml/manual/intro.xml: Document LWG 3076 change.
2976 * include/bits/basic_string.h
2977 [__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
2978 (basic_string(const _CharT*, const _Alloc&)): Turn into a function
2979 template constrained by _RequireAllocator.
2980 (basic_string(size_type, _CharT, const _Alloc&)): Likewise.
2981 * src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS):
2982 Define.
2983 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
2984 deduction
2985 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
2986 Likewise.
2987
2988 2018-06-15 Jonathan Wakely <jwakely@redhat.com>
2989
2990 PR libstdc++/86169
2991 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2992 (basic_string::data()): Unshare string.
2993 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
2994 New.
2995
2996 * include/std/string_view (basic_string_view(const CharT*)): Remove
2997 check for null pointer and add nonnull attribute.
2998 (compare(const CharT*), compare(size_type, size_type, const CharT*))
2999 (find(const CharT*, size_type), rfind(const CharT*, size_type))
3000 (find_first_of(const CharT*, size_type))
3001 (find_last_of(const CharT*, size_type))
3002 (find_first_not_of(const CharT*, size_type))
3003 (find_last_not_of(const CharT*, size_type)): Add nonnull attribute.
3004 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: New.
3005 * testsuite/21_strings/basic_string_view/operations/compare/char/
3006 nonnull.cc: New.
3007 * testsuite/21_strings/basic_string_view/operations/find/char/
3008 nonnull.cc: New.
3009 * testsuite/21_strings/basic_string_view/operations/rfind/char/
3010 nonnull.cc: New.
3011
3012 PR libstdc++/86168
3013 * include/bits/random.h (random_device(const string&)): Remove
3014 default argument.
3015
3016 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
3017 define for C++17 and above.
3018
3019 LWG 2993 reference_wrapper<T> conversion from T&&
3020 * doc/xml/manual/intro.xml: Document LWG 2993 change.
3021 * include/bits/refwrap.h (reference_wrapper(_Tp&)): Remove.
3022 (reference_wrapper(_Tp&&)): Remove.
3023 (reference_wrapper<_Up>(_Up&&)): Define new constructor as constrained
3024 template.
3025 (reference_wrapper): Add deduction guide.
3026 * testsuite/20_util/reference_wrapper/deduction.cc: New.
3027 * testsuite/20_util/reference_wrapper/lwg2993.cc: New.
3028
3029 LWG 3039 Unnecessary decay in thread and packaged_task
3030 * include/std/future (__constrain_pkgdtask): Replace with ...
3031 (packaged_task::__not_same): New alias template, using
3032 __remove_cvref_t instead of decay.
3033 * include/std/thread (thread::__not_same): Add comment.
3034
3035 2018-06-14 Jonathan Wakely <jwakely@redhat.com>
3036
3037 LWG 3075 basic_string needs deduction guides from basic_string_view
3038 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
3039 deduction from string views.
3040 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
3041 Likewise.
3042
3043 LWG 3074 make scalar types non-deduced in valarray non-member functions
3044 * include/bits/valarray_after.h (_DEFINE_EXPR_BINARY_FUNCTION): Change
3045 scalar parameters to be a non-deduced context.
3046 * include/std/valarray (_DEFINE_BINARY_OPERATOR): Likewise. Adjust
3047 whitespace.
3048 * testsuite/26_numerics/valarray/operators.cc: Test scalar operands.
3049 * testsuite/26_numerics/valarray/transcend.cc: New.
3050
3051 * include/std/tuple (__cpp_lib_tuple_element_t, tuple_element_t):
3052 Move back to <utility>.
3053 * include/std/utility (__cpp_lib_tuple_element_t. tuple_element_t):
3054 Restore to here.
3055
3056 P0935R0 Eradicating unnecessarily explicit default constructors
3057 * include/backward/strstream (strstreambuf): Add non-explicit default
3058 constructor.
3059 * include/bits/locale_conv.h (wbuffer_convert, wstring_convert):
3060 Likewise.
3061 * include/bits/regex.h (match_results): Likewise.
3062 * testsuite/22_locale/conversions/buffer/1.cc: Test for non-explicit
3063 default constructor.
3064 * testsuite/22_locale/conversions/string/1.cc: Likewise.
3065 * testsuite/28_regex/match_results/ctors/char/default.cc: Likewise.
3066 * testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
3067
3068 * include/std/tuple (__cpp_lib_tuple_element_t): Move feature test
3069 macro from <utility> and change type to long.
3070 * include/std/utility (__cpp_lib_tuple_element_t): Remove.
3071 * testsuite/20_util/tuple/tuple_element_t.cc: Check for feature test
3072 macro.
3073
3074 P0935R0 Eradicating unnecessarily explicit default constructors
3075 * include/bits/random.h (uniform_real_distribution::param_type)
3076 (normal_distribution::param_type, lognormal_distribution::param_type)
3077 (gamma_distribution::param_type, chi_squared_distribution::param_type)
3078 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
3079 (student_t_distribution::param_type)
3080 (bernoulli_distribution::param_type)
3081 (binomial_distribution::param_type)
3082 (geometric_distribution::param_type)
3083 (negative_binomial_distribution::param_type)
3084 (poisson_distribution::param_type)
3085 (exponential_distribution::param_type)
3086 (weibull_distribution::param_type)
3087 (extreme_value_distribution::param_type): Add non-explicit default
3088 constructors. Remove default argument for first parameter of explicit
3089 constructors.
3090 * include/bits/uniform_int_dist.h
3091 (uniform_int_distribution::param_type): Likewise.
3092 * include/ext/random
3093 (beta_distribution::param_type, rice_distribution::param_type)
3094 (nakagami_distribution::param_type, pareto_distribution::param_type)
3095 (k_distribution::param_type, arcsine_distribution::param_type)
3096 (hoyt_distribution::param_type, triangular_distribution::param_type)
3097 (von_mises_distribution::param_type)
3098 (hypergeometric_distribution::param_type)
3099 (logistic_distribution::param_type)
3100 (uniform_inside_sphere_distribution::param_type): Likewise.
3101 (uniform_on_sphere_distribution::param_type): Make default constructor
3102 non-explicit.
3103 * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
3104 Test param_type for non-explicit default constructor.
3105 * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
3106 Likewise.
3107 * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
3108 Likewise.
3109 * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
3110 Likewise.
3111 * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
3112 Likewise.
3113 * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
3114 Likewise.
3115 * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
3116 Likewise.
3117 * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
3118 Likewise.
3119 * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
3120 Likewise.
3121 * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
3122 Likewise.
3123 * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
3124 Likewise.
3125 * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
3126 Likewise.
3127 * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
3128 Likewise.
3129 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
3130 Likewise.
3131 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
3132 Likewise.
3133 * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
3134 Likewise.
3135 * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
3136 Likewise.
3137 * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
3138 Likewise.
3139 * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
3140 Likewise.
3141 * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
3142 Likewise.
3143 * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
3144 * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
3145 * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
3146 * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
3147 Likewise.
3148 * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
3149 * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
3150 * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
3151 * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
3152 Likewise.
3153 * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
3154 * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
3155 * testsuite/ext/random/triangular_distribution/cons/default.cc:
3156 Likewise.
3157 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
3158 Likewise.
3159 * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
3160 Likewise.
3161 * testsuite/ext/random/von_mises_distribution/cons/default.cc:
3162 Likewise.
3163
3164 2018-06-14 Daniel Trebbien <dtrebbien@gmail.com>
3165 Jonathan Wakely <jwakely@redhat.com>
3166
3167 PR libstdc++/83982
3168 * include/bits/vector.tcc (vector::_M_default_append(size_type)):
3169 Default-construct new elements before moving existing ones.
3170 * testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
3171 New.
3172
3173 2018-06-13 Jonathan Wakely <jwakely@redhat.com>
3174
3175 PR libstdc++/86127
3176 * include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
3177 unused typedef.
3178 (_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
3179 Use node allocator to create and destroy elements.
3180 (forward_list::_Tp_alloc_type): Remove unused typedef.
3181 (forward_list::_Alloc_traits): Use allocator_traits instead of
3182 __gnu_cxx::__alloc_traits.
3183
3184 2018-06-13 François Dumont <fdumont@gcc.gnu.org>
3185
3186 * include/debug/helper_functions.h
3187 (__gnu_debug::_Safe_iterator<>): Add declaration.
3188 (__can_advance(_Ite, _Size)): New.
3189 (__can_advance(const _Safe_iterator<>&, _Size)): Overload declaration.
3190 * include/debug/functions.h
3191 (__gnu_debug::_Safe_iterator<>): Remove declaration.
3192 * include/debug/stl_iterator.h
3193 (__can_advance(const _Safe_iterator<>&)): New definition.
3194 * include/debug/stl_iterator.h
3195 (__can_advance(const std::reverse_iterator<>&, _Size)): New.
3196 (__can_advance(const std::move_iterator<>&, _Size)): New.
3197 * include/debug/macros.h (__glibcxx_check_can_increment): New.
3198 * include/debug/debug.h (__glibcxx_requires_can_increment): New.
3199 * include/bits/stl_algobase.h (fill_n): Use latter.
3200 * testsuite/25_algorithms/fill_n/2.cc: New.
3201 * testsuite/25_algorithms/fill_n/debug/1_neg.cc: New.
3202 * testsuite/25_algorithms/fill_n/debug/2_neg.cc: New.
3203 * testsuite/25_algorithms/fill_n/debug/3_neg.cc: New.
3204 * testsuite/25_algorithms/fill_n/debug/4_neg.cc: New.
3205
3206 * include/debug/debug.h (__glibcxx_requires_can_increment_range): New.
3207 (__glibcxx_requires_can_decrement_range): New.
3208
3209 2018-06-12 François Dumont <fdumont@gcc.gnu.org>
3210
3211 * include/debug/macros.h (__glibcxx_check_can_increment_range): New.
3212 (__glibcxx_check_can_decrement_range): New.
3213 * include/bits/stl_algobase.h (std::copy(_II, _II, _OI)): Use
3214 __glibcxx_requires_can_increment_range.
3215 (std::move(_II, _II, _OI)): Likewise.
3216 (std::copy_backward(_BI, _BI, _BI2)): Use
3217 __glibcxx_requires_can_decrement_range.
3218 (std::move_backward(_BI, _BI, _BI2)): Likewise.
3219 * testsuite/25_algorithms/copy_backward/debug/1_neg.cc: New.
3220 * testsuite/25_algorithms/copy_backward/debug/2_neg.cc: New.
3221 * testsuite/25_algorithms/copy_backward/debug/3_neg.cc: New.
3222 * testsuite/25_algorithms/equal/debug/1_neg.cc: New.
3223 * testsuite/25_algorithms/equal/debug/2_neg.cc: New.
3224 * testsuite/25_algorithms/equal/debug/3_neg.cc: New.
3225
3226 2018-06-12 Jonathan Wakely <jwakely@redhat.com>
3227
3228 P0935R0 Eradicating unnecessarily explicit default constructors
3229 * include/bits/random.h (linear_congruential_engine)
3230 (mersenne_twister_engine, subtract_with_carry_engine, random_device)
3231 (uniform_real_distribution, normal_distribution)
3232 (lognormal_distribution, gamma_distribution, chi_squared_distribution)
3233 (cauchy_distribution, fisher_f_distribution, student_t_distribution)
3234 (bernoulli_distribution, binomial_distribution,geometric_distribution)
3235 (negative_binomial_distribution, exponential_distribution)
3236 (weibull_distribution, extreme_value_distribution): Add non-explicit
3237 default constructors. Remove default argument for first parameter of
3238 explicit constructors.
3239 (piecewise_constant_distribution, piecewise_linear_distribution):
3240 Make default constructor non-explicit.
3241 * include/bits/uniform_int_dist.h (uniform_int_distribution): Add
3242 non-explicit default constructors. Remove default argument for first
3243 parameter of explicit constructor.
3244 * include/ext/random
3245 (simd_fast_mersenne_twister_engine, beta_distribution)
3246 (rice_distribution, nakagami_distribution, pareto_distribution)
3247 (k_distribution, arcsine_distribution, hoyt_distribution)
3248 (triangular_distribution, von_mises_distribution)
3249 (hypergeometric_distribution, logistic_distribution)
3250 (uniform_inside_sphere_distribution): Likewise.
3251 (uniform_on_sphere_distribution): Make default constructor
3252 non-explicit.
3253 * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
3254 Test for non-explicit default constructor. Fix references to standard.
3255 * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
3256 Likewise.
3257 * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
3258 Likewise.
3259 * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
3260 Likewise.
3261 * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
3262 Likewise.
3263 * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
3264 Likewise.
3265 * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
3266 Likewise.
3267 * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
3268 Likewise.
3269 * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
3270 Likewise.
3271 * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
3272 Likewise.
3273 * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
3274 Likewise.
3275 * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
3276 Likewise.
3277 * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
3278 Likewise.
3279 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
3280 Likewise.
3281 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
3282 Likewise.
3283 * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
3284 Likewise.
3285 * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
3286 Likewise.
3287 * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
3288 Likewise.
3289 * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
3290 Likewise.
3291 * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
3292 Likewise.
3293 * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
3294 * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
3295 * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
3296 * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
3297 Likewise.
3298 * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
3299 * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
3300 * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
3301 * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
3302 Likewise.
3303 * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
3304 * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
3305 * testsuite/ext/random/triangular_distribution/cons/default.cc:
3306 Likewise.
3307 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
3308 Likewise.
3309 * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
3310 Likewise.
3311 * testsuite/ext/random/von_mises_distribution/cons/default.cc:
3312 Likewise.
3313 * testsuite/util/testsuite_common_types.h
3314 (implicitly_default_constructible): New helper.
3315
3316 2018-06-08 Jonathan Wakely <jwakely@redhat.com>
3317
3318 * include/bits/ios_base.h (ios::Init::Init(const Init&))
3319 (ios::Init::operator=): Define as defaulted.
3320 * include/bits/stl_bvector.h (_Bit_reference(const _Bit_reference&)):
3321 Likewise.
3322 * include/bits/stream_iterator.h (istream_iterator::operator=)
3323 (ostream_iterator::operator=): Likewise.
3324 * include/bits/streambuf_iterator.h (istreambuf_iterator::operator=)
3325 Likewise.
3326 * include/std/bitset (bitset::reference::reference(const reference&)):
3327 Likewise.
3328 * include/std/complex (complex<float>::complex(const complex&))
3329 (complex<double>::complex(const complex&))
3330 (complex<long double>::complex(const complex&)): Likewise.
3331
3332 2018-06-07 Jonathan Wakely <jwakely@redhat.com>
3333
3334 * include/bits/regex.h (sub_match): Add noexcept to default
3335 constructor and length observer.
3336 (match_results): Add noexcept to default constructor and observers
3337 with no preconditions. Define destructor as defaulted.
3338 (operator==, operator!=, swap): Add noexcept.
3339 (regex_iterator): Add default member initializers and define default
3340 constructor and destructor as defaulted. Add noexcept to equality
3341 and dereference operators.
3342
3343 2018-06-07 François Dumont <fdumont@gcc.gnu.org>
3344
3345 * src/c++11/debug.cc
3346 (_Safe_iterator_base::_M_detach()): Reset state only if needed.
3347 (_Safe_iterator_base::_M_detach_single()): Likewise.
3348 (_Safe_local_iterator_base::_M_detach()): Reset state only if needed.
3349 (_Safe_local_iterator_base::_M_detach_single()): Likewise.
3350
3351 2018-06-06 Jonathan Wakely <jwakely@redhat.com>
3352
3353 * include/bits/shared_ptr_base.h (__shared_count): Remove redundant
3354 move of const value.
3355
3356 2018-06-06 Jakub Jelinek <jakub@redhat.com>
3357
3358 PR c++/86068
3359 * include/bits/c++config: Check __cpp_transactional_memory >= 201500L
3360 rather than __cpp_transactional_memory >= 201505L.
3361
3362 2018-06-06 Jonathan Wakely <jwakely@redhat.com>
3363
3364 PR libstdc++/86008
3365 * include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>):
3366 Define new partial specialization.
3367 * include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define
3368 new overload.
3369 (operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use
3370 value not reference for iteration.
3371 * testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust
3372 comment.
3373 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test.
3374 * testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust
3375 comment.
3376
3377 2018-06-05 Jonathan Wakely <jwakely@redhat.com>
3378
3379 * include/std/type_traits: Fix comment typos.
3380
3381 * testsuite/27_io/filesystem/operations/read_symlink.cc: XFAIL for
3382 mingw* targets.
3383 * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
3384 * testsuite/experimental/filesystem/operations/read_symlink.cc:
3385 Likewise.
3386
3387 2018-06-05 François Dumont <fdumont@gcc.gnu.org>
3388
3389 * include/bits/stl_tempbuf.h
3390 (_Temporary_buffer(_FwdIte, _FwdIte)): Delete, replaced by...
3391 (_Temporary_buffer(_FwdIte, size_type)): ...this, new.
3392 * include/ext/memory (temporary_buffer<>(_FwdIte, _FwdIte)): Adapt.
3393 * include/bits/stl_algo.h (__stable_partition): Adapt.
3394 (__inplace_merge): Adapt.
3395 (__stable_sort): Adapt.
3396
3397 2018-06-04 Jonathan Wakely <jwakely@redhat.com>
3398
3399 PR libstdc++/85930
3400 * include/bits/shared_ptr_base.h [!__cpp_rtti]: Include <typeinfo>
3401 unconditionally. Remove redundant declaration.
3402 [!__cpp_rtti] (_Sp_make_shared_tag::_S_ti): Fix location of
3403 alignment-specifier.
3404
3405 * include/bits/postypes.h (fpos): Define special members as defaulted.
3406
3407 PR libstdc++/85930
3408 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Align
3409 the static variable correctly.
3410
3411 2018-05-24 Jonathan Wakely <jwakely@redhat.com>
3412
3413 PR libstdc++/78870 support std::filesystem on Windows
3414 * config.h.in: Regenerate.
3415 * configure: Regenerate.
3416 * configure.ac: Check for link, readlink and symlink.
3417 * include/bits/fs_path.h (path::operator/=(const path&)): Move
3418 definition out of class body.
3419 (path::is_absolute(), path::_M_append(path)): Likewise.
3420 (operator<<(basic_ostream, const path&)): Use std::quoted directly.
3421 (operator>>(basic_istream, path&)): Likewise.
3422 (u8path): Reorder definitions and fix Windows implementation.
3423 (path::is_absolute()): Define inline and fix for Windows.
3424 [!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
3425 Define POSIX version inline.
3426 (path::_M_append(path)): Define inline.
3427 * include/experimental/bits/fs_path.h (path::is_absolute()): Move
3428 definition out of class body.
3429 (operator<<(basic_ostream, const path&)): Fix type of delimiter and
3430 escape characters.
3431 (operator>>(basic_istream, path&)): Likewise.
3432 (path::is_absolute()): Define inline and fix for Windows.
3433 * src/filesystem/dir-common.h (__gnu_posix): New namespace.
3434 (__gnu_posix::char_type, __gnu_posix::DIR, __gnu_posix::dirent)
3435 (__gnu_posix::opendir, __gnu_posix::readdir, __gnu_posix::closedir):
3436 Define as adaptors for Windows functions/types or as
3437 using-declarations for POSIX functions/types.
3438 (_Dir_base, get_file_type): Qualify names to use declarations from
3439 __gnu_posix namespace.
3440 (_Dir_base::is_dor_or_dotdot): New helper functions.
3441 * src/filesystem/dir.cc (_Dir, recursive_directory_iterator): Qualify
3442 names to use declarations from __gnu_posix namespace.
3443 * src/filesystem/ops-common.h (__gnu_posix): New nested namespace.
3444 (__gnu_posix::open, __gnu_posix::close, __gnu_posix::stat_type)
3445 (__gnu_posix::stat, __gnu_posix::lstat, __gnu_posix::mode_t)
3446 (__gnu_posix::chmod, __gnu_posix::mkdir, __gnu_posix::getcwd)
3447 (__gnu_posix::chdir, __gnu_posix::utimbuf, __gnu_posix::utime)
3448 (__gnu_posix::rename, __gnu_posix::truncate, __gnu_posix::char_type):
3449 Define as adaptors for Windows functions/types or as
3450 using-declarations for POSIX functions/types.
3451 (stat_type, do_copy_file): Qualify names to use declarations from
3452 __gnu_posix namespace.
3453 (do_space): Declare new function.
3454 (make_file_type): Only use S_ISLNK if defined.
3455 * src/filesystem/ops.cc (char_ptr, filesystem::canonical): Use
3456 path::value_type not char.
3457 (filesystem::copy, create_dir, filesystem::create_directory): Qualify
3458 names to use declarations from __gnu_posix namespace.
3459 (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
3460 add implementation for Windows.
3461 (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
3462 (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
3463 [!_PC_PATH_MAX]: Don't use pathconf.
3464 [PATH_MAX]: Use if defined.
3465 (filesystem::current_path(const path&, error_code&))
3466 (filesystem::equivalent, do_stat, filesystem::hard_link_count)
3467 (filesystem::last_write_time, filesystem::permissions): Use names
3468 from __gnu_posix.
3469 (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
3470 (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
3471 implementation for Windows.
3472 (filesystem::rename, filesystem::resize_file): Use names from
3473 __gnu_posix.
3474 (filesystem::space): Use do_space.
3475 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Get absolute path to directory.
3476 (filesystem::status, filesystem::symlink_status): Use names from
3477 __gnu_posix.
3478 (filesystem::temp_directory_path): Add implementation for Windows.
3479 * src/filesystem/path.cc (dot): Define constant.
3480 (path::replace_extension): Use dot.
3481 (path::_M_find_extension): Likewise. Use path::string_type not
3482 std::string.
3483 (path::_M_split_cmpts): Use dot.
3484 (filesystem_error::_M_get_what): Use u8string() not native().
3485 * src/filesystem/std-dir.cc (_Dir, recursive_directory_iterator):
3486 Qualify names to use declarations from __gnu_posix namespace.
3487 * src/filesystem/std-ops.cc (filesystem::absolute(const path&)): Use
3488 correct error_code.
3489 (filesystem::absolute(const path&, error_code&)): Add implementation
3490 for Windows.
3491 (char_ptr, filesystem::canonical): Use path::value_type not char.
3492 (do_copy_file): Use names from __gnu_posix.
3493 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Do not use fchmod, fchmodat or
3494 sendfile.
3495 (filesystem::copy, create_dir, filesystem::create_directory): Qualify
3496 names to use declarations from __gnu_posix namespace.
3497 (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
3498 add implementation for Windows.
3499 (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
3500 (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
3501 [!_PC_PATH_MAX]: Don't use pathconf.
3502 [PATH_MAX]: Use if defined.
3503 (filesystem::current_path(const path&, error_code&))
3504 (filesystem::equivalent, do_stat, filesystem::hard_link_count)
3505 (filesystem::last_write_time, filesystem::permissions): Use names
3506 from __gnu_posix.
3507 (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
3508 (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
3509 implementation for Windows.
3510 (filesystem::rename, filesystem::resize_file): Use names from
3511 __gnu_posix.
3512 (do_space): Define.
3513 (filesystem::space): Use do_space.
3514 (filesystem::status, filesystem::symlink_status): Use names from
3515 __gnu_posix.
3516 (filesystem::temp_directory_path): Add implementation for Windows.
3517 * src/filesystem/std-path.cc
3518 [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
3519 Define for Windows.
3520 (dot): Define constant.
3521 (path::replace_extension, is_dot): Use dot.
3522 (path::lexically_normal): Check _M_type instead of calling
3523 non-existent function.
3524 (path::_M_find_extension): Use dot. Use path::string_type not
3525 std::string.
3526 (path::_M_split_cmpts): Use dot.
3527 (filesystem_error::_M_get_what): Use u8string() not native().
3528 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Do not
3529 use symlinks.
3530 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
3531 Likewise.
3532 * testsuite/27_io/filesystem/operations/absolute.cc: Use
3533 __gnu_test::root_path() instead of "/" and add Windows-specific tests.
3534 * testsuite/27_io/filesystem/operations/canonical.cc: Use
3535 path::string() to get narrow string, not path::native().
3536 * testsuite/27_io/filesystem/operations/copy.cc: Construct fstreams
3537 with std::filesystem::path not std::basic_string.
3538 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
3539 * testsuite/27_io/filesystem/operations/exists.cc: Use
3540 __gnu_test::root_path() instead of "/".
3541 * testsuite/27_io/filesystem/operations/is_empty.cc: Construct
3542 fstreams with std::filesystem::path not std::basic_string.
3543 * testsuite/27_io/filesystem/operations/last_write_time.cc: Use
3544 path::string() to get narrow string.
3545 * testsuite/27_io/filesystem/operations/space.cc: Check results for
3546 errors, expect sensible values otherwise.
3547 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: Add
3548 helpers for adjusting the environment on Windows.
3549 * testsuite/27_io/filesystem/path/append/path.cc: Test
3550 Windows-specific behaviour.
3551 * testsuite/27_io/filesystem/path/construct/format.cc: Fix creation
3552 of path::string_type objects.
3553 * testsuite/27_io/filesystem/path/construct/locale.cc: Compare native
3554 string to wide string on Windows.
3555 * testsuite/27_io/filesystem/path/decompose/root_directory.cc: Allow
3556 for backslash as root-directory.
3557 * testsuite/27_io/filesystem/path/decompose/stem.cc: Use
3558 path::string() to get narrow string.
3559 * testsuite/27_io/filesystem/path/itr/traversal.cc: Test Windows-style
3560 paths.
3561 * testsuite/27_io/filesystem/path/native/string.cc: Use string_type
3562 not std::string.
3563 * testsuite/27_io/filesystem/path/query/is_absolute.cc: Adjust for
3564 different definintion of absolute paths on Windows.
3565 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3566 Do not use symlinks.
3567 * testsuite/experimental/filesystem/operations/absolute.cc: Test
3568 Windows behaviour.
3569 * testsuite/experimental/filesystem/operations/copy.cc: Construct
3570 fstreams with NTCTS not std::basic_string.
3571 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
3572 * testsuite/experimental/filesystem/operations/exists.cc: Use
3573 __gnu_test::root_path() instead of "/".
3574 * testsuite/experimental/filesystem/operations/is_empty.cc: Construct
3575 fstreams with NTCTS not std::basic_string.
3576 * testsuite/experimental/filesystem/operations/last_write_time.cc:
3577 Use path::string() to get narrow string.
3578 * testsuite/experimental/filesystem/operations/space.cc: Use
3579 __gnu_test::root_path() instead of "/".
3580 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3581 Add helpers for adjusting the environment on Windows.
3582 * testsuite/experimental/filesystem/path/append/path.cc: Use
3583 path::string() to get narrow strings for comparisons.
3584 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
3585 * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
3586 Likewise.
3587 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
3588 * testsuite/experimental/filesystem/path/native/string.cc: Use
3589 string_type not std::string.
3590 * testsuite/experimental/filesystem/path/query/is_absolute.cc:
3591 Adjust for different definintion of absolute paths on Windows.
3592 * testsuite/util/testsuite_fs.h (__gnu_test::root_path()): New
3593 function.
3594 (__gnu_test::scoped_file): Construct fstreams with NTCTS not
3595 std::basic_string.
3596
3597 2018-05-31 Jonathan Wakely <jwakely@redhat.com>
3598
3599 PR libstdc++/85951
3600 * include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
3601 uint_least16_t and uint_least32_t.
3602 (__make_unsigned<wchar_t>): Define unconditionally.
3603 (__make_unsigned_selector<_Tp, true, false>): Remove intermediate
3604 typedefs.
3605 (__make_unsigned_selector_base): New type to provide helper templates.
3606 (__make_unsigned_selector<_Tp, false, true>): Reimplement using
3607 __make_unsigned_selector_base helpers.
3608 (__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
3609 (__make_signed_selector<_Tp, true, false>): Remove intermediate
3610 typedefs.
3611 (__make_signed<wchar_t>, __make_signed<char16_t>)
3612 (__make_signed<char32_t>)): Define unconditionally.
3613 * testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
3614 wchar_t, char16_t and char32_t are transformed correctly.
3615 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
3616 dg-error lineno.
3617 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
3618 wchar_t, char16_t and char32_t are transformed correctly.
3619 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
3620 dg-error lineno.
3621
3622 2018-05-29 Jonathan Wakely <jwakely@redhat.com>
3623
3624 * include/std/variant (__erased_dtor): Qualify call to __get.
3625
3626 2018-05-27 François Dumont <fdumont@gcc.gnu.org>
3627
3628 * include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
3629 (_Rb_tree(const allocator_type&)): Use latter.
3630 * include/bits/stl_map.h (map(const allocator_type&)): Likewise.
3631 (map(initializer_list<value_type>, const allocator_type&)): Likewise.
3632 (map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
3633 * include/bits/stl_multimap.h
3634 (multimap(const allocator_type&)): Likewise.
3635 (multimap(initializer_list<value_type>, const allocator_type&)):
3636 Likewise.
3637 (multimap(_InputIterator, _InputIterator, const allocator_type&)):
3638 Likewise.
3639 * include/bits/stl_set.h (set(const allocator_type&)): Likewise.
3640 (set(initializer_list<value_type>, const allocator_type&)): Likewise.
3641 (set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
3642 * include/bits/stl_multiset.h
3643 (multiset(const allocator_type&)): Likewise.
3644 (multiset(initializer_list<value_type>, const allocator_type&)):
3645 Likewise.
3646 (multiset(_InputIterator, _InputIterator, const allocator_type&)):
3647 Likewise.
3648
3649 2018-05-25 François Dumont <fdumont@gcc.gnu.org>
3650
3651 PR libstdc++/85768
3652 * src/c++11/debug.cc: Remove backtrace usage.
3653
3654 2018-05-24 Maya Rashish <coypu@sdf.org>
3655
3656 PR target/85904
3657 * crossconfig.m4: Test for aligned_alloc on netbsd.
3658 * configure: Regenerate.
3659
3660 2018-05-24 Jonathan Wakely <jwakely@redhat.com>
3661
3662 PR libstdc++/69769
3663 PR libstdc++/85886
3664 * include/bits/atomic_base.h (__atomic_base::value_type)
3665 (__atomic_base::difference_type): Add new typedefs.
3666 * include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type)
3667 (atomic<T*>::value_type, atomic<T*>::difference_type): Likewise.
3668 (atomic<T*>::operator++, atomic<T*>::operator--)
3669 (atomic<T*>::operator+=, atomic<T*>::operator-=)
3670 (atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion
3671 to enforce C++17 requirement on pointer arithmetic.
3672 (__atomic_val_t, __atomic_diff_t): New alias templates.
3673 (atomic_init, atomic_store_explicit, atomic_exchange_explicit)
3674 (atomic_compare_exchange_weak_explicit)
3675 (atomic_compare_exchange_strong_explicit, atomic_store)
3676 (atomic_exchange, atomic_compare_exchange_weak)
3677 (atomic_compare_exchange_strong): Use __atomic_val_t to make
3678 scalar parameters be non-deduced contexts.
3679 (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
3680 (atomic_fetch_add, atomic_fetch_sub): Change first parameter to be
3681 atomic instead of __atomic_base, and use __atomic_diff_t for scalar
3682 parameters.
3683 (atomic_fetch_and_explicit, atomic_fetch_or_explicit)
3684 (atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or)
3685 (atomic_fetch_xor): Use __atomic_val_t for scalar parameters.
3686 (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
3687 (atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic
3688 address types.
3689 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
3690 * testsuite/29_atomics/atomic/69769.cc: New test.
3691 * testsuite/29_atomics/atomic/nonmembers.cc: New test.
3692 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
3693 Disable test for C++17 and later.
3694 * testsuite/29_atomics/atomic/requirements/typedefs.cc: New test.
3695 * testsuite/29_atomics/atomic_integral/nonmembers.cc: New test.
3696 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New
3697 test.
3698
3699 2018-05-23 Jonathan Wakely <jwakely@redhat.com>
3700
3701 * include/bits/fs_path.h (path::__is_encoded_char): Change from class
3702 template to alias template.
3703 (path::__value_type_is_char): Use remove_const_t.
3704 (path:_S_string_from_iter): New helper function.
3705 (path::_S_convert(InputIter, __null_terminated))
3706 (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
3707 Use _S_string_from_iter.
3708 (path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing
3709 rep for COW strings.
3710 * include/experimental/bits/fs_path.h (path::__is_encoded_char):
3711 Change from class template to alias template.
3712 (path::__value_type_is_char): Use remove_const.
3713 (path:_S_string_from_iter): New helper function.
3714 (path::_S_convert(InputIter, __null_terminated))
3715 (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
3716 Use _S_string_from_iter.
3717 * testsuite/27_io/filesystem/path/append/source.cc: Test appending
3718 wide strings.
3719 * testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact
3720 string equality, not path equivalence.
3721 * testsuite/27_io/filesystem/path/construct/format.cc: Check
3722 construction from std::string and std::wstring and input iterators.
3723 * testsuite/27_io/filesystem/path/construct/locale.cc: Check
3724 construction from iterators.
3725 * testsuite/experimental/filesystem/path/concat/strings.cc: Check for
3726 exact string equality, not path equivalence.
3727 * testsuite/experimental/filesystem/path/construct/locale.cc: Check
3728 construction from iterators.
3729
3730 * include/bits/fs_path.h (path::_M_type): Change default member
3731 initializer to _Filename.
3732 (path::begin): Create past-the-end iterator for empty path.
3733 * src/filesystem/std-path.cc (path::remove_filename()): Remove
3734 debugging check.
3735 (path::has_relative_path()): Return false for empty filenames.
3736 (path::_M_split_cmpts): Set _M_type to _Filename for empty paths.
3737 Fix offset of empty final component.
3738 * testsuite/27_io/filesystem/path/itr/components.cc: New.
3739 * testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs.
3740
3741 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
3742
3743 Add support for opening file streams from wide character strings.
3744 * config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
3745 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
3746 Define new overload.
3747 * config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
3748 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
3749 Declare new overload.
3750 * configure.ac: Check for _wfopen.
3751 * crossconfig.m4: Likewise.
3752 * configure: Regenerate.
3753 * config.h.in: Regenerate.
3754 * include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
3755 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
3756 Define new overload.
3757 * include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
3758 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
3759 Declare new overload.
3760 [_GLIBCXX_HAVE__WFOPEN]
3761 (basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
3762 (basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
3763 (basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
3764 (basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
3765 (basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
3766 (basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
3767 new overloads.
3768 * testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
3769 * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
3770 * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
3771 * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
3772 * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
3773 * testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
3774 * testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
3775
3776 2018-05-21 François Dumont <fdumont@gcc.gnu.org>
3777
3778 PR libstdc++/85845
3779 * include/bits/stl_tree.h
3780 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
3781 qualification.
3782
3783 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
3784
3785 * src/filesystem/std-ops.cc (absolute): Report an error for empty
3786 paths.
3787 (weakly_canonical(const path&)): Do not call canonical on empty path.
3788 (weakly_canonical(const path&, error_code&)): Likewise.
3789 * testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
3790
3791 PR libstdc++/85818
3792 * testsuite/experimental/filesystem/path/preferred_separator.cc: Add
3793 dg-require-filesystem-ts.
3794
3795 PR libstdc++/85843
3796 * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
3797 initialize base class to avoid warnings.
3798
3799 2018-05-19 Jonathan Wakely <jwakely@redhat.com>
3800
3801 * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
3802 [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
3803 little_endian element in bitmask.
3804 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
3805 * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
3806
3807 2018-05-18 François Dumont <fdumont@gcc.gnu.org>
3808
3809 * include/bits/stl_tree.h
3810 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
3811 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
3812 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
3813 (_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
3814 * include/debug/map.h
3815 (map(map&&, const_allocator_type&)): Add noexcept qualitication.
3816 * include/debug/multimap.h
3817 (multimap(multimap&&, const_allocator_type&)): Likewise.
3818 * include/debug/set.h
3819 (set(set&&, const_allocator_type&)): Likewise.
3820 * include/debug/multiset.h
3821 (multiset(multiset&&, const_allocator_type&)): Likewise.
3822 * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
3823 Add checks.
3824 * testsuite/23_containers/map/cons/noexcept_move_construct.cc:
3825 Add checks.
3826 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
3827 Add checks.
3828 * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
3829 Add checks.
3830 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
3831 Add checks.
3832 * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
3833 Add checks.
3834 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
3835 Add checks.
3836 * testsuite/23_containers/set/cons/noexcept_move_construct.cc:
3837 Add checks.
3838
3839 2018-05-18 Jason Merrill <jason@redhat.com>
3840
3841 * include/bits/stl_deque.h (_Deque_iterator): Constrain constructor
3842 for conversion to const_iterator. Add defaulted copy ops.
3843 * libsupc++/new (bad_alloc): Add defaulted copy ops.
3844 * libsupc++/exception.h (exception): Add defaulted copy ops.
3845 * include/std/system_error (system_error): Add defaulted copy ops.
3846 * include/std/stdexcept (domain_error, invalid_argument)
3847 (length_error, out_of_range, range_error, overflow_error)
3848 (underflow_error): Add defaulted copy ops.
3849 * include/bits/stl_iterator.h (reverse_iterator): Add defaulted
3850 copy assignment.
3851 * include/bits/allocator.h (allocator): Add defaulted copy assignment.
3852 * include/ext/throw_allocator.h (condition_base): Add defaulted
3853 default and copy ctor and copy assignment.
3854
3855 2018-05-18 Jonathan Wakely <jwakely@redhat.com>
3856
3857 PR libstdc++/85098
3858 * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
3859 (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
3860 (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
3861 (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
3862 definitions.
3863 * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
3864 whitespace.
3865 * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
3866 braces around body of do-while.
3867 * testsuite/28_regex/basic_regex/85098.cc: New
3868
3869 2018-05-17 Jonathan Wakely <jwakely@redhat.com>
3870
3871 PR libstdc++/85818
3872 * src/filesystem/path.cc (path::preferred_separator): Add used
3873 attribute.
3874 * testsuite/experimental/filesystem/path/preferred_separator.cc: New.
3875
3876 PR libstdc++/85812
3877 * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
3878 * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
3879 Refactor to separate non-throwing and throwing implementations.
3880 [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
3881 if constructing the object throws.
3882
3883 2018-05-15 Jonathan Wakely <jwakely@redhat.com>
3884
3885 PR libstdc++/85749
3886 * include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
3887 (linear_congruential_engine, mersenne_twister_engine)
3888 (subtract_with_carry_engine, discard_block_engine)
3889 (independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
3890 constrain function templates taking seed sequences.
3891 * include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
3892 (mersenne_twister_engine::seed(_Sseq&))
3893 (subtract_with_carry_engine::seed(_Sseq&)): Change return types to
3894 match declarations.
3895 * include/ext/random (simd_fast_mersenne_twister_engine): Use
3896 __is_seed_seq to constrain function templates taking seed sequences.
3897 * include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
3898 Change return type to match declaration.
3899 * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
3900 New.
3901 * testsuite/26_numerics/random/independent_bits_engine/cons/
3902 seed_seq2.cc: New.
3903 * testsuite/26_numerics/random/linear_congruential_engine/cons/
3904 seed_seq2.cc: New.
3905 * testsuite/26_numerics/random/mersenne_twister_engine/cons/
3906 seed_seq2.cc: New.
3907 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
3908 * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
3909 New.
3910 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
3911 seed_seq2.cc: New.
3912 * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
3913 seed_seq2.cc: New.
3914
3915 PR libstdc++/83891
3916 * include/bits/fs_path.h (path::is_absolute()): Use same definition
3917 for all operating systems.
3918 * include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
3919 * testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
3920 * testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
3921 * testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
3922
3923 * testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
3924 unused <vector> header.
3925 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
3926 * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
3927 * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
3928 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
3929 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
3930 Likewise.
3931 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
3932 Likewise.
3933 * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
3934 * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
3935 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
3936 * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
3937 * testsuite/experimental/filesystem/path/decompose/extension.cc:
3938 Likewise.
3939 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
3940 * testsuite/experimental/filesystem/path/query/has_extension.cc:
3941 Likewise.
3942 * testsuite/experimental/filesystem/path/query/has_filename.cc:
3943 Likewise.
3944 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
3945 Likewise.
3946 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
3947 Likewise.
3948 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
3949 Likewise.
3950 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
3951 Likewise.
3952 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
3953 Likewise.
3954 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
3955 * testsuite/experimental/filesystem/path/query/is_relative.cc:
3956 Likewise.
3957
3958 PR libstdc++/84159
3959 * include/bits/fs_path.h (path::operator/=, path::append): Construct
3960 temporary path before calling _M_append.
3961 (path::_M_append): Change parameter to path and implement C++17
3962 semantics.
3963 * testsuite/27_io/filesystem/path/append/path.cc: Add helper function
3964 and more examples from the standard.
3965 * testsuite/27_io/filesystem/path/append/source.cc: New.
3966 * testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
3967 * testsuite/27_io/filesystem/path/nonmember/append.cc: New.
3968
3969 * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
3970 __invoke to prevent ADL.
3971
3972 2018-05-14 Jonathan Wakely <jwakely@redhat.com>
3973
3974 PR libstdc++/81256
3975 * include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
3976 exceptions from _M_terminate_output().
3977 * include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
3978 exceptions from close().
3979 * testsuite/27_io/basic_filebuf/close/81256.cc: New.
3980
3981 * include/bits/valarray_array.h (__valarray_get_memory): Remove.
3982 (__valarray_get_storage): Call operator new directly. Remove ignored
3983 top-level restrict qualifier and add malloc attribute instead.
3984 (_Array<_Tp>::_Array(size_t)): Remove unused constructor.
3985
3986 PR libstdc++/67554
3987 * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
3988 (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
3989
3990 PR libstdc++/82966
3991 * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
3992 instead of type.
3993 * testsuite/23_containers/set/modifiers/node_swap.cc: New.
3994
3995 2018-05-13 Ville Voutilainen <ville.voutilainen@gmail.com>
3996
3997 PR libstdc++/80165
3998 * testsuite/20_util/variant/80165.cc: New.
3999
4000 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
4001
4002 * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
4003 * doc/xml/manual/debug_mode.xml: Add array and forward_list to list
4004 of C++11 containers with Debug Mode support.
4005 * doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
4006 * doc/html/*: Regenerate.
4007
4008 2018-05-10 Jason Merrill <jason@redhat.com>
4009
4010 * include/bits/regex_compiler.h (_S_cache_size): Change from
4011 function to variable.
4012
4013 2018-05-10 Edward Smith-Rowland <3dw4rd@verizon.net>
4014
4015 PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
4016 * include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
4017 argument defaulted to +1. Doxy comments on same.
4018 * testsuite/special_functions/02_assoc_legendre/
4019 check_value.cc: Regen.
4020 * testsuite/tr1/5_numerical_facilities/special_functions/
4021 02_assoc_legendre/check_value.cc: Regen.
4022
4023 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
4024
4025 PR libstdc++/85729
4026 * include/bits/c++config.h (__replacement_assert): Add linkage
4027 specification.
4028 * include/bits/std_abs.h: Add comment to closing brace of block.
4029 * include/c_global/cstddef: Add linkage specification.
4030 * include/c_global/cstring: Likewise.
4031 * include/c_global/cwchar: Likewise.
4032
4033 2018-05-09 François Dumont <fdumont@gcc.gnu.org>
4034
4035 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
4036 Rename in...
4037 (_Safe_iterator<>::_S_constant()): ...that.
4038 * include/debug/safe_local_iterator.h
4039 (_Safe_local_iterator<>::_M_constant()): Rename in...
4040 (_Safe_local_iterator<>::_S_constant()): ...that.
4041 * include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
4042 (_Iterator_state::__rbegin): New.
4043 (_Iterator_state::__rmiddle): New.
4044 (_Iterator_state::__rend): New.
4045 (_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
4046 _Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
4047 iterator type.
4048 (_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
4049 _Is_iterator)): Likewise.
4050 (_Parameter::_S_reverse_state(_Iterator_state)): New.
4051 (_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
4052 _Is_iterator)): New.
4053 (_Parameter(std::reverse_iterator<> const&, const char*,
4054 _Is_iterator)): New.
4055 (_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
4056 const char*, _Is_iterator)): New.
4057 (_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
4058 New.
4059 (_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
4060 _Is_iterator)): New.
4061 * testsuite/24_iterators/move_iterator/debug_neg.cc: New.
4062 * testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
4063 * testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
4064
4065 2018-05-09 Jonathan Wakely <jwakely@redhat.com>
4066
4067 * include/bits/std_function.h (_Base_manager::_M_get_pointer):
4068 Use constexpr if in C++17 mode.
4069 (_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
4070 Copy from const object.
4071 * testsuite/20_util/function/cons/non_copyconstructible.cc: New.
4072
4073 2018-05-08 François Dumont <fdumont@gcc.gnu.org>
4074
4075 * src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
4076 [_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
4077 backtrace.
4078
4079 * include/debug/macros.h (__glibcxx_check_valid_range_at): New.
4080 * include/debug/functions.h (__check_valid_range): Use latter.
4081 * include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
4082 use latter.
4083 * include/debug/deque
4084 (deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
4085 * include/debug/forward_list
4086 (forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
4087 Likewise.
4088 * include/debug/list
4089 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
4090 * include/debug/list
4091 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
4092 * include/debug/map.h
4093 (map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
4094 (map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
4095 Likewise.
4096 * include/debug/multimap.h
4097 (multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
4098 (multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
4099 const _Alloc&)): Likewise.
4100 * include/debug/set.h
4101 (set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
4102 (set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
4103 Likewise.
4104 * include/debug/multiset.h
4105 (multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
4106 (multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
4107 const _Alloc&)): Likewise.
4108 * include/debug/string
4109 (basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
4110 Likewise.
4111 * include/debug/unordered_map
4112 (unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
4113 Likewise.
4114 (unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
4115 const _Alloc&)): Likewise.
4116 * include/debug/unordered_set
4117 (unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
4118 Likewise.
4119 (unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
4120 const _Alloc&)): Likewise.
4121 * include/debug/vector
4122 (vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
4123
4124 * include/debug/formatter.h (_Error_formatter::_M_function): New.
4125 (_Error_formatter(const char*, unsigned int)): Adapt.
4126 (_Error_formatter::_M_at): Rename in...
4127 (_Error_formatter::_S_at): ...that and adapt.
4128 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New.
4129 (_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt.
4130 * src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function
4131 when available.
4132
4133 2018-05-08 Jonathan Wakely <jwakely@redhat.com>
4134
4135 * include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
4136 Use normal std::vector even in Debug Mode.
4137
4138 PR libstdc++/85672
4139 * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
4140 to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
4141 * include/Makefile.in: Regenerate.
4142 * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
4143 within conditional block.
4144
4145 2018-05-07 Jonathan Wakely <jwakely@redhat.com>
4146
4147 * doc/xml/manual/using.xml (table.cmd_options): Document that the
4148 C++17 Filesystem implementation also needs -lstdc++fs.
4149
4150 PR libstdc++/85671
4151 * include/bits/fs_path.h (operator/): Permit copy elision.
4152 * include/experimental/bits/fs_path.h (operator/): Likewise.
4153
4154 2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net>
4155
4156 Moar PR libstdc++/80506
4157 * include/bits/random.tcc (gamma_distribution::__generate_impl()):
4158 Fix magic number used in loop condition.
4159
4160 2018-05-04 Jonathan Wakely <jwakely@redhat.com>
4161
4162 PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
4163 * include/std/optional (_Optional_payload): Add noexcept to default
4164 constructor. Re-indent.
4165 (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
4166 constructor for copying disengaged payloads.
4167 (_Optional_payload<_Tp, true, false, true>): Likewise.
4168 (_Optional_payload<_Tp, true, true, false>): Likewise.
4169 (_Optional_payload<_Tp, true, false, false>): Likewise.
4170 * testsuite/20_util/optional/cons/85642.cc: New.
4171 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
4172
4173 2018-05-03 Jonathan Wakely <jwakely@redhat.com>
4174
4175 PR libstdc++/82644
4176 * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
4177 inline definitions instead of using-declarations.
4178 [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
4179 * testsuite/tr1/5_numerical_facilities/special_functions/
4180 07_conf_hyperg/compile_cxx17.cc: New.
4181 * testsuite/tr1/5_numerical_facilities/special_functions/
4182 17_hyperg/compile_cxx17.cc: New.
4183
4184 PR libstdc++/84769
4185 * include/std/variant (visit): Qualify std::get call.
4186
4187 PR libstdc++/85632 use uintmax_t for arithmetic
4188 * src/filesystem/ops.cc (experimental::filesystem::space): Perform
4189 arithmetic in result type.
4190 * src/filesystem/std-ops.cc (filesystem::space): Likewise.
4191 * testsuite/27_io/filesystem/operations/space.cc: Check total capacity
4192 is greater than free space.
4193 * testsuite/experimental/filesystem/operations/space.cc: New.
4194
4195 * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
4196 * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
4197 New.
4198 * testsuite/20_util/remove_cvref/value.cc: New.
4199 * testsuite/20_util/remove_cvref/value_ext.cc: New.
4200
4201 PR libstdc++/84087 LWG DR 2268 basic_string default arguments
4202 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
4203 (append(const basic_string&, size_type, size_type)
4204 (assign(const basic_string&, size_type, size_type)
4205 (insert(size_type, const basic_string&, size_type, size_type)
4206 (replace(size_type,size_type,const basic_string&,size_type,size_type)
4207 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
4208 Add default arguments (LWG 2268).
4209 [_GLIBCXX_USE_CXX11_ABI=0]
4210 (append(const basic_string&, size_type, size_type)
4211 (assign(const basic_string&, size_type, size_type)
4212 (insert(size_type, const basic_string&, size_type, size_type)
4213 (replace(size_type,size_type,const basic_string&,size_type,size_type)
4214 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
4215 Likewise.
4216 * testsuite/21_strings/basic_string/dr2268.cc: New test.
4217
4218 PR libstdc++/84535
4219 * include/std/thread (thread::__not_same): New SFINAE helper.
4220 (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
4221 first argument is not a std::thread. Add static assertion to check
4222 INVOKE expression is valid.
4223 (thread::thread(thread&), thread::thread(const thread&&)): Remove.
4224 (thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
4225 __invoke_result for return types and remove exception specifications.
4226 * testsuite/30_threads/thread/cons/84535.cc: New.
4227
4228 * include/std/future (__async_result_of): Use __invoke_result instead
4229 of result_of.
4230
4231 * include/std/any (any_cast): Use __remove_cvref_t.
4232 * include/std/tuple (__make_tuple): Likewise.
4233 * include/std/type_traits (__remove_cvref_t): Define.
4234 (__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
4235 [__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
4236 * include/std/variant (__erased_hash): Use __remove_cvref_t.
4237
4238 2018-05-02 François Dumont <fdumont@gcc.gnu.org>
4239
4240 * include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
4241 ensure overloaded comma not used.
4242 * include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
4243 * include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
4244 * include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
4245 * testsuite/23_containers/deque/modifiers/assign/1.cc: New.
4246 * testsuite/23_containers/list/modifiers/assign/1.cc: New.
4247 * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
4248 * testsuite/23_containers/vector/modifiers/assign/1.cc: New.
4249
4250 2018-05-02 Jonathan Wakely <jwakely@redhat.com>
4251
4252 PR libstdc++/68197
4253 * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
4254 indices to unsigned.
4255 * src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
4256 as failure. Refactor error handling.
4257 * testsuite/27_io/ios_base/storage/68197.cc: New.
4258
4259 PR libstdc++/57997
4260 PR libstdc++/83860
4261 * include/bits/gslice_array.h (gslice_array): Define default
4262 constructor as deleted, as per C++11 standard.
4263 * include/bits/mask_array.h (mask_array): Likewise.
4264 * include/bits/slice_array.h (slice_array): Likewise.
4265 * include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
4266 to namespace __detail.
4267 (_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
4268 members.
4269 * include/bits/valarray_before.h (_ValArrayRef): New helper for type
4270 of data members in closure objects.
4271 (_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
4272 (_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
4273 __detail.
4274 (_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
4275 (_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
4276 (_SBase::_M_expr): Use _ValArrayRef for type of data members.
4277 * include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
4278 (_ValFunClos, _RefFunClos): Move to namespace __detail and add
4279 using-declarations to namespace std.
4280 * testsuite/26_numerics/valarray/83860.cc: New.
4281
4282 * testsuite/backward/strstream_move.cc: Remove duplicate function
4283 call.
4284
4285 PR libstdc++/69608
4286 * include/backward/strstream (strstreambuf): Define move constructor
4287 and move assignment operator.
4288 (istrstream, ostrstream, strstream): Likewise.
4289 * testsuite/backward/strstream_move.cc: New.
4290
4291 2018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
4292
4293 PR libstdc++/84654
4294 * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
4295 * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
4296 * configure: Regenerate.
4297 * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
4298 based on ENABLE_FLOAT128.
4299 * include/Makefile.in: Regenerate.
4300 * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
4301 [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
4302 _GLIBCXX_USE_FLOAT128.
4303
4304 2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
4305
4306 * configure: Regenerated.
4307
4308 2018-04-19 Jakub Jelinek <jakub@redhat.com>
4309
4310 * configure: Regenerated.
4311
4312 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
4313 Jakub Jelinek <jakub@redhat.com>
4314
4315 PR libstdc++/85442
4316 * src/c++11/Makefile.am: Don't generate debuginfo again for
4317 cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
4318 * src/c++11/Makefile.in: Regenerate.
4319
4320 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
4321
4322 PR libstdc++/84442
4323 * testsuite/30_threads/thread/cons/terminate.cc
4324 [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
4325
4326 2018-04-18 David Malcolm <dmalcolm@redhat.com>
4327
4328 PR jit/85384
4329 * configure: Regenerate.
4330
4331 2018-04-16 Jonathan Wakely <jwakely@redhat.com>
4332
4333 * testsuite/experimental/filesystem/file_status/1.cc: Add
4334 -DUSE_FILESYSTEM_TS to dg-options.
4335 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
4336 Likewise.
4337 * testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
4338 * testsuite/experimental/filesystem/iterators/
4339 recursive_directory_iterator.cc: Likewise.
4340 * testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
4341 * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
4342 * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
4343 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
4344 * testsuite/experimental/filesystem/operations/create_directories.cc:
4345 Likewise.
4346 * testsuite/experimental/filesystem/operations/create_directory.cc:
4347 Likewise.
4348 * testsuite/experimental/filesystem/operations/create_symlink.cc:
4349 Likewise.
4350 * testsuite/experimental/filesystem/operations/current_path.cc:
4351 Likewise.
4352 * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
4353 * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
4354 * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
4355 * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
4356 * testsuite/experimental/filesystem/operations/last_write_time.cc:
4357 Likewise.
4358 * testsuite/experimental/filesystem/operations/permissions.cc:
4359 Likewise.
4360 * testsuite/experimental/filesystem/operations/read_symlink.cc:
4361 Likewise.
4362 * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
4363 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
4364 * testsuite/experimental/filesystem/operations/status.cc: Likewise.
4365 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
4366 Likewise.
4367 * testsuite/experimental/filesystem/path/append/path.cc: Likewise.
4368 * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
4369 * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
4370 * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
4371 * testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
4372 * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
4373 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
4374 * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
4375 * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
4376 * testsuite/experimental/filesystem/path/construct/default.cc:
4377 Likewise.
4378 * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
4379 * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
4380 * testsuite/experimental/filesystem/path/construct/string_view.cc:
4381 Likewise.
4382 * testsuite/experimental/filesystem/path/decompose/extension.cc:
4383 Likewise.
4384 * testsuite/experimental/filesystem/path/decompose/filename.cc:
4385 Likewise.
4386 * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
4387 Likewise.
4388 * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
4389 Likewise.
4390 * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
4391 Likewise.
4392 * testsuite/experimental/filesystem/path/decompose/root_name.cc:
4393 Likewise.
4394 * testsuite/experimental/filesystem/path/decompose/root_path.cc:
4395 Likewise.
4396 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
4397 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
4398 Likewise.
4399 * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
4400 * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
4401 * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
4402 Likewise.
4403 * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
4404 Likewise.
4405 * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
4406 Likewise.
4407 * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
4408 Likewise.
4409 * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
4410 * testsuite/experimental/filesystem/path/native/string.cc: Likewise.
4411 * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
4412 Likewise.
4413 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
4414 * testsuite/experimental/filesystem/path/query/has_extension.cc:
4415 Likewise.
4416 * testsuite/experimental/filesystem/path/query/has_filename.cc:
4417 Likewise.
4418 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
4419 Likewise.
4420 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
4421 Likewise.
4422 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
4423 Likewise.
4424 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
4425 Likewise.
4426 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
4427 Likewise.
4428 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
4429 * testsuite/experimental/filesystem/path/query/is_relative.cc:
4430 Likewise.
4431
4432 2018-04-13 Jonathan Wakely <jwakely@redhat.com>
4433
4434 * src/c++11/Makefile.am: Fix sed command.
4435 * src/c++11/Makefile.in: Regenerate.
4436
4437 * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
4438 handle mangled names starting with double underscores on darwin.
4439 * src/c++11/Makefile.in: Regenerate.
4440
4441 2018-04-12 Jonathan Wakely <jwakely@redhat.com>
4442
4443 * src/c++11/Makefile.am: Fix comment.
4444 * src/c++11/Makefile.in: Regenerate.
4445 * src/c++11/cxx11-ios_failure.cc: Fix comment.
4446 * src/c++98/ios_failure.cc: Likewise.
4447
4448 * src/c++11/ios.cc: Remove redundant macro definition.
4449
4450 2018-04-11 Jonathan Wakely <jwakely@redhat.com>
4451
4452 * doc/xml/manual/abi.xml: Document header locations in recent
4453 releases.
4454 * doc/xml/manual/evolution.xml: Add API changes since GCC 5.
4455 * doc/xml/manual/spine.xml: Update copyright years.
4456 * doc/xml/manual/strings.xml: Adjust tolower example to avoid
4457 undefined behaviour.
4458 * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
4459 * doc/html/*: Regenerate.
4460
4461 2018-04-10 Jonathan Wakely <jwakely@redhat.com>
4462
4463 * doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
4464 * doc/xml/manual/backwards_compatibility.xml: Likewise.
4465 * doc/xml/manual/containers.xml: Likewise.
4466 * doc/xml/manual/debug_mode.xml: Likewise.
4467 * doc/xml/manual/extensions.xml: Likewise.
4468 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
4469 * doc/xml/manual/using.xml: Likewise.
4470 * doc/xml/manual/utilities.xml: Likewise.
4471
4472 PR libstdc++/85222
4473 * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
4474 cxx11-ios_failure.cc to rewrite type info for __ios_failure.
4475 * src/c++11/Makefile.in: Regenerate.
4476 * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
4477 New types.
4478 [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
4479 * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
4480 * src/c++98/ios_failure.cc (__construct_ios_failure)
4481 (__destroy_ios_failure, is_ios_failure_handler): New functions.
4482 [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
4483 * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
4484 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
4485 handler types, to always catch std::ios_base::failure.
4486 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
4487 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
4488 exceptions_failbit.cc: Likewise.
4489 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
4490 exceptions_failbit.cc: Likewise.
4491 * testsuite/27_io/basic_istream/extractors_other/char/
4492 exceptions_null.cc: Likewise.
4493 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
4494 exceptions_null.cc: Likewise.
4495 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
4496 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
4497 * testsuite/27_io/basic_ostream/inserters_other/char/
4498 exceptions_null.cc: Likewise.
4499 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
4500 exceptions_null.cc: Likewise.
4501 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
4502
4503 2018-04-05 Jonathan Wakely <jwakely@redhat.com>
4504
4505 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
4506 __get calls to avoid ADL and avoid ambiguity due to Clang bug.
4507
4508 2018-04-03 Jonathan Wakely <jwakely@redhat.com>
4509
4510 PR libstdc++/85183
4511 * include/std/variant (_Move_assign_base::operator=): Fix incorrect
4512 value categories.
4513 * testsuite/20_util/variant/85183.cc: New.
4514
4515 2018-03-26 Jonathan Wakely <jwakely@redhat.com>
4516
4517 * include/std/variant (__get): Qualify calls to avoid ADL.
4518 (__select_index): Adjust whitespace.
4519 (variant): Add using-declaration to workaround Clang bug.
4520
4521 2018-03-22 Jonathan Wakely <jwakely@redhat.com>
4522
4523 PR libstdc++/85040
4524 * include/bits/stl_function.h (greater::__not_overloaded)
4525 (less::__not_overloaded, greater_equal::__not_overloaded)
4526 (less_equal::__not_overloaded): Fix ambiguous specializations.
4527 * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
4528 tests for type with overloaded operators.
4529
4530 2018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4531
4532 PR libstdc++/77691
4533 * testsuite/experimental/memory_resource/resource_adaptor.cc:
4534 xfail execution on 32-bit Solaris/x86.
4535
4536 2018-03-21 Jonathan Wakely <jwakely@redhat.com>
4537
4538 * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
4539 VERIFY instead of assert.
4540 * testsuite/20_util/hash/84998.cc: New test.
4541 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
4542 copy of test adjusted for Debug Mode.
4543 * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
4544 test in Debug Mode.
4545
4546 2018-03-20 François Dumont <fdumont@gcc.gnu.org>
4547
4548 PR libstdc++/84998
4549 * include/bits/stl_bvector.h: Fix std::hash friend declaration.
4550 * include/std/bitset: Likewise.
4551 * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
4552 declaration.
4553 * include/bits/stl_multimap.h (std::multimap<>): Likewise.
4554 * include/bits/stl_multiset.h (std::multiset<>): Likewise.
4555 * include/bits/stl_set.h (std::set<>): Likewise.
4556 * include/bits/unordered_map.h (std::unordered_map<>): Fix
4557 _Hash_merge_helper friend declaration.
4558 (std::unordered_multimap<>): Likewise.
4559 * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
4560 (std::unordered_multiset<>): Likewise.
4561
4562 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
4563
4564 * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
4565 trailing slash for domain level link.
4566 * doc/xml/faq.xml: Ditto.
4567 * doc/xml/manual/appendix_free.xml (software): Ditto.
4568 * doc/xml/manual/intro.xml: Ditto.
4569 * doc/xml/manual/spine.xml: Ditto.
4570 * doc/xml/spine.xml: Ditto.
4571
4572 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
4573
4574 * doc/xml/manual/documentation_hacking.xml: Adjust link to
4575 docbook.org.
4576
4577 2018-03-17 Jonathan Wakely <jwakely@redhat.com>
4578
4579 * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
4580 to compile as C++98.
4581
4582 2018-03-14 Jonathan Wakely <jwakely@redhat.com>
4583
4584 PR libstdc++/78420
4585 * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
4586 (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
4587 to ensure total order for pointers.
4588 (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
4589 Add operator() overloads for pointer arguments and make generic
4590 overloads dispatch to new _S_cmp functions when comparisons would
4591 use built-in operators for pointers.
4592 * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
4593
4594 2018-03-12 Jonathan Wakely <jwakely@redhat.com>
4595
4596 PR libstdc++/84773
4597 PR libstdc++/83662
4598 * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
4599 * configure: Regenerate.
4600 * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
4601 (aligned_alloc): Add using-declaration.
4602 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
4603
4604 2018-03-09 François Dumont <fdumont@gcc.gnu.org>
4605
4606 * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
4607 Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
4608 registration.
4609
4610 2018-03-09 Jonathan Wakely <jwakely@redhat.com>
4611
4612 PR libstdc++/84769
4613 * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
4614 Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
4615
4616 src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
4617 src/filesystem/std-ops.cc (create_dir): Likewise.
4618
4619 2018-03-08 François Dumont <fdumont@gcc.gnu.org>
4620
4621 * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
4622 (StdListIteratorPrinter): Inherit from latter.
4623 (StdFwdListIteratorPrinter): New, inherit from latter.
4624 (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
4625 when iterator has no associated container.
4626 (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
4627 __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
4628 registrations.
4629 * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
4630 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
4631
4632 2018-03-06 Ville Voutilainen <ville.voutilainen@gmail.com>
4633
4634 PR libstdc++/84601
4635 * include/std/optional (_Optional_payload): Split into multiple
4636 specializations that can handle different cases of trivial or
4637 non-trivial assignment operators.
4638 * testsuite/20_util/optional/84601.cc: New.
4639 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
4640
4641 2018-03-02 Jonathan Wakely <jwakely@redhat.com>
4642
4643 PR libstdc++/84671
4644 * include/bits/parse_numbers.h (_Number_help): Add partial
4645 specialization to handle digit separators. Adjust partial
4646 specialization for recursion temrination to require _Pow == 1ULL.
4647 * testsuite/20_util/duration/literals/84671.cc: New
4648
4649 2018-02-27 Ville Voutilainen <ville.voutilainen@gmail.com>
4650
4651 Implement the missing bits of LWG 2769
4652 * include/std/any (any_cast(const any&)): Add static_assert.
4653 (any_cast(any&)): Likewise.
4654 (any_cast(any&&)): Likewise, and remove the handling
4655 for copyable-but-not-movable type.
4656 * testsuite/20_util/any/misc/any_cast.cc: Adjust.
4657 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
4658 add new tests.
4659
4660 2018-02-23 Jonathan Wakely <jwakely@redhat.com>
4661
4662 PR libstdc++/84532
4663 * include/std/thread (thread::__make_invoker): Construct tuple
4664 directly instead of using make_tuple.
4665 * testsuite/30_threads/async/84532.cc: New.
4666 * testsuite/30_threads/thread/84532.cc: New.
4667
4668 2018-02-20 François Dumont <fdumont@gcc.gnu.org>
4669
4670 * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
4671 (template<> __aligned_buffer): Define as __aligned_membuf alias.
4672
4673 2018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
4674
4675 PR target/84148
4676 * configure: Regenerate.
4677
4678 2018-02-15 Jonathan Wakely <jwakely@redhat.com>
4679
4680 PR libstdc++/81797
4681 * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
4682 * configure: Regenerate.
4683 * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
4684 defined.
4685 * include/Makefile.in: Regenerate.
4686
4687 2018-01-29 Jonathan Wakely <jwakely@redhat.com>
4688
4689 PR libstdc++/83833
4690 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
4691 Add -ffloat-store to options for m68k and ia32.
4692
4693 * doc/xml/faq.xml: Update copyright years.
4694 * doc/html/*: Regenerate.
4695
4696 PR libstdc++/83658
4697 * include/std/any (any::__do_emplace): Only set _M_manager after
4698 constructing the contained object.
4699 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
4700 * testsuite/20_util/any/modifiers/83658.cc: New test.
4701
4702 2018-01-25 Jonathan Wakely <jwakely@redhat.com>
4703
4704 PR libstdc++/81076
4705 * include/c_global/cstddef (__byte_operand): Define primary template.
4706 * testsuite/18_support/byte/81076.cc: New test.
4707
4708 2018-01-19 Christophe Lyon <christophe.lyon@linaro.org>
4709
4710 * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
4711 dg-options and dg-add-options order.
4712 * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
4713 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
4714 Likewise.
4715 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
4716 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
4717 Likewise.
4718 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
4719 Likewise.
4720 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
4721 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
4722 Likewise.
4723 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
4724 Likewise.
4725 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
4726 Likewise.
4727 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
4728 Likewise.
4729 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
4730 Likewise.
4731 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
4732 Likewise.
4733 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
4734 Likewise.
4735 * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
4736 Likewise.
4737 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
4738 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
4739 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
4740 * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
4741 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
4742 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
4743 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
4744 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
4745 * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
4746 Likewise.
4747 * testsuite/special_functions/19_sph_bessel/check_nan.cc:
4748 Likewise.
4749 * testsuite/special_functions/20_sph_legendre/check_nan.cc:
4750 Likewise.
4751 * testsuite/special_functions/21_sph_neumann/check_nan.cc:
4752 Likewise.
4753
4754 2018-01-18 Uros Bizjak <ubizjak@gmail.com>
4755
4756 * configure.ac (AC_CHECK_HEADERS): Add linux/types.h. Conditionally
4757 include linux/types.h when checking linux/random.h header.
4758 * config.h.in: Regenerate.
4759 * configure: Ditto.
4760 * src/c++11/random.cc: Conditionally include linux/types.h.
4761
4762 2018-01-16 Eric Botcazou <ebotcazou@adacore.com>
4763
4764 * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
4765
4766 2018-01-16 Jonathan Wakely <jwakely@redhat.com>
4767
4768 PR libstdc++/83834
4769 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
4770 pattern with exact match for std::cerr.
4771
4772 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
4773
4774 PR libstdc++/83833
4775 * include/bits/random.h (chi_squared_distribution::param): Update
4776 gamma distribution parameter.
4777 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
4778 test.
4779
4780 PR libstdc++/83830
4781 * include/std/type_traits (has_unique_object_representations_v): Add
4782 variable template.
4783 * testsuite/20_util/has_unique_object_representations/value.cc: Check
4784 variable template.
4785
4786 2018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com>
4787
4788 Make optional conditionally
4789 trivially_{copy,move}_{constructible,assignable}
4790 * include/std/optional (_Optional_payload): Fix the comment in
4791 the class head and turn into a primary and one specialization.
4792 (_Optional_payload::_M_engaged): Strike the NSDMI.
4793 (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
4794 New.
4795 (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
4796 Likewise.
4797 (_Optional_payload<_Tp, false>::_M_get): Likewise.
4798 (_Optional_payload<_Tp, false>::_M_reset): Likewise.
4799 (_Optional_base_impl): Likewise.
4800 (_Optional_base): Turn into a primary and three specializations.
4801 (optional(nullopt)): Change the base init.
4802 * testsuite/20_util/optional/assignment/8.cc: New.
4803 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
4804 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
4805
4806 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
4807
4808 PR libstdc++/80276
4809 * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
4810 (get_template_arg_list): New.
4811 (StdVariantPrinter._template_args): Remove, use get_template_arg_list
4812 instead.
4813 (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
4814 of strings and regular expressions.
4815 (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
4816 (FilteringTypePrinter): Add docstring. Match using startswith. Use
4817 strip_inline_namespaces instead of strip_versioned_namespace.
4818 (add_one_type_printer): Prepend namespace to match argument.
4819 (register_type_printers): Add type printers for char16_t and char32_t
4820 string types and for types using cxx11 ABI. Update calls to
4821 add_one_template_type_printer to provide default argument dicts.
4822 * testsuite/libstdc++-prettyprinters/80276.cc: New test.
4823 * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
4824 basic_string<unsigned char> and basic_string<signed char>.
4825 * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
4826 to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
4827
4828 2018-01-14 Andreas Schwab <schwab@linux-m68k.org>
4829
4830 PR libstdc++/81092
4831 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
4832
4833 2018-01-13 Tim Shen <timshen@google.com>
4834
4835 PR libstdc++/83601
4836 * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
4837 * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
4838 * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
4839
4840 2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4841
4842 PR libstdc++/64054
4843 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
4844 Remove dg-xfail-run-if.
4845
4846 2018-01-10 François Dumont <fdumont@gcc.gnu.org>
4847
4848 * include/bits/forward_list.h
4849 (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
4850 (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
4851 (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
4852 (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
4853 (_Fwd_list_impl()): Add noexcept qualification.
4854 (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
4855 (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
4856 (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
4857 (_Fwd_list_base()): Default.
4858 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
4859 (_Fwd_list_base(_Fwd_list_base&&)): Default.
4860 (forward_list<>()): Default.
4861 (forward_list<>(forward_list&&)): Default.
4862 (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
4863 (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
4864 (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
4865 * include/bits/forward_list.tcc
4866 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
4867 _M_impl._M_head move assignment.
4868 (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
4869 * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
4870
4871 2018-01-09 Jonathan Wakely <jwakely@redhat.com>
4872
4873 PR libstdc++/80276
4874 * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
4875 (UniquePointerPrinter): Print correct template argument, not type of
4876 the pointer.
4877 (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
4878 a type.
4879 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
4880 array type.
4881 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
4882 weak_ptr of array types.
4883
4884 2018-01-09 François Dumont <fdumont@gcc.gnu.org>
4885
4886 PR libstdc++/83709
4887 * include/bits/hashtable_policy.h
4888 (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
4889 __first != __last.
4890 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
4891 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
4892 Add false_type parameter.
4893 (_Insert_base::insert): Adapt.
4894 * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
4895 Adapt.
4896 (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
4897 Add __n_elt parameter, defaulted to 1.
4898 (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
4899 policy _M_need_rehash.
4900 (_Hashtable::_M_merge_unique): Pass target number of elements to add to
4901 produce only 1 rehash if necessary.
4902 * testsuite/23_containers/unordered_map/insert/83709.cc: New.
4903 * testsuite/23_containers/unordered_set/insert/83709.cc: New.
4904
4905 2018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr>
4906 Jonathan Wakely <jwakely@redhat.com>
4907
4908 PR libstdc++/59253 (partial)
4909 * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
4910 type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
4911 (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
4912 children.
4913 * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
4914 of unique_ptr printer.
4915 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
4916 output of shared_ptr printer.
4917
4918 2018-01-05 Jonathan Wakely <jwakely@redhat.com>
4919
4920 PR libstdc++/83626
4921 * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
4922 unnecessary symlink_status call.
4923 (remove_all(const path&, error_code&)): Use filesystem::remove.
4924 * src/filesystem/std-ops.cc: Likewise.
4925
4926 PR libstdc++/83279
4927 * src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with
4928 sendfile.
4929
4930 PR libstdc++/83626
4931 * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
4932 report an error for ENOENT.
4933 (remove_all(const path&)): Fix type of result variable.
4934 (remove_all(const path&, error_code&)): Use non-throwing increment
4935 for directory iterator. Call POSIX remove directly to avoid redundant
4936 calls to symlink_status. Do not report errors for ENOENT.
4937 * src/filesystem/std-ops.cc: Likewise.
4938 * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
4939 overload.
4940 * testsuite/experimental/filesystem/operations/remove_all.cc:
4941 Likewise.
4942
4943 2018-01-04 Jonathan Wakely <jwakely@redhat.com>
4944
4945 PR libstdc++/83626
4946 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
4947 redundant call to ec.clear().
4948 (remove_all(const path&, error_code&))): Do not return an error for
4949 non-existent paths.
4950 * src/filesystem/std-ops.cc: Likewise.
4951 * testsuite/27_io/filesystem/operations/remove.cc: New test.
4952 * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
4953 results for non-existent paths.
4954 * testsuite/experimental/filesystem/operations/remove.cc: New test.
4955 * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
4956 expected results for non-existent paths.
4957
4958 * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
4959 check status_known once.
4960 * include/experimental/bits/fs_ops.h: Likewise.
4961
4962 PR libstdc++/83607
4963 * include/std/functional (__is_byte_like): New trait.
4964 (__is_std_equal_to): Remove.
4965 (__boyer_moore_base_t): Use __is_byte_like instead of
4966 __is_std_equal_to.
4967 * include/experimental/functional (__is_std_equal_to): Remove.
4968 (__boyer_moore_base_t): Use __is_byte_like instead of
4969 __is_std_equal_to.
4970 * testsuite/20_util/function_objects/83607.cc: New test.
4971
4972 2018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com>
4973
4974 Protect optional's deduction guide with the feature macro
4975 * include/std/optional: Use the feature macro.
4976
4977 2018-01-03 Jakub Jelinek <jakub@redhat.com>
4978
4979 Update copyright years.
4980 \f
4981 Copyright (C) 2018 Free Software Foundation, Inc.
4982
4983 Copying and distribution of this file, with or without modification,
4984 are permitted in any medium without royalty provided the copyright
4985 notice and this notice are preserved.