PR libstdc++/86861 Meet precondition for Solaris memalign
[official-gcc.git] / libstdc++-v3 / ChangeLog
blobce410ed2e0df95adc083d03703d0fad5beec0a38
1 2018-08-07  Jonathan Wakely  <jwakely@redhat.com>
3         PR libstdc++/86861
4         * libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc):
5         Replace macro with inline function.
6         [__sun]: Increase alignment to meet memalign precondition.
7         [!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN]
8         (aligned_alloc): Move check for valid alignment to operator new.
9         Remove redundant check for non-zero size, it's enforced by the caller.
10         (operator new): Move check for valid alignment here. Use
11         __builtin_expect on check for zero size.
13         * config/abi/pre/gnu.ver: Export monotonic_buffer_resource members.
14         * include/std/memory_resource (monotonic_buffer_resource::release):
15         Call _M_release_buffers to free buffers.
16         (monotonic_buffer_resource::do_allocate): Call _M_new_buffer to
17         allocate a new buffer from upstream.
18         (monotonic_buffer_resource::_M_new_buffer): Declare.
19         (monotonic_buffer_resource::_M_release_buffers): Declare.
20         (monotonic_buffer_resource::_Chunk): Replace definition with
21         declaration as opaque type.
22         * src/c++17/memory_resource.cc (monotonic_buffer_resource::_Chunk):
23         Define.
24         (monotonic_buffer_resource::_M_new_buffer): Define.
25         (monotonic_buffer_resource::_M_release_buffers): Define.
27 2018-08-05  François Dumont  <fdumont@gcc.gnu.org>
29         * include/bits/stl_iterator.h: Fix comment.
31 2018-08-03  Jonathan Wakely  <jwakely@redhat.com>
33         * src/c++11/system_error.cc
34         (system_error_category::default_error_condition): Add workaround for
35         ENOTEMPTY and EEXIST having the same value on AIX.
36         * testsuite/19_diagnostics/error_category/system_category.cc: Add
37         extra testcases for EDOM, EILSEQ, ERANGE, EEXIST and ENOTEMPTY.
39 2018-08-01  Jonathan Wakely  <jwakely@redhat.com>
41         * configure: Regenerate.
42         * configure.ac: Add -D_GLIBCXX_ASSERTIONS to default DEBUG_FLAGS.
43         * src/c++11/futex.cc: Use __glibcxx_assert instead of
44         _GLIBCXX_DEBUG_ASSERT.
46 2018-08-01  Mike Crowe  <mac@mcrowe.com>
48         * include/std/condition_variable (wait_for): Use steady_clock.
50 2018-08-01  Mike Crowe  <mac@mcrowe.com>
52         * include/std/condition_variable (wait_until): Only report timeout
53         if we really have timed out when measured against the
54         caller-supplied clock.
55         * testsuite/30_threads/condition_variable/members/2.cc: Add test
56         case to confirm above behaviour.
58 2018-08-01  Jonathan Wakely  <jwakely@redhat.com>
60         PR libstdc++/60555
61         * src/c++11/system_error.cc
62         (system_error_category::default_error_condition): New override to
63         check for POSIX errno values.
64         * testsuite/19_diagnostics/error_category/generic_category.cc: New
65         * testsuite/19_diagnostics/error_category/system_category.cc: New
66         test.
68 2018-07-31  Jonathan Wakely  <jwakely@redhat.com>
70         PR libstdc++/86751
71         * include/bits/stl_pair.h (__pair_base): New class with deleted copy
72         assignment operator.
73         (pair): Derive from __pair_base.
74         (pair::operator=): Remove deleted overload.
75         * python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer
76         so that new base class isn't shown in GDB.
77         * testsuite/20_util/pair/86751.cc: New test.
78         * testsuite/20_util/pair/ref_assign.cc: New test.
80         * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
81         (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Move definitions here.
82         (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Likewise. Use !__is_identifier
83         instead of __has_builtin.
84         * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
85         (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Remove definitions from here.
86         * include/std/version [!_GLIBCXX_HAS_GTHREADS]
87         (__cpp_lib_shared_timed_mutex, __cpp_lib_scoped_lock)
88         (__cpp_lib_shared_mutex): Don't define when Gthreads not in use.
89         [!_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP]
90         (__cpp_lib_has_unique_object_representations): Don't define when
91         builtin not available.
92         [!_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE] (__cpp_lib_is_aggregate):
93         Likewise.
94         [!_GLIBCXX_HAVE_BUILTIN_LAUNDER] (__cpp_lib_launder): Likewise.
95         * libsupc++/new (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Remove definition
96         from here.
98         * doc/xml/manual/test.xml: Improve documentation on writing tests for
99         newer standards.
100         * doc/xml/manual/using.xml: Document all headers for C++11 and later.
101         * doc/html/*: Regenerate.
103         * include/ext/pointer.h [__cplusplus >= 201103L]
104         (_Pointer_adapter::operator bool): Add explicit conversion operator
105         to replace safe bool idiom.
107 2018-07-30  Jonathan Wakely  <jwakely@redhat.com>
109         PR libstdc++/86734
110         * include/bits/stl_iterator.h (reverse_iterator::operator->): Call
111         _S_to_pointer (LWG 1052, LWG 2118).
112         (reverse_iterator::_S_to_pointer): Define overloaded helper functions.
113         * testsuite/24_iterators/reverse_iterator/dr1052.cc: New test.
114         * testsuite/24_iterators/reverse_iterator/dr2188.cc: New test.
116         * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add
117         workaround for aligned_alloc bug on AIX.
118         * testsuite/18_support/new_aligned.cc: New test.
120 2018-07-26  Marek Polacek  <polacek@redhat.com>
122         * testsuite/30_threads/condition_variable_any/cond.cc: New.
124 2018-07-26  Marek Polacek  <polacek@redhat.com>
126         * src/c++98/locale_init.cc: Fix #ifdef condition.
128 2018-07-26  Jonathan Wakely  <jwakely@redhat.com>
130         * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Add
131         dg-require-cstdint directive.
132         * testsuite/20_util/allocator/overaligned.cc: Likewise.
133         * testsuite/20_util/any/cons/aligned.cc: Likewise.
134         * testsuite/20_util/monotonic_buffer_resource/allocate.cc: Likewise.
135         * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: Likewise.
136         * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
137         Likewise.
138         * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
139         * testsuite/23_containers/list/modifiers/insert/25288.cc: Likewise.
140         * testsuite/23_containers/set/allocator/move_assign.cc: Likewise.
141         * testsuite/25_algorithms/make_heap/complexity.cc: Likewise.
142         * testsuite/25_algorithms/pop_heap/complexity.cc: Require cstdint and
143         random_device effective-target.
144         * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
145         * testsuite/25_algorithms/sample/1.cc: Require cstdint.
146         * testsuite/25_algorithms/sample/2.cc: Likewise.
147         * testsuite/25_algorithms/sort_heap/complexity.cc: Require cstdint
148         and random_device.
149         * testsuite/26_numerics/headers/random/types_std_c++0x.cc: Require
150         cstdint.
151         * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
152         Likewise.
153         * testsuite/26_numerics/random/discard_block_engine/requirements/
154         constexpr_data.cc: Likewise.
155         * testsuite/26_numerics/random/discard_block_engine/requirements/
156         constexpr_functions.cc: Likewise.
157         * testsuite/26_numerics/random/independent_bits_engine/requirements/
158         constexpr_functions.cc: Likewise.
159         * testsuite/26_numerics/random/linear_congruential_engine/requirements/
160         constexpr_data.cc: Likewise.
161         * testsuite/26_numerics/random/linear_congruential_engine/requirements/
162         constexpr_functions.cc: Likewise.
163         * testsuite/26_numerics/random/mersenne_twister_engine/requirements/
164         constexpr_data.cc: Likewise.
165         * testsuite/26_numerics/random/mersenne_twister_engine/requirements/
166         constexpr_functions.cc: Likewise.
167         * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
168         * testsuite/26_numerics/random/seed_seq/cons/65631.cc: Likewise.
169         * testsuite/26_numerics/random/shuffle_order_engine/requirements/
170         constexpr_data.cc: Add dg-require-cstdint directive.
171         * testsuite/26_numerics/random/shuffle_order_engine/requirements/
172         constexpr_functions.cc: Likewise.
173         * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
174         constexpr_data.cc: Likewise.
175         * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
176         constexpr_functions.cc: Likewise.
177         * testsuite/26_numerics/random/uniform_real_distribution/operators/
178         64351.cc: Likewise.
179         * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Likewise.
180         * testsuite/experimental/algorithm/sample-2.cc: Likewise.
181         * testsuite/experimental/algorithm/sample.cc: Likewise.
182         * testsuite/experimental/algorithm/search.cc: Likewise.
183         * testsuite/experimental/algorithm/shuffle.cc: Likewise.
184         * testsuite/experimental/any/cons/aligned.cc: Likewise.
185         * testsuite/experimental/memory_resource/new_delete_resource.cc:
186         Likewise.
187         * testsuite/experimental/memory_resource/resource_adaptor.cc: Likewise.
188         * testsuite/experimental/random/randint.cc: Likewise.
189         * testsuite/experimental/source_location/1.cc: Likewise.
190         * testsuite/ext/bitmap_allocator/overaligned.cc: Likewise.
191         * testsuite/ext/malloc_allocator/overaligned.cc: Likewise.
192         * testsuite/ext/mt_allocator/overaligned.cc: Likewise.
193         * testsuite/ext/new_allocator/overaligned.cc: Likewise.
194         * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
195         * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
196         * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
197         * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
198         * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
199         * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
200         * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
201         * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
202         * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
203         * testsuite/ext/pool_allocator/overaligned.cc: Likewise.
204         * testsuite/ext/throw_allocator/check_allocate_max_size.cc: Likewise.
205         * testsuite/ext/throw_allocator/check_deallocate_null.cc: Likewise.
206         * testsuite/ext/throw_allocator/check_delete.cc: Likewise.
207         * testsuite/ext/throw_allocator/check_new.cc: Likewise.
208         * testsuite/ext/throw_allocator/deallocate_global.cc: Likewise.
209         * testsuite/ext/throw_allocator/deallocate_local.cc: Likewise.
210         * testsuite/ext/throw_allocator/explicit_instantiation.cc: Likewise.
211         * testsuite/ext/throw_allocator/variadic_construct.cc: Likewise.
212         * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Likewise.
214         * testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
215         * testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise.
216         * testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise.
217         * testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
218         Likewise.
219         * testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
220         * testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
221         * testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
222         Likewise.
223         * testsuite/30_threads/recursive_mutex/requirements/standard_layout.cc:
224         Likewise.
225         * testsuite/30_threads/recursive_mutex/requirements/typedefs.cc:
226         Likewise.
227         * testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
228         * testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
229         * testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
230         * testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
231         * testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
232         * testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
233         Likewise.
234         * testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc:
235         Likewise.
236         * testsuite/30_threads/recursive_timed_mutex/dest/
237         destructor_locked.cc: Likewise.
238         * testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
239         * testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
240         * testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
241         Likewise.
242         * testsuite/30_threads/recursive_timed_mutex/native_handle/
243         typesizes.cc: Likewise.
244         * testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc:
245         Likewise.
246         * testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
247         Likewise.
248         * testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
249         Likewise.
250         * testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
251         Likewise.
252         * testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
253         Likewise.
254         * testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
255         Likewise.
256         * testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
257         Likewise.
258         * testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
259         Likewise.
260         * testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
261         * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
262         * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
263         * testsuite/30_threads/scoped_lock/requirements/
264         explicit_instantiation.cc: Likewise.
265         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
266         * testsuite/30_threads/shared_future/cons/assign.cc: Likewise.
267         * testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
268         * testsuite/30_threads/shared_future/cons/copy.cc: Likewise.
269         * testsuite/30_threads/shared_future/cons/default.cc: Likewise.
270         * testsuite/30_threads/shared_future/cons/move.cc: Likewise.
271         * testsuite/30_threads/shared_future/cons/move_assign.cc: Likewise.
272         * testsuite/30_threads/shared_future/members/45133.cc: Likewise.
273         * testsuite/30_threads/shared_future/members/get.cc: Likewise.
274         * testsuite/30_threads/shared_future/members/get2.cc: Likewise.
275         * testsuite/30_threads/shared_future/members/valid.cc: Likewise.
276         * testsuite/30_threads/shared_future/members/wait.cc: Likewise.
277         * testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
278         * testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
279         * testsuite/30_threads/shared_future/requirements/
280         explicit_instantiation.cc: Likewise.
281         * testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
282         * testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
283         * testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
284         * testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
285         * testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
286         * testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
287         * testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
288         * testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
289         * testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
290         * testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
291         * testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
292         * testsuite/30_threads/shared_lock/requirements/
293         explicit_instantiation.cc: Likewise.
294         * testsuite/30_threads/shared_lock/requirements/typedefs.cc: Likewise.
295         * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
296         * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: Likewise.
297         * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
298         * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
299         Likewise.
300         * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
301         * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
302         * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
303         * testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
304         * testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc: Likewise.
305         * testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc: Likewise.
306         * testsuite/30_threads/shared_timed_mutex/requirements/
307         standard_layout.cc: Likewise.
308         * testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
309         * testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
310         * testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
311         * testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
312         * testsuite/30_threads/this_thread/1.cc: Likewise.
313         * testsuite/30_threads/this_thread/2.cc: Likewise.
314         * testsuite/30_threads/this_thread/3.cc: Likewise.
315         * testsuite/30_threads/this_thread/4.cc: Likewise.
316         * testsuite/30_threads/this_thread/58038.cc: Likewise.
317         * testsuite/30_threads/thread/70503.cc: Likewise.
318         * testsuite/30_threads/thread/84532.cc: Likewise.
319         * testsuite/30_threads/thread/adl.cc: Likewise.
320         * testsuite/30_threads/thread/cons/1.cc: Likewise.
321         * testsuite/30_threads/thread/cons/2.cc: Likewise.
322         * testsuite/30_threads/thread/cons/3.cc: Likewise.
323         * testsuite/30_threads/thread/cons/4.cc: Likewise.
324         * testsuite/30_threads/thread/cons/49668.cc: Likewise.
325         * testsuite/30_threads/thread/cons/5.cc: Likewise.
326         * testsuite/30_threads/thread/cons/6.cc: Likewise.
327         * testsuite/30_threads/thread/cons/7.cc: Likewise.
328         * testsuite/30_threads/thread/cons/8.cc: Likewise.
329         * testsuite/30_threads/thread/cons/84535.cc: Likewise.
330         * testsuite/30_threads/thread/cons/9.cc: Likewise.
331         * testsuite/30_threads/thread/cons/assign_neg.cc: Likewise.
332         * testsuite/30_threads/thread/cons/copy_neg.cc: Likewise.
333         * testsuite/30_threads/thread/cons/lwg2097.cc: Likewise.
334         * testsuite/30_threads/thread/cons/moveable.cc: Likewise.
335         * testsuite/30_threads/thread/cons/terminate.cc: Likewise.
336         * testsuite/30_threads/thread/id/operators.cc: Likewise.
337         * testsuite/30_threads/thread/members/1.cc: Likewise.
338         * testsuite/30_threads/thread/members/2.cc: Likewise.
339         * testsuite/30_threads/thread/members/3.cc: Likewise.
340         * testsuite/30_threads/thread/members/4.cc: Likewise.
341         * testsuite/30_threads/thread/members/5.cc: Likewise.
342         * testsuite/30_threads/thread/members/hardware_concurrency.cc:
343         Likewise.
344         * testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
345         * testsuite/30_threads/thread/swap/1.cc: Likewise.
346         * testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
347         * testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
348         * testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
349         * testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
350         * testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
351         * testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
352         * testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
353         Likewise.
354         * testsuite/30_threads/timed_mutex/requirements/
355         standard_layout.cc: Likewise.
356         * testsuite/30_threads/timed_mutex/requirements/typedefs.cc: Likewise.
357         * testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
358         * testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
359         * testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
360         * testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
361         * testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
362         * testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
363         * testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
364         * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
365         * testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
366         * testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
367         * testsuite/30_threads/try_lock/1.cc: Likewise.
368         * testsuite/30_threads/try_lock/2.cc: Likewise.
369         * testsuite/30_threads/try_lock/3.cc: Likewise.
370         * testsuite/30_threads/try_lock/4.cc: Likewise.
371         * testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
372         * testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
373         * testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
374         * testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
375         * testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
376         * testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
377         * testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
378         * testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
379         * testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
380         * testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
381         * testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
382         * testsuite/30_threads/unique_lock/requirements/
383         explicit_instantiation.cc: Likewise.
384         * testsuite/30_threads/unique_lock/requirements/typedefs.cc: Likewise.
386         * testsuite/30_threads/async/42819.cc: Remove dg-require-cstdint
387         directive.
388         * testsuite/30_threads/async/49668.cc: Likewise.
389         * testsuite/30_threads/async/54297.cc: Likewise.
390         * testsuite/30_threads/async/84532.cc: Likewise.
391         * testsuite/30_threads/async/any.cc: Likewise.
392         * testsuite/30_threads/async/async.cc: Likewise.
393         * testsuite/30_threads/async/except.cc: Likewise.
394         * testsuite/30_threads/async/forced_unwind.cc: Likewise.
395         * testsuite/30_threads/async/launch.cc: Likewise.
396         * testsuite/30_threads/async/lwg2021.cc: Likewise.
397         * testsuite/30_threads/async/sync.cc: Likewise.
398         * testsuite/30_threads/call_once/39909.cc: Likewise.
399         * testsuite/30_threads/call_once/49668.cc: Likewise.
400         * testsuite/30_threads/call_once/60497.cc: Likewise.
401         * testsuite/30_threads/call_once/call_once1.cc: Likewise.
402         * testsuite/30_threads/call_once/constexpr.cc: Likewise.
403         * testsuite/30_threads/call_once/dr2442.cc: Likewise.
404         * testsuite/30_threads/call_once/once_flag.cc: Likewise.
405         * testsuite/30_threads/condition_variable/54185.cc: Likewise.
406         * testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
407         * testsuite/30_threads/condition_variable/cons/assign_neg.cc:
408         Likewise.
409         * testsuite/30_threads/condition_variable/cons/copy_neg.cc: Likewise.
410         * testsuite/30_threads/condition_variable/members/1.cc: Likewise.
411         * testsuite/30_threads/condition_variable/members/2.cc: Likewise.
412         * testsuite/30_threads/condition_variable/members/3.cc: Likewise.
413         * testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
414         * testsuite/30_threads/condition_variable/members/68519.cc: Likewise.
415         * testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
416         Likewise.
417         * testsuite/30_threads/condition_variable/requirements/
418         standard_layout.cc: Likewise.
419         * testsuite/30_threads/condition_variable/requirements/typedefs.cc:
420         * Likewise.
421         * testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
422         * testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
423         * testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
424         * testsuite/30_threads/condition_variable_any/cons/assign_neg.cc:
425         Likewise.
426         * testsuite/30_threads/condition_variable_any/cons/copy_neg.cc:
427         Likewise.
428         * testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
429         * testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
430         * testsuite/30_threads/future/cons/assign_neg.cc: Likewise.
431         * testsuite/30_threads/future/cons/constexpr.cc: Likewise.
432         * testsuite/30_threads/future/cons/copy_neg.cc: Likewise.
433         * testsuite/30_threads/future/cons/default.cc: Likewise.
434         * testsuite/30_threads/future/cons/move.cc: Likewise.
435         * testsuite/30_threads/future/cons/move_assign.cc: Likewise.
436         * testsuite/30_threads/future/members/45133.cc: Likewise.
437         * testsuite/30_threads/future/members/get.cc: Likewise.
438         * testsuite/30_threads/future/members/get2.cc: Likewise.
439         * testsuite/30_threads/future/members/share.cc: Likewise.
440         * testsuite/30_threads/future/members/valid.cc: Likewise.
441         * testsuite/30_threads/future/members/wait.cc: Likewise.
442         * testsuite/30_threads/future/members/wait_for.cc: Likewise.
443         * testsuite/30_threads/future/members/wait_until.cc: Likewise.
444         * testsuite/30_threads/future/requirements/explicit_instantiation.cc:
445         Likewise.
446         * testsuite/30_threads/headers/condition_variable/types_std_c++0x.cc:
447         Likewise.
448         * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
449         * testsuite/30_threads/headers/mutex/types_std_c++0x.cc: Likewise.
450         * testsuite/30_threads/headers/thread/std_c++0x_neg.cc: Likewise.
451         * testsuite/30_threads/headers/thread/types_std_c++0x.cc: Likewise.
452         * testsuite/30_threads/lock/1.cc: Likewise.
453         * testsuite/30_threads/lock/2.cc: Likewise.
454         * testsuite/30_threads/lock/3.cc: Likewise.
455         * testsuite/30_threads/lock/4.cc: Likewise.
456         * testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
457         * testsuite/30_threads/lock_guard/requirements/
458         explicit_instantiation.cc: Likewise.
459         * testsuite/30_threads/lock_guard/requirements/typedefs.cc: Likewise.
460         * testsuite/30_threads/mutex/cons/1.cc: Likewise.
461         * testsuite/30_threads/mutex/cons/assign_neg.cc: Likewise.
462         * testsuite/30_threads/mutex/cons/constexpr.cc: Likewise.
463         * testsuite/30_threads/mutex/cons/copy_neg.cc: Likewise.
464         * testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
465         * testsuite/30_threads/mutex/lock/1.cc: Likewise.
466         * testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
467         * testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
468         * testsuite/30_threads/mutex/requirements/standard_layout.cc::
469         Likewise.
470         * testsuite/30_threads/mutex/requirements/typedefs.cc: Likewise.
471         * testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
472         * testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
473         * testsuite/30_threads/mutex/unlock/1.cc: Likewise.
474         * testsuite/30_threads/mutex/unlock/2.cc: Likewise.
475         * testsuite/30_threads/once_flag/cons/constexpr.cc: Likewise.
476         * testsuite/30_threads/packaged_task/49668.cc: Likewise.
477         * testsuite/30_threads/packaged_task/60564.cc: Likewise.
478         * testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
479         * testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
480         * testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
481         * testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
482         * testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
483         * testsuite/30_threads/packaged_task/cons/alloc2.cc: Likewise.
484         * testsuite/30_threads/packaged_task/cons/alloc_min.cc: Likewise.
485         * testsuite/30_threads/packaged_task/cons/assign_neg.cc: Likewise.
486         * testsuite/30_threads/packaged_task/cons/copy_neg.cc: Likewise.
487         * testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
488         * testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
489         * testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
490         Likewise.
491         * testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
492         * testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
493         * testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
494         * testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
495         * testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
496         * testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
497         * testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
498         * testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
499         * testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
500         * testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
501         * testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
502         * testsuite/30_threads/packaged_task/requirements/
503         explicit_instantiation.cc: Likewise.
504         * testsuite/30_threads/packaged_task/uses_allocator.cc: Likewise.
505         * testsuite/30_threads/promise/60966.cc: Likewise.
506         * testsuite/30_threads/promise/69106.cc: Likewise.
507         * testsuite/30_threads/promise/cons/1.cc: Likewise.
508         * testsuite/30_threads/promise/cons/alloc.cc: Likewise.
509         * testsuite/30_threads/promise/cons/alloc2.cc: Likewise.
510         * testsuite/30_threads/promise/cons/alloc_min.cc: Likewise.
511         * testsuite/30_threads/promise/cons/assign_neg.cc: Likewise.
512         * testsuite/30_threads/promise/cons/copy_neg.cc: Likewise.
513         * testsuite/30_threads/promise/cons/move.cc: Likewise.
514         * testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
515         * testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
516         * testsuite/30_threads/promise/members/at_thread_exit2.cc: Likewise.
517         * testsuite/30_threads/promise/members/get_future.cc: Likewise.
518         * testsuite/30_threads/promise/members/get_future2.cc: Likewise.
519         * testsuite/30_threads/promise/members/set_exception.cc: Likewise.
520         * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
521         * testsuite/30_threads/promise/members/set_value.cc: Likewise.
522         * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
523         * testsuite/30_threads/promise/members/set_value3.cc: Likewise.
524         * testsuite/30_threads/promise/members/swap.cc: Likewise.
525         * testsuite/30_threads/promise/requirements/explicit_instantiation.cc:
526         * Likewise.
527         * testsuite/30_threads/promise/uses_allocator.cc: Likewise.
529         * testsuite/18_support/numeric_limits/char16_32_t.cc: Qualify names
530         from namespace std.
531         * testsuite/20_util/align/2.cc: Remove dg-require-cstdint directive.
532         * testsuite/20_util/duration/arithmetic/1.cc: Likewise.
533         * testsuite/20_util/duration/arithmetic/2.cc: Likewise.
534         * testsuite/20_util/duration/arithmetic/dr2020.cc: Likewise.
535         * testsuite/20_util/duration/arithmetic/dr934-1.cc: Likewise.
536         * testsuite/20_util/duration/arithmetic/dr934-2.cc: Likewise.
537         * testsuite/20_util/duration/comparison_operators/1.cc: Likewise.
538         * testsuite/20_util/duration/cons/1.cc: Likewise.
539         * testsuite/20_util/duration/cons/1_neg.cc: Likewise.
540         * testsuite/20_util/duration/cons/2.cc: Likewise.
541         * testsuite/20_util/duration/cons/54025.cc: Likewise.
542         * testsuite/20_util/duration/cons/dr974_neg.cc: Likewise.
543         * testsuite/20_util/duration/requirements/explicit_instantiation/
544         explicit_instantiation.cc: Likewise.
545         * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
546         * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
547         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
548         * testsuite/20_util/make_signed/requirements/typedefs-4.cc: Likewise.
549         * testsuite/20_util/ratio/comparisons/comp1.cc: Likewise.
550         * testsuite/20_util/ratio/comparisons/comp2.cc: Likewise.
551         * testsuite/20_util/ratio/comparisons/comp3.cc: Likewise.
552         * testsuite/20_util/ratio/cons/cons1.cc: Likewise.
553         * testsuite/20_util/ratio/operations/45866.cc: Likewise.
554         * testsuite/20_util/ratio/operations/47913.cc: Likewise.
555         * testsuite/20_util/ratio/operations/53840.cc: Likewise.
556         * testsuite/20_util/ratio/operations/ops1.cc: Likewise.
557         * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
558         * testsuite/20_util/system_clock/1.cc: Likewise.
559         * testsuite/20_util/time_point/1.cc: Likewise.
560         * testsuite/20_util/time_point/2.cc: Likewise.
561         * testsuite/20_util/time_point/3.cc: Likewise.
562         * testsuite/20_util/time_point/requirements/explicit_instantiation/
563         explicit_instantiation.cc: Likewise.
564         * testsuite/21_strings/basic_string/requirements/
565         explicit_instantiation/char16_t/1.cc: Likewise.
566         * testsuite/21_strings/basic_string/requirements/
567         explicit_instantiation/char32_t/1.cc: Likewise.
568         * testsuite/21_strings/basic_string_view/requirements/
569         explicit_instantiation/char16_t/1.cc: Likewise.
570         * testsuite/21_strings/basic_string_view/requirements/
571         explicit_instantiation/char32_t/1.cc: Likewise.
572         * testsuite/21_strings/char_traits/requirements/
573         explicit_instantiation/char16_t/1.cc: Likewise.
574         * testsuite/21_strings/char_traits/requirements/
575         explicit_instantiation/char32_t/1.cc: Likewise.
576         * testsuite/21_strings/headers/string/types_std_c++0x.cc: Likewise.
577         * testsuite/22_locale/codecvt/char16_t.cc: Likewise.
578         * testsuite/22_locale/codecvt/char32_t.cc: Likewise.
579         * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
580         Likewise.
581         * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc:
582         Likewise.
583         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
584         Likewise.
585         * testsuite/22_locale/codecvt/utf8.cc: Likewise.
586         * testsuite/23_containers/vector/bool/72847.cc: Likewise.
587         * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
588         Likewise.
589         * testsuite/experimental/string_view/requirements/
590         explicit_instantiation/char16_t/1.cc: Likewise.
591         * testsuite/experimental/string_view/requirements/
592         explicit_instantiation/char32_t/1.cc: Likewise.
593         * testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/
594         1.cc: Likewise.
595         * testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/
596         1.cc: Likewise.
598         * include/ext/throw_allocator.h [!_GLIBCXX_USE_C99_STDINT_TR1]
599         (random_condition, throw_value_random, throw_allocator_random)
600         (std::hash<throw_value_random>): Do not define when <tr1/random> is
601         not usable.
602         * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_C99_STDINT_TR1]: Do not
603         define transactional memory support when <stdint.h> is not usable.
605         * include/bits/hashtable_policy.h (__detail::__clp2): Use faster
606         implementation that doesn't depend on <stdint.h> types.
607         * include/std/memory (align) [!_GLIBCXX_USE_C99_STDINT_TR1]: Use
608         std::size_t when std::uintptr_t is not usable.
609         [!_GLIBCXX_USE_C99_STDINT_TR1] (pointer_safety, declare_reachable)
610         (undeclare_reachable, declare_no_pointers, undeclare_no_pointers):
611         Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
613         * include/bits/basic_string.h [!_GLIBCXX_USE_C99_STDINT_TR1]
614         (hash<u16string>, hash<u32string>): Remove dependency on
615         _GLIBCXX_USE_C99_STDINT_TR1.
616         * include/bits/char_traits.h [!_GLIBCXX_USE_C99_STDINT_TR1]
617         (char_traits<char16_t>, char_traits<char32_t>): Remove dependency on
618         _GLIBCXX_USE_C99_STDINT_TR1. Use __UINT_LEAST16_TYPE__ and
619         __UINT_LEAST32_TYPE__ or make_unsigned when <stdint.h> is not usable.
620         * include/bits/codecvt.h [!_GLIBCXX_USE_C99_STDINT_TR1]
621         (codecvt<char16_t, char, mbstate_t>)
622         (codecvt<char32_t, char, mbstate_t>)
623         (codecvt_byname<char16_t, char, mbstate_t>)
624         (codecvt_byname<char32_t, char, mbstate_t>): Remove dependency
625         on _GLIBCXX_USE_C99_STDINT_TR1.
626         * include/bits/locale_facets.h [!_GLIBCXX_USE_C99_STDINT_TR1]
627         (_GLIBCXX_NUM_UNICODE_FACETS): Likewise.
628         * include/bits/stringfwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
629         (char_traits<char16_t>, char_traits<char32_t>)
630         (basic_string<char16_t>, basic_string<char32_t>): Remove dependency
631         on _GLIBCXX_USE_C99_STDINT_TR1.
632         * include/experimental/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
633         (u16string_view, u32string_view, hash<u16string_view>)
634         (hash<u32string_view>, operator""sv(const char16_t, size_t))
635         (operator""sv(const char32_t, size_t)): Likewise.
636         * include/ext/vstring.h [!_GLIBCXX_USE_C99_STDINT_TR1]
637         (hash<__u16vstring>, hash<__u32vstring>): Likewise.
638         * include/ext/vstring_fwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
639         (__u16vstring, __u16sso_string, __u16rc_string, __u32vstring)
640         (__u32sso_string, __u32rc_string): Likewise.
641         * include/std/codecvt [!_GLIBCXX_USE_C99_STDINT_TR1] (codecvt_mode)
642         (codecvt_utf8, codecvt_utf16, codecvt_utf8_utf16): Likewise.
643         * include/std/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
644         (u16string_view, u32string_view, hash<u16string_view>)
645         (hash<u32string_view>, operator""sv(const char16_t, size_t))
646         (operator""sv(const char32_t, size_t)): Likewise.
647         * src/c++11/codecvt.cc: Likewise.
648         * src/c++98/locale_init.cc: Likewise.
649         * src/c++98/localename.cc: Likewise.
651         * include/bits/atomic_futex.h [!_GLIBCXX_USE_C99_STDINT_TR1]
652         (__atomic_futex_unsigned_base): Remove dependency on
653         _GLIBCXX_USE_C99_STDINT_TR1 macro.
654         * include/bits/unique_lock.h [!_GLIBCXX_USE_C99_STDINT_TR1]
655         (unique_lock): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1.
656         * include/c_global/cstdint [!_GLIBCXX_USE_C99_STDINT_TR1] (intmax_t)
657         (uintmax_t): Define using predefined macros.
658         * include/std/chrono [!_GLIBCXX_USE_C99_STDINT_TR1] (duration)
659         (time_point, system_clock, high_resolution_clock, steady_clock): Remove
660         dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro.
661         (nanoseconds, microseconds, milliseconds, seconds, minutes, hours):
662         [!_GLIBCXX_USE_C99_STDINT_TR1]: Define using __INT64_TYPE__ or
663         long long when <stdint.h> is not usable.
664         * include/std/condition_variable [!_GLIBCXX_USE_C99_STDINT_TR1]
665         (condition_variable, condition_variable_any): Remove dependency on
666         _GLIBCXX_USE_C99_STDINT_TR1.
667         * include/std/future [!_GLIBCXX_USE_C99_STDINT_TR1] (future, promise)
668         (packaged_task, async): Likewise.
669         * include/std/mutex [!_GLIBCXX_USE_C99_STDINT_TR1] (recursive_mutex)
670         (timed_mutex, recursive_timed_mutex, try_lock, lock, scoped_lock)
671         (once_flag, call_once): Likewise.
672         * include/std/ratio [!_GLIBCXX_USE_C99_STDINT_TR1] (ratio): Likewise.
673         * include/std/shared_mutex [!_GLIBCXX_USE_C99_STDINT_TR1]
674         (shared_mutex, shared_timed_mutex, shared_lock): Likewise.
675         * include/std/thread [!_GLIBCXX_USE_C99_STDINT_TR1] (thread)
676         (this_thread::get_id, this_thread::yield, this_thread::sleep_for)
677         (this_thread::sleep_until): Likewise.
678         * src/c++11/chrono.cc: Remove dependency on
679         _GLIBCXX_USE_C99_STDINT_TR1 macro.
680         * src/c++11/condition_variable.cc: Likewise.
681         * src/c++11/futex.cc: Likewise.
682         * src/c++11/future.cc: Likewise.
683         * src/c++11/mutex.cc: Likewise.
684         * src/c++11/thread.cc: Likewise.
685         * testsuite/20_util/duration/literals/range_neg.cc: Adjust dg-error.
686         * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
687         * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
688         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
689         * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
690         * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
692 2018-07-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
694         PR libstdc++/77691
695         * testsuite/experimental/memory_resource/new_delete_resource.cc:
696         xfail execution on 32-bit Solaris/x86.
698 2018-07-26  Marc Glisse  <marc.glisse@inria.fr>
700         * include/bits/stl_vector.h (_Vector_impl_data::_M_copy_data): New.
701         (_Vector_impl_data::_M_swap_data): Use _M_copy_data.
702         (vector::_M_move_assign): Reorder the swaps.
704 2018-07-26  Jonathan Wakely  <jwakely@redhat.com>
706         PR libstdc++/86676
707         * testsuite/20_util/monotonic_buffer_resource/release.cc: Request
708         same alignment for post-release allocation.
710 2018-07-25  Jonathan Wakely  <jwakely@redhat.com>
712         PR libstdc++/86676
713         * testsuite/20_util/monotonic_buffer_resource/release.cc: Allow for
714         buffer being misaligned and so returned pointer not being at start.
716         * include/experimental/memory_resource: Include <cstddef> header.
718         * acinclude.m4 (glibcxx_SUBDIRS): Add src/c++17.
719         * src/Makefile.am: Add comment.
720         * src/c++17/Makefile.in: Regenerate.
722         * include/Makefile.am: Add new <bits/unique_lock.h> header.
723         * include/Makefile.in: Regenerate.
724         * include/bits/std_mutex.h [!_GLIBCXX_USE_C99_STDINT_TR1] (mutex)
725         (lock_guard): Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
726         (unique_lock): Move definition to ...
727         * include/bits/unique_lock.h: New header.
728         [!_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock): Define unconditionally.
729         [_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock(mutex_type&, time_point))
730         (unique_lock(mutex_type&, duration), unique_lock::try_lock_until)
731         (unique_lock::try_lock_for): Define only when <chrono> is usable.
732         * include/std/condition_variable: Include <bits/unique_lock.h>.
733         * include/std/mutex: Likewise.
735 2018-07-24  Jonathan Wakely  <jwakely@redhat.com>
737         * config/abi/pre/gnu.ver: Export new symbols.
738         * configure: Regenerate.
739         * include/Makefile.am: Add new <memory_resource> header.
740         * include/Makefile.in: Regenerate.
741         * include/precompiled/stdc++.h: Include <memory_resource> for C++17.
742         * include/std/memory_resource: New header.
743         (memory_resource, polymorphic_allocator, new_delete_resource)
744         (null_memory_resource, set_default_resource, get_default_resource)
745         (pool_options, monotonic_buffer_resource): Define.
746         * src/Makefile.am: Add c++17 directory.
747         * src/Makefile.in: Regenerate.
748         * src/c++11/Makefile.am: Fix comment.
749         * src/c++17/Makefile.am: Add makefile for new sub-directory.
750         * src/c++17/Makefile.in: Generate.
751         * src/c++17/memory_resource.cc: New.
752         (newdel_res_t, null_res_t, constant_init, newdel_res, null_res)
753         (default_res, new_delete_resource, null_memory_resource)
754         (set_default_resource, get_default_resource): Define.
755         * testsuite/20_util/memory_resource/1.cc: New test.
756         * testsuite/20_util/memory_resource/2.cc: New test.
757         * testsuite/20_util/monotonic_buffer_resource/1.cc: New test.
758         * testsuite/20_util/monotonic_buffer_resource/allocate.cc: New test.
759         * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: New test.
760         * testsuite/20_util/monotonic_buffer_resource/release.cc: New test.
761         * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
762         New test.
763         * testsuite/20_util/polymorphic_allocator/1.cc: New test.
764         * testsuite/20_util/polymorphic_allocator/resource.cc: New test.
765         * testsuite/20_util/polymorphic_allocator/select.cc: New test.
766         * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
767         Define concrete memory resource for testing.
768         (__gnu_test::default_resource_mgr): Define RAII helper for changing
769         default resource.
771         PR libstdc++/86658
772         * include/bits/stl_algobase.h (__niter_wrap<_Iterator>): Pass unused
773         parameter by reference, to avoid copying invalid iterators.
774         * testsuite/25_algorithms/copy/86658.cc: New test.
776         * include/std/bit (__countl_zero, __countr_zero, __popcount): Use
777         local variables for number of digits instead of type aliases.
778         (__log2p1): Remove redundant branch also checked in __countl_zero.
780         * include/bits/uses_allocator.h (__is_erased_or_convertible): Reorder
781         conditions. Add comments.
782         * testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error line.
783         * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
784         * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
786         * include/bits/uses_allocator.h (__is_erased_or_convertible): Remove.
787         (__uses_allocator_helper): Check conditions directly instead of
788         using __is_erased_or_convertible.
790         * include/experimental/memory_resource: Adjust comments and
791         whitespace.
792         (__resource_adaptor_imp): Add second template parameter for type of
793         memory resource base class.
794         (memory_resource): Define default constructor, destructor, copy
795         constructor and copy assignment operator as defaulted.
797         PR libstdc++/70966
798         * include/experimental/memory_resource (__get_default_resource): Use
799         placement new to create an object with dynamic storage duration.
801 2018-07-23  Jonathan Wakely  <jwakely@redhat.com>
803         PR libstdc++/70940
804         * include/experimental/memory_resource
805         (__resource_adaptor_common::_AlignMgr::_M_unadjust): Add assertion.
806         (__resource_adaptor_common::__guaranteed_alignment): New helper to
807         give maximum alignment an allocator guarantees. Specialize for known
808         allocators using new and malloc.
809         (__resource_adaptor_imp::do_allocate): Use __guaranteed_alignment.
810         (__resource_adaptor_imp::do_deallocate): Likewise.
811         * testsuite/experimental/memory_resource/new_delete_resource.cc:
812         Check that new and delete are called with expected sizes.
814 2018-07-20  Jonathan Wakely  <jwakely@redhat.com>
816         PR libstdc++/86595
817         * include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add
818         noexcept.
820 2018-07-20  Fangrui Song  <maskray@google.com>
822         * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use
823         _GLIBCXX_VISIBILITY(default).
825 2018-07-20  Jonathan Wakely  <jwakely@redhat.com>
827         PR libstdc++/86603
828         * include/std/version: Move __cpp_lib_list_remove_return_type macro.
830 2018-07-19  Jonathan Wakely  <jwakely@redhat.com>
832         * include/std/type_traits (__is_member_object_pointer_helper): Use
833         __not_<is_function<_Tp>>::type instead of integral_constant.
834         (__is_member_function_pointer_helper): Likewise for
835         is_function<_Tp>::type.
836         (is_compund): Likewise for __not_<is_fundamental<_Tp>>::type.
837         (__do_is_nt_destructible_impl): Use __bool_constant and reindent.
838         (is_trivially_constructible): Remove redundant use of
839         is_constructible.
840         (__is_trivially_copy_assignable_impl): Remove redundant use of
841         is_copy_assignable.
842         (__is_trivially_move_assignable_impl): Remove redundant use of
843         is_move_assignable.
844         (is_trivially_destructible): Use __bool_constant.
845         * testsuite/20_util/is_trivially_assignable/value.cc: Add some more
846         tests for scalar types.
848 2018-07-19  Glen Joseph Fernandes  <glenjofe@gmail.com>
850         * include/bits/stl_algobase.h (__copy_move_a): Used
851         __is_trivially_copyable.
852         (__copy_move_backward_a): Likewise.
853         * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
854         New test.
856 2018-07-17  Jonathan Wakely  <jwakely@redhat.com>
858         PR libstdc++/86450
859         * acinclude.m4 (GLIBCXX_CHECK_COMPILER_FEATURES): Don't define WERROR.
860         (GLIBCXX_EXPORT_FLAGS): Use -Wabi=2 instead of -Wabi.
861         * configure: Regenerate.
862         * configure.ac: Change GLIBCXX_ENABLE_WERROR default to "no".
863         * doc/Makefile.in: Regenerate.
864         * fragment.am: Set WERROR_FLAG to -Werror instead of $(WERROR).
865         * include/Makefile.in: Regenerate.
866         * libsupc++/Makefile.in: Regenerate.
867         * po/Makefile.in: Regenerate.
868         * python/Makefile.in: Regenerate.
869         * src/Makefile.in: Regenerate.
870         * src/c++11/Makefile.in: Regenerate.
871         * src/c++11/debug.cc: Use diagnostic pragmas to suppress warnings
872         from -Wabi=2 that don't affect exported symbols.
873         * src/c++98/Makefile.in: Regenerate.
874         * src/filesystem/Makefile.in: Regenerate.
875         * testsuite/Makefile.in: Regenerate.
877         * src/c++11/compatibility-thread-c++0x.cc [_GLIBCXX_SHARED]
878         (_Async_state_common::_M_join): Simplify use of std::call_once and
879         corresponding explicit instantiation.
880         (_Maybe_wrap_member_pointer, _Bind_simple, _Bind_simple_helper)
881         (__bind_simple): Remove definitions and explicit instantiation that
882         are not required by exported symbols.
884 2018-07-16  Jonathan Wakely  <jwakely@redhat.com>
886         * scripts/create_testsuite_files: Fix typo in comment.
888         PR libstdc++/86537
889         * include/bits/shared_ptr.h (less<shared_ptr<_Tp>>): Remove
890         non-standard partial specialization.
891         * include/bits/shared_ptr_base.h (_Sp_less): Remove class definition.
892         (less<__shared_ptr<_Tp, _Lp>): Remove partial specialization.
893         * testsuite/20_util/shared_ptr/comparison/86537.cc: New test.
895 2018-07-16  Andreas Krebbel  <krebbel@linux.ibm.com>
897         * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
898         * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update.
899         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
901 2018-07-06  François Dumont  <fdumont@gcc.gnu.org>
903         * include/debug/functions.h (__gnu_debug::__check_string): Move...
904         * include/debug/string (__gnu_debug::__check_string): ... here.
905         (_GLIBCXX_DEBUG_VERIFY_STR_COND_AT): New.
906         (__glibcxx_check_string_n_constructor): New.
907         (__gnu_debug::basic_string<>(const _CharT*, size_type, const _Alloc&)):
908         Use latter.
909         (__glibcxx_check_string_constructor): New.
910         (__gnu_debug::basic_string<>(const _CharT*, const _Alloc&)):
911         Use latter.
912         * testsuite/21_strings/basic_string/debug/1_neg.cc: New.
913         * testsuite/21_strings/basic_string/debug/2_neg.cc: New.
915 2018-07-06  Jonathan Wakely  <jwakely@redhat.com>
917         PR libstdc++/84928 use std::move in <numeric> algorithms
918         * include/bits/stl_numeric.h (_GLIBCXX_MOVE_IF_20): Define macro to
919         conditionally move, according to __cplusplus value.
920         (accumulate, inner_product, partial_sum, adjacent_difference): Use
921         _GLIBCXX_MOVE_IF_20.
922         * testsuite/26_numerics/accumulate/lwg2055.cc: New test.
923         * testsuite/26_numerics/adjacent_difference/lwg2055.cc: New test.
924         * testsuite/26_numerics/inner_product/lwg2055.cc: New test.
925         * testsuite/26_numerics/partial_sum/lwg2055.cc: New test.
927         * config/abi/pre/gnu.ver: Use wildcards to combine related patterns.
929         P0935R0 Eradicating unnecessarily explicit default constructors
930         * config/abi/pre/gnu.ver: Tighten existing patterns and export new
931         default constructor symbols.
932         * include/std/sstream (basic_stringbuf, basic_istringstream)
933         (basic_ostringstream, basic_stringstream): Remove default arguments
934         from explicit constructors taking ios_base::openmode and add separate
935         non-explicit default constructors.
936         * testsuite/27_io/basic_istringstream/cons/default.cc: New.
937         * testsuite/27_io/basic_ostringstream/cons/default.cc: New.
938         * testsuite/27_io/basic_stringstream/cons/default.cc: New.
939         * testsuite/27_io/basic_stringbuf/cons/char/default.cc: New.
940         * testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: New.
942         * include/std/variant (__accepted_index): Use void_t.
944 2018-07-05  Jonathan Wakely  <jwakely@redhat.com>
946         PR libstdc++/85831
947         * config/abi/pre/gnu.ver: Export move constructors and move
948         assignment operators for std::logic_error and std::runtime_error.
949         * include/std/stdexcept: Use _GLIBCXX_NOTHROW instead of
950         _GLIBCXX_USE_NOEXCEPT.
951         (logic_error, runtime_error): Declare move constructors and move
952         assignment operators. When not declared already, define copy
953         constructors and copy assignment operators as explicit-defaulted.
954         (domain_error, invalid_argument, length_error, out_of_range)
955         (overflow_error, underflow_error): Define move constructors and move
956         assignment operators as explicitly-defaulted.
957         * libsupc++/exception.h (exception): Likewise.
958         * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Define
959         move constructors and move assignment operators as defaulted.
960         * testsuite/19_diagnostics/stdexcept.cc: Check that constructors and
961         assignment operators are defined.
963         * testsuite/21_strings/basic_string/cons/char/deduction.cc: XFAIL for
964         COW strings.
965         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
966         Likewise.
967         * testsuite/21_strings/basic_string/requirements/
968         explicit_instantiation/debug.cc: Likewise.
970         PR libstdc++/58265
971         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
972         (basic_string::assign(basic_string&&)): Add conditional noexcept
973         depending on the allocator's is_always_equal property (LWG 2063).
974         * testsuite/21_strings/basic_string/modifiers/assign/char/
975         move_assign.cc: Check for non-throwing exception specification.
976         * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
977         move_assign.cc: Likewise.
979         PR libstdc++/58265
980         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
981         [_GLIBCXX_FULLY_DYNAMIC_STRING==0] (basic_string::basic_string()):
982         Add GLIBCXX_NOEXCEPT.
983         (basic_string::operator=(basic_string&&)): Add _GLIBCXX_NOEXCEPT_IF
984         to depend on the allocator's is_always_equal property (LWG 2063).
985         (basic_string::swap(basic_string&)): Likewise.
986         * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]
987         (basic_string::swap(basic_string&)): Likewise.
988         * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
989         Check is_nothrow_move_assignable.
990         * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
991         Check is_nothrow_move_assignable.
992         * testsuite/21_strings/basic_string/cons/char/
993         noexcept_move_construct.cc: Likewise.
994         * testsuite/21_strings/basic_string/cons/wchar_t/
995         noexcept_move_construct.cc: Likewise.
997 2018-07-04  Jonathan Wakely  <jwakely@redhat.com>
999         P0646R1 Improving the Return Value of Erase-Like Algorithms I
1000         * include/bits/forward_list.h (__cpp_lib_list_remove_return_type):
1001         Define.
1002         (forward_list::__remove_return_type): Define typedef as size_type or
1003         void, according to __cplusplus value.
1004         (_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
1005         empty, according to __cplusplus value.
1006         (forward_list::remove, forward_list::unique): Use typedef and macro
1007         to change return type and add abi-tag for C++2a.
1008         (forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
1009         typedef to change return type for C++2a.
1010         * include/bits/forward_list.tcc (_GLIBCXX20_ONLY): Define macro.
1011         (forward_list::remove, forward_list::remove_if<Pred>)
1012         (forward_list::unique<BinPred>): Return number of removed elements
1013         for C++2a.
1014         * include/bits/list.tcc (_GLIBCXX20_ONLY): Define macro.
1015         (list::remove, list::unique, list::remove_if<Predicate>)
1016         (list::unique<BinaryPredicate>): Return number of removed elements
1017         for C++2a.
1018         * include/bits/stl_list.h (__cpp_lib_list_remove_return_type): Define.
1019         (list::__remove_return_type): Define typedef as size_type or
1020         void, according to __cplusplus value.
1021         (_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
1022         empty, according to __cplusplus value.
1023         (list::remove, list::unique): Use typedef and macro to change return
1024         type and add abi-tag for C++2a.
1025         (list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use
1026         typedef to change return type for C++2a.
1027         * include/std/version (__cpp_lib_list_remove_return_type): Define.
1028         * testsuite/23_containers/forward_list/operations/
1029         remove_cxx20_return.cc: New.
1030         * testsuite/23_containers/forward_list/operations/
1031         unique_cxx20_return.cc: New.
1033         P0458R2 Checking for Existence of an Element in Associative Containers
1034         * include/bits/stl_map.h (map::contains): Add for C++2a.
1035         * include/bits/stl_multimap.h (multimap::contains): Likewise.
1036         * include/bits/stl_multiset.h (multiset::contains): Likewise.
1037         * include/bits/stl_set.h (set::contains): Likewise.
1038         * include/bits/stl_tree.h (__has_is_transparent_t): Define alias.
1039         (_Rb_tree::_M_find_tr, _Rb_tree::_M_count_tr)
1040         (_Rb_tree::_M_lower_bound_tr, _Rb_tree::_M_upper_bound_tr)
1041         (_Rb_tree::_M_equal_range_tr): Use __has_is_transparent_t.
1042         * include/bits/unordered_map.h (unordered_map::contains)
1043         (unordered_multimap::contains): Add for C++2a.
1044         * include/bits/unordered_set.h (unordered_set::contains)
1045         (unordered_multiset::contains): Likewise.
1046         * testsuite/23_containers/map/operations/contains.cc: New.
1047         * testsuite/23_containers/multimap/operations/contains.cc: New.
1048         * testsuite/23_containers/multiset/operations/contains.cc: New.
1049         * testsuite/23_containers/set/operations/contains.cc: New.
1050         * testsuite/23_containers/unordered_map/operations/contains.cc: New.
1051         * testsuite/23_containers/unordered_multimap/operations/contains.cc:
1052         New.
1053         * testsuite/23_containers/unordered_multiset/operations/contains.cc:
1054         New.
1055         * testsuite/23_containers/unordered_set/operations/contains.cc: New.
1057 2018-07-04  François Dumont  <fdumont@gcc.gnu.org>
1059         PR libstdc++/86272
1060         * include/debug/string
1061         (__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)):
1062         Use __glibcxx_check_insert_range.
1063         * 21_strings/basic_string/cons/char/1.cc: Adapt test to use
1064         __gnu_debug::string when _GLIBCXX_DEBUG.
1065         * 21_strings/basic_string/init-list.cc: Likewise.
1066         * 21_strings/basic_string/modifiers/insert/char/1.cc: Likewise.
1067         * 21_strings/basic_string/modifiers/insert/char/2.cc: Likewise.
1068         * 21_strings/basic_string/modifiers/insert/char/83328.cc: Likewise.
1069         * 21_strings/basic_string/types/1.cc: Likewise.
1071 2018-07-04  Jonathan Wakely  <jwakely@redhat.com>
1073         * testsuite/25_algorithms/make_heap/complexity.cc: Require effective
1074         target for std::random_device.
1075         * testsuite/26_numerics/random/random_device/cons/default.cc:
1076         Likewise.
1077         * testsuite/experimental/algorithm/sample-2.cc: Likewise.
1078         * testsuite/experimental/algorithm/shuffle.cc: Likewise.
1079         * testsuite/experimental/random/randint.cc: Likewise.
1080         * testsuite/lib/libstdc++.exp
1081         (check_effective_target_random_device): New proc.
1083 2018-07-04  Jonathan Wakely  <jwakely@redhat.com>
1084             Jakub Jelinek  <jakub@redhat.com>
1086         * include/std/bit (__rotl, __rotr): Fix for non-power of two sizes.
1088 2018-07-04  Jonathan Wakely  <jwakely@redhat.com>
1090         PR libstdc++/86398
1091         * include/std/type_traits (is_trivially_constructible): Check
1092         is_constructible before __is_trivially_constructible.
1093         * testsuite/20_util/is_trivially_constructible/value.cc: Add more
1094         tests, including negative cases.
1095         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use
1096         zero for dg-error lineno.
1097         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1098         Likewise.
1100         * include/std/bit (__rotl, __rotr): Avoid branch.
1101         (_If_is_unsigned_integer): Use remove_cv_t.
1102         * testsuite/26_numerics/bit/bitops.count/popcount.cc: New.
1104 2018-07-03  Jonathan Wakely  <jwakely@redhat.com>
1106         P0556R3 Integral power-of-2 operations, P0553R2 Bit operations
1107         * include/Makefile.am: Add new header.
1108         * include/Makefile.in: Regenerate.
1109         * include/precompiled/stdc++.h: Include new header.
1110         * include/std/bit: New header.
1111         (__rotl, __rotr, __countl_zero, __countl_one, __countr_zero)
1112         (__countr_one, __popcount, __ispow2, __ceil2, __floor2, __log2p1):
1113         Define for C++14.
1114         [!__STRICT_ANSI__] (rotl, rotr, countl_zero, countl_one, countr_zero)
1115         (countr_one, popcount): Define for C++2a. Also overload for std::byte.
1116         (ispow2, ceil2, floor2, log2p1): Define for C++2a.
1117         [!__STRICT_ANSI__] (ispow2, ceil2, floor2, log2p1): Overload for
1118         std::byte.
1119         * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: New.
1120         * testsuite/26_numerics/bit/bit.pow.two/floor2.cc: New.
1121         * testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: New.
1122         * testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: New.
1123         * testsuite/26_numerics/bit/bitops.rot/rotl.cc: New.
1124         * testsuite/26_numerics/bit/bitops.rot/rotr.cc: New.
1125         * testsuite/26_numerics/bit/bitops.count/countl_one.cc: New.
1126         * testsuite/26_numerics/bit/bitops.count/countl_zero.cc: New.
1127         * testsuite/26_numerics/bit/bitops.count/countr_one.cc: New.
1128         * testsuite/26_numerics/bit/bitops.count/countr_zero.cc: New.
1130         * include/bits/alloc_traits.h: Remove redundant preprocessor
1131         condition.
1133 2018-07-03  François Dumont  <fdumont@gcc.gnu.org>
1135         * include/bits/stl_algobase.h (__niter_wrap): New.
1136         (__copy_move_a2(_II, _II, _OI)): Use latter.
1137         (__copy_move_backward_a2(_BI1, _BI1, _BI2)): Likewise.
1138         (fill_n(_OI, _Size, const _Tp&)): Likewise.
1139         (equal(_II1, _II1, _II2)): Use __glibcxx_requires_can_increment.
1140         * include/debug/stl_iterator.h
1141         (std::__niter_base(const __gnu_cxx::_Safe_iterator<
1142         __gnu_cxx::__normal_iterator<>, _Sequence>&)): New declaration.
1143         * include/debug/vector (__niter_base(const __gnu_cxx::_Safe_iterator<
1144         __gnu_cxx::__normal_iterator<>, _Sequence>&)): New.
1146 2018-07-02  Jonathan Wakely  <jwakely@redhat.com>
1148         P0758R1 Implicit conversion traits
1149         * include/std/type_traits [__cplusplus > 201703]
1150         (__is_convertible_helper::__is_nothrow_type): Define new member.
1151         (__is_convertible_helper<_From, _To, false>::__test_aux1): Add
1152         noexcept.
1153         (__is_convertible_helper<_From, _To, false>::__test_nothrow)
1154         (__is_convertible_helper<_From, _To, false>::__is_nothrow_type): Add
1155         new members.
1156         (is_nothrow_convertible, is_nothrow_convertible_v): Define for C++2a.
1157         * testsuite/20_util/is_nothrow_convertible/value.cc: New.
1158         * testsuite/20_util/is_nothrow_convertible/requirements/
1159         explicit_instantiation.cc: New.
1160         * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
1161         New.
1163         P0887R1 The identity metafunction
1164         * include/std/type_traits (type_identity, type_identity_t): Define
1165         for C++2a.
1166         * testsuite/20_util/type_identity/requirements/alias_decl.cc: New.
1167         * testsuite/20_util/type_identity/requirements/
1168         explicit_instantiation.cc:New.
1169         * testsuite/20_util/type_identity/requirements/typedefs.cc: New.
1171         * include/bits/regex.h (sub_match::operator string_type): Call str().
1172         (sub_match::compare): Use _M_str() instead of str().
1173         (sub_match::_M_compare): New public function.
1174         (sub_match::__string_view): New helper type.
1175         (sub_match::_M_str): New overloaded functions to avoid creating a
1176         string_type object when not needed.
1177         (operator==, operator!=, operator<, operator>, operator<=, operator>=):
1178         Use sub_match::_M_compare instead of creating string_type objects.
1179         Fix Doxygen comments.
1180         * include/bits/regex_compiler.h (__has_contiguous_iter): Remove.
1181         (__is_contiguous_normal_iter): Rename to __is_contiguous_iter and
1182         simplify.
1183         (__enable_if_contiguous_iter, __disable_if_contiguous_iter): Use
1184         __enable_if_t.
1185         * include/std/type_traits (__enable_if_t): Define for C++11.
1186         * testsuite/28_regex/sub_match/compare.cc: New.
1187         * testsuite/util/testsuite_iterators.h (remove_cv): Add transformation
1188         trait.
1189         (input_iterator_wrapper): Use remove_cv for value_type argument of
1190         std::iterator base class.
1192 2018-06-29  Jonathan Wakely  <jwakely@redhat.com>
1194         * testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc:
1195         Add whitespace to dejagnu directive.
1196         * testsuite/23_containers/array/element_access/at_neg.cc: Likewise.
1198 2018-06-27  François Dumont  <fdumont@gcc.gnu.org>
1200         * include/bits/stl_vector.h
1201         (struct _Vector_base<>::_Vector_impl_data): New.
1202         (struct _Vector_base<>::_Vector_impl): Inherit from latter.
1203         (_Vector_base<>::_Vector_impl::_M_swap_data): Move...
1204         (_Vector_base<>::_Vector_impl_data::_M_swap_data): ...here.
1205         (_Vector_base<>::_Vector_impl()): Add noexcept qualification.
1206         (_Vector_base<>::_Vector_impl(_Vector_impl&&)): New.
1207         (_Vector_base<>::_Vector_impl(_Tp_alloc_type&&, _Vector_impl&&)): New.
1208         (_Vector_base(const allocator_type&, _Vector_base&&)): New, use latter.
1209         (_Vector_base()): Default.
1210         (_Vector_base(_Vector_base&&)): Default.
1211         (_Vector_base(size_t)) [_GLIBCXX_INLINE_VERSION]: Delete.
1212         (_Vector_base(_Tp_alloc_type&&)) [_GLIBCXX_INLINE_VERSION]: Delete.
1213         (_Vector_base::_M_create_storage(size_t)): Make protected.
1214         (vector()): Default.
1215         (vector(vector&&)): Default.
1216         (vector(vector&&, const allocator_type&, true_type)): New.
1217         (vector(vector&&, const allocator_type&, false_type)): New.
1218         (vector(vector&&, const allocator_type&)): Use latters.
1219         (vector(_InputIte, _InputIte, const allocator_type&)): Call
1220         _M_range_initialize directly.
1221         * include/debug/vector
1222         (vector(vector&&, const allocator_type&)): Add noexcept qualification.
1223         * testsuite/23_containers/vector/allocator/default_init.cc: New.
1224         * testsuite/23_containers/vector/cons/noexcept_move_construct.cc: Add
1225         static assertions.
1227 2018-06-27  Jonathan Wakely  <jwakely@redhat.com>
1229         * include/bits/cpp_type_traits.h [__cplusplus >= 201703]
1230         (__is_byte<byte>): Define specialization for std::byte.
1232         PR libstdc++/86138
1233         * include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0]
1234         Declare explicit instantiations of COW empty reps and I/O functions.
1236 2018-06-26  David Edelsohn  <dje.gcc@gmail.com>
1238         * testsuite/experimental/algorithm/sample-2.cc: Add TLS DejaGNU
1239         directives.
1240         * testsuite/experimental/algorithm/shuffle.cc: Likewise.
1242 2018-06-26  Jonathan Wakely  <jwakely@redhat.com>
1244         * include/bits/regex.tcc (regex_iterator::operator==): Add missing
1245         noexcept.
1247 2018-06-25  Jonathan Wakely  <jwakely@redhat.com>
1249         PR libstdc++/86112
1250         * python/libstdcxx/v6/printers.py (add_one_template_type_printer):
1251         Replace dict comprehension.
1253         PR libstdc++/81092
1254         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
1256         PR libstdc++/86292
1257         * include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
1258         Add try-catch block.
1259         * testsuite/23_containers/vector/cons/86292.cc: New.
1261         * doc/xml/manual/status_cxx2017.xml: Document N4531 status.
1263         * include/experimental/algorithm (sample, shuffle): Add new overloads
1264         using per-thread random number engine.
1265         * testsuite/experimental/algorithm/sample.cc: Simpify and reduce
1266         dependencies by using __gnu_test::test_container.
1267         * testsuite/experimental/algorithm/sample-2.cc: New.
1268         * testsuite/experimental/algorithm/shuffle.cc: New.
1270 2018-06-22  Jonathan Wakely  <jwakely@redhat.com>
1272         * config/abi/pre/gnu.ver: Fix __cxx11::basic_string patterns for
1273         different size_t mangling on 32-bit targets.
1275         PR libstdc++/86280
1276         * include/experimental/memory_resource
1277         (__resource_adaptor_common::_AlignMgr::_M_token_size): Use type large
1278         enough for result of left shift.
1280         PR libstdc++/86138
1281         * include/bits/basic_string.tcc:
1282         [__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
1283         (basic_string<char>::_Rep::_S_empty_rep_storage)
1284         (basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
1285         instantiation declarations.
1286         [__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
1287         explicit instantiation declarations.
1288         * testsuite/21_strings/basic_string/cons/char/86138.cc: New.
1289         * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.
1291 2018-06-21  Jonathan Wakely  <jwakely@redhat.com>
1293         PR libstdc++/83328
1294         * acinclude.m4 (libtool_VERSION): Bump to 6:26:0.
1295         * config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 and export new symbol.
1296         * configure: Regenerate.
1297         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1298         (basic_string::insert(const_iterator, initializer_list<C>)): Add.
1299         [_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
1300         (basic_string::insert(iterator, initializer_list<C>)): Suppress
1301         definition.
1302         * include/debug/string (basic_string::insert(iterator, C)): Change
1303         first parameter to const_iterator.
1304         (basic_string::insert(iterator, size_type, C)): Likewise. Change
1305         return type to iterator.
1306         (basic_string::insert(iterator, InputIterator, InputIterator)):
1307         Likewise.
1308         (basic_string::insert(iterator, initializer_list<C>)): Change first
1309         parameter to const_iterator and return type to iterator.
1310         * src/c++11/string-inst.cc: Extend comment.
1311         * testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc:
1312         New.
1313         * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc:
1314         New.
1315         * testsuite/util/testsuite_abi.cc: Add new symbol version.
1317         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1319         PR libstdc++/70940
1320         * include/experimental/memory_resource
1321         (__resource_adaptor_imp::do_deallocate): Add missing return.
1322         * testsuite/experimental/memory_resource/new_delete_resource.cc: New.
1323         * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
1324         resource_adaptor with std::allocator, __gnu_cxx::new_allocator and
1325         __gnu_cxx::malloc_allocator.
1327         PR libstdc++/70940
1328         * include/experimental/memory_resource (__resource_adaptor_common):
1329         New base class.
1330         (__resource_adaptor_common::_AlignMgr): Helper for obtaining aligned
1331         pointer from unaligned, and vice versa.
1332         (__resource_adaptor_imp::do_allocate): Use _AlignMgr to adjust
1333         allocated pointer to meet alignment request.
1334         (__resource_adaptor_imp::do_deallocate): Use _AlignMgr to retrieve
1335         original pointer for deallocation.
1336         (__resource_adaptor_imp::do_is_equal): Reformat.
1337         (__resource_adaptor_imp::_S_aligned_size): Remove.
1338         (__resource_adaptor_imp::_S_supported): Remove.
1339         (new_delete_resource): Use __gnu_cxx::new_allocator.
1340         * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
1341         extended alignments and use debug_allocator to check for matching
1342         allocate/deallocate pairs.
1344 2018-06-21  François Dumont  <fdumont@gcc.gnu.org>
1346         * include/debug/safe_iterator.h
1347         (_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)):
1348         Compare __x base iterator with a value-initialized iterator of the
1349         same type.
1351 2018-06-20  Jonathan Wakely  <jwakely@redhat.com>
1353         PR libstdc++/70966
1354         * include/experimental/memory_resource (__resource_adaptor_imp): Add
1355         static assertions to enforce requirements on pointer types.
1356         (__resource_adaptor_imp::get_allocator()): Add noexcept.
1357         (new_delete_resource, null_memory_resource): Return address of an
1358         object with dynamic storage duration.
1359         (__null_memory_resource): Remove.
1360         * testsuite/experimental/memory_resource/70966.cc: New.
1362         * testsuite/20_util/duration/arithmetic/dr3050.cc: Add new test
1363         missed from recent commit.
1365 2018-06-19  Jonathan Wakely  <jwakely@redhat.com>
1367         * include/std/utility: Remove unused <exception> header.
1369 2018-06-18  Jonathan Wakely  <jwakely@redhat.com>
1371         LWG 2975 ensure construct(pair<T,U>*, ...) used to construct pairs
1372         * include/std/scoped_allocator (__not_pair): Define SFINAE helper.
1373         (construct(_Tp*, _Args&&...)): Remove from overload set when _Tp is
1374         a specialization of std::pair.
1375         * testsuite/20_util/scoped_allocator/construct_pair.cc: Ensure
1376         pair elements are constructed correctly.
1378         LWG 2989 hide path iostream operators from normal lookup
1379         * include/bits/fs_path.h (operator<<, operator>>): Define inline as
1380         friends.
1381         * testsuite/27_io/filesystem/path/io/dr2989.cc: New.
1383         LWG 3050 Fix cv-qualification of convertibility constraints
1384         * include/std/chrono (duration, operator*, operator/, operator%): Use
1385         const-qualified type as source type in is_convertible constraints.
1386         * testsuite/20_util/duration/arithmetic/dr3050.cc: New.
1387         * testsuite/20_util/duration/cons/dr3050.cc: New.
1388         * testsuite/20_util/duration/literals/range.cc: Rename to...
1389         * testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
1390         dg-error lineno.
1392 2018-06-18  Maya Rashish  <coypu@sdf.org>
1394         * crossconfig.m4: Handle OpenBSD just like NetBSD.
1395         * configure: Rebuilt.
1397 2018-06-18  Jonathan Wakely  <jwakely@redhat.com>
1399         P0754R2 <version> header
1400         * include/Makefile.am: Add new header.
1401         * include/Makefile.in: Regenerate.
1402         * include/bits/c++config: Change doxygen comment to suggest <version>
1403         instead of <iosfwd>.
1404         * include/precompiled/stdc++.h: Include <cwchar> and <cwctype>
1405         unconditionally.  Add C++17 and C++20 headers.
1406         * include/std/version: New header.
1407         * testsuite/17_intro/headers/c++2017/all_attributes.cc: New.
1408         * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: New.
1409         * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: New.
1410         * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: New.
1411         * testsuite/17_intro/headers/c++2017/operator_names.cc: New.
1412         * testsuite/17_intro/headers/c++2017/stdc++.cc: New.
1413         * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
1414         New.
1415         * testsuite/17_intro/headers/c++2020/all_attributes.cc: New.
1416         * testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: New.
1417         * testsuite/17_intro/headers/c++2020/all_no_rtti.cc: New.
1418         * testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: New.
1419         * testsuite/17_intro/headers/c++2020/operator_names.cc: New.
1420         * testsuite/17_intro/headers/c++2020/stdc++.cc: New.
1421         * testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc:
1422         New.
1423         * testsuite/18_support/headers/version/macros.cc: New.
1424         * testsuite/18_support/headers/version/macros.cc: New.
1426         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Only check when
1427         enable_libstdcxx_filesystem_ts = yes. Check for link, readlink and
1428         symlink.
1429         * config.h.in: Regenerate.
1430         * configure: Regenerate.
1431         * configure.ac: Remove AC_CHECK_FUNCS for link, readlink and symlink.
1433         LWG 3035. std::allocator's constructors should be constexpr
1434         * include/bits/allocator.h (allocator): Add constexpr to constructors
1435         for C++2a. Replace dynamic exception specifications with NOTHROW
1436         macro.
1437         (allocator, operator==, operator!=): Replace USE_NOEXCEPT macro with
1438         NOTHROW.
1439         * include/bits/c++config (_GLIBCXX20_CONSTEXPR): Define.
1440         * include/ext/malloc_allocator.h (malloc_allocator): Add constexpr
1441         to constructors for C++2a.
1442         * include/ext/new_allocator.h (new_allocator): Likewise.
1444 2018-06-16  Jonathan Wakely  <jwakely@redhat.com>
1446         LWG 3076 basic_string CTAD ambiguity
1447         * doc/xml/manual/intro.xml: Document LWG 3076 change.
1448         * include/bits/basic_string.h
1449         [__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
1450         (basic_string(const _CharT*, const _Alloc&)): Turn into a function
1451         template constrained by _RequireAllocator.
1452         (basic_string(size_type, _CharT, const _Alloc&)): Likewise.
1453         * src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS):
1454         Define.
1455         * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
1456         deduction
1457         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1458         Likewise.
1460 2018-06-15  Jonathan Wakely  <jwakely@redhat.com>
1462         PR libstdc++/86169
1463         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1464         (basic_string::data()): Unshare string.
1465         * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
1466         New.
1468         * include/std/string_view (basic_string_view(const CharT*)): Remove
1469         check for null pointer and add nonnull attribute.
1470         (compare(const CharT*), compare(size_type, size_type, const CharT*))
1471         (find(const CharT*, size_type), rfind(const CharT*, size_type))
1472         (find_first_of(const CharT*, size_type))
1473         (find_last_of(const CharT*, size_type))
1474         (find_first_not_of(const CharT*, size_type))
1475         (find_last_not_of(const CharT*, size_type)): Add nonnull attribute.
1476         * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: New.
1477         * testsuite/21_strings/basic_string_view/operations/compare/char/
1478         nonnull.cc: New.
1479         * testsuite/21_strings/basic_string_view/operations/find/char/
1480         nonnull.cc: New.
1481         * testsuite/21_strings/basic_string_view/operations/rfind/char/
1482         nonnull.cc: New.
1484         PR libstdc++/86168
1485         * include/bits/random.h (random_device(const string&)): Remove
1486         default argument.
1488         * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
1489         define for C++17 and above.
1491         LWG 2993 reference_wrapper<T> conversion from T&&
1492         * doc/xml/manual/intro.xml: Document LWG 2993 change.
1493         * include/bits/refwrap.h (reference_wrapper(_Tp&)): Remove.
1494         (reference_wrapper(_Tp&&)): Remove.
1495         (reference_wrapper<_Up>(_Up&&)): Define new constructor as constrained
1496         template.
1497         (reference_wrapper): Add deduction guide.
1498         * testsuite/20_util/reference_wrapper/deduction.cc: New.
1499         * testsuite/20_util/reference_wrapper/lwg2993.cc: New.
1501         LWG 3039 Unnecessary decay in thread and packaged_task
1502         * include/std/future (__constrain_pkgdtask): Replace with ...
1503         (packaged_task::__not_same): New alias template, using
1504         __remove_cvref_t instead of decay.
1505         * include/std/thread (thread::__not_same): Add comment.
1507 2018-06-14  Jonathan Wakely  <jwakely@redhat.com>
1509         LWG 3075 basic_string needs deduction guides from basic_string_view
1510         * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
1511         deduction from string views.
1512         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1513         Likewise.
1515         LWG 3074 make scalar types non-deduced in valarray non-member functions
1516         * include/bits/valarray_after.h (_DEFINE_EXPR_BINARY_FUNCTION): Change
1517         scalar parameters to be a non-deduced context.
1518         * include/std/valarray (_DEFINE_BINARY_OPERATOR): Likewise. Adjust
1519         whitespace.
1520         * testsuite/26_numerics/valarray/operators.cc: Test scalar operands.
1521         * testsuite/26_numerics/valarray/transcend.cc: New.
1523         * include/std/tuple (__cpp_lib_tuple_element_t, tuple_element_t):
1524         Move back to <utility>.
1525         * include/std/utility (__cpp_lib_tuple_element_t. tuple_element_t):
1526         Restore to here.
1528         P0935R0 Eradicating unnecessarily explicit default constructors
1529         * include/backward/strstream (strstreambuf): Add non-explicit default
1530         constructor.
1531         * include/bits/locale_conv.h (wbuffer_convert, wstring_convert):
1532         Likewise.
1533         * include/bits/regex.h (match_results): Likewise.
1534         * testsuite/22_locale/conversions/buffer/1.cc: Test for non-explicit
1535         default constructor.
1536         * testsuite/22_locale/conversions/string/1.cc: Likewise.
1537         * testsuite/28_regex/match_results/ctors/char/default.cc: Likewise.
1538         * testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
1540         * include/std/tuple (__cpp_lib_tuple_element_t): Move feature test
1541         macro from <utility> and change type to long.
1542         * include/std/utility (__cpp_lib_tuple_element_t): Remove.
1543         * testsuite/20_util/tuple/tuple_element_t.cc: Check for feature test
1544         macro.
1546         P0935R0 Eradicating unnecessarily explicit default constructors
1547         * include/bits/random.h (uniform_real_distribution::param_type)
1548         (normal_distribution::param_type, lognormal_distribution::param_type)
1549         (gamma_distribution::param_type, chi_squared_distribution::param_type)
1550         (cauchy_distribution::param_type, fisher_f_distribution::param_type)
1551         (student_t_distribution::param_type)
1552         (bernoulli_distribution::param_type)
1553         (binomial_distribution::param_type)
1554         (geometric_distribution::param_type)
1555         (negative_binomial_distribution::param_type)
1556         (poisson_distribution::param_type)
1557         (exponential_distribution::param_type)
1558         (weibull_distribution::param_type)
1559         (extreme_value_distribution::param_type): Add non-explicit default
1560         constructors. Remove default argument for first parameter of explicit
1561         constructors.
1562         * include/bits/uniform_int_dist.h
1563         (uniform_int_distribution::param_type): Likewise.
1564         * include/ext/random
1565         (beta_distribution::param_type, rice_distribution::param_type)
1566         (nakagami_distribution::param_type, pareto_distribution::param_type)
1567         (k_distribution::param_type, arcsine_distribution::param_type)
1568         (hoyt_distribution::param_type, triangular_distribution::param_type)
1569         (von_mises_distribution::param_type)
1570         (hypergeometric_distribution::param_type)
1571         (logistic_distribution::param_type)
1572         (uniform_inside_sphere_distribution::param_type): Likewise.
1573         (uniform_on_sphere_distribution::param_type): Make default constructor
1574         non-explicit.
1575         * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
1576         Test param_type for non-explicit default constructor.
1577         * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
1578         Likewise.
1579         * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
1580         Likewise.
1581         * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
1582         Likewise.
1583         * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
1584         Likewise.
1585         * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
1586         Likewise.
1587         * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
1588         Likewise.
1589         * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
1590         Likewise.
1591         * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
1592         Likewise.
1593         * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
1594         Likewise.
1595         * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
1596         Likewise.
1597         * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
1598         Likewise.
1599         * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
1600         Likewise.
1601         * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
1602         Likewise.
1603         * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
1604         Likewise.
1605         * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
1606         Likewise.
1607         * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
1608         Likewise.
1609         * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
1610         Likewise.
1611         * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
1612         Likewise.
1613         * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
1614         Likewise.
1615         * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
1616         * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
1617         * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
1618         * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
1619         Likewise.
1620         * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
1621         * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
1622         * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
1623         * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
1624         Likewise.
1625         * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
1626         * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
1627         * testsuite/ext/random/triangular_distribution/cons/default.cc:
1628         Likewise.
1629         * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
1630         Likewise.
1631         * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
1632         Likewise.
1633         * testsuite/ext/random/von_mises_distribution/cons/default.cc:
1634         Likewise.
1636 2018-06-14  Daniel Trebbien <dtrebbien@gmail.com>
1637             Jonathan Wakely  <jwakely@redhat.com>
1639         PR libstdc++/83982
1640         * include/bits/vector.tcc (vector::_M_default_append(size_type)):
1641         Default-construct new elements before moving existing ones.
1642         * testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
1643         New.
1645 2018-06-13  Jonathan Wakely  <jwakely@redhat.com>
1647         PR libstdc++/86127
1648         * include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
1649         unused typedef.
1650         (_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
1651         Use node allocator to create and destroy elements.
1652         (forward_list::_Tp_alloc_type): Remove unused typedef.
1653         (forward_list::_Alloc_traits): Use allocator_traits instead of
1654         __gnu_cxx::__alloc_traits.
1656 2018-06-13  François Dumont  <fdumont@gcc.gnu.org>
1658         * include/debug/helper_functions.h
1659         (__gnu_debug::_Safe_iterator<>): Add declaration.
1660         (__can_advance(_Ite, _Size)): New.
1661         (__can_advance(const _Safe_iterator<>&, _Size)): Overload declaration.
1662         * include/debug/functions.h
1663         (__gnu_debug::_Safe_iterator<>): Remove declaration.
1664         * include/debug/stl_iterator.h
1665         (__can_advance(const _Safe_iterator<>&)): New definition.
1666         * include/debug/stl_iterator.h
1667         (__can_advance(const std::reverse_iterator<>&, _Size)): New.
1668         (__can_advance(const std::move_iterator<>&, _Size)): New.
1669         * include/debug/macros.h (__glibcxx_check_can_increment): New.
1670         * include/debug/debug.h (__glibcxx_requires_can_increment): New.
1671         * include/bits/stl_algobase.h (fill_n): Use latter.
1672         * testsuite/25_algorithms/fill_n/2.cc: New.
1673         * testsuite/25_algorithms/fill_n/debug/1_neg.cc: New.
1674         * testsuite/25_algorithms/fill_n/debug/2_neg.cc: New.
1675         * testsuite/25_algorithms/fill_n/debug/3_neg.cc: New.
1676         * testsuite/25_algorithms/fill_n/debug/4_neg.cc: New.
1678         * include/debug/debug.h (__glibcxx_requires_can_increment_range): New.
1679         (__glibcxx_requires_can_decrement_range): New.
1681 2018-06-12  François Dumont  <fdumont@gcc.gnu.org>
1683         * include/debug/macros.h (__glibcxx_check_can_increment_range): New.
1684         (__glibcxx_check_can_decrement_range): New.
1685         * include/bits/stl_algobase.h (std::copy(_II, _II, _OI)): Use
1686         __glibcxx_requires_can_increment_range.
1687         (std::move(_II, _II, _OI)): Likewise.
1688         (std::copy_backward(_BI, _BI, _BI2)): Use
1689         __glibcxx_requires_can_decrement_range.
1690         (std::move_backward(_BI, _BI, _BI2)): Likewise.
1691         * testsuite/25_algorithms/copy_backward/debug/1_neg.cc: New.
1692         * testsuite/25_algorithms/copy_backward/debug/2_neg.cc: New.
1693         * testsuite/25_algorithms/copy_backward/debug/3_neg.cc: New.
1694         * testsuite/25_algorithms/equal/debug/1_neg.cc: New.
1695         * testsuite/25_algorithms/equal/debug/2_neg.cc: New.
1696         * testsuite/25_algorithms/equal/debug/3_neg.cc: New.
1698 2018-06-12  Jonathan Wakely  <jwakely@redhat.com>
1700         P0935R0 Eradicating unnecessarily explicit default constructors
1701         * include/bits/random.h (linear_congruential_engine)
1702         (mersenne_twister_engine, subtract_with_carry_engine, random_device)
1703         (uniform_real_distribution, normal_distribution)
1704         (lognormal_distribution, gamma_distribution, chi_squared_distribution)
1705         (cauchy_distribution, fisher_f_distribution, student_t_distribution)
1706         (bernoulli_distribution, binomial_distribution,geometric_distribution)
1707         (negative_binomial_distribution, exponential_distribution)
1708         (weibull_distribution, extreme_value_distribution): Add non-explicit
1709         default constructors. Remove default argument for first parameter of
1710         explicit constructors.
1711         (piecewise_constant_distribution, piecewise_linear_distribution):
1712         Make default constructor non-explicit.
1713         * include/bits/uniform_int_dist.h (uniform_int_distribution): Add
1714         non-explicit default constructors. Remove default argument for first
1715         parameter of explicit constructor.
1716         * include/ext/random
1717         (simd_fast_mersenne_twister_engine, beta_distribution)
1718         (rice_distribution, nakagami_distribution, pareto_distribution)
1719         (k_distribution, arcsine_distribution, hoyt_distribution)
1720         (triangular_distribution, von_mises_distribution)
1721         (hypergeometric_distribution, logistic_distribution)
1722         (uniform_inside_sphere_distribution): Likewise.
1723         (uniform_on_sphere_distribution): Make default constructor
1724         non-explicit.
1725         * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
1726         Test for non-explicit default constructor. Fix references to standard.
1727         * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
1728         Likewise.
1729         * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
1730         Likewise.
1731         * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
1732         Likewise.
1733         * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
1734         Likewise.
1735         * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
1736         Likewise.
1737         * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
1738         Likewise.
1739         * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
1740         Likewise.
1741         * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
1742         Likewise.
1743         * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
1744         Likewise.
1745         * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
1746         Likewise.
1747         * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
1748         Likewise.
1749         * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
1750         Likewise.
1751         * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
1752         Likewise.
1753         * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
1754         Likewise.
1755         * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
1756         Likewise.
1757         * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
1758         Likewise.
1759         * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
1760         Likewise.
1761         * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
1762         Likewise.
1763         * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
1764         Likewise.
1765         * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
1766         * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
1767         * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
1768         * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
1769         Likewise.
1770         * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
1771         * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
1772         * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
1773         * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
1774         Likewise.
1775         * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
1776         * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
1777         * testsuite/ext/random/triangular_distribution/cons/default.cc:
1778         Likewise.
1779         * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
1780         Likewise.
1781         * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
1782         Likewise.
1783         * testsuite/ext/random/von_mises_distribution/cons/default.cc:
1784         Likewise.
1785         * testsuite/util/testsuite_common_types.h
1786         (implicitly_default_constructible): New helper.
1788 2018-06-08  Jonathan Wakely  <jwakely@redhat.com>
1790         * include/bits/ios_base.h (ios::Init::Init(const Init&))
1791         (ios::Init::operator=): Define as defaulted.
1792         * include/bits/stl_bvector.h (_Bit_reference(const _Bit_reference&)):
1793         Likewise.
1794         * include/bits/stream_iterator.h (istream_iterator::operator=)
1795         (ostream_iterator::operator=): Likewise.
1796         * include/bits/streambuf_iterator.h (istreambuf_iterator::operator=)
1797         Likewise.
1798         * include/std/bitset (bitset::reference::reference(const reference&)):
1799         Likewise.
1800         * include/std/complex (complex<float>::complex(const complex&))
1801         (complex<double>::complex(const complex&))
1802         (complex<long double>::complex(const complex&)): Likewise.
1804 2018-06-07  Jonathan Wakely  <jwakely@redhat.com>
1806         * include/bits/regex.h (sub_match): Add noexcept to default
1807         constructor and length observer.
1808         (match_results): Add noexcept to default constructor and observers
1809         with no preconditions. Define destructor as defaulted.
1810         (operator==, operator!=, swap): Add noexcept.
1811         (regex_iterator): Add default member initializers and define default
1812         constructor and destructor as defaulted. Add noexcept to equality
1813         and dereference operators.
1815 2018-06-07  François Dumont  <fdumont@gcc.gnu.org>
1817         * src/c++11/debug.cc
1818         (_Safe_iterator_base::_M_detach()): Reset state only if needed.
1819         (_Safe_iterator_base::_M_detach_single()): Likewise.
1820         (_Safe_local_iterator_base::_M_detach()): Reset state only if needed.
1821         (_Safe_local_iterator_base::_M_detach_single()): Likewise.
1823 2018-06-06  Jonathan Wakely  <jwakely@redhat.com>
1825         * include/bits/shared_ptr_base.h (__shared_count): Remove redundant
1826         move of const value.
1828 2018-06-06  Jakub Jelinek  <jakub@redhat.com>
1830         PR c++/86068
1831         * include/bits/c++config: Check __cpp_transactional_memory >= 201500L
1832         rather than __cpp_transactional_memory >= 201505L.
1834 2018-06-06  Jonathan Wakely  <jwakely@redhat.com>
1836         PR libstdc++/86008
1837         * include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>):
1838         Define new partial specialization.
1839         * include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define
1840         new overload.
1841         (operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use
1842         value not reference for iteration.
1843         * testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust
1844         comment.
1845         * testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test.
1846         * testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust
1847         comment.
1849 2018-06-05  Jonathan Wakely  <jwakely@redhat.com>
1851         * include/std/type_traits: Fix comment typos.
1853         * testsuite/27_io/filesystem/operations/read_symlink.cc: XFAIL for
1854         mingw* targets.
1855         * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
1856         * testsuite/experimental/filesystem/operations/read_symlink.cc:
1857         Likewise.
1859 2018-06-05  François Dumont  <fdumont@gcc.gnu.org>
1861         * include/bits/stl_tempbuf.h
1862         (_Temporary_buffer(_FwdIte, _FwdIte)): Delete, replaced by...
1863         (_Temporary_buffer(_FwdIte, size_type)): ...this, new.
1864         * include/ext/memory (temporary_buffer<>(_FwdIte, _FwdIte)): Adapt.
1865         * include/bits/stl_algo.h (__stable_partition): Adapt.
1866         (__inplace_merge): Adapt.
1867         (__stable_sort): Adapt.
1869 2018-06-04  Jonathan Wakely  <jwakely@redhat.com>
1871         PR libstdc++/85930
1872         * include/bits/shared_ptr_base.h [!__cpp_rtti]: Include <typeinfo>
1873         unconditionally. Remove redundant declaration.
1874         [!__cpp_rtti] (_Sp_make_shared_tag::_S_ti): Fix location of
1875         alignment-specifier.
1877         * include/bits/postypes.h (fpos): Define special members as defaulted.
1879         PR libstdc++/85930
1880         * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Align
1881         the static variable correctly.
1883 2018-05-24  Jonathan Wakely  <jwakely@redhat.com>
1885         PR libstdc++/78870 support std::filesystem on Windows
1886         * config.h.in: Regenerate.
1887         * configure: Regenerate.
1888         * configure.ac: Check for link, readlink and symlink.
1889         * include/bits/fs_path.h (path::operator/=(const path&)): Move
1890         definition out of class body.
1891         (path::is_absolute(), path::_M_append(path)): Likewise.
1892         (operator<<(basic_ostream, const path&)): Use std::quoted directly.
1893         (operator>>(basic_istream, path&)): Likewise.
1894         (u8path): Reorder definitions and fix Windows implementation.
1895         (path::is_absolute()): Define inline and fix for Windows.
1896         [!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
1897         Define POSIX version inline.
1898         (path::_M_append(path)): Define inline.
1899         * include/experimental/bits/fs_path.h (path::is_absolute()): Move
1900         definition out of class body.
1901         (operator<<(basic_ostream, const path&)): Fix type of delimiter and
1902         escape characters.
1903         (operator>>(basic_istream, path&)): Likewise.
1904         (path::is_absolute()): Define inline and fix for Windows.
1905         * src/filesystem/dir-common.h (__gnu_posix): New namespace.
1906         (__gnu_posix::char_type, __gnu_posix::DIR, __gnu_posix::dirent)
1907         (__gnu_posix::opendir, __gnu_posix::readdir, __gnu_posix::closedir):
1908         Define as adaptors for Windows functions/types or as
1909         using-declarations for POSIX functions/types.
1910         (_Dir_base, get_file_type): Qualify names to use declarations from
1911         __gnu_posix namespace.
1912         (_Dir_base::is_dor_or_dotdot): New helper functions.
1913         * src/filesystem/dir.cc (_Dir, recursive_directory_iterator): Qualify
1914         names to use declarations from __gnu_posix namespace.
1915         * src/filesystem/ops-common.h (__gnu_posix): New nested namespace.
1916         (__gnu_posix::open, __gnu_posix::close, __gnu_posix::stat_type)
1917         (__gnu_posix::stat, __gnu_posix::lstat, __gnu_posix::mode_t)
1918         (__gnu_posix::chmod, __gnu_posix::mkdir, __gnu_posix::getcwd)
1919         (__gnu_posix::chdir, __gnu_posix::utimbuf, __gnu_posix::utime)
1920         (__gnu_posix::rename, __gnu_posix::truncate, __gnu_posix::char_type):
1921         Define as adaptors for Windows functions/types or as
1922         using-declarations for POSIX functions/types.
1923         (stat_type, do_copy_file): Qualify names to use declarations from
1924         __gnu_posix namespace.
1925         (do_space): Declare new function.
1926         (make_file_type): Only use S_ISLNK if defined.
1927         * src/filesystem/ops.cc (char_ptr, filesystem::canonical): Use
1928         path::value_type not char.
1929         (filesystem::copy, create_dir, filesystem::create_directory): Qualify
1930         names to use declarations from __gnu_posix namespace.
1931         (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
1932         add implementation for Windows.
1933         (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
1934         (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
1935         [!_PC_PATH_MAX]: Don't use pathconf.
1936         [PATH_MAX]: Use if defined.
1937         (filesystem::current_path(const path&, error_code&))
1938         (filesystem::equivalent, do_stat, filesystem::hard_link_count)
1939         (filesystem::last_write_time, filesystem::permissions): Use names
1940         from __gnu_posix.
1941         (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
1942         (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
1943         implementation for Windows.
1944         (filesystem::rename, filesystem::resize_file): Use names from
1945         __gnu_posix.
1946         (filesystem::space): Use do_space.
1947         [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Get absolute path to directory.
1948         (filesystem::status, filesystem::symlink_status): Use names from
1949         __gnu_posix.
1950         (filesystem::temp_directory_path): Add implementation for Windows.
1951         * src/filesystem/path.cc (dot): Define constant.
1952         (path::replace_extension): Use dot.
1953         (path::_M_find_extension): Likewise. Use path::string_type not
1954         std::string.
1955         (path::_M_split_cmpts): Use dot.
1956         (filesystem_error::_M_get_what): Use u8string() not native().
1957         * src/filesystem/std-dir.cc (_Dir, recursive_directory_iterator):
1958         Qualify names to use declarations from __gnu_posix namespace.
1959         * src/filesystem/std-ops.cc (filesystem::absolute(const path&)): Use
1960         correct error_code.
1961         (filesystem::absolute(const path&, error_code&)): Add implementation
1962         for Windows.
1963         (char_ptr, filesystem::canonical): Use path::value_type not char.
1964         (do_copy_file): Use names from __gnu_posix.
1965         [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Do not use fchmod, fchmodat or
1966         sendfile.
1967         (filesystem::copy, create_dir, filesystem::create_directory): Qualify
1968         names to use declarations from __gnu_posix namespace.
1969         (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
1970         add implementation for Windows.
1971         (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
1972         (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
1973         [!_PC_PATH_MAX]: Don't use pathconf.
1974         [PATH_MAX]: Use if defined.
1975         (filesystem::current_path(const path&, error_code&))
1976         (filesystem::equivalent, do_stat, filesystem::hard_link_count)
1977         (filesystem::last_write_time, filesystem::permissions): Use names
1978         from __gnu_posix.
1979         (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
1980         (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
1981         implementation for Windows.
1982         (filesystem::rename, filesystem::resize_file): Use names from
1983         __gnu_posix.
1984         (do_space): Define.
1985         (filesystem::space): Use do_space.
1986         (filesystem::status, filesystem::symlink_status): Use names from
1987         __gnu_posix.
1988         (filesystem::temp_directory_path): Add implementation for Windows.
1989         * src/filesystem/std-path.cc
1990         [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
1991         Define for Windows.
1992         (dot): Define constant.
1993         (path::replace_extension, is_dot): Use dot.
1994         (path::lexically_normal): Check _M_type instead of calling
1995         non-existent function.
1996         (path::_M_find_extension): Use dot. Use path::string_type not
1997         std::string.
1998         (path::_M_split_cmpts): Use dot.
1999         (filesystem_error::_M_get_what): Use u8string() not native().
2000         * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Do not
2001         use symlinks.
2002         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
2003         Likewise.
2004         * testsuite/27_io/filesystem/operations/absolute.cc: Use
2005         __gnu_test::root_path() instead of "/" and add Windows-specific tests.
2006         * testsuite/27_io/filesystem/operations/canonical.cc: Use
2007         path::string() to get narrow string, not path::native().
2008         * testsuite/27_io/filesystem/operations/copy.cc: Construct fstreams
2009         with std::filesystem::path not std::basic_string.
2010         * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
2011         * testsuite/27_io/filesystem/operations/exists.cc: Use
2012         __gnu_test::root_path() instead of "/".
2013         * testsuite/27_io/filesystem/operations/is_empty.cc: Construct
2014         fstreams with std::filesystem::path not std::basic_string.
2015         * testsuite/27_io/filesystem/operations/last_write_time.cc: Use
2016         path::string() to get narrow string.
2017         * testsuite/27_io/filesystem/operations/space.cc: Check results for
2018         errors, expect sensible values otherwise.
2019         * testsuite/27_io/filesystem/operations/temp_directory_path.cc: Add
2020         helpers for adjusting the environment on Windows.
2021         * testsuite/27_io/filesystem/path/append/path.cc: Test
2022         Windows-specific behaviour.
2023         * testsuite/27_io/filesystem/path/construct/format.cc: Fix creation
2024         of path::string_type objects.
2025         * testsuite/27_io/filesystem/path/construct/locale.cc: Compare native
2026         string to wide string on Windows.
2027         * testsuite/27_io/filesystem/path/decompose/root_directory.cc: Allow
2028         for backslash as root-directory.
2029         * testsuite/27_io/filesystem/path/decompose/stem.cc: Use
2030         path::string() to get narrow string.
2031         * testsuite/27_io/filesystem/path/itr/traversal.cc: Test Windows-style
2032         paths.
2033         * testsuite/27_io/filesystem/path/native/string.cc: Use string_type
2034         not std::string.
2035         * testsuite/27_io/filesystem/path/query/is_absolute.cc: Adjust for
2036         different definintion of absolute paths on Windows.
2037         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2038         Do not use symlinks.
2039         * testsuite/experimental/filesystem/operations/absolute.cc: Test
2040         Windows behaviour.
2041         * testsuite/experimental/filesystem/operations/copy.cc: Construct
2042         fstreams with NTCTS not std::basic_string.
2043         * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
2044         * testsuite/experimental/filesystem/operations/exists.cc: Use
2045         __gnu_test::root_path() instead of "/".
2046         * testsuite/experimental/filesystem/operations/is_empty.cc: Construct
2047         fstreams with NTCTS not std::basic_string.
2048         * testsuite/experimental/filesystem/operations/last_write_time.cc:
2049         Use path::string() to get narrow string.
2050         * testsuite/experimental/filesystem/operations/space.cc: Use
2051         __gnu_test::root_path() instead of "/".
2052         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2053         Add helpers for adjusting the environment on Windows.
2054         * testsuite/experimental/filesystem/path/append/path.cc: Use
2055         path::string() to get narrow strings for comparisons.
2056         * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
2057         * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
2058         Likewise.
2059         * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
2060         * testsuite/experimental/filesystem/path/native/string.cc: Use
2061         string_type not std::string.
2062         * testsuite/experimental/filesystem/path/query/is_absolute.cc:
2063         Adjust for different definintion of absolute paths on Windows.
2064         * testsuite/util/testsuite_fs.h (__gnu_test::root_path()): New
2065         function.
2066         (__gnu_test::scoped_file): Construct fstreams with NTCTS not
2067         std::basic_string.
2069 2018-05-31  Jonathan Wakely  <jwakely@redhat.com>
2071         PR libstdc++/85951
2072         * include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
2073         uint_least16_t and uint_least32_t.
2074         (__make_unsigned<wchar_t>): Define unconditionally.
2075         (__make_unsigned_selector<_Tp, true, false>): Remove intermediate
2076         typedefs.
2077         (__make_unsigned_selector_base): New type to provide helper templates.
2078         (__make_unsigned_selector<_Tp, false, true>): Reimplement using
2079         __make_unsigned_selector_base helpers.
2080         (__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
2081         (__make_signed_selector<_Tp, true, false>): Remove intermediate
2082         typedefs.
2083         (__make_signed<wchar_t>, __make_signed<char16_t>)
2084         (__make_signed<char32_t>)): Define unconditionally.
2085         * testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
2086         wchar_t, char16_t and char32_t are transformed correctly.
2087         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
2088         dg-error lineno.
2089         * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
2090         wchar_t, char16_t and char32_t are transformed correctly.
2091         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
2092         dg-error lineno.
2094 2018-05-29  Jonathan Wakely  <jwakely@redhat.com>
2096         * include/std/variant (__erased_dtor): Qualify call to __get.
2098 2018-05-27  François Dumont  <fdumont@gcc.gnu.org>
2100         * include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
2101         (_Rb_tree(const allocator_type&)): Use latter.
2102         * include/bits/stl_map.h (map(const allocator_type&)): Likewise.
2103         (map(initializer_list<value_type>, const allocator_type&)): Likewise.
2104         (map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
2105         * include/bits/stl_multimap.h
2106         (multimap(const allocator_type&)): Likewise.
2107         (multimap(initializer_list<value_type>, const allocator_type&)):
2108         Likewise.
2109         (multimap(_InputIterator, _InputIterator, const allocator_type&)):
2110         Likewise.
2111         * include/bits/stl_set.h (set(const allocator_type&)): Likewise.
2112         (set(initializer_list<value_type>, const allocator_type&)): Likewise.
2113         (set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
2114         * include/bits/stl_multiset.h
2115         (multiset(const allocator_type&)): Likewise.
2116         (multiset(initializer_list<value_type>, const allocator_type&)):
2117         Likewise.
2118         (multiset(_InputIterator, _InputIterator, const allocator_type&)):
2119         Likewise.
2121 2018-05-25  François Dumont  <fdumont@gcc.gnu.org>
2123         PR libstdc++/85768
2124         * src/c++11/debug.cc: Remove backtrace usage.
2126 2018-05-24  Maya Rashish  <coypu@sdf.org>
2128         PR target/85904
2129         * crossconfig.m4: Test for aligned_alloc on netbsd.
2130         * configure: Regenerate.
2132 2018-05-24  Jonathan Wakely  <jwakely@redhat.com>
2134         PR libstdc++/69769
2135         PR libstdc++/85886
2136         * include/bits/atomic_base.h (__atomic_base::value_type)
2137         (__atomic_base::difference_type): Add new typedefs.
2138         * include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type)
2139         (atomic<T*>::value_type, atomic<T*>::difference_type): Likewise.
2140         (atomic<T*>::operator++, atomic<T*>::operator--)
2141         (atomic<T*>::operator+=, atomic<T*>::operator-=)
2142         (atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion
2143         to enforce C++17 requirement on pointer arithmetic.
2144         (__atomic_val_t, __atomic_diff_t): New alias templates.
2145         (atomic_init, atomic_store_explicit, atomic_exchange_explicit)
2146         (atomic_compare_exchange_weak_explicit)
2147         (atomic_compare_exchange_strong_explicit, atomic_store)
2148         (atomic_exchange, atomic_compare_exchange_weak)
2149         (atomic_compare_exchange_strong): Use __atomic_val_t to make
2150         scalar parameters be non-deduced contexts.
2151         (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
2152         (atomic_fetch_add, atomic_fetch_sub): Change first parameter to be
2153         atomic instead of __atomic_base, and use __atomic_diff_t for scalar
2154         parameters.
2155         (atomic_fetch_and_explicit, atomic_fetch_or_explicit)
2156         (atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or)
2157         (atomic_fetch_xor): Use __atomic_val_t for scalar parameters.
2158         (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
2159         (atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic
2160         address types.
2161         * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
2162         * testsuite/29_atomics/atomic/69769.cc: New test.
2163         * testsuite/29_atomics/atomic/nonmembers.cc: New test.
2164         * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
2165         Disable test for C++17 and later.
2166         * testsuite/29_atomics/atomic/requirements/typedefs.cc: New test.
2167         * testsuite/29_atomics/atomic_integral/nonmembers.cc: New test.
2168         * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New
2169         test.
2171 2018-05-23  Jonathan Wakely  <jwakely@redhat.com>
2173         * include/bits/fs_path.h (path::__is_encoded_char): Change from class
2174         template to alias template.
2175         (path::__value_type_is_char): Use remove_const_t.
2176         (path:_S_string_from_iter): New helper function.
2177         (path::_S_convert(InputIter, __null_terminated))
2178         (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
2179         Use _S_string_from_iter.
2180         (path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing
2181         rep for COW strings.
2182         * include/experimental/bits/fs_path.h (path::__is_encoded_char):
2183         Change from class template to alias template.
2184         (path::__value_type_is_char): Use remove_const.
2185         (path:_S_string_from_iter): New helper function.
2186         (path::_S_convert(InputIter, __null_terminated))
2187         (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
2188         Use _S_string_from_iter.
2189         * testsuite/27_io/filesystem/path/append/source.cc: Test appending
2190         wide strings.
2191         * testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact
2192         string equality, not path equivalence.
2193         * testsuite/27_io/filesystem/path/construct/format.cc: Check
2194         construction from std::string and std::wstring and input iterators.
2195         * testsuite/27_io/filesystem/path/construct/locale.cc: Check
2196         construction from iterators.
2197         * testsuite/experimental/filesystem/path/concat/strings.cc: Check for
2198         exact string equality, not path equivalence.
2199         * testsuite/experimental/filesystem/path/construct/locale.cc: Check
2200         construction from iterators.
2202         * include/bits/fs_path.h (path::_M_type): Change default member
2203         initializer to _Filename.
2204         (path::begin): Create past-the-end iterator for empty path.
2205         * src/filesystem/std-path.cc (path::remove_filename()): Remove
2206         debugging check.
2207         (path::has_relative_path()): Return false for empty filenames.
2208         (path::_M_split_cmpts): Set _M_type to _Filename for empty paths.
2209         Fix offset of empty final component.
2210         * testsuite/27_io/filesystem/path/itr/components.cc: New.
2211         * testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs.
2213 2018-05-21  Jonathan Wakely  <jwakely@redhat.com>
2215         Add support for opening file streams from wide character strings.
2216         * config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
2217         (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
2218         Define new overload.
2219         * config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
2220         (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
2221         Declare new overload.
2222         * configure.ac: Check for _wfopen.
2223         * crossconfig.m4: Likewise.
2224         * configure: Regenerate.
2225         * config.h.in: Regenerate.
2226         * include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
2227         (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
2228         Define new overload.
2229         * include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
2230         (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
2231         Declare new overload.
2232         [_GLIBCXX_HAVE__WFOPEN]
2233         (basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
2234         (basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
2235         (basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
2236         (basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
2237         (basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
2238         (basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
2239         new overloads.
2240         * testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
2241         * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
2242         * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
2243         * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
2244         * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
2245         * testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
2246         * testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
2248 2018-05-21  François Dumont  <fdumont@gcc.gnu.org>
2250         PR libstdc++/85845
2251         * include/bits/stl_tree.h
2252         (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
2253         qualification.
2255 2018-05-21  Jonathan Wakely  <jwakely@redhat.com>
2257         * src/filesystem/std-ops.cc (absolute): Report an error for empty
2258         paths.
2259         (weakly_canonical(const path&)): Do not call canonical on empty path.
2260         (weakly_canonical(const path&, error_code&)): Likewise.
2261         * testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
2263         PR libstdc++/85818
2264         * testsuite/experimental/filesystem/path/preferred_separator.cc: Add
2265         dg-require-filesystem-ts.
2267         PR libstdc++/85843
2268         * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
2269         initialize base class to avoid warnings.
2271 2018-05-19  Jonathan Wakely  <jwakely@redhat.com>
2273         * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
2274         [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
2275         little_endian element in bitmask.
2276         * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
2277         * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
2279 2018-05-18  François Dumont  <fdumont@gcc.gnu.org>
2281         * include/bits/stl_tree.h
2282         (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
2283         (_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
2284         (_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
2285         (_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
2286         * include/debug/map.h
2287         (map(map&&, const_allocator_type&)): Add noexcept qualitication.
2288         * include/debug/multimap.h
2289         (multimap(multimap&&, const_allocator_type&)): Likewise.
2290         * include/debug/set.h
2291         (set(set&&, const_allocator_type&)): Likewise.
2292         * include/debug/multiset.h
2293         (multiset(multiset&&, const_allocator_type&)): Likewise.
2294         * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
2295         Add checks.
2296         * testsuite/23_containers/map/cons/noexcept_move_construct.cc:
2297         Add checks.
2298         * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
2299         Add checks.
2300         * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
2301         Add checks.
2302         * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
2303         Add checks.
2304         * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
2305         Add checks.
2306         * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
2307         Add checks.
2308         * testsuite/23_containers/set/cons/noexcept_move_construct.cc:
2309         Add checks.
2311 2018-05-18  Jason Merrill  <jason@redhat.com>
2313         * include/bits/stl_deque.h (_Deque_iterator): Constrain constructor
2314         for conversion to const_iterator.  Add defaulted copy ops.
2315         * libsupc++/new (bad_alloc): Add defaulted copy ops.
2316         * libsupc++/exception.h (exception): Add defaulted copy ops.
2317         * include/std/system_error (system_error): Add defaulted copy ops.
2318         * include/std/stdexcept (domain_error, invalid_argument)
2319         (length_error, out_of_range, range_error, overflow_error)
2320         (underflow_error): Add defaulted copy ops.
2321         * include/bits/stl_iterator.h (reverse_iterator): Add defaulted
2322         copy assignment.
2323         * include/bits/allocator.h (allocator): Add defaulted copy assignment.
2324         * include/ext/throw_allocator.h (condition_base): Add defaulted
2325         default and copy ctor and copy assignment.
2327 2018-05-18  Jonathan Wakely  <jwakely@redhat.com>
2329         PR libstdc++/85098
2330         * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
2331         (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
2332         (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
2333         (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
2334         definitions.
2335         * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
2336         whitespace.
2337         * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
2338         braces around body of do-while.
2339         * testsuite/28_regex/basic_regex/85098.cc: New
2341 2018-05-17  Jonathan Wakely  <jwakely@redhat.com>
2343         PR libstdc++/85818
2344         * src/filesystem/path.cc (path::preferred_separator): Add used
2345         attribute.
2346         * testsuite/experimental/filesystem/path/preferred_separator.cc: New.
2348         PR libstdc++/85812
2349         * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
2350         * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
2351         Refactor to separate non-throwing and throwing implementations.
2352         [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
2353         if constructing the object throws.
2355 2018-05-15  Jonathan Wakely  <jwakely@redhat.com>
2357         PR libstdc++/85749
2358         * include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
2359         (linear_congruential_engine, mersenne_twister_engine)
2360         (subtract_with_carry_engine, discard_block_engine)
2361         (independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
2362         constrain function templates taking seed sequences.
2363         * include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
2364         (mersenne_twister_engine::seed(_Sseq&))
2365         (subtract_with_carry_engine::seed(_Sseq&)): Change return types to
2366         match declarations.
2367         * include/ext/random (simd_fast_mersenne_twister_engine): Use
2368         __is_seed_seq to constrain function templates taking seed sequences.
2369         * include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
2370         Change return type to match declaration.
2371         * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
2372         New.
2373         * testsuite/26_numerics/random/independent_bits_engine/cons/
2374         seed_seq2.cc: New.
2375         * testsuite/26_numerics/random/linear_congruential_engine/cons/
2376         seed_seq2.cc: New.
2377         * testsuite/26_numerics/random/mersenne_twister_engine/cons/
2378         seed_seq2.cc: New.
2379         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
2380         * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
2381         New.
2382         * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
2383         seed_seq2.cc: New.
2384         * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
2385         seed_seq2.cc: New.
2387         PR libstdc++/83891
2388         * include/bits/fs_path.h (path::is_absolute()): Use same definition
2389         for all operating systems.
2390         * include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
2391         * testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
2392         * testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
2393         * testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
2395         * testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
2396         unused <vector> header.
2397         * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
2398         * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
2399         * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
2400         * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
2401         * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
2402         Likewise.
2403         * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
2404         Likewise.
2405         * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
2406         * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
2407         * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
2408         * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
2409         * testsuite/experimental/filesystem/path/decompose/extension.cc:
2410         Likewise.
2411         * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
2412         * testsuite/experimental/filesystem/path/query/has_extension.cc:
2413         Likewise.
2414         * testsuite/experimental/filesystem/path/query/has_filename.cc:
2415         Likewise.
2416         * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
2417         Likewise.
2418         * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
2419         Likewise.
2420         * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
2421         Likewise.
2422         * testsuite/experimental/filesystem/path/query/has_root_name.cc:
2423         Likewise.
2424         * testsuite/experimental/filesystem/path/query/has_root_path.cc:
2425         Likewise.
2426         * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
2427         * testsuite/experimental/filesystem/path/query/is_relative.cc:
2428         Likewise.
2430         PR libstdc++/84159
2431         * include/bits/fs_path.h (path::operator/=, path::append): Construct
2432         temporary path before calling _M_append.
2433         (path::_M_append): Change parameter to path and implement C++17
2434         semantics.
2435         * testsuite/27_io/filesystem/path/append/path.cc: Add helper function
2436         and more examples from the standard.
2437         * testsuite/27_io/filesystem/path/append/source.cc: New.
2438         * testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
2439         * testsuite/27_io/filesystem/path/nonmember/append.cc: New.
2441         * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
2442         __invoke to prevent ADL.
2444 2018-05-14  Jonathan Wakely  <jwakely@redhat.com>
2446         PR libstdc++/81256
2447         * include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
2448         exceptions from _M_terminate_output().
2449         * include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
2450         exceptions from close().
2451         * testsuite/27_io/basic_filebuf/close/81256.cc: New.
2453         * include/bits/valarray_array.h (__valarray_get_memory): Remove.
2454         (__valarray_get_storage): Call operator new directly. Remove ignored
2455         top-level restrict qualifier and add malloc attribute instead.
2456         (_Array<_Tp>::_Array(size_t)): Remove unused constructor.
2458         PR libstdc++/67554
2459         * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
2460         (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
2462         PR libstdc++/82966
2463         * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
2464         instead of type.
2465         * testsuite/23_containers/set/modifiers/node_swap.cc: New.
2467 2018-05-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
2469         PR libstdc++/80165
2470         * testsuite/20_util/variant/80165.cc: New.
2472 2018-05-10  Jonathan Wakely  <jwakely@redhat.com>
2474         * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
2475         * doc/xml/manual/debug_mode.xml: Add array and forward_list to list
2476         of C++11 containers with Debug Mode support.
2477         * doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
2478         * doc/html/*: Regenerate.
2480 2018-05-10  Jason Merrill  <jason@redhat.com>
2482         * include/bits/regex_compiler.h (_S_cache_size): Change from
2483         function to variable.
2485 2018-05-10  Edward Smith-Rowland  <3dw4rd@verizon.net>
2487         PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
2488         * include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
2489         argument defaulted to +1.  Doxy comments on same.
2490         * testsuite/special_functions/02_assoc_legendre/
2491         check_value.cc: Regen.
2492         * testsuite/tr1/5_numerical_facilities/special_functions/
2493         02_assoc_legendre/check_value.cc: Regen.
2495 2018-05-10  Jonathan Wakely  <jwakely@redhat.com>
2497         PR libstdc++/85729
2498         * include/bits/c++config.h (__replacement_assert): Add linkage
2499         specification.
2500         * include/bits/std_abs.h: Add comment to closing brace of block.
2501         * include/c_global/cstddef: Add linkage specification.
2502         * include/c_global/cstring: Likewise.
2503         * include/c_global/cwchar: Likewise.
2505 2018-05-09  François Dumont  <fdumont@gcc.gnu.org>
2507         * include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
2508         Rename in...
2509         (_Safe_iterator<>::_S_constant()): ...that.
2510         * include/debug/safe_local_iterator.h
2511         (_Safe_local_iterator<>::_M_constant()): Rename in...
2512         (_Safe_local_iterator<>::_S_constant()): ...that.
2513         * include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
2514         (_Iterator_state::__rbegin): New.
2515         (_Iterator_state::__rmiddle): New.
2516         (_Iterator_state::__rend): New.
2517         (_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
2518         _Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
2519         iterator type.
2520         (_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
2521         _Is_iterator)): Likewise.
2522         (_Parameter::_S_reverse_state(_Iterator_state)): New.
2523         (_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
2524         _Is_iterator)): New.
2525         (_Parameter(std::reverse_iterator<> const&, const char*,
2526         _Is_iterator)): New.
2527         (_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
2528         const char*, _Is_iterator)): New.
2529         (_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
2530         New.
2531         (_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
2532         _Is_iterator)): New.
2533         * testsuite/24_iterators/move_iterator/debug_neg.cc: New.
2534         * testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
2535         * testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
2537 2018-05-09  Jonathan Wakely  <jwakely@redhat.com>
2539         * include/bits/std_function.h (_Base_manager::_M_get_pointer):
2540         Use constexpr if in C++17 mode.
2541         (_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
2542         Copy from const object.
2543         * testsuite/20_util/function/cons/non_copyconstructible.cc: New.
2545 2018-05-08  François Dumont  <fdumont@gcc.gnu.org>
2547         * src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
2548         [_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
2549         backtrace.
2551         * include/debug/macros.h (__glibcxx_check_valid_range_at): New.
2552         * include/debug/functions.h (__check_valid_range): Use latter.
2553         * include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
2554         use latter.
2555         * include/debug/deque
2556         (deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
2557         * include/debug/forward_list
2558         (forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
2559         Likewise.
2560         * include/debug/list
2561         (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2562         * include/debug/list
2563         (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2564         * include/debug/map.h
2565         (map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2566         (map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
2567         Likewise.
2568         * include/debug/multimap.h
2569         (multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2570         (multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
2571         const _Alloc&)): Likewise.
2572         * include/debug/set.h
2573         (set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2574         (set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
2575         Likewise.
2576         * include/debug/multiset.h
2577         (multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2578         (multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
2579         const _Alloc&)): Likewise.
2580         * include/debug/string
2581         (basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
2582         Likewise.
2583         * include/debug/unordered_map
2584         (unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
2585         Likewise.
2586         (unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
2587         const _Alloc&)): Likewise.
2588         * include/debug/unordered_set
2589         (unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
2590         Likewise.
2591         (unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
2592         const _Alloc&)): Likewise.
2593         * include/debug/vector
2594         (vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
2596         * include/debug/formatter.h (_Error_formatter::_M_function): New.
2597         (_Error_formatter(const char*, unsigned int)): Adapt.
2598         (_Error_formatter::_M_at): Rename in...
2599         (_Error_formatter::_S_at): ...that and adapt.
2600         * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New.
2601         (_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt.
2602         * src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function
2603         when available.
2605 2018-05-08  Jonathan Wakely  <jwakely@redhat.com>
2607         * include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
2608         Use normal std::vector even in Debug Mode.
2610         PR libstdc++/85672
2611         * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
2612         to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
2613         * include/Makefile.in: Regenerate.
2614         * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
2615         within conditional block.
2617 2018-05-07  Jonathan Wakely  <jwakely@redhat.com>
2619         * doc/xml/manual/using.xml (table.cmd_options): Document that the
2620         C++17 Filesystem implementation also needs -lstdc++fs.
2622         PR libstdc++/85671
2623         * include/bits/fs_path.h (operator/): Permit copy elision.
2624         * include/experimental/bits/fs_path.h (operator/): Likewise.
2626 2018-05-07  Edward Smith-Rowland  <3dw4rd@verizon.net>
2628         Moar PR libstdc++/80506
2629         * include/bits/random.tcc (gamma_distribution::__generate_impl()):
2630         Fix magic number used in loop condition.
2632 2018-05-04  Jonathan Wakely  <jwakely@redhat.com>
2634         PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
2635         * include/std/optional (_Optional_payload): Add noexcept to default
2636         constructor. Re-indent.
2637         (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
2638         constructor for copying disengaged payloads.
2639         (_Optional_payload<_Tp, true, false, true>): Likewise.
2640         (_Optional_payload<_Tp, true, true, false>): Likewise.
2641         (_Optional_payload<_Tp, true, false, false>): Likewise.
2642         * testsuite/20_util/optional/cons/85642.cc: New.
2643         * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
2645 2018-05-03  Jonathan Wakely  <jwakely@redhat.com>
2647         PR libstdc++/82644
2648         * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
2649         inline definitions instead of using-declarations.
2650         [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
2651         * testsuite/tr1/5_numerical_facilities/special_functions/
2652         07_conf_hyperg/compile_cxx17.cc: New.
2653         * testsuite/tr1/5_numerical_facilities/special_functions/
2654         17_hyperg/compile_cxx17.cc: New.
2656         PR libstdc++/84769
2657         * include/std/variant (visit): Qualify std::get call.
2659         PR libstdc++/85632 use uintmax_t for arithmetic
2660         * src/filesystem/ops.cc (experimental::filesystem::space): Perform
2661         arithmetic in result type.
2662         * src/filesystem/std-ops.cc (filesystem::space): Likewise.
2663         * testsuite/27_io/filesystem/operations/space.cc: Check total capacity
2664         is greater than free space.
2665         * testsuite/experimental/filesystem/operations/space.cc: New.
2667         * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
2668         * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
2669         New.
2670         * testsuite/20_util/remove_cvref/value.cc: New.
2671         * testsuite/20_util/remove_cvref/value_ext.cc: New.
2673         PR libstdc++/84087 LWG DR 2268 basic_string default arguments
2674         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
2675         (append(const basic_string&, size_type, size_type)
2676         (assign(const basic_string&, size_type, size_type)
2677         (insert(size_type, const basic_string&, size_type, size_type)
2678         (replace(size_type,size_type,const basic_string&,size_type,size_type)
2679         (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
2680         Add default arguments (LWG 2268).
2681         [_GLIBCXX_USE_CXX11_ABI=0]
2682         (append(const basic_string&, size_type, size_type)
2683         (assign(const basic_string&, size_type, size_type)
2684         (insert(size_type, const basic_string&, size_type, size_type)
2685         (replace(size_type,size_type,const basic_string&,size_type,size_type)
2686         (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
2687         Likewise.
2688         * testsuite/21_strings/basic_string/dr2268.cc: New test.
2690         PR libstdc++/84535
2691         * include/std/thread (thread::__not_same): New SFINAE helper.
2692         (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
2693         first argument is not a std::thread. Add static assertion to check
2694         INVOKE expression is valid.
2695         (thread::thread(thread&), thread::thread(const thread&&)): Remove.
2696         (thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
2697         __invoke_result for return types and remove exception specifications.
2698         * testsuite/30_threads/thread/cons/84535.cc: New.
2700         * include/std/future (__async_result_of): Use __invoke_result instead
2701         of result_of.
2703         * include/std/any (any_cast): Use __remove_cvref_t.
2704         * include/std/tuple (__make_tuple): Likewise.
2705         * include/std/type_traits (__remove_cvref_t): Define.
2706         (__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
2707         [__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
2708         * include/std/variant (__erased_hash): Use __remove_cvref_t.
2710 2018-05-02  François Dumont  <fdumont@gcc.gnu.org>
2712         * include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
2713         ensure overloaded comma not used.
2714         * include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
2715         * include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
2716         * include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
2717         * testsuite/23_containers/deque/modifiers/assign/1.cc: New.
2718         * testsuite/23_containers/list/modifiers/assign/1.cc: New.
2719         * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
2720         * testsuite/23_containers/vector/modifiers/assign/1.cc: New.
2722 2018-05-02  Jonathan Wakely  <jwakely@redhat.com>
2724         PR libstdc++/68197
2725         * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
2726         indices to unsigned.
2727         * src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
2728         as failure. Refactor error handling.
2729         * testsuite/27_io/ios_base/storage/68197.cc: New.
2731         PR libstdc++/57997
2732         PR libstdc++/83860
2733         * include/bits/gslice_array.h (gslice_array): Define default
2734         constructor as deleted, as per C++11 standard.
2735         * include/bits/mask_array.h (mask_array): Likewise.
2736         * include/bits/slice_array.h (slice_array): Likewise.
2737         * include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
2738         to namespace __detail.
2739         (_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
2740         members.
2741         * include/bits/valarray_before.h (_ValArrayRef): New helper for type
2742         of data members in closure objects.
2743         (_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
2744         (_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
2745         __detail.
2746         (_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
2747         (_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
2748         (_SBase::_M_expr): Use _ValArrayRef for type of data members.
2749         * include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
2750         (_ValFunClos, _RefFunClos): Move to namespace __detail and add
2751         using-declarations to namespace std.
2752         * testsuite/26_numerics/valarray/83860.cc: New.
2754         * testsuite/backward/strstream_move.cc: Remove duplicate function
2755         call.
2757         PR libstdc++/69608
2758         * include/backward/strstream (strstreambuf): Define move constructor
2759         and move assignment operator.
2760         (istrstream, ostrstream, strstream): Likewise.
2761         * testsuite/backward/strstream_move.cc: New.
2763 2018-05-01  Tulio Magno Quites Machado Filho  <tuliom@linux.vnet.ibm.com>
2765         PR libstdc++/84654
2766         * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
2767         * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
2768         * configure: Regenerate.
2769         * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
2770         based on ENABLE_FLOAT128.
2771         * include/Makefile.in: Regenerate.
2772         * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
2773         [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
2774         _GLIBCXX_USE_FLOAT128.
2776 2018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
2778         * configure: Regenerated.
2780 2018-04-19  Jakub Jelinek  <jakub@redhat.com>
2782         * configure: Regenerated.
2784 2018-04-18  Jonathan Wakely  <jwakely@redhat.com>
2785             Jakub Jelinek  <jakub@redhat.com>
2787         PR libstdc++/85442
2788         * src/c++11/Makefile.am: Don't generate debuginfo again for
2789         cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
2790         * src/c++11/Makefile.in: Regenerate.
2792 2018-04-18  Jonathan Wakely  <jwakely@redhat.com>
2794         PR libstdc++/84442
2795         * testsuite/30_threads/thread/cons/terminate.cc
2796         [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
2798 2018-04-18  David Malcolm  <dmalcolm@redhat.com>
2800         PR jit/85384
2801         * configure: Regenerate.
2803 2018-04-16  Jonathan Wakely  <jwakely@redhat.com>
2805         * testsuite/experimental/filesystem/file_status/1.cc: Add
2806         -DUSE_FILESYSTEM_TS to dg-options.
2807         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2808         Likewise.
2809         * testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
2810         * testsuite/experimental/filesystem/iterators/
2811         recursive_directory_iterator.cc: Likewise.
2812         * testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
2813         * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
2814         * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
2815         * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
2816         * testsuite/experimental/filesystem/operations/create_directories.cc:
2817         Likewise.
2818         * testsuite/experimental/filesystem/operations/create_directory.cc:
2819         Likewise.
2820         * testsuite/experimental/filesystem/operations/create_symlink.cc:
2821         Likewise.
2822         * testsuite/experimental/filesystem/operations/current_path.cc:
2823         Likewise.
2824         * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
2825         * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
2826         * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
2827         * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
2828         * testsuite/experimental/filesystem/operations/last_write_time.cc:
2829         Likewise.
2830         * testsuite/experimental/filesystem/operations/permissions.cc:
2831         Likewise.
2832         * testsuite/experimental/filesystem/operations/read_symlink.cc:
2833         Likewise.
2834         * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
2835         * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
2836         * testsuite/experimental/filesystem/operations/status.cc: Likewise.
2837         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2838         Likewise.
2839         * testsuite/experimental/filesystem/path/append/path.cc: Likewise.
2840         * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
2841         * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
2842         * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
2843         * testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
2844         * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
2845         * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
2846         * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
2847         * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
2848         * testsuite/experimental/filesystem/path/construct/default.cc:
2849         Likewise.
2850         * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
2851         * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
2852         * testsuite/experimental/filesystem/path/construct/string_view.cc:
2853         Likewise.
2854         * testsuite/experimental/filesystem/path/decompose/extension.cc:
2855         Likewise.
2856         * testsuite/experimental/filesystem/path/decompose/filename.cc:
2857         Likewise.
2858         * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
2859         Likewise.
2860         * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
2861         Likewise.
2862         * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
2863         Likewise.
2864         * testsuite/experimental/filesystem/path/decompose/root_name.cc:
2865         Likewise.
2866         * testsuite/experimental/filesystem/path/decompose/root_path.cc:
2867         Likewise.
2868         * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
2869         * testsuite/experimental/filesystem/path/generic/generic_string.cc:
2870         Likewise.
2871         * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
2872         * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
2873         * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
2874         Likewise.
2875         * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
2876         Likewise.
2877         * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
2878         Likewise.
2879         * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
2880         Likewise.
2881         * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
2882         * testsuite/experimental/filesystem/path/native/string.cc: Likewise.
2883         * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
2884         Likewise.
2885         * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
2886         * testsuite/experimental/filesystem/path/query/has_extension.cc:
2887         Likewise.
2888         * testsuite/experimental/filesystem/path/query/has_filename.cc:
2889         Likewise.
2890         * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
2891         Likewise.
2892         * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
2893         Likewise.
2894         * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
2895         Likewise.
2896         * testsuite/experimental/filesystem/path/query/has_root_name.cc:
2897         Likewise.
2898         * testsuite/experimental/filesystem/path/query/has_root_path.cc:
2899         Likewise.
2900         * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
2901         * testsuite/experimental/filesystem/path/query/is_relative.cc:
2902         Likewise.
2904 2018-04-13  Jonathan Wakely  <jwakely@redhat.com>
2906         * src/c++11/Makefile.am: Fix sed command.
2907         * src/c++11/Makefile.in: Regenerate.
2909         * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
2910         handle mangled names starting with double underscores on darwin.
2911         * src/c++11/Makefile.in: Regenerate.
2913 2018-04-12  Jonathan Wakely  <jwakely@redhat.com>
2915         * src/c++11/Makefile.am: Fix comment.
2916         * src/c++11/Makefile.in: Regenerate.
2917         * src/c++11/cxx11-ios_failure.cc: Fix comment.
2918         * src/c++98/ios_failure.cc: Likewise.
2920         * src/c++11/ios.cc: Remove redundant macro definition.
2922 2018-04-11  Jonathan Wakely  <jwakely@redhat.com>
2924         * doc/xml/manual/abi.xml: Document header locations in recent
2925         releases.
2926         * doc/xml/manual/evolution.xml: Add API changes since GCC 5.
2927         * doc/xml/manual/spine.xml: Update copyright years.
2928         * doc/xml/manual/strings.xml: Adjust tolower example to avoid
2929         undefined behaviour.
2930         * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
2931         * doc/html/*: Regenerate.
2933 2018-04-10  Jonathan Wakely  <jwakely@redhat.com>
2935         * doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
2936         * doc/xml/manual/backwards_compatibility.xml: Likewise.
2937         * doc/xml/manual/containers.xml: Likewise.
2938         * doc/xml/manual/debug_mode.xml: Likewise.
2939         * doc/xml/manual/extensions.xml: Likewise.
2940         * doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
2941         * doc/xml/manual/using.xml: Likewise.
2942         * doc/xml/manual/utilities.xml: Likewise.
2944         PR libstdc++/85222
2945         * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
2946         cxx11-ios_failure.cc to rewrite type info for __ios_failure.
2947         * src/c++11/Makefile.in: Regenerate.
2948         * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
2949         New types.
2950         [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
2951         * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
2952         * src/c++98/ios_failure.cc (__construct_ios_failure)
2953         (__destroy_ios_failure, is_ios_failure_handler): New functions.
2954         [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
2955         * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
2956         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
2957         handler types, to always catch std::ios_base::failure.
2958         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2959         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
2960         exceptions_failbit.cc: Likewise.
2961         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2962         exceptions_failbit.cc: Likewise.
2963         * testsuite/27_io/basic_istream/extractors_other/char/
2964         exceptions_null.cc: Likewise.
2965         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
2966         exceptions_null.cc: Likewise.
2967         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2968         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2969         * testsuite/27_io/basic_ostream/inserters_other/char/
2970         exceptions_null.cc: Likewise.
2971         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2972         exceptions_null.cc: Likewise.
2973         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2975 2018-04-05  Jonathan Wakely  <jwakely@redhat.com>
2977         * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
2978         __get calls to avoid ADL and avoid ambiguity due to Clang bug.
2980 2018-04-03  Jonathan Wakely  <jwakely@redhat.com>
2982         PR libstdc++/85183
2983         * include/std/variant (_Move_assign_base::operator=): Fix incorrect
2984         value categories.
2985         * testsuite/20_util/variant/85183.cc: New.
2987 2018-03-26  Jonathan Wakely  <jwakely@redhat.com>
2989         * include/std/variant (__get): Qualify calls to avoid ADL.
2990         (__select_index): Adjust whitespace.
2991         (variant): Add using-declaration to workaround Clang bug.
2993 2018-03-22  Jonathan Wakely  <jwakely@redhat.com>
2995         PR libstdc++/85040
2996         * include/bits/stl_function.h (greater::__not_overloaded)
2997         (less::__not_overloaded, greater_equal::__not_overloaded)
2998         (less_equal::__not_overloaded): Fix ambiguous specializations.
2999         * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
3000         tests for type with overloaded operators.
3002 2018-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3004         PR libstdc++/77691
3005         * testsuite/experimental/memory_resource/resource_adaptor.cc:
3006         xfail execution on 32-bit Solaris/x86.
3008 2018-03-21  Jonathan Wakely  <jwakely@redhat.com>
3010         * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
3011         VERIFY instead of assert.
3012         * testsuite/20_util/hash/84998.cc: New test.
3013         * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
3014         copy of test adjusted for Debug Mode.
3015         * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
3016         test in Debug Mode.
3018 2018-03-20  François Dumont  <fdumont@gcc.gnu.org>
3020         PR libstdc++/84998
3021         * include/bits/stl_bvector.h: Fix std::hash friend declaration.
3022         * include/std/bitset: Likewise.
3023         * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
3024         declaration.
3025         * include/bits/stl_multimap.h (std::multimap<>): Likewise.
3026         * include/bits/stl_multiset.h (std::multiset<>): Likewise.
3027         * include/bits/stl_set.h (std::set<>): Likewise.
3028         * include/bits/unordered_map.h (std::unordered_map<>): Fix
3029         _Hash_merge_helper friend declaration.
3030         (std::unordered_multimap<>): Likewise.
3031         * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
3032         (std::unordered_multiset<>): Likewise.
3034 2018-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
3036         * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
3037         trailing slash for domain level link.
3038         * doc/xml/faq.xml: Ditto.
3039         * doc/xml/manual/appendix_free.xml (software): Ditto.
3040         * doc/xml/manual/intro.xml: Ditto.
3041         * doc/xml/manual/spine.xml: Ditto.
3042         * doc/xml/spine.xml: Ditto.
3044 2018-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
3046         * doc/xml/manual/documentation_hacking.xml: Adjust link to
3047         docbook.org.
3049 2018-03-17  Jonathan Wakely  <jwakely@redhat.com>
3051         * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
3052         to compile as C++98.
3054 2018-03-14  Jonathan Wakely  <jwakely@redhat.com>
3056         PR libstdc++/78420
3057         * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
3058         (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
3059         to ensure total order for pointers.
3060         (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
3061         Add operator() overloads for pointer arguments and make generic
3062         overloads dispatch to new _S_cmp functions when comparisons would
3063         use built-in operators for pointers.
3064         * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
3066 2018-03-12  Jonathan Wakely  <jwakely@redhat.com>
3068         PR libstdc++/84773
3069         PR libstdc++/83662
3070         * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
3071         * configure: Regenerate.
3072         * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
3073         (aligned_alloc): Add using-declaration.
3074         * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
3076 2018-03-09  François Dumont  <fdumont@gcc.gnu.org>
3078         * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
3079         Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
3080         registration.
3082 2018-03-09  Jonathan Wakely  <jwakely@redhat.com>
3084         PR libstdc++/84769
3085         * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
3086         Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
3088         src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
3089         src/filesystem/std-ops.cc (create_dir): Likewise.
3091 2018-03-08  François Dumont  <fdumont@gcc.gnu.org>
3093         * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
3094         (StdListIteratorPrinter): Inherit from latter.
3095         (StdFwdListIteratorPrinter): New, inherit from latter.
3096         (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
3097         when iterator has no associated container.
3098         (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
3099         __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
3100         registrations.
3101         * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
3102         * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
3104 2018-03-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
3106         PR libstdc++/84601
3107         * include/std/optional (_Optional_payload): Split into multiple
3108         specializations that can handle different cases of trivial or
3109         non-trivial assignment operators.
3110         * testsuite/20_util/optional/84601.cc: New.
3111         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
3113 2018-03-02  Jonathan Wakely  <jwakely@redhat.com>
3115         PR libstdc++/84671
3116         * include/bits/parse_numbers.h (_Number_help): Add partial
3117         specialization to handle digit separators. Adjust partial
3118         specialization for recursion temrination to require _Pow == 1ULL.
3119         * testsuite/20_util/duration/literals/84671.cc: New
3121 2018-02-27  Ville Voutilainen  <ville.voutilainen@gmail.com>
3123         Implement the missing bits of LWG 2769
3124         * include/std/any (any_cast(const any&)): Add static_assert.
3125         (any_cast(any&)): Likewise.
3126         (any_cast(any&&)): Likewise, and remove the handling
3127         for copyable-but-not-movable type.
3128         * testsuite/20_util/any/misc/any_cast.cc: Adjust.
3129         * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
3130         add new tests.
3132 2018-02-23  Jonathan Wakely  <jwakely@redhat.com>
3134         PR libstdc++/84532
3135         * include/std/thread (thread::__make_invoker): Construct tuple
3136         directly instead of using make_tuple.
3137         * testsuite/30_threads/async/84532.cc: New.
3138         * testsuite/30_threads/thread/84532.cc: New.
3140 2018-02-20  François Dumont  <fdumont@gcc.gnu.org>
3142         * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
3143         (template<> __aligned_buffer): Define as __aligned_membuf alias.
3145 2018-02-19  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
3147         PR target/84148
3148         * configure: Regenerate.
3150 2018-02-15  Jonathan Wakely  <jwakely@redhat.com>
3152         PR libstdc++/81797
3153         * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
3154         * configure: Regenerate.
3155         * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
3156         defined.
3157         * include/Makefile.in: Regenerate.
3159 2018-01-29  Jonathan Wakely  <jwakely@redhat.com>
3161         PR libstdc++/83833
3162         * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
3163         Add -ffloat-store to options for m68k and ia32.
3165         * doc/xml/faq.xml: Update copyright years.
3166         * doc/html/*: Regenerate.
3168         PR libstdc++/83658
3169         * include/std/any (any::__do_emplace): Only set _M_manager after
3170         constructing the contained object.
3171         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
3172         * testsuite/20_util/any/modifiers/83658.cc: New test.
3174 2018-01-25  Jonathan Wakely  <jwakely@redhat.com>
3176         PR libstdc++/81076
3177         * include/c_global/cstddef (__byte_operand): Define primary template.
3178         * testsuite/18_support/byte/81076.cc: New test.
3180 2018-01-19  Christophe Lyon  <christophe.lyon@linaro.org>
3182         * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
3183         dg-options and dg-add-options order.
3184         * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
3185         * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
3186         Likewise.
3187         * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
3188         * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
3189         Likewise.
3190         * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
3191         Likewise.
3192         * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
3193         * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
3194         Likewise.
3195         * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
3196         Likewise.
3197         * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
3198         Likewise.
3199         * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
3200         Likewise.
3201         * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
3202         Likewise.
3203         * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
3204         Likewise.
3205         * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
3206         Likewise.
3207         * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
3208         Likewise.
3209         * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
3210         * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
3211         * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
3212         * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
3213         * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
3214         * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
3215         * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
3216         * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
3217         * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
3218         Likewise.
3219         * testsuite/special_functions/19_sph_bessel/check_nan.cc:
3220         Likewise.
3221         * testsuite/special_functions/20_sph_legendre/check_nan.cc:
3222         Likewise.
3223         * testsuite/special_functions/21_sph_neumann/check_nan.cc:
3224         Likewise.
3226 2018-01-18  Uros Bizjak  <ubizjak@gmail.com>
3228         * configure.ac (AC_CHECK_HEADERS): Add linux/types.h.  Conditionally
3229         include linux/types.h when checking linux/random.h header.
3230         * config.h.in: Regenerate.
3231         * configure: Ditto.
3232         * src/c++11/random.cc: Conditionally include linux/types.h.
3234 2018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
3236         * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
3238 2018-01-16  Jonathan Wakely  <jwakely@redhat.com>
3240         PR libstdc++/83834
3241         * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
3242         pattern with exact match for std::cerr.
3244 2018-01-15  Jonathan Wakely  <jwakely@redhat.com>
3246         PR libstdc++/83833
3247         * include/bits/random.h (chi_squared_distribution::param): Update
3248         gamma distribution parameter.
3249         * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
3250         test.
3252         PR libstdc++/83830
3253         * include/std/type_traits (has_unique_object_representations_v): Add
3254         variable template.
3255         * testsuite/20_util/has_unique_object_representations/value.cc: Check
3256         variable template.
3258 2018-01-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
3260         Make optional conditionally
3261         trivially_{copy,move}_{constructible,assignable}
3262         * include/std/optional (_Optional_payload): Fix the comment in
3263         the class head and turn into a primary and one specialization.
3264         (_Optional_payload::_M_engaged): Strike the NSDMI.
3265         (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
3266         New.
3267         (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
3268         Likewise.
3269         (_Optional_payload<_Tp, false>::_M_get): Likewise.
3270         (_Optional_payload<_Tp, false>::_M_reset): Likewise.
3271         (_Optional_base_impl): Likewise.
3272         (_Optional_base): Turn into a primary and three specializations.
3273         (optional(nullopt)): Change the base init.
3274         * testsuite/20_util/optional/assignment/8.cc: New.
3275         * testsuite/20_util/optional/cons/trivial.cc: Likewise.
3276         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
3278 2018-01-15  Jonathan Wakely  <jwakely@redhat.com>
3280         PR libstdc++/80276
3281         * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
3282         (get_template_arg_list): New.
3283         (StdVariantPrinter._template_args): Remove, use get_template_arg_list
3284         instead.
3285         (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
3286         of strings and regular expressions.
3287         (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
3288         (FilteringTypePrinter): Add docstring. Match using startswith. Use
3289         strip_inline_namespaces instead of strip_versioned_namespace.
3290         (add_one_type_printer): Prepend namespace to match argument.
3291         (register_type_printers): Add type printers for char16_t and char32_t
3292         string types and for types using cxx11 ABI. Update calls to
3293         add_one_template_type_printer to provide default argument dicts.
3294         * testsuite/libstdc++-prettyprinters/80276.cc: New test.
3295         * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
3296         basic_string<unsigned char> and basic_string<signed char>.
3297         * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
3298         to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
3300 2018-01-14  Andreas Schwab  <schwab@linux-m68k.org>
3302         PR libstdc++/81092
3303         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
3305 2018-01-13  Tim Shen  <timshen@google.com>
3307         PR libstdc++/83601
3308         * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
3309         * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
3310         * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
3312 2018-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3314         PR libstdc++/64054
3315         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
3316         Remove dg-xfail-run-if.
3318 2018-01-10  François Dumont  <fdumont@gcc.gnu.org>
3320         * include/bits/forward_list.h
3321         (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
3322         (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
3323         (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
3324         (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
3325         (_Fwd_list_impl()): Add noexcept qualification.
3326         (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
3327         (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
3328         (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
3329         (_Fwd_list_base()): Default.
3330         (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
3331         (_Fwd_list_base(_Fwd_list_base&&)): Default.
3332         (forward_list<>()): Default.
3333         (forward_list<>(forward_list&&)): Default.
3334         (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
3335         (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
3336         (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
3337         * include/bits/forward_list.tcc
3338         (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
3339         _M_impl._M_head move assignment.
3340         (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
3341         * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
3343 2018-01-09  Jonathan Wakely  <jwakely@redhat.com>
3345         PR libstdc++/80276
3346         * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
3347         (UniquePointerPrinter): Print correct template argument, not type of
3348         the pointer.
3349         (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
3350         a type.
3351         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
3352         array type.
3353         * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
3354         weak_ptr of array types.
3356 2018-01-09  François Dumont  <fdumont@gcc.gnu.org>
3358         PR libstdc++/83709
3359         * include/bits/hashtable_policy.h
3360         (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
3361         __first != __last.
3362         (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
3363         (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
3364         Add false_type parameter.
3365         (_Insert_base::insert): Adapt.
3366         * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
3367         Adapt.
3368         (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
3369          Add __n_elt parameter, defaulted to 1.
3370         (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
3371         policy _M_need_rehash.
3372         (_Hashtable::_M_merge_unique): Pass target number of elements to add to
3373         produce only 1 rehash if necessary.
3374         * testsuite/23_containers/unordered_map/insert/83709.cc: New.
3375         * testsuite/23_containers/unordered_set/insert/83709.cc: New.
3377 2018-01-09  Juraj Oršulić  <juraj.orsulic@fer.hr>
3378             Jonathan Wakely  <jwakely@redhat.com>
3380         PR libstdc++/59253 (partial)
3381         * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
3382         type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
3383         (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
3384         children.
3385         * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
3386         of unique_ptr printer.
3387         * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
3388         output of shared_ptr printer.
3390 2018-01-05  Jonathan Wakely  <jwakely@redhat.com>
3392         PR libstdc++/83626
3393         * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
3394         unnecessary symlink_status call.
3395         (remove_all(const path&, error_code&)): Use filesystem::remove.
3396         * src/filesystem/std-ops.cc: Likewise.
3398         PR libstdc++/83279
3399         * src/filesystem/std-ops.cc  (do_copy_file): Use non-null offset with
3400         sendfile.
3402         PR libstdc++/83626
3403         * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
3404         report an error for ENOENT.
3405         (remove_all(const path&)): Fix type of result variable.
3406         (remove_all(const path&, error_code&)): Use non-throwing increment
3407         for directory iterator. Call POSIX remove directly to avoid redundant
3408         calls to symlink_status. Do not report errors for ENOENT.
3409         * src/filesystem/std-ops.cc: Likewise.
3410         * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
3411         overload.
3412         * testsuite/experimental/filesystem/operations/remove_all.cc:
3413         Likewise.
3415 2018-01-04  Jonathan Wakely  <jwakely@redhat.com>
3417         PR libstdc++/83626
3418         * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
3419         redundant call to ec.clear().
3420         (remove_all(const path&, error_code&))): Do not return an error for
3421         non-existent paths.
3422         * src/filesystem/std-ops.cc: Likewise.
3423         * testsuite/27_io/filesystem/operations/remove.cc: New test.
3424         * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
3425         results for non-existent paths.
3426         * testsuite/experimental/filesystem/operations/remove.cc: New test.
3427         * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
3428         expected results for non-existent paths.
3430         * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
3431         check status_known once.
3432         * include/experimental/bits/fs_ops.h: Likewise.
3434         PR libstdc++/83607
3435         * include/std/functional (__is_byte_like): New trait.
3436         (__is_std_equal_to): Remove.
3437         (__boyer_moore_base_t): Use __is_byte_like instead of
3438         __is_std_equal_to.
3439         * include/experimental/functional (__is_std_equal_to): Remove.
3440         (__boyer_moore_base_t): Use __is_byte_like instead of
3441         __is_std_equal_to.
3442         * testsuite/20_util/function_objects/83607.cc: New test.
3444 2018-01-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
3446         Protect optional's deduction guide with the feature macro
3447         * include/std/optional: Use the feature macro.
3449 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
3451         Update copyright years.
3453 Copyright (C) 2018 Free Software Foundation, Inc.
3455 Copying and distribution of this file, with or without modification,
3456 are permitted in any medium without royalty provided the copyright
3457 notice and this notice are preserved.