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