Fix dg-require before dg-run directives in testsuite.
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob1ec0981a5e338824d30909644ec709a7820d1038
1 2016-09-14  Christophe Lyon  <christophe.lyon@linaro.org>
3         * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
4         Move dg-do directive before dg-skip.
5         * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
6         Move dg-do directive before dg-require.
7         * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
8         * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
9         * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
10         * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
11         * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
12         * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
13         * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
14         * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
15         * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
16         * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
17         * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
18         * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
19         * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
20         * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
21         * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
22         Likewise.
23         * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
24         * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
25         * testsuite/27_io/objects/char/12048-5.cc: Likewise.
26         * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
27         * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
29 2016-09-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
31         Implement P0040R3, Extending memory management tools.
32         * include/bits/stl_uninitialized.h (utility): New include
33         in C++17 mode.
34         (uninitialized_default_construct): New.
35         (uninitialized_default_construct_n): Likewise.
36         (uninitialized_value_construct): Likewise.
37         (uninitialized_value_construct_n): Likewise.
38         (uninitialized_move): Likewise.
39         (uninitialized_move_n): Likewise.
40         (destroy_at, destroy, destroy_n): Likewise.
41         * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
42         New.
44 2016-09-12  Jason Merrill  <jason@redhat.com>
46         * config/abi/pre/gnu.ver: Use [jmy] for size_t.
48 2016-09-12  Ville Voutilainen  <ville.voutilainen@gmail.com>
50         Implement P0253R1, Fixing a design mistake in the searchers
51         interface in Library Fundamentals.
52         * include/std/functional: (utility): New include in C++17 mode.
53         (default_searcher): Use a pair as return type, adjust the definition.
54         (boyer_moore_searcher): Likewise.
55         (boyer_moore_horspool_searcher): Likewise.
56         * testsuite/20_util/function_objects/searchers.cc: Adjust.
58 2016-09-12  Ville Voutilainen  <ville.voutilainen@gmail.com>
60         Implement C++17 string searchers.
61         * include/std/functional: (unordered_map, vector): New includes
62         in C++17 mode.
63         (array, bits/stl_algo.h): Likewise.
64         (default_searcher, __boyer_moore_map_base): New.
65         (__boyer_moore_array_base, __is_std_equal_to): Likewise.
66         (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
67         (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
68         (make_boyer_moore_searcher): Likewise.
69         (make_boyer_moore_horspool_searcher): Likewise.
70         * testsuite/20_util/function_objects/searchers.cc: New.
72 2016-09-12  Matthew Wahab  <matthew.wahab@arm.com>
74         * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
75         Move dg-do directive before dg-require.
76         * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
77         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
78         Likewise.
79         * testsuite/22_locale/codecvt/utf8.cc: Likewise.
80         * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
81         * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
82         * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
83         * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
84         * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
85         * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
86         * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
87         * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
88         * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
89         * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
90         * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
91         * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
92         Likewise.
93         * testsuite/23_containers/deque/debug/self_move_assign_neg.cc: Likewise.
94         * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
95         * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
96         * testsuite/23_containers/forward_list/debug/construct1_neg.cc: Likewise.
97         * testsuite/23_containers/forward_list/debug/construct2_neg.cc: Likewise.
98         * testsuite/23_containers/forward_list/debug/construct3_neg.cc: Likewise.
99         * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc: Likewise.
100         * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc: Likewise.
101         * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc: Likewise.
102         * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc: Likewise.
103         * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc: Likewise.
104         * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc: Likewise.
105         * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc: Likewise.
106         * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc: Likewise.
107         * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc: Likewise.
108         * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc: Likewise.
109         * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc: Likewise.
110         * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc: Likewise.
111         * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc: Likewise.
112         * testsuite/23_containers/forward_list/debug/iterator_self_move_assign_neg.cc:
113         Likewise.
114         * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
115         Likewise.
116         * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc: Likewise.
117         * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc: Likewise.
118         * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc: Likewise.
119         * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc: Likewise.
120         * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc: Likewise.
121         * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc: Likewise.
122         * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc: Likewise.
123         * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
124         * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
125         * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
126         * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
127         * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
128         * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
129         * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
130         * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
131         * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
132         * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
133         * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
134         Likewise.
135         * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
136         * testsuite/23_containers/map/debug/60499.cc: Likewise.
137         * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
138         * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
139         * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
140         * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
141         * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
142         * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
143         * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
144         Likewise.
145         * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
146         * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
147         * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
148         * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
149         * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
150         * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
151         * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
152         * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
153         * testsuite/23_containers/multimap/debug/iterator_self_move_assign_neg.cc:
154         Likewise.
155         * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc: Likewise.
156         * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
157         * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
158         * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
159         * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
160         * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
161         * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
162         * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
163         * testsuite/23_containers/multiset/debug/iterator_self_move_assign_neg.cc:
164         Likewise.
165         * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc: Likewise.
166         * testsuite/23_containers/set/debug/60499.cc: Likewise.
167         * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
168         * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
169         * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
170         * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
171         * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
172         * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
173         * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
174         Likewise.
175         * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
176         * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
177         * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
178         * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
179         * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc: Likewise.
180         * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
181         * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
182         * testsuite/23_containers/unordered_map/debug/construct1_neg.cc: Likewise.
183         * testsuite/23_containers/unordered_map/debug/construct2_neg.cc: Likewise.
184         * testsuite/23_containers/unordered_map/debug/construct3_neg.cc: Likewise.
185         * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
186         * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
187         * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
188         * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
189         * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
190         * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_compare_neg.cc: Likewise.
191         * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_range_neg.cc: Likewise.
192         * testsuite/23_containers/unordered_map/debug/iterator_self_move_assign_neg.cc:
193         Likewise.
194         * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
195         Likewise.
196         * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
197         Likewise.
198         * testsuite/23_containers/unordered_map/debug/use_erased_local_iterator_neg.cc:
199         Likewise.
200         * testsuite/23_containers/unordered_map/debug/use_invalid_iterator_neg.cc:
201         Likewise.
202         * testsuite/23_containers/unordered_map/debug/use_invalid_local_iterator_neg.cc:
203         Likewise.
204         * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
205         * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc: Likewise.
206         * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc: Likewise.
207         * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
208         Likewise.
209         * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc: Likewise.
210         * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc: Likewise.
211         * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
212         Likewise.
213         * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
214         Likewise.
215         * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
216         Likewise.
217         * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc: Likewise.
218         * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc: Likewise.
219         * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc: Likewise.
220         * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc: Likewise.
221         * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc: Likewise.
222         * testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_compare_neg.cc:
223         Likewise.
224         * testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_range_neg.cc:
225         Likewise.
226         * testsuite/23_containers/unordered_multimap/debug/iterator_self_move_assign_neg.cc:
227         Likewise.
228         * testsuite/23_containers/unordered_multimap/debug/max_load_factor_neg.cc:
229         Likewise.
230         * testsuite/23_containers/unordered_multimap/debug/self_move_assign_neg.cc:
231         Likewise.
232         * testsuite/23_containers/unordered_multimap/debug/use_erased_local_iterator_neg.cc:
233         Likewise.
234         * testsuite/23_containers/unordered_multimap/debug/use_invalid_iterator_neg.cc:
235         Likewise.
236         * testsuite/23_containers/unordered_multimap/debug/use_invalid_local_iterator_neg.cc:
237         Likewise.
238         * testsuite/23_containers/unordered_multiset/debug/60499.cc:
239         Likewise.
240         * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
241         Likewise.
242         * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
243         Likewise.
244         * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
245         Likewise.
246         * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
247         Likewise.
248         * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
249         Likewise.
250         * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
251         Likewise.
252         * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
253         Likewise.
254         * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
255         Likewise.
256         * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc: Likewise.
257         * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc: Likewise.
258         * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc: Likewise.
259         * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc: Likewise.
260         * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc: Likewise.
261         * testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_compare_neg.cc:
262         Likewise.
263         * testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_range_neg.cc:
264         Likewise.
265         * testsuite/23_containers/unordered_multiset/debug/iterator_self_move_assign_neg.cc:
266         Likewise.
267         * testsuite/23_containers/unordered_multiset/debug/max_load_factor_neg.cc:
268         Likewise.
269         * testsuite/23_containers/unordered_multiset/debug/self_move_assign_neg.cc:
270         Likewise.
271         * testsuite/23_containers/unordered_multiset/debug/use_erased_local_iterator_neg.cc:
272         Likewise.
273         * testsuite/23_containers/unordered_multiset/debug/use_invalid_iterator_neg.cc:
274         Likewise.
275         * testsuite/23_containers/unordered_multiset/debug/use_invalid_local_iterator_neg.cc:
276         Likewise.
277         *  testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
278         * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
279         * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
280         * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc: Likewise.
281         * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
282         * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
283         * testsuite/23_containers/unordered_set/debug/construct1_neg.cc: Likewise.
284         * testsuite/23_containers/unordered_set/debug/construct2_neg.cc: Likewise.
285         * testsuite/23_containers/unordered_set/debug/construct3_neg.cc: Likewise.
286         * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
287         * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
288         * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
289         * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
290         * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
291         * testsuite/23_containers/unordered_set/debug/invalid_local_iterator_compare_neg.cc:
292         Likewise.
293         * testsuite/23_containers/unordered_set/debug/invalid_local_iterator_range_neg.cc:
294         Likewise.
295         * testsuite/23_containers/unordered_set/debug/iterator_self_move_assign_neg.cc:
296         Likewise.
297         * testsuite/23_containers/unordered_set/debug/max_load_factor_neg.cc:
298         Likewise.
299         * testsuite/23_containers/unordered_set/debug/self_move_assign_neg.cc:
300         Likewise.
301         * testsuite/23_containers/unordered_set/debug/use_erased_local_iterator_neg.cc:
302         Likewise.
303         * testsuite/23_containers/unordered_set/debug/use_invalid_iterator_neg.cc:
304         Likewise.
305         * testsuite/23_containers/unordered_set/debug/use_invalid_local_iterator_neg.cc:
306         Likewise.
307         * testsuite/23_containers/vector/debug/52433.cc: Likewise.
308         * testsuite/23_containers/vector/debug/60499.cc: Likewise.
309         * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
310         * testsuite/23_containers/vector/debug/iterator_self_move_assign_neg.cc:
311         Likewise.
312         * testsuite/23_containers/vector/debug/self_move_assign_neg.cc: Likewise.
313         * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
314         * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
315         * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
316         * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
317         * testsuite/29_atomics/atomic/60658.cc: Likewise.
318         * testsuite/29_atomics/atomic/60695.cc: Likewise.
319         * testsuite/29_atomics/atomic/62259.cc: Likewise.
320         * testsuite/29_atomics/atomic/64658.cc: Likewise.
321         * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
322         * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
323         * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc: Likewise.
325 2016-09-11  Jonathan Wakely  <jwakely@redhat.com>
327         * libsupc++/new_opant.cc: Include exception_defines.h.
328         * libsupc++/new_opvant.cc: Likewise.
330 2016-09-09  Jason Merrill  <jason@redhat.com>
332         Implement P0035R4, C++17 new of over-aligned types.
333         * libsupc++/new: Declare aligned new/delete operators.
334         * config/abi/pre/gnu.ver: Export them.
335         * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
336         _aligned_malloc.
337         * libsupc++/new_opa.cc: New.
338         * libsupc++/new_opant.cc: New.
339         * libsupc++/new_opva.cc: New.
340         * libsupc++/new_opva.cc: New.
341         * libsupc++/del_opa.cc: New.
342         * libsupc++/del_opant.cc: New.
343         * libsupc++/del_opsa.cc: New.
344         * libsupc++/del_opva.cc: New.
345         * libsupc++/del_opvant.cc: New.
346         * libsupc++/del_opvsa.cc: New.
347         * libsupc++/Makefile.am: Build them.
349 2016-09-05  Tim Shen  <timshen@google.com>
351         * include/std/variant: include bits/move.h for std::addressof.
353 2016-09-05  Mikhail Strelnikov  <mikhail.strelnikov@gmail.com>
355         * include/std/variant (_Variant_storage::_M_storage()): Use std::addressof
356         instead of operator& to take address.
358 2016-09-02  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
360         * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
361         setrlimit on both native and cross targets.
362         * configure: Regenerate.
364 2016-08-31  Jonathan Wakely  <jwakely@redhat.com>
366         * include/bits/shared_ptr.h (_Assignable): New alias template.
367         (shared_ptr::operator=(const shared_ptr<_Tp1>&))
368         (shared_ptr::operator=(shared_ptr<_Tp1>&&))
369         (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
370         _Assignable.
371         * include/bits/shared_ptr_base.h (_Assignable): New alias template.
372         (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
373         (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
374         (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
375         _Assignable.
376         (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
377         (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
378         _Convertible.
379         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
380         match on any line.
381         * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
382         * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
383         * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
384         expected errors. Remove unnecessary code.
385         * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
387         * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
388         comparison object.
389         * testsuite/23_containers/set/move_comparison.cc: New test.
391         * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
392         New test.
394 2016-08-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
396         PR libstdc++/77395
397         * include/std/type_traits (is_constructible): Forward-declare...
398         (__is_base_to_derived_ref): ...and use here.
399         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
400         * testsuite/20_util/is_constructible/77395.cc: New.
401         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
402         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
403         Likewise.
404         * testsuite/20_util/tuple/77395.cc: New.
406 2016-08-30  Uros Bizjak  <ubizjak@gmail.com>
408         * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
409         directive above dg-require-namedlocale directive.
410         * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
411         * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
412         * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
413         * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
414         * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
416 2016-08-27  Tim Shen  <timshen@google.com>
418         PR libstdc++/77356
419         * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
420         _M_expression_term): Modify to support dash literal.
421         * include/bits/regex_scanner.h: Add dash as a token type to make
422         a different from the mandated dash literal by escaping.
423         * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
424         token in bracket expression parsing.
425         * testsuite/28_regex/regression.cc: Add new testcases.
427 2016-08-26  Jonathan Wakely  <jwakely@redhat.com>
429         PR libstdc++/51960
430         * doc/xml/manual/intro.xml: Document DR 2127 change.
431         * doc/html/*: Regenerate.
432         * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
433         (operator++(), operator++(int)): Use injected class name.
434         * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
436         * testsuite/*: Use { target c++11 } or { target c++14 } instead of
437         using -std in dg-options.
439 2016-08-26  Jonathan Wakely  <jwakely@redhat.com>
440             Pedro Alves  <palves@redhat.com>
442         * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
443         and restore dg-interpreter-batch-mode.
444         * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
445         gdb-dg-runtest instead of dg-runtest.
446         * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
448 2016-08-26  Jonathan Wakely  <jwakely@redhat.com>
450         * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
451         precise patterns for basic_string constructors.
452         (GLIBCXX_3.4.23): Export new constructors.
453         * doc/xml/manual/intro.xml: Document LWG 2583 status.
454         * doc/html/*: Regenerate.
455         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
456         (basic_string(const basic_string&, size_type, const Alloc&)): Add
457         new constructor for LWG 2583.
458         (basic_string(const basic_string&, size_type, size_type)): Remove
459         default argument.
460         [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
461         * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
462         * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
463         * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
465 2016-08-24  Aditya Kumar  <hiraditya@msn.com>
467         * include/bits/algorithmfwd.h: Remove trailing whitespace.
468         * include/bits/shared_ptr_base.h: Likewise.
470 2016-08-23  Jonathan Wakely  <jwakely@redhat.com>
472         * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
473         * include/profile/array (array): Likewise.
474         (array::swap): Fix exception specification for zero-sized arrays.
476         PR libstdc++/77334
477         * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
478         (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
479         * testsuite/23_containers/map/77334.cc: New test.
481         * doc/xml/manual/using.xml: Remove reference to -pthreads option.
482         * doc/html/*: Regenerate.
484         * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
485         * testsuite/experimental/feat-lib-fund.cc: Likewise.
487         PR libstdc++/71771
488         * include/bits/stl_iterator.h
489         (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
490         define for C++98 mode.
491         (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
492         * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
493         -std=gnu++98.
494         * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
495         * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
496         * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
497         * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
498         difference operator.
499         * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
500         difference operator for C++98.
501         * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
503         * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
504         * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
505         (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
506         * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
507         (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
508         Likewise.
509         * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
510         _GLIBCXX14_CONSTEXPR.
511         (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
512         * include/std/array (array::begin, array::end, array::rbegin)
513         (array::rend, array::cbegin, array:cend, array::crbegin)
514         (array::crend, array::operator[], array::at, array::front)
515         (array::back, array::data): Likewise.
516         * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
517         with separate tests for C++11, C++14, and C++17.
518         * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
519         * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
520         * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
522 2016-08-22  Tim Shen  <timshen@google.com>
524         Split _M_dfs() into smaller functions.
525         * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
526         (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
527         (_M_handle_line_end_assertion, _M_handle_word_boundary)
528         (_M_handle_subexpr_lookahead, _M_handle_match)
529         (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
530         Add separate function declarations.
531         * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
533 2016-08-22  Gleb Natapov  <gleb@scylladb.com>
535         PR libstdc++/68297
536         * config/abi/pre/gnu-versioned-namespace.ver: Export
537         __cxa_init_primary_exception and std::exception_ptr(void*).
538         * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
539         export __cxa_init_primary_exception and std::exception_ptr(void*).
540         * include/Makefile.am: Add new headers.
541         * include/Makefile.in: Regenerate.
542         * libsupc++/Makefile.am: Add new headers.
543         * libsupc++/Makefile.in: Regenerate.
544         * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
545         * libsupc++/cxxabi_init_exception.h: New header.
546         (__cxa_init_primary_exception): Declare.
547         * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
548         (__cxa_throw): Use __cxa_init_primary_exception.
549         * libsupc++/exception (std::exception): Move to ...
550         * libsupc++/exception.h: New header.
551         * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
552         friend declaration.
553         (__exception_ptr::__dest_thunk): New function template.
554         (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
555         Use __cxa_allocate_exception and __cxa_init_primary_exception to
556         create exception_ptr.
557         * libsupc++/typeinfo: Include bits/exception.h instead of exception.
558         * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
560 2016-08-22  Jonathan Wakely  <jwakely@redhat.com>
562         * doc/xml/api.xml: Replace hardcoded links for specific versions with
563         link to docs for all releases.
564         * doc/html/*: Regenerate.
566         PR libstdc++/77322
567         * doc/xml/manual/intro.xml: Document DR 2062 change.
568         * include/std/functional (function::swap): Add noexcept.
569         (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
570         * testsuite/20_util/function/77322.cc: New test.
572 2016-08-19  Jonathan Wakely  <jwakely@redhat.com>
574         * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
575         *-*-solaris* instead of -pthreads.
576         * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
577         * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
578         * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
579         * testsuite/23_containers/list/pthread1.cc: Likewise.
580         * testsuite/23_containers/list/pthread5.cc: Likewise.
581         * testsuite/23_containers/map/pthread6.cc: Likewise.
582         * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
583         * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
584         * testsuite/30_threads/shared_mutex/*: Likewise.
585         * testsuite/ext/rope/pthread7-rope.cc: Likewise.
586         * testsuite/tr1/2_general_utilities/shared_ptr/thread/
587         default_weaktoshared.cc: Likewise.
588         * testsuite/tr1/2_general_utilities/shared_ptr/thread/
589         mutex_weaktoshared.cc: Likewise.
590         * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
591         dg-require-effective-target instead of using -std option.
592         * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
593         Likewise.
594         * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
595         * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
596         Likewise.
597         * testsuite/30_threads/async/*: Likewise.
598         * testsuite/30_threads/call_once/*: Likewise.
599         * testsuite/30_threads/condition_variable/*: Likewise.
600         * testsuite/30_threads/condition_variable_any/*: Likewise.
601         * testsuite/30_threads/future/*: Likewise.
602         * testsuite/30_threads/lock/*: Likewise.
603         * testsuite/30_threads/mutex/*: Likewise.
604         * testsuite/30_threads/packaged_task/*: Likewise.
605         * testsuite/30_threads/promise/*: Likewise.
606         * testsuite/30_threads/recursive_mutex/*: Likewise.
607         * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
608         * testsuite/30_threads/shared_future/*: Likewise.
609         * testsuite/30_threads/shared_lock/*: Likewise.
610         * testsuite/30_threads/shared_timed_mutex/*: Likewise.
611         * testsuite/30_threads/this_thread/*: Likewise.
612         * testsuite/30_threads/thread/*: Likewise.
613         * testsuite/30_threads/timed_mutex/*: Likewise.
614         * testsuite/30_threads/try_lock/*: Likewise.
615         * testsuite/30_threads/unique_lock/*: Likewise.
617         * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
618         * doc/html/*: Regenerate.
619         * include/experimental/functional (_Not_fn, not_fn): Match C++17
620         semantics.
621         * include/std/functional (_Not_fn, not_fn): Define for C++17.
622         * testsuite/20_util/not_fn/1.cc: New.
623         * testsuite/experimental/functional/not_fn.cc: Test abstract class.
624         Remove test for volatile-qualified wrapper.
626         * include/std/atomic (atomic::is_always_lock_free): Define.
627         * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
628         * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
629         * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
630         * doc/xml/manual/status_cxx2017.xml: Update status.
631         * doc/html/*: Regenerate.
633         * include/experimental/tuple (apply): Qualify call to __apply_impl.
634         * include/std/tuple (apply): Likewise.
635         * testsuite/experimental/system_error/value.cc: Fix ambiguities in
636         C++17 mode.
637         * testsuite/experimental/tuple/tuple_size.cc: Likewise.
638         * testsuite/experimental/type_traits/value.cc: Likewise.
640         * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
641         and variant.
642         * doc/html/*: Regenerate.
644 2016-08-18  Ville Voutilainen  <ville.voutilainen@gmail.com>
646         Implement the latest proposed resolution of LWG 2756.
647         * include/std/optional (Optional_base(const _Tp&))
648         (Optional_base(_Tp&&), using _Base::_Base): Remove.
649         (optional(nullopt_t)): New.
650         (optional(_Up&&)): Invoke base directly with in_place
651         rather than creating a temporary, add default template
652         argument, change constraints.
653         (optional(const optional<_Up>&)): Invoke base directly
654         with in_place, remove unnecessary constraints.
655         (optional(optional<_Up>&& __t)): Likewise.
656         (optional(in_place_t, _Args&&...)): New.
657         (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
658         (operator=(_Up&&)): Add default template argument, change constraints.
659         (operator=(const optional<_Up>&)): Put is_same first in the
660         constraints.
661         (operator=(optional<_Up>&&)): Likewise.
662         * testsuite/20_util/optional/assignment/5.cc: Add a test to
663         verify assignment from something that can't be perfect-forwarded.
664         * testsuite/20_util/optional/cons/value.cc: Add tests to verify
665         that a nested optional is disengaged when constructed
666         from a disengaged element type, and to verify that assignments
667         from an engaged element type engage the optional.
669 2016-08-18  Tim Shen  <timshen@google.com>
671         Implement <variant>
673         * include/Makefile.am: Add new file std/variant.
674         * include/Makefile.in: Generated from Makefile.am.
675         * include/bits/enable_special_members.h: Add a tag type to allow
676         the construction in non-default constructor.
677         * include/bits/uses_allocator.h: Add convenience traits to
678         detect constructibility.
679         * include/std/variant: Implement <variant>.
680         * testsuite/20_util/variant/compile.cc: Compile-time tests.
681         * testsuite/20_util/variant/run.cc: Runtime tests.
683 2016-08-18  Jonathan Wakely  <jwakely@redhat.com>
685         * doc/xml/manual/test.xml (test.run.permutations): Expand section.
686         (test.new_tests): Rewrite section.
687         (tests.dg.directives): New section.
688         * doc/html/*: Regenerate.
690         * doc/xml/manual/test.xml: Improve documentation of test targets.
691         Document new-abi-baseline, check-debug, and check-parallel targets.
693         * doc/xml/manual/build_hacking.xml: New section on shared library
694         versioning.
696         * doc/xml/manual/build_hacking.xml: Improve markup.
697         * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
698         to "Testing".
699         * doc/xml/faq.xml: Change link text to "Testing".
701         * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
702         dg-options directive.
704 2016-08-17  Jonathan Wakely  <jwakely@redhat.com>
706         * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
707         directive and use effective target instead of dg-options.
709         * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
710         instead of -std in dg-options.
711         * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
712         * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
713         * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
714         * testsuite/20_util/hash/quality.cc: Likewise.
715         * testsuite/25_algorithms/heap/moveable.cc: Likewise.
716         * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
717         * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
718         * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
719         * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
720         * testsuite/25_algorithms/sort/random_test.cc: Likewise.
722         * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
723         * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
724         * testsuite/27_io/rvalue_streams.cc: Likewise.
726         * testsuite/26_numerics/complex/literals/types.cc: Add comment.
728         * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
729         Remove duplicate dg-options directive.
731         * testsuite/ext/profile/all.cc: Use effective target instead of
732         -std=gnu++11. Use dg-additional-options instead of repeating options.
734         * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
735         -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
736         instead of dg-excess-errors.
738         * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
739         test for C++17.
740         * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
741         * testsuite/experimental/ratio/value.cc: Likewise.
742         * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
743         C++17.
744         * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
745         * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
746         * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
747         * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
748         * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
749         * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
750         * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
751         * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
752         * testsuite/tr1/5_numerical_facilities/special_functions/
753         10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
754         C++17 compatibility.
756         * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
757         expected signatures for C++14 compatibility.
759         PR libstdc++/77264
760         * include/bits/basic_string.h (operator=(__sv_type)
761         (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
762         (replace(size_type, size_type, __sv_type))
763         (replace(const_iterator, const_iterator, __sv_type))
764         (find(__sv_type, size_type), rfind(__sv_type, size_type))
765         (compare(size_type, size_type, __sv_type)): Reformat.
766         (_If_sv): Define helper for SFINAE constaints.
767         (append(const _Tp&, size_type, size_type))
768         (assign(const _Tp&, size_type, size_type))
769         (insert(size_type, const _Tp&, size_type, size_type))
770         (replace(size_type, size_type, const _Tp&, size_type, size_type)):
771         Use _If_sv.
772         * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
773         SFINAE constraints.
774         * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
775         Likewise.
776         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
777         Likewise.
778         * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
779         Likewise.
780         * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
781         Likewise.
782         * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
783         Likewise.
784         * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
785         Likewise.
786         * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
787         Likewise.
788         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
789         Likewise.
790         * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
791         Likewise.
792         * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
793         Likewise.
795 2016-08-16  Jonathan Wakely  <jwakely@redhat.com>
797         PR libstdc++/72847
798         * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
799         pointers to start and end of storage.
800         * testsuite/23_containers/vector/bool/72847.cc: New test.
801         * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
802         _M_finish after deallocating.
803         (vector<bool>::_M_fill_insert): Likewise.
804         (vector<bool>::_M_insert_range): Likewise.
805         (vector<bool>::_M_insert_aux): Likewise.
807 2016-08-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
809         Implement LWG 2744 and LWG 2754.
810         * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
811         (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
812         (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
813         Likewise.
814         (emplace(_Args&&...)): Likewise.
815         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
816         * include/std/utility: (__is_in_place_type_impl): New.
817         (__is_in_place_type): Likewise.
818         * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
819         emplace.
820         * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
821         in_place constructor.
822         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
823         * testsuite/20_util/any/requirements.cc: Add a test for
824         in_place-constructing a non-default-constructible type.
826 2016-08-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
828         Add a feature macro for C++17 make_from_tuple.
829         * include/std/tuple (__cpp_lib_make_from_tuple): New.
830         (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
831         Qualify the call to get<>().
832         * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
834 2016-08-15  Uros Bizjak  <ubizjak@gmail.com>
836         * src/filesystem/ops.cc: Always include ostream and
837         ext/stdio_filebuf.h.
838         (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
839         [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
840         sendfile fails with ENOSYS or EINVAL.
842 2016-08-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
844         PR libstdc++/72840
845         * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
846         syntax.
848 2016-08-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
850         Implement C++17 make_from_tuple.
851         * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
852         * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
854 2016-08-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
856         Implement LWG 2758.
857         * include/bits/basic_string.h
858         (append(__sv_type, size_type, size_type)): Turn into a template,
859         change parameter type, constrain, add a conversion to __sv_type
860         from the dependent parameter type.
861         (assign(__sv_type, size_type, size_type)): Likewise.
862         (insert(size_type, __sv_type, size_type, size_type)): Likewise.
863         (replace(size_type, size_type, __sv_type, size_type, size_type)):
864         Likewise.
865         (compare(size_type, size_type,__sv_type, size_type, size_type)):
866         Likewise.
867         * testsuite/21_strings/basic_string/lwg2758.cc: New.
869 2016-08-06  Jonathan Wakely  <jwakely@redhat.com>
871         * doc/xml/manual/status_cxx2017.xml: Update status table.
872         * doc/html/manual/status.html: Regenerate.
874         * testsuite/lib/libstdc++.exp: Fix typo in comment.
876         PR libstdc++/72820
877         * include/std/functional (_Function_base::_Base_manager::_M_clone):
878         Qualify new operator.
879         * testsuite/20_util/function/cons/72820.cc: New test.
881         * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
882         * doc/html/manual/status.html: Regenerate.
883         * include/Makefile.am: Add new header.
884         * include/Makefile.in: Regenerate.
885         * include/bits/invoke.h: New header.
886         (__invoke): Make constexpr. Add && to types in exception specification.
887         * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
888         names. Include <bits/invoke.h> and use std::__invoke.
889         * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
890         new header.
891         (invoke): Add && to types in exception specification.
892         * include/std/tuple (apply, __apply_impl): Define for C++17.
893         * testsuite/20_util/tuple/apply/1.cc: New test.
894         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
895         lineno.
897 2016-08-05  Jonathan Wakely  <jwakely@redhat.com>
899         * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
900         * doc/html/manual/status.html: Regenerate.
902         * include/std/chrono (floor, ceil, round, abs): New for C++17.
903         * testsuite/20_util/duration_cast/rounding.cc: New test.
904         * testsuite/20_util/time_point_cast/rounding.cc: New test.
905         * doc/xml/manual/status_cxx2017.xml: Update status table.
906         * doc/html/manual/status.html: Regenerate.
907         * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
908         dg-error lineno.
909         * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
910         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
911         * testsuite/20_util/duration/literals/range.cc: Likewise.
913         * include/std/functional (__callable_functor): Remove.
914         (_Function_handler::_M_invoke): Use __invoke instead of
915         __callable_functor or mem_fn.
916         (function::_Callable): Use lvalue in result_of expression.
917         (function): Remove TODO comments about allocators.
918         * testsuite/20_util/function/cons/refqual.cc: New test.
920 2016-08-04  Jonathan Wakely  <jwakely@redhat.com>
922         * doc/xml/manual/status_cxx2017.xml: Update status table.
923         * include/std/functional (__inv_unwrap): Move to <type_traits>.
924         (__invoke_impl): Remove exception specifications.
925         (__invoke, invoke): Add exception specifications using
926         __is_nothrow_callable.
927         * include/std/type_traits (__inv_unwrap): Move from <functional>.
928         (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
929         (__is_callable, __is_nothrow_callable): New traits.
930         (is_callable, is_callable_v): New C++17 traits.
931         (is_nothrow_callable, is_nothrow_callable_v): Likewise.
932         * testsuite/20_util/is_callable/requirements/
933         explicit_instantiation.cc: New test.
934         * testsuite/20_util/is_callable/requirements/
935         explicit_instantiation_ext.cc: New test.
936         * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
937         * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
938         test.
939         * testsuite/20_util/is_callable/value.cc: New test.
940         * testsuite/20_util/is_callable/value_ext.cc: New test.
941         * testsuite/20_util/is_nothrow_callable/requirements/
942         explicit_instantiation.cc: New test.
943         * testsuite/20_util/is_nothrow_callable/requirements/
944         explicit_instantiation_ext.cc: New test.
945         * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
946         New test.
947         * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
948         New test.
949         * testsuite/20_util/is_nothrow_callable/value.cc: New test.
950         * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
952         * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
953         * doc/html/manual/status.html: Regenerate.
955         * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
956         effective target not dg-options. Move check for feature-test macro to:
957         * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
958         New test.
960         * include/std/functional (_Unwrap): Rename to __inv_unwrap.
961         (__invfwd): Adjust.
962         (__invoke_impl): Remove unused template parameters.
963         * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
964         parameter.
965         * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
966         and test __invoke extension for C++11.
968 2016-08-03  Jonathan Wakely  <jwakely@redhat.com>
970         * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
971         Define feature-test macro.
972         * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
973         for the macro.
975         * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
976         * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
977         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
978         * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
979         * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
981         * include/std/utility (as_const): Define.
982         * testsuite/20_util/as_const/1.cc: New test.
983         * testsuite/20_util/as_const/rvalue_neg.cc: New test.
985         * include/bits/shared_ptr.h (owner_less): Add default template
986         argument.
987         * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
988         specialization.
989         (owner_less<void>): Define specialization.
990         * include/bits/stl_function.h (__cpp_lib_transparent_operators):
991         Update value.
992         * testsuite/20_util/owner_less/void.cc: New test.
993         * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
995         * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
996         Define feature-test macro.
997         * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
998         * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
999         * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1000         (__cpp_lib_type_trait_variable_templates): Define.
1002         * include/bits/stl_function.h: Remove commented-out macro.
1003         * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1004         Define feature-test macro.
1005         * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1007         * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1008         C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1009         true.
1010         * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1011         do #error for C++17.
1012         * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1013         of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1014         * include/tr1/bessel_function.tcc: Likewise.
1015         * include/tr1/beta_function.tcc: Likewise.
1016         * include/tr1/cmath: Likewise.
1017         * include/tr1/ell_integral.tcc: Likewise.
1018         * include/tr1/exp_integral.tcc: Likewise.
1019         * include/tr1/gamma.tcc: Likewise.
1020         * include/tr1/hypergeometric.tcc: Likewise.
1021         * include/tr1/legendre_function.tcc: Likewise.
1022         * include/tr1/modified_bessel_func.tcc: Likewise.
1023         * include/tr1/poly_hermite.tcc: Likewise.
1024         * include/tr1/poly_laguerre.tcc: Likewise.
1025         * include/tr1/riemann_zeta.tcc: Likewise.
1026         * include/tr1/special_function_util.h: Likewise.
1027         * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1029         * include/std/type_traits (has_trivial_default_constructor): Remove.
1030         (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1031         * testsuite/20_util/has_trivial_copy_assign/requirements/
1032         explicit_instantiation.cc: Remove test.
1033         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1034         line number.
1035         * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1036         Likewise.
1037         * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1038         * testsuite/20_util/has_trivial_copy_constructor/requirements/
1039         explicit_instantiation.cc: Likewise.
1040         * testsuite/20_util/has_trivial_copy_constructor/requirements/
1041         typedefs.cc: Likewise.
1042         * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1043         * testsuite/20_util/has_trivial_default_constructor/requirements/
1044         explicit_instantiation.cc: Likewise.
1045         * testsuite/20_util/has_trivial_default_constructor/requirements/
1046         typedefs.cc: Likewise.
1047         * testsuite/20_util/has_trivial_default_constructor/value.cc:
1048         Likewise.
1049         * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1050         Check has_trivial_default_constructor, has_trivial_copy_constructor,
1051         and has_trivial_copy_assign are not defined.
1052         * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1053         tests.
1054         * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1055         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1056         dg-error line number.
1057         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1058         Likewise.
1060 2016-08-02  Jonathan Wakely  <jwakely@redhat.com>
1062         * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1063         Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1064         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1065         Likewise.
1066         * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1067         Likewise.
1068         * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1069         Likewise.
1070         * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1071         Likewise.
1072         * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1073         Likewise.
1074         * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1075         Likewise.
1077         * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1078         comments.
1080         * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1081         dg-error to relevant line.
1082         * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1083         Likewise.
1084         * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1086         * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1088         * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1089         options are present that aren't valid for C.
1090         * testsuite/abi/header_cxxabi.c: Likewise.
1092         * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1093         check_value.cc: Do not add special functions to namespace std in TR1
1094         test.
1096         * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1097         run for C++11 and later.
1098         * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1099         Likewise.
1100         * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1101         * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1102         * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1103         * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1104         * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1105         Likewise.
1106         * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1107         Likewise.
1108         * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1109         * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1110         Likewise.
1111         * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1112         Likewise.
1113         * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1114         Likewise.
1115         * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1116         * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1117         * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1118         * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1119         * testsuite/special_functions/03_beta/compile.cc: Likewise.
1120         * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1121         * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1122         * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1123         Likewise.
1124         * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1125         * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1126         * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1127         * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1128         Likewise.
1129         * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1130         * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1131         * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1132         * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1133         Likewise.
1134         * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1135         * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1136         * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1137         * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1138         Likewise.
1139         * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1140         * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1141         * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1142         * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1143         * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1144         Likewise.
1145         * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1146         * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1147         * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1148         * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1149         Likewise.
1150         * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1151         * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1152         * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1153         * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1154         * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1155         * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1156         * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1157         * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
1158         * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
1159         * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
1160         * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1161         * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
1162         * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
1163         * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
1164         * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1165         * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
1166         * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
1167         * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
1168         * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1169         * testsuite/special_functions/14_expint/check_value.cc: Likewise.
1170         * testsuite/special_functions/14_expint/compile.cc: Likewise.
1171         * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
1172         * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1173         * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
1174         * testsuite/special_functions/15_hermite/compile.cc: Likewise.
1175         * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
1176         * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1177         * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
1178         * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
1179         * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
1180         * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1181         * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
1182         * testsuite/special_functions/17_legendre/compile.cc: Likewise.
1183         * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
1184         * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
1185         * testsuite/special_functions/18_riemann_zeta/check_value.cc:
1186         Likewise.
1187         * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
1188         * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
1189         * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
1190         * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
1191         * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
1192         * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
1193         * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
1194         * testsuite/special_functions/20_sph_legendre/check_value.cc:
1195         Likewise.
1196         * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
1197         * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
1198         * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
1199         * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
1200         * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
1201         * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
1203         * testsuite/tr1/5_numerical_facilities/special_functions/
1204         08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
1205         of [[gnu::unused]].
1206         * testsuite/tr1/5_numerical_facilities/special_functions/
1207         09_cyl_bessel_j/check_value.cc: Likewise.
1208         * testsuite/tr1/5_numerical_facilities/special_functions/
1209         10_cyl_bessel_k/check_value.cc: Likewise.
1210         * testsuite/tr1/5_numerical_facilities/special_functions/
1211         11_cyl_neumann/check_value.cc: Likewise.
1212         * testsuite/tr1/5_numerical_facilities/special_functions/
1213         21_sph_bessel/check_value.cc: Likewise.
1214         * testsuite/tr1/5_numerical_facilities/special_functions/
1215         23_sph_neumann/check_value.cc: Likewise.
1217 2016-08-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1219         * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1220         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1221         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1222         * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
1223         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
1224         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
1226 2016-08-02  Jonathan Wakely  <jwakely@redhat.com>
1228         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
1229         test if -flto used.
1231         * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
1232         additional flags for compiling libtestc++.a objects.
1234 2016-08-01  Jonathan Wakely  <jwakely@redhat.com>
1236         * include/bits/basic_string.h (data() const): Update comment.
1237         (data()): Add non-const overload for C++17.
1238         * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
1239         * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
1241         * include/bits/basic_string.tcc: Disable explicit instantiation
1242         declarations for C++17.
1244         * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
1245         ignored "xfail" from { dg-do compile { xfail selector } } directive.
1246         * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
1247         Likewise.
1248         * testsuite/26_numerics/headers/cmath/
1249         c99_classification_macros_c++11.cc: Likewise.
1250         * testsuite/26_numerics/headers/cmath/
1251         c99_classification_macros_c++98.cc: Likewise.
1252         * testsuite/26_numerics/headers/cmath/
1253         c99_classification_macros_c.cc: Likewise.
1255         * testsuite/backward/hash_set/check_construct_destroy.cc: Account
1256         for different construct/destroy counts in C++98 mode.
1258         * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
1260         * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
1261         later.
1262         * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
1263         Likewise.
1265         * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
1266         C++98-compatible initialization for array.
1268         * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
1269         unused header and variable from compile-only test.
1270         * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
1271         * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
1272         * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
1273         * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
1274         Likewise.
1276         * testsuite/experimental/string_view/operations/rfind/char/2.cc:
1277         Remove duplicate dg-options directive.
1279         * testsuite/20_util/specialized_algorithms/uninitialized_copy/
1280         808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
1282         * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
1283         linker options from compile-only tests.
1284         * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1285         Likewise.
1287         * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
1288         supported for C++11 and later.
1289         * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
1290         * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
1292 2016-08-01  Uros Bizjak  <ubizjak@gmail.com>
1294         * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1296 2016-07-31  Jonathan Wakely  <jwakely@redhat.com>
1298         * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
1299         compile-only test.
1301         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1302         Ensure test is compiled with optimization.
1304         * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1305         Adjust dg-prune-output pattern for error in C++98 mode.
1307         * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
1308         run for C++11 or later.
1310         * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
1311         test to not rely on GNU extension (escaped normal characters in POSIX
1312         BRE). Enable tests for other strings which are now supported.
1314         * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
1315         c++11 instead of setting -std=gnu++14.
1317         PR libstdc++/72745
1318         * include/std/array (get): Use positive message for static assertions.
1319         * include/std/functional (_Safe_tuple_element_t): Fix indentation.
1320         * include/std/tuple (tuple_element<I, tuple<>>): Add partial
1321         specialization for invalid indices, with static assertion.
1322         * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
1324         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
1325         dg-error to relevant line.
1326         * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1327         Likewise.
1328         * testsuite/23_containers/forward_list/requirements/dr438/
1329         assign_neg.cc: Likewise.
1330         * testsuite/23_containers/forward_list/requirements/dr438/
1331         constructor_1_neg.cc: Likewise.
1332         * testsuite/23_containers/forward_list/requirements/dr438/
1333         constructor_2_neg.cc: Likewise.
1334         * testsuite/23_containers/forward_list/requirements/dr438/
1335         insert_neg.cc: Likewise.
1336         * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
1337         Likewise.
1338         * testsuite/26_numerics/random/linear_congruential_engine/
1339         requirements/non_uint_neg.cc: Likewise.
1340         * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
1341         Likewise. Also test for std::atomic_address.
1343 2016-07-31  Ville Voutilainen  <ville.voutilainen@gmail.com>
1345         Add missing variable traits, fix testsuite failures.
1346         * include/bits/uses_allocator.h (uses_allocator_v): New.
1347         * include/std/functional (is_bind_expression_v, is_placeholder_v):
1348         Likewise.
1349         * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
1350         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1351         * testsuite/20_util/duration/literals/range.cc: Likewise.
1352         * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1353         * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1354         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1355         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
1356         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1357         Likewise.
1358         * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
1359         * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1360         New.
1362 2016-07-31  Jonathan Wakely  <jwakely@redhat.com>
1364         * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
1365         not test 128-bit types.
1366         * testsuite/20_util/is_floating_point/value.cc: Likewise.
1367         * testsuite/20_util/is_integral/value.cc: Likewise.
1368         * testsuite/20_util/is_signed/value.cc: Likewise.
1369         * testsuite/20_util/is_unsigned/value.cc: Likewise.
1370         * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
1371         * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
1372         * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1373         Likewise.
1374         * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1375         Likewise.
1377         * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
1379 2016-07-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
1381         Implement C++17 variable templates for type traits.
1382         * include/std/chrono (treat_as_floating_point_v): New.
1383         * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
1384         (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
1385         (ratio_greater_equal_v): Likewise.
1386         * include/std/system_error (is_error_code_enum_v)
1387         (is_error_condition_enum_v): Likewise.
1388         * include/std/tuple (tuple_size_v): Likewise.
1389         * type_traits (conjunction_v, disjunction_v, negation_v)
1390         (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
1391         (is_array_v, is_pointer_v, is_lvalue_reference_v)
1392         (is_rvalue_reference_v, is_member_object_pointer_v)
1393         (is_member_function_pointer_v, is_enum_v, is_union_v)
1394         (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
1395         (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
1396         (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
1397         (is_trivially_copyable_v, is_standard_layout_v)
1398         (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
1399         (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
1400         (is_constructible_v, is_default_constructible_v)
1401         (is_copy_constructible_v, is_move_constructible_v)
1402         (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
1403         (is_destructible_v, is_trivially_constructible_v)
1404         (is_trivially_default_constructible_v)
1405         (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
1406         (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1407         (is_trivially_move_assignable_v, is_trivially_destructible_v)
1408         (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
1409         (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
1410         (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1411         (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
1412         (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
1413         (is_same_v, is_base_of_v, is_convertible_v): Likewise.
1414         * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
1415         * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1416         Likewise.
1417         * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
1418         * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1419         * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1421 2016-07-29  Andreas Schwab  <schwab@linux-m68k.org>
1423         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1424         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1425         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1427 2016-07-29  Jonathan Wakely  <jwakely@redhat.com>
1429         * doc/xml/manual/abi.xml: Document 6.0.22 library version.
1430         * doc/html/manual/abi.html: Regenerate.
1432         * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
1433         * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
1434         symbols.
1435         * configure: Regenerate.
1436         * testsuite/util/testsuite_abi.cc: Add new symbol version.
1438         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1439         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1440         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
1441         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
1442         Likewise.
1443         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1444         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1445         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
1447 2016-07-28  Jonathan Wakely  <jwakely@redhat.com>
1449         * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
1450         Adjust dg-prune-output pattern for error in C++98 mode.
1451         * testsuite/23_containers/deque/requirements/dr438/
1452         constructor_1_neg.cc: Likewise.
1453         * testsuite/23_containers/deque/requirements/dr438/
1454         constructor_2_neg.cc: Likewise.
1455         * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
1456         Likewise.
1457         * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1458         Likewise.
1459         * testsuite/23_containers/list/requirements/dr438/
1460         constructor_1_neg.cc: Likewise.
1461         * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1462         Likewise.
1463         * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
1464         Likewise.
1465         * testsuite/23_containers/vector/requirements/dr438/
1466         constructor_1_neg.cc: Likewise.
1467         * testsuite/23_containers/vector/requirements/dr438/
1468         constructor_2_neg.cc: Likewise.
1469         * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
1470         Likewise.
1472         * testsuite/23_containers/vector/check_construct_destroy.cc: Account
1473         for different construct/destroy counts in C++98 mode.
1475         * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
1476         dg-options to dg-additional-options so that default options are used.
1477         * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
1478         Likewise.
1479         * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
1480         * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
1481         Likewise.
1482         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1483         Use dg-additional-options instead of repeating the common options.
1485         * testsuite/22_locale/conversions/string/1.cc: Remove unintended
1486         dg-do compile directive.
1487         * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
1488         dg-do directive.
1489         * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
1491 2016-07-28  Ville Voutilainen  <ville.voutilainen@gmail.com>
1493         Implement std::string_view and P0254r2,
1494         Integrating std::string_view and std::string.
1495         * include/Makefile.am: Add string_view and string_view.tcc
1496         to the exported headers.
1497         * include/Makefile.in: Likewise.
1498         * include/bits/basic_string.h: Include <string_view> in C++17 mode.
1499         (__sv_type): New.
1500         (basic_string(__sv_type, const _Alloc&)): Likewise.
1501         (operator=(__sv_type)): Likewise.
1502         (operator __sv_type()): Likewise.
1503         (operator+=(__sv_type)): Likewise.
1504         (append(__sv_type __sv)): Likewise.
1505         (append(__sv_type, size_type, size_type)): Likewise.
1506         (assign(__sv_type)): Likewise.
1507         (assign(__sv_type, size_type, size_type)): Likewise.
1508         (insert(size_type, __sv_type)): Likewise.
1509         (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1510         (replace(size_type, size_type, __sv_type)): Likewise.
1511         (replace(size_type, size_type, __sv_type, size_type, size_type)):
1512         Likewise.
1513         (replace(const_iterator, const_iterator, __sv_type)): Likewise.
1514         (find(__sv_type, size_type)): Likewise.
1515         (rfind(__sv_type, size_type)): Likewise.
1516         (find_first_of(__sv_type, size_type)): Likewise.
1517         (find_last_of(__sv_type, size_type)): Likewise.
1518         (find_first_not_of(__sv_type, size_type)): Likewise.
1519         (find_last_not_of(__sv_type, size_type)): Likewise.
1520         (compare(__sv_type)): Likewise.
1521         (compare(size_type, size_type, __sv_type)): Likewise.
1522         (compare(size_type, size_type, __sv_type, size_type, size_type)):
1523         Likewise.
1524         * include/bits/string_view.tcc: New.
1525         * include/std/string_view: Likewise.
1526         * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
1527         * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
1528         * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
1529         Likewise.
1530         * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1531         Likewise.
1532         * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1533         Likewise.
1534         * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1535         Likewise.
1536         * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1537         Likewise.
1538         * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1539         Likewise.
1540         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1541         Likewise.
1542         * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1543         Likewise.
1544         * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1545         Likewise.
1546         * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1547         Likewise.
1548         * testsuite/21_strings/basic_string/operations/find/char/5.cc:
1549         Likewise.
1550         * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
1551         Likewise.
1552         * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
1553         * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
1554         * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
1555         * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
1556         * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
1557         * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
1558         * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
1559         * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
1560         * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
1561         * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1562         Likewise.
1563         * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1564         Likewise.
1565         * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
1566         Likewise.
1567         * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
1568         Likewise.
1569         * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1570         Likewise.
1571         * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
1572         Likewise.
1573         * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
1574         Likewise.
1575         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
1576         Likewise.
1577         * testsuite/21_strings/basic_string_view/include.cc: Likewise.
1578         * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
1579         * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
1580         * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
1581         * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
1582         Likewise.
1583         * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
1584         Likewise.
1585         * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
1586         Likewise.
1587         * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
1588         Likewise.
1589         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
1590         Likewise.
1591         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
1592         Likewise.
1593         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
1594         Likewise.
1595         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
1596         Likewise.
1597         * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1598         Likewise.
1599         * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
1600         Likewise.
1601         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
1602         Likewise.
1603         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
1604         Likewise.
1605         * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1606         Likewise.
1607         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1608         Likewise.
1609         * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
1610         Likewise.
1611         * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
1612         Likewise.
1613         * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1614         Likewise.
1615         * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1616         Likewise.
1617         * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1618         Likewise.
1619         * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
1620         Likewise.
1621         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1622         Likewise.
1623         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1624         Likewise.
1625         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1626         Likewise.
1627         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
1628         Likewise.
1629         * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
1630         Likewise.
1631         * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1632         Likewise.
1633         * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
1634         Likewise.
1635         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
1636         Likewise.
1637         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
1638         Likewise.
1639         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
1640         Likewise.
1641         * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
1642         Likewise.
1643         * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
1644         Likewise.
1645         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
1646         Likewise.
1647         * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
1648         * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1649         Likewise.
1650         * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
1651         Likewise.
1652         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1653         Likewise.
1654         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
1655         Likewise.
1656         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
1657         Likewise.
1658         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
1659         Likewise.
1660         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
1661         Likewise.
1662         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
1663         Likewise.
1664         * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
1665         Likewise.
1666         * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
1667         * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
1669 2016-07-27  Jonathan Wakely  <jwakely@redhat.com>
1671         * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
1673 2016-07-25  Georeth Chow  <georeth2010@gmail.com>
1675         * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
1676         _S_concat enumerator.
1677         * testsuite/ext/rope/6.cc: New test.
1679 2016-07-25  Jonathan Wakely  <jwakely@redhat.com>
1681         * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
1682         std::mt19937, std::thread and std::atomic to simplify test.
1683         * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1685 2016-07-22  Jonathan Wakely  <jwakely@redhat.com>
1687         PR libstdc++/71964
1688         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1689         (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
1690         * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
1691         * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
1692         * testsuite/23_containers/set/allocator/71964.cc: New test.
1694         * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
1695         delete[] instead of delete.
1697 2016-07-21  Jonathan Wakely  <jwakely@redhat.com>
1699         * include/experimental/propagate_const (propagate_const::__t): Rename
1700         to _M_t and remove comment. Qualify std::move and std::forward.
1701         * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
1703         * testsuite/23_containers/vector/zero_sized_allocations.cc:
1704         Define sized deallocation function.
1705         * testsuite/util/testsuite_new_operators.h:
1706         (operator delete(void*, const std::nothrow_t&)): Define nothrow
1707         deallocation function.
1709         * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
1710         reads past the end of strings.
1711         * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
1712         Likewise.
1713         * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
1714         invalid array accesses.
1715         * testsuite/experimental/string_view/operations/compare/char/1.cc:
1716         Fix read past the end of string.
1717         * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
1719         * testsuite/24_iterators/container_access.cc: Fix missing returns.
1720         * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
1722         * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
1723         leak) memory for arguments to placement delete.
1724         * testsuite/20_util/addressof/1.cc: Don't leak memory.
1725         * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
1726         * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
1727         Likewise.
1729 2016-07-20  Jonathan Wakely  <jwakely@redhat.com>
1731         * doc/xml/manual/intro.xml: Document DR 2684 status.
1732         * doc/html/*: Regenerate.
1734         * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
1735         (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
1736         (atomic_uint64_t): Define (LWG 2441).
1737         * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
1738         lines.
1739         * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
1740         the new types.
1741         * doc/xml/manual/intro.xml: Document DR 2441 status.
1743         * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
1744         to use perfect forwarding (LWG 2328).
1745         * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
1746         * doc/xml/manual/intro.xml: Document DR 2328 status.
1748         * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
1749         static objects for catching nullptr as pointer to member types.
1751 2016-07-18  Ville Voutilainen  <ville.voutilainen@gmail.com>
1753         Clean up optional's comments.
1754         * include/std/optional: Remove incorrect section headers
1755         from comments when redundant, replace bare section
1756         headers with more descriptive comments.
1758 2016-07-15  Jonathan Wakely  <jwakely@redhat.com>
1760         * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
1761         * include/bits/move.h: Likewise.
1762         * include/bits/postypes.h: Likewise.
1763         * include/debug/bitset: Likewise.
1764         * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
1765         * include/ext/string_conversions.h: Change C++0x to __cxx11 in
1766         comment.
1767         * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
1768         * testsuite/util/thread/all.h: Likewise.
1770         * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
1771         and adjust comment.
1773         PR c++/58796
1774         * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
1775         nullptr match handlers of pointer type.
1777 2016-07-15  Edward Smith-Rowland  <3dw4rd@verizon.net>
1779         Implement C++17 P0025 clamp.
1780         * include/bits/algorithmfwd.h: Declare clamp overloads.
1781         * include/bits/stl_algo.h: Implement clamp.  Feature __cpp_lib_clamp.
1782         * testsuite/25_algorithms/clamp/1.cc: New test.
1783         * testsuite/25_algorithms/clamp/2.cc: New test.
1784         * testsuite/25_algorithms/clamp/constexpr.cc: New test.
1785         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
1786         1.cc: New test.
1787         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
1788         pod.cc: New test.
1790 2016-07-14  Ville Voutilainen  <ville.voutilainen@gmail.com>
1792         Fix the constraints for any's assignment operator template to properly
1793         reject assignment from a non-copyable lvalue.
1794         * include/std/any (operator=(_ValueType&&)): Constrain the decayed
1795         type for is_copy_constructible,
1796         * testsuite/20_util/any/requirements.cc: Add a test for
1797         non-copyable lvalues.
1799 2016-07-14  Jonathan Wakely  <jwakely@redhat.com>
1801         * include/experimental/functional: Include <parallel/algorithm> in
1802         Parallel Mode.
1804         * testsuite/experimental/functional/searchers.cc: Include <algorithm>
1805         for std::search.
1807         PR libstdc++/70716
1808         * include/bits/forward_list.h (forward_list): Update doxygen comments
1809         to reflect allocator propagation semantics. Remove ambiguous
1810         statements about data being lost.
1811         * include/bits/stl_deque.h (deque): Likewise.
1812         * include/bits/stl_list.h (list): Likewise.
1813         * include/bits/stl_map.h (map): Likewise.
1814         * include/bits/stl_multimap.h (multimap): Likewise.
1815         * include/bits/stl_multiset.h (multiset): Likewise.
1816         * include/bits/stl_set.h (set): Likewise.
1817         * include/bits/stl_vector.h (vector): Likewise.
1818         * include/bits/unordered_map.h (unordered_map, unordered_multimap):
1819         Likewise.
1820         * include/bits/unordered_set.h (unordered_set, unordered_multiset):
1821         Likewise.
1823 2016-07-14  Ville Voutilainen  <ville.voutilainen@gmail.com>
1825         Implement P0032R3, Homogeneous interface for variant, any and optional,
1826         for the parts concerning any and optional.
1827         * include/std/any (_Storage()): Make constexpr and have it
1828         initialize _M_ptr.
1829         (any()): Make constexpr.
1830         (any(const any&)): Adjust.
1831         (any(any&&)): Likewise.
1832         (__any_constructible_t): New.
1833         (any(_ValueType&&)): Constrain.
1834         (any(in_place_type_t<_Tp>, _Args&&...)): New.
1835         (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
1836         Likewise.
1837         (~any()): Adjust.
1838         (operator=(const any&)): Likewise.
1839         (operator=(any&&)): Likewise.
1840         (operator=(_ValueType&&)): Constrain.
1841         (emplace(_Args&&...)): New.
1842         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1843         (clear()): Remove.
1844         (reset()): New.
1845         (swap(any&)): Adjust.
1846         (empty()): Remove.
1847         (has_value()): New.
1848         (type()): Adjust.
1849         (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
1850         (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
1851         (make_any(_Args&&...)): Likewise.
1852         (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
1853         * include/std/optional (in_place_t, in_place): Remove.
1854         (bad_optional_access): Add a comment referring to LEWG 72.
1855         (emplace(_Args&&...)): Constrain.
1856         (has_value()): New.
1857         (reset()): Likewise.
1858         (make_optional(_Args&&...)): Likewise.
1859         (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
1860         * include/std/utility (in_place_tag): New.
1861         (__in_place, __in_place_type, __in_place_index): Likewise.
1862         (in_place_t, in_place_type_t, in_place_index_t): Likewise.
1863         (in_place(__in_place*)): Likewise.
1864         (in_place(__in_place_type<_Tp>*)): Likewise.
1865         (in_place(__in_place_index<_Idx>*)): Likewise.
1866         * testsuite/20_util/any/assign/1.cc: Adjust.
1867         * testsuite/20_util/any/assign/emplace.cc: New.
1868         * testsuite/20_util/any/assign/self.cc: Adjust.
1869         * testsuite/20_util/any/cons/1.cc: Likewise.
1870         * testsuite/20_util/any/cons/in_place.cc: New.
1871         * testsuite/20_util/any/make_any.cc: Likewise.
1872         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1873         * testsuite/20_util/any/misc/swap.cc: Likewise.
1874         * testsuite/20_util/any/modifiers/1.cc: Likewise.
1875         * testsuite/20_util/any/requirements.cc: New.
1876         * testsuite/20_util/in_place/requirements.cc: Likewise.
1877         * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
1878         * testsuite/20_util/optional/in_place.cc: Likewise.
1879         * testsuite/20_util/optional/make_optional.cc: Add tests for
1880         the new overloads of make_optional.
1882 2016-07-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
1884         Implement P0307R2, Making Optional Greater Equal Again.
1885         * include/experimental/optional (_Has_addressof): Fix the comment.
1886         * include/std/optional (_Has_addressof): Likewise.
1887         (operator=(_Up&&)): Constrain.
1888         (operator=(const optional<_Up>&)): Likewise.
1889         (operator=(optional<_Up>&&)): Likewise.
1890         (__optional_relop_t): New.
1891         (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
1892         (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
1893         Constrain and make transparent.
1894         (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
1895         (operator>(const optional<_Tp>&, const optional<_Tp>&)):
1896         Constrain and make transparent.
1897         (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
1898         (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
1899         (operator==(const optional<_Tp>&, const _Tp&): Constrain.
1900         (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
1901         (operator!=(const optional<_Tp>&, _Tp const&)):
1902         Constrain and make transparent.
1903         (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
1904         (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
1905         (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
1906         (operator>(const optional<_Tp>&, const _Tp&)):
1907         Constrain and make transparent.
1908         (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
1909         (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
1910         (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
1911         (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
1912         (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
1913         * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
1914         * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
1915         * testsuite/20_util/optional/relops/1.cc: Likewise.
1916         * testsuite/20_util/optional/relops/2.cc: Likewise.
1917         * testsuite/20_util/optional/relops/3.cc: Likewise.
1918         * testsuite/20_util/optional/relops/4.cc: Likewise.
1919         * testsuite/20_util/optional/requirements.cc: Add tests to verify
1920         that optional's relops are transparent and don't synthesize
1921         operators. Also test that assignment sfinaes.
1923 2016-07-13  Jonathan Wakely  <jwakely@redhat.com>
1925         PR libstdc++/71856
1926         * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
1927         * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
1928         Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
1929         on _GLIBCXX_ASSERTIONS.
1930         * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
1931         Include <unistd.h> for sleep.
1932         * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
1933         * include/parallel/merge.h: Likewise.
1934         * include/parallel/multiway_merge.h: Likewise.
1935         * include/parallel/partition.h: Likewise.
1936         * include/parallel/queue.h: Likewise.
1937         * include/parallel/sort.h: Likewise.
1938         * testsuite/25_algorithms/headers/algorithm/
1939         parallel_algorithm_assert.cc: New.
1941         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1942         (replace(__const_iterator, __const_iterator, initializer_list<C>)):
1943         Forward to different overload.
1945         * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
1946         static.
1948 2016-07-13  Jonathan Wakely  <jwakely@redhat.com>
1950         Revert "Add non-const overload of std::string::data()".
1952 2016-07-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
1954         Implement P0307R2, Making Optional Greater Equal Again.
1955         * include/experimental/optional (_Has_addressof): Fix the comment.
1956         * include/std/optional (_Has_addressof): Likewise.
1957         (operator=(_Up&&)): Constrain.
1958         (operator=(const optional<_Up>&)): Likewise.
1959         (operator=(optional<_Up>&&)): Likewise.
1960         (__optional_relop_t): New.
1961         (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
1962         (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
1963         Constrain and make transparent.
1964         (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
1965         (operator>(const optional<_Tp>&, const optional<_Tp>&)):
1966         Constrain and make transparent.
1967         (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
1968         (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
1969         (operator==(const optional<_Tp>&, const _Tp&): Constrain.
1970         (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
1971         (operator!=(const optional<_Tp>&, _Tp const&)):
1972         Constrain and make transparent.
1973         (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
1974         (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
1975         (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
1976         (operator>(const optional<_Tp>&, const _Tp&)):
1977         Constrain and make transparent.
1978         (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
1979         (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
1980         (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
1981         (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
1982         (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
1983         * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
1984         * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
1985         * testsuite/20_util/optional/relops/1.cc: Likewise.
1986         * testsuite/20_util/optional/relops/2.cc: Likewise.
1987         * testsuite/20_util/optional/relops/3.cc: Likewise.
1988         * testsuite/20_util/optional/relops/4.cc: Likewise.
1989         * testsuite/20_util/optional/requirements.cc: Add tests to verify
1990         that optional's relops are transparent and don't synthesize
1991         operators. Also test that assignment sfinaes.
1993 2016-07-13  Jonathan Wakely  <jwakely@redhat.com>
1995         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
1996         New function.
1997         (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
1998         instead of _M_data().
1999         (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2000         Likewise.
2001         (append(const basic_string&)): Likewise.
2002         (append(const basic_string&, size_type, size_type)): Likewise.
2003         (assign(const basic_string&, size_type, size_type)): Likewise.
2004         (insert(size_type, const basic_string&)): Likewise.
2005         (insert(size_type, const basic_string&, size_type, size_type)):
2006         Likewise.
2007         (replace(size_type, size_type, const basic_string&, size_type,
2008         size_type)): Likewise.
2009         (replace(__const_iterator, __const_iterator, const basic_string&)):
2010         Likewise.
2011         (c_str(), data()): Use c_str() instead of _M_data().
2012         (data()): Add non-const overload as per LWG 2391 and P0272R1.
2013         (compare(const basic_string&)): Use data() instead of _M_data().
2014         [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2015         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2016         Pass raw pointers to _S_copy.
2017         (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2018         _S_assign.
2019         (find(const _CharT*, size_type, size_type)): Use data instead of
2020         _M_data().
2021         * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2022         * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2023         * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2025 2016-07-12  Jonathan Wakely  <jwakely@redhat.com>
2027         * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2028         * doc/xml/manual/intro.xml: Document DR 2458 status.
2029         * doc/html*: Regenerate.
2031         * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2032         * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2033         Only include <array>.
2034         * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2035         Likewise.
2036         * doc/xml/manual/intro.xml: Document LWG 2212 support.
2037         * doc/html*: Regenerate.
2039         * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2040         Add testcase from LWG 2164.
2042 2016-07-11  François Dumont  <fdumont@gcc.gnu.org>
2044         * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2045         to _M_realloc_insert.
2046         (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2047         (_M_realloc_insert): Declare new function.
2048         (_M_emplace_back_aux): Remove definition.
2049         * include/bits/vector.tcc (emplace_back(_Args...)):
2050         Use _M_realloc_insert.
2051         (insert(const_iterator, const value_type&)): Likewise.
2052         (_M_insert_rval, _M_emplace_aux): Likewise.
2053         (_M_emplace_back_aux): Remove declaration.
2054         (_M_realloc_insert): Define.
2055         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2056         Adjust expected results for emplacing an lvalue with reallocation.
2058 2016-07-10  Ville Voutilainen  <ville.voutilainen@gmail.com>
2060         Implement std::optional.
2061         * include/Makefile.am: Add optional to exported headers.
2062         * include/Makefile.in: Likewise.
2063         * include/std/optional: New.
2064         * testsuite/20_util/optional/typedefs.cc: Likewise.
2065         * testsuite/20_util/optional/relops/2.cc: Likewise.
2066         * testsuite/20_util/optional/relops/3.cc: Likewise.
2067         * testsuite/20_util/optional/relops/4.cc: Likewise.
2068         * testsuite/20_util/optional/relops/5.cc: Likewise.
2069         * testsuite/20_util/optional/relops/1.cc: Likewise.
2070         * testsuite/20_util/optional/relops/6.cc: Likewise.
2071         * testsuite/20_util/optional/nullopt.cc: Likewise.
2072         * testsuite/20_util/optional/in_place.cc: Likewise.
2073         * testsuite/20_util/optional/make_optional.cc: Likewise.
2074         * testsuite/20_util/optional/assignment/2.cc: Likewise.
2075         * testsuite/20_util/optional/assignment/3.cc: Likewise.
2076         * testsuite/20_util/optional/assignment/4.cc: Likewise.
2077         * testsuite/20_util/optional/assignment/5.cc: Likewise.
2078         * testsuite/20_util/optional/assignment/1.cc: Likewise.
2079         * testsuite/20_util/optional/assignment/6.cc: Likewise.
2080         * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2081         * testsuite/20_util/optional/cons/default.cc: Likewise.
2082         * testsuite/20_util/optional/cons/move.cc: Likewise.
2083         * testsuite/20_util/optional/cons/value.cc: Likewise.
2084         * testsuite/20_util/optional/cons/copy.cc: Likewise.
2085         * testsuite/20_util/optional/requirements.cc: Likewise.
2086         * testsuite/20_util/optional/observers/2.cc: Likewise.
2087         * testsuite/20_util/optional/observers/3.cc: Likewise.
2088         * testsuite/20_util/optional/observers/4.cc: Likewise.
2089         * testsuite/20_util/optional/observers/5.cc: Likewise.
2090         * testsuite/20_util/optional/observers/1.cc: Likewise.
2091         * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2092         * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2093         * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2094         * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2095         * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2096         * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2097         * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2098         * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2099         * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2100         * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2101         * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2102         * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2103         * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2104         * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2105         * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2106         * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2107         * testsuite/20_util/optional/swap/1.cc: Likewise.
2109 2016-07-08  Jonathan Wakely  <jwakely@redhat.com>
2111         * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2113 2016-07-07  Jonathan Wakely  <jwakely@redhat.com>
2115         * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2116         * doc/html/*: Regenerate.
2118 2016-07-07  Ville Voutilainen  <ville.voutilainen@gmail.com>
2120         Implement std::any.
2121         * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2122         * include/Makefile.in: Likewise.
2123         * include/std/any: New.
2124         * testsuite/20_util/any/assign/1.cc: Likewise.
2125         * testsuite/20_util/any/assign/2.cc: Likewise.
2126         * testsuite/20_util/any/assign/self.cc: Likewise.
2127         * testsuite/20_util/any/cons/1.cc: Likewise.
2128         * testsuite/20_util/any/cons/2.cc: Likewise.
2129         * testsuite/20_util/any/cons/aligned.cc: Likewise.
2130         * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2131         * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2132         * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2133         * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2134         * testsuite/20_util/any/misc/swap.cc: Likewise.
2135         * testsuite/20_util/any/modifiers/1.cc: Likewise.
2136         * testsuite/20_util/any/observers/type.cc: Likewise.
2137         * testsuite/20_util/any/typedefs.cc: Likewise.
2139 2016-07-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
2141         Add a new header for diagnosing the use of C++17 facilities
2142         in pre-C++17 modes.
2143         * include/bits/c++17_warning.h: New.
2145 2016-07-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
2147         Implement LWG 2451, optional<T> should 'forward' T's
2148         implicit conversions.
2149         * include/experimental/optional (__is_optional_impl, __is_optional):
2150         New.
2151         (optional()): Make constexpr and default.
2152         (optional(_Up&&), optional(const optional<_Up>&),
2153         optional(optional<_Up>&& __t): New.
2154         (operator=(_Up&&)): Constrain.
2155         (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2156         * testsuite/experimental/optional/cons/value.cc:
2157         Add tests for the functionality added by LWG 2451.
2158         * testsuite/experimental/optional/cons/value_neg.cc: New.
2160 2016-07-05  Ville Voutilainen  <ville.voutilainen@gmail.com>
2162         Implement LWG 2509,
2163         any_cast doesn't work with rvalue reference targets and cannot
2164         move with a value target.
2165         * include/experimental/any (any(_ValueType&&)): Constrain and
2166         add an overload that doesn't forward.
2167         (any_cast(any&&)): Constrain and add an overload that moves.
2168         * testsuite/experimental/any/misc/any_cast.cc: Add tests for
2169         the functionality added by LWG 2509.
2171 2016-07-04  François Dumont  <fdumont@gcc.gnu.org>
2173         * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2174         New test.
2175         * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2176         test.
2178 2016-07-04  Jonathan Wakely  <jwakely@redhat.com>
2180         * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
2181         Define inline. Forward to _M_emplace_aux.
2182         (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2183         (_M_insert_rval, _M_emplace_aux): Declare new functions.
2184         (_Temporary_value): New RAII type using allocator to construct/destroy.
2185         (_S_insert_aux_assign): Remove.
2186         (_M_insert_aux): Make non-variadic.
2187         * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
2188         Use _Temporary_value.
2189         (emplace(const_iterator, _Args&&...)): Remove definition.
2190         (_M_insert_rval, _M_emplace_aux): Define.
2191         (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
2192         (_M_fill_insert): Use _Temporary_value.
2193         * testsuite/23_containers/vector/allocator/construction.cc: New test.
2194         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2195         Adjust expected results for emplacing an lvalue with reallocation.
2196         * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
2197         expected results to account for construction/destruction of temporary
2198         using allocator.
2199         * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
2201 2016-07-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
2203         PR libstdc++/71313
2204         * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
2205         Call remove_all for children of a directory.
2206         * testsuite/experimental/filesystem/operations/create_directories.cc:
2207         Adjust.
2209 2016-07-02  François Dumont  <fdumont@gcc.gnu.org>
2211         * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
2212         dg-error line numbers.
2213         * testsuite/23_containers/array/tuple_interface/
2214         tuple_element_debug_neg.cc: Likewise.
2215         * testsuite/25_algorithms/lexicographical_compare/debug/
2216         irreflexive_neg.cc: Remove.
2218 2016-06-30  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2220         * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
2221         than specific target.
2223 2016-06-27  François Dumont  <fdumont@gcc.gnu.org>
2225         PR libstdc++/71640
2226         * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
2227         friend declaration.
2229 2016-06-23  François Dumont  <fdumont@gcc.gnu.org>
2231         * include/debug/array (array<>::swap): Fix noexcept qualificaton for
2232         zero-size array.
2234 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2236         * configure.host: Remove mep-* support.
2238 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2240         * configure: Regenerate.
2241         * configure.host: Remove support for knetbsd.
2242         * crossconfig.m4: Likewise.
2244 2016-06-20  François Dumont  <fdumont@gcc.gnu.org>
2246         PR libstdc++/71181
2247         * include/tr1/hashtable_policy.h
2248         (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
2249         dereferenceable to avoid check on lower_bound result.
2250         (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
2251         (_Prime_rehash_policy::_M_need_rehash): Likewise.
2252         * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
2253         Always return a value greater than input value. Set _M_next_resize to
2254         max value when reaching highest prime number.
2255         * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
2256         being now useless.
2257         * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
2258         * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
2259         (test02): New.
2260         * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
2261         * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2262         Fix indentation.
2264 2016-06-17  Jonathan Wakely  <jwakely@redhat.com>
2266         PR libstdc++/71545
2267         * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
2268         Remove irreflexive checks.
2269         * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
2270         binary_search): Likewise.
2271         * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
2272         * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
2273         * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
2274         * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
2275         * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
2276         Add constructor from array.
2278 2016-06-16  François Dumont  <fdumont@gcc.gnu.org>
2280         * include/debug/debug.h
2281         (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
2282         (__glibcxx_requires_subscript): Move...
2283         * include/debug/assertions.h: ...here and add __builtin_expect.
2284         (_GLIBCXX_DEBUG_ONLY): Remove ; value.
2285         * include/bits/stl_deque.h
2286         (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
2287         (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
2288         (std::deque<>::back()): Likewise.
2289         (std::deque<>::pop_front()): Likewise.
2290         (std::deque<>::pop_back()): Likewise.
2291         (std::deque<>::swap(deque&)): Add allocator check.
2292         * include/bits/stl_vector.h
2293         (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
2294         (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
2295         (std::vector<>::back()): Likewise.
2296         (std::vector<>::pop_back()): Likewise.
2297         (std::vector<>::swap(vector&)): Add allocator check.
2299 2016-06-16  Daniel Kruegler  <daniel.kruegler@gmail.com>
2301         Provide swappable traits (p0185r1)
2302         * include/std/type_traits (is_swappable, is_nothrow_swappable,
2303         is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
2304         is_nothrow_swappable_v, is_swappable_with_v,
2305         is_nothrow_swappable_with_v): New.
2306         * include/bits/stl_pair.h: Use it as per p0185r1.
2307         * include/bits/stl_queue.h: Likewise.
2308         * include/bits/stl_stack.h: Likewise.
2309         * include/bits/unique_ptr.h: Likewise.
2310         * include/std/tuple: Likewise.
2311         * include/std/array: Likewise. Fix zero-size member swap.
2312         * include/bits/hashtable.h: Use __and_.
2313         * testsuite/20_util/is_nothrow_swappable/requirements/
2314         explicit_instantiation.cc: Change test options to std=gnu++17.
2315         * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2316         Likewise.
2317         * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2318         * testsuite/20_util/is_swappable/requirements/
2319         explicit_instantiation.cc: Likewise.
2320         * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
2321         * testsuite/20_util/is_swappable/value.cc: Likewise.
2322         * testsuite/20_util/is_nothrow_swappable/requirements/
2323         explicit_instantiation_ext.cc: New.
2324         * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
2325         New.
2326         * testsuite/20_util/is_nothrow_swappable/value.h: New.
2327         * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
2328         * testsuite/20_util/is_nothrow_swappable_with/requirements/
2329         explicit_instantiation.cc: New.
2330         * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2331         New.
2332         * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
2333         * testsuite/20_util/is_swappable/requirements/
2334         explicit_instantiation_ext.cc: New.
2335         * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
2336         * testsuite/20_util/is_swappable/value.h: New.
2337         * testsuite/20_util/is_swappable/value_ext.cc: New.
2338         * testsuite/20_util/is_swappable_with/requirements/
2339         explicit_instantiation.cc: New.
2340         * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
2341         * testsuite/20_util/is_swappable_with/value.cc: New.
2342         * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
2343         dg-error line numbers.
2344         * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2345         Likewise.
2347 2016-06-16  Jonathan Wakely  <jwakely@redhat.com>
2349         * include/std/array: Remove trailing whitespace.
2350         * include/std/atomic: Likewise.
2351         * include/std/bitset: Likewise.
2352         * include/std/chrono: Likewise.
2353         * include/std/complex: Likewise.
2354         * include/std/condition_variable: Likewise.
2355         * include/std/fstream: Likewise.
2356         * include/std/functional: Likewise.
2357         * include/std/future: Likewise.
2358         * include/std/iomanip: Likewise.
2359         * include/std/iosfwd: Likewise.
2360         * include/std/istream: Likewise.
2361         * include/std/limits: Likewise.
2362         * include/std/ratio: Likewise.
2363         * include/std/scoped_allocator: Likewise.
2364         * include/std/sstream: Likewise.
2365         * include/std/stdexcept: Likewise.
2366         * include/std/string: Likewise.
2367         * include/std/system_error: Likewise.
2368         * include/std/thread: Likewise.
2369         * include/std/tuple: Likewise.
2370         * include/std/type_traits: Likewise.
2371         * include/std/utility: Likewise.
2372         * include/std/valarray: Likewise.
2373         * include/std/vector: Likewise.
2375         * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
2376         new overloaded functions.
2377         * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
2378         to avoid creating a redundant temporary.
2379         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
2380         test.
2382 2016-06-15  François Dumont  <fdumont@gcc.gnu.org>
2384         * include/bits/stl_deque.h
2385         (std::deque<>::operator=): Call _M_assign_aux.
2386         (std::deque<>::assign(initializer_list<>)): Likewise.
2387         (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2388         (std::deque<>::insert(const_iterator, initializer_list<>)):
2389         Call _M_range_insert_aux.
2390         (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
2391         Likewise.
2392         (std::deque<>::_M_fill_assign): Call _M_fill_insert.
2393         (std::deque<>::_M_move_assign2): Call _M_assign_aux.
2394         * include/bits/deque.tcc
2395         (std::deque<>::operator=): Call _M_range_insert_aux.
2396         (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
2397         Likewise.
2398         * include/bits/stl_vector.h
2399         (std::vector<>::operator=): Call _M_assign_aux.
2400         (std::vector<>::assign(initializer_list<>)): Likewise.
2401         (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2402         (std::vector<>::insert(const_iterator, initializer_list<>)):
2403         Call _M_range_insert.
2404         * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
2406 2016-06-07  François Dumont  <fdumont@gcc.gnu.org>
2408         * include/std/tuple (_Head_base<>): Default specialization condition at
2409         type declaration.
2411 2016-06-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
2413         Support allocators in tuples of zero size.
2414         * include/std/tuple (tuple<>::tuple(),
2415         tuple<>::tuple(allocator_arg_t, const _Alloc&),
2416         tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
2417         * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
2419 2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
2421         PR libstdc++/71320
2422         * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
2423         Add or remove permissions according to perms argument.
2424         * testsuite/experimental/filesystem/operations/permissions.cc: New
2425         test.
2427 2016-06-05  Ville Voutilainen  <ville.voutilainen@gmail.com>
2429         Protect allocator-overloads of tuple-from-tuple constructors
2430         from cases that would create dangling references.
2431         * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2432         const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
2433         tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
2434         * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
2436 2016-05-29  Gerald Pfeifer  <gerald@pfeifer.com>
2438         * doc/xml/manual/backwards_compatibility.xml: Adjust
2439         lists.debian.org link to https.
2440         * doc/html/manual/backwards.html: Regenerate.
2442 2016-05-27  Jonathan Wakely  <jwakely@redhat.com>
2444         * doc/xml/manual/abi.xml: Adjust URL to use https.
2445         * doc/html/manual/*: Regenerate.
2447 2016-05-27  Ville Voutilainen  <ville.voutilainen@gmail.com>
2449         PR libstdc++/66338
2450         * include/std/tuple (_TMC): Add a check for _NotSameTuple.
2451         * include/std/tuple (tuple(_UElements&&...)): Remove the separate
2452         check for _NotSameTuple.
2453         * include/std/tuple (_TMCT): New.
2454         * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
2455         * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
2456         * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2457               const tuple<_UElements...>&)): Likewise.
2458         * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2459               tuple<_UElements...>&&)): Likewise.
2460         * testsuite/20_util/tuple/cons/66338.cc: New.
2462 2016-05-25  Jonathan Wakely  <jwakely@redhat.com>
2464         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
2465         * configure: Regenerate.
2466         * config.h.in: Regenerate.
2468         * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
2469         * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
2470         Remove const qualification on function. Replace
2471         _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
2472         (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
2473         (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
2475 2016-05-24  François Dumont  <fdumont@gcc.gnu.org>
2477         * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
2478         * include/bits/hashtable_policy.h
2479         (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
2480         having load factor management.
2481         (_Mask_range_hashing): New.
2482         (__clp2): New.
2483         (_Power2_rehash_policy): New.
2484         (_Inserts<>): Remove last template parameter, _Unique_keys, so that
2485         partial specializations only depend on whether iterators are constant
2486         or not.
2487         * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
2488         test new hash policy.
2489         * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
2490         Likewise.
2491         * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2492         Likewise.
2493         * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
2494         Likewise.
2495         * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
2496         Likewise.
2497         * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
2498         New.
2499         * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
2500         using the new hash policy.
2501         * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
2503 2016-05-24  Jonathan Wakely  <jwakely@redhat.com>
2505         * include/bits/stl_queue.h (priority_queue::value_compare): Define.
2507 2016-05-23  François Dumont  <fdumont@gcc.gnu.org>
2509         * include/debug/safe_iterator.h
2510         (_Safe_iterator<>::operator->()): Implement using underlying iterator
2511         operator ->.
2512         * include/debug/safe_local_iterator.h
2513         (_Safe_local_iterator<>::operator->()): Likewise.
2515 2016-05-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2517         * testsuite/experimental/memory_resource/1.cc: Add required argument
2518         to dg-require-atomic-builtins.
2520 2016-05-13  Jonathan Wakely  <jwakely@redhat.com>
2522         PR libstdc++/71073
2523         * include/debug/bitset: Add #pragma GCC system_header.
2524         * include/debug/deque: Likewise.
2525         * include/debug/list: Likewise.
2526         * include/debug/map: Likewise.
2527         * include/debug/set: Likewise.
2528         * include/debug/string: Likewise.
2529         * include/debug/unordered_map: Likewise.
2530         * include/debug/unordered_set: Likewise.
2531         * include/debug/vector: Likewise.
2532         * include/debug/functions.h: Adjust whitespace.
2534 2016-05-12  Jonathan Wakely  <jwakely@redhat.com>
2536         PR libstdc++/71081
2537         * testsuite/experimental/memory_resource/1.cc: Require atomics.
2539 2016-05-11  Jonathan Wakely  <jwakely@redhat.com>
2541         PR libstdc++/71049
2542         * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
2543         exception constructors with __sso_string parameters.
2545 2016-05-10  Jonathan Wakely  <jwakely@redhat.com>
2547         * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
2548         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2549         Test begin and end functions.
2550         * testsuite/experimental/filesystem/iterators/
2551         recursive_directory_iterator.cc: Likewise.
2553         PR libstdc++/71038
2554         * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
2555         * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
2557         * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
2558         Overload operator* to move from rvalues.
2560         PR libstdc++/71036
2561         * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
2562         * testsuite/experimental/filesystem/operations/create_directory.cc:
2563         New test.
2565         PR libstdc++/71037
2566         * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
2567         base path to exception.
2568         * testsuite/experimental/filesystem/operations/canonical.cc: Test
2569         paths contained in exception.
2571         * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
2572         using declaration.
2574         PR libstdc++/71005
2575         * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
2576         New type.
2577         (directory_iterator::operator++(int)): Return proxy.
2578         (recursive_directory_iterator::operator++(int)): Likewise.
2579         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2580         Test post-increment.
2581         * testsuite/experimental/filesystem/iterators/
2582         recursive_directory_iterator.cc: Likewise.
2584 2016-05-09  Jonathan Wakely  <jwakely@redhat.com>
2586         PR libstdc++/71004
2587         * testsuite/experimental/filesystem/iterators/
2588         recursive_directory_iterator.cc: Fix test02 to not call member
2589         functions on invalid iterator, and use VERIFY not assert.
2591 2016-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
2593         Avoid endless run-time recursion for copying single-element
2594         tuples where the element type is by-value constructible
2595         from any type.
2596         * include/std/tuple (_NotSameTuple): New.
2597         * include/std/tuple (tuple(_UElements&&...): Use it.
2598         * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
2600 2016-05-09  Jonathan Wakely  <jwakely@redhat.com>
2602         PR libstdc++/71004
2603         * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
2604         Initialize scalar member variables in default constructor.
2605         * testsuite/experimental/filesystem/iterators/
2606         recursive_directory_iterator.cc: Test default construction.
2608 2016-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2610         * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
2612 2016-05-05  Jonathan Wakely  <jwakely@redhat.com>
2614         * testsuite/experimental/filesystem/path/native/string.cc: Add
2615         dg-require-filesystem-ts directive.
2617 2016-05-04  Jonathan Wakely  <jwakely@redhat.com>
2619         PR libstdc++/70940
2620         * include/experimental/memory_resource
2621         (__resource_adaptor_imp::do_allocate): Do not default-construct
2622         rebound allocator.
2623         (__resource_adaptor_imp::do_deallocate): Likewise. Use
2624         allocator_traits to get pointer type.
2625         (__null_memory_resource::do_allocate): Remove unused parameters.
2626         (__null_memory_resource::do_deallocate): Likewise.
2627         (__null_memory_resource::do_is_equal): Likewise. Add return statement.
2628         * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
2629         * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
2630         move to ...
2631         * testsuite/experimental/memory_resource/1.cc: Here.
2632         * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
2633         * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
2635 2016-04-29  Chris Gregory  <czipperz@gmail.com>
2637         * config/*: Remove trailing whitespace.
2638         * src/*: Likewise.
2639         * testsuite/tr1/*: Likewise.
2640         * testsuite/util/*: Likewise.
2642 2016-04-28  Jonathan Wakely  <jwakely@redhat.com>
2644         PR libstdc++/70766
2645         * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
2646         __addressof.
2647         * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
2648         Likewise.
2649         * include/std/atomic (atomic<_Tp>): Likewise.
2650         * include/std/shared_mutex (shared_lock): Likewise.
2651         * testsuite/24_iterators/istream_iterator/70766.cc: New test.
2652         * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
2653         * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
2654         * testsuite/29_atomics/atomic/70766.cc: New test.
2655         * testsuite/30_threads/shared_lock/70766.cc: New test.
2657         * include/bits/hashtable_policy.h (__detail::_Insert_base,
2658         __detail::_Insert): Improve comments.
2660 2016-04-27  Jonathan Wakely  <jwakely@redhat.com>
2662         PR libstdc++/70767
2663         * include/std/limits: Update comments about DRs.
2664         (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
2665         numeric_limits<const volatile _Tp>): Define unconditionally.
2667 2016-04-24  Jonathan Wakely  <jwakely@redhat.com>
2669         PR libstdc++/70762
2670         * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
2671         static counter to return a different path on every call.
2673 2016-04-22  Tim Shen  <timshen@google.com>
2675         PR libstdc++/70745
2676         * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
2677         Fix the match_not_bow and match_not_eow behavior.
2678         * testsuite/28_regex/regression.cc: Add testcase.
2680 2016-04-20  Jonathan Wakely  <jwakely@redhat.com>
2682         PR libstdc++/69703
2683         * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
2684         __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
2686 2016-04-19  Jonathan Wakely  <jwakely@redhat.com>
2688         PR libstdc++/69703
2689         * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
2690         Override endianness bit in mode.
2691         * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
2692         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
2693         that little_endian mode is ignored.
2694         * testsuite/experimental/filesystem/path/native/string.cc: New test.
2696         PR libstdc++/70609
2697         * src/filesystem/ops.cc (close_fd): New function.
2698         (do_copy_file): Set permissions before copying file contents. Check
2699         result of closing file descriptors. Don't copy streambuf when file
2700         is empty.
2701         (copy(const path&, const path&, copy_options, error_code&)): Use
2702         lstat for source file when copy_symlinks is set.
2703         * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
2705         * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
2706         operator~ operator&=, operator|=, operator^=): Add noexcept to
2707         overloaded operators for copy_options, perms and directory_options.
2708         * src/filesystem/ops.cc (make_file_type, make_file_status,
2709         is_not_found_errno, file_time): Add noexcept.
2711 2016-04-19  Edward Smith-Rowland  <3dw4rd@verizon.net>
2713         * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
2715 2016-04-18  Jonathan Wakely  <jwakely@redhat.com>
2717         PR libstdc++/41759
2718         * include/bits/random.h: Reword static assertion messages to state
2719         positive conditions.
2720         * include/bits/random.tcc: Likewise.
2721         * include/bits/uniform_int_dist.h: Likewise.
2722         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2723         patterns.
2725         * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
2727         * config/cpu/sh/atomicity.h: Fix typo in comment.
2729         PR libstdc++/70294
2730         * include/std/thread (operator<, operator==): Move definitions to
2731         namespace-scope.
2732         * testsuite/30_threads/thread/id/70294.cc: New test.
2734         * testsuite/18_support/bad_exception/23591_thread-1.c: Add
2735         -Wno-pedantic to dg-options.
2736         * testsuite/20_util/align/2.cc: Use type as operand of alignof.
2737         * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
2738         to dg-options.
2739         * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
2740         Remove extra semi-colon.
2741         * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2742         Always supply second argument to static_assert.
2743         * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
2744         semi-colon.
2745         * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
2746         dg-options.
2747         * testsuite/26_numerics/complex/literals/values.cc: Likewise.
2748         * testsuite/29_atomics/atomic/60695.cc: Likewise.
2749         * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
2750         alignof when operand is an object not a type.
2751         * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
2752         * testsuite/decimal/make-decimal.cc: Likewise.
2753         * testsuite/experimental/type_traits/value.cc: Always supply second
2754         argument to static_assert.
2755         * testsuite/util/testsuite_common_types.h: Use __extension__ for
2756         __int128 types.
2758         * testsuite/experimental/type_erased_allocator/1.cc: Don't include
2759         internal header.
2760         * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
2761         * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
2762         * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
2763         Likewise. Add licence and change to compile-only test.
2765         * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
2766         unused parameter.
2767         * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
2769         * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
2770         warnings.
2772 2016-04-17  Edward Smith-Rowland  <3dw4rd@verizon.net>
2774         * include/bits/specfun.h: Trivial comment misspelling.
2776 2016-04-14  Jason Merrill  <jason@redhat.com>
2778         Revert Jonathan's empty ABI change from yesterday.
2780 2016-04-13  Martin Sebor  <msebor@redhat.com>
2782         PR c++/69517
2783         * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
2784         upper bound is positive.
2786 2016-04-13  Jonathan Wakely  <jwakely@redhat.com>
2788         * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
2789         _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
2790         * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
2791         of functions taking empty structs by value. Add a template parameter
2792         to overloads without hints. Rename overloads with hints to
2793         _M_emplace_hint.
2794         (_Hashtable::_M_erase(true_type, const_iterator),
2795         _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
2796         by reordering parameters.
2797         * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
2798         _M_emplace_hint instead of _M_emplace.
2799         * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
2800         shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
2801         * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
2802         __shared_ptr): Likewise.
2803         * include/bits/stl_algo.h (replace_if): Likewise.
2804         * include/bits/stl_pair.h (piecewise_construct_t,
2805         piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
2806         * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
2807         __uses_alloc0): Likewise.
2808         * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
2809         * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
2810         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
2811         * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
2812         * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
2813         * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
2814         * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
2816 2016-04-12  Edward Smith-Rowland  <3dw4rd@verizon.net>
2818         Document C++17/TR29124 C++ Special Math Functions.
2819         * include/bits/specfun.h: Add Doxygen markup.
2821 2016-04-07  Jonathan Wakely  <jwakely@redhat.com>
2823         * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
2825 2016-04-06  Eric Botcazou  <ebotcazou@adacore.com>
2827         * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
2828         * src/Makefile.in: Regenerate.
2830 2016-04-05  Jonathan Wakely  <jwakely@redhat.com>
2832         PR libstdc++/70554
2833         * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
2834         __atomic_fetch_add for bool.
2835         * configure: Regenerate.
2837         * testsuite/30_threads/thread/70503.cc: Require -static to work.
2839         PR libstdc++/70503
2840         * src/c++11/thread.cc (execute_native_thread_routine,
2841         execute_native_thread_routine_compat): Give internal linkage.
2842         * testsuite/30_threads/thread/70503.cc: New test.
2844 2016-04-05  Ville Voutilainen  <ville.voutilainen@gmail.com>
2846         PR libstdc++/70437
2847         * include/bits/stl_pair.h (_ConstructiblePair,
2848         _ImplicitlyConvertiblePair, _MoveConstructiblePair,
2849         _ImplicitlyMoveConvertiblePair): Add shortcut conditions
2850         for same-type cases.
2851         * testsuite/20_util/pair/70437.cc: New.
2853 2016-03-24  Jonathan Wakely  <jwakely@redhat.com>
2855         PR libstdc++/69945
2856         * config/abi/pre/gnu.ver: Add new symbol.
2857         * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
2858         * testsuite/18_support/free_eh_pool.cc: New test.
2860 2016-03-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2862         * include/Makefile.am (install-freestanding-headers): Add
2863         concept_check.h and move.h to the installed headers.
2864         * include/Makefile.in: Regenerated.
2865         * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
2866         freestanding implementations.
2867         * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
2868         that this macro has no effect for freestanding implementations.
2869         * doc/html/manual/using_macros.html: Likewise.
2871 2016-02-24  Jonathan Wakely  <jwakely@redhat.com>
2873         PR libstdc++/69939
2874         * include/experimental/tuple (__apply_impl): Qualify get and forward.
2876 2016-02-23  Jonathan Wakely  <jwakely@redhat.com>
2878         * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
2879         * doc/html/*: Regenerate.
2881         PR libstdc++/69893
2882         * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
2883         exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
2884         llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
2885         nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
2886         trunc) [__cplusplus >= 201103L]: Import from namespace std.
2887         (fabs) [__cplusplus < 201103L]: Import from namespace std.
2888         * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
2889         Likewise.
2890         * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
2891         namespace before including TR1 headers.
2892         * testsuite/tr1/headers/c++200x/math.cc: New test.
2894 2016-02-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2896         PR libstdc++/69881
2897         * include/c_global/cstdarg: Undefine __need___va_list.
2898         * include/c_global/cstddef: Undefine all kinds of __need_*.
2900 2016-02-16  Tim Shen  <timshen@google.com>
2902         PR libstdc++/69794
2903         * include/bits/regex_scanner.h: Add different special character
2904         sets for grep and egrep regex.
2905         * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
2906         * testsuite/28_regex/regression.cc: Add new testcase.
2908 2016-02-08  Jonathan Wakely  <jwakely@redhat.com>
2910         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
2911         added 'constexpr' in previous commit.
2912         * configure: Regenerate.
2914         PR libstdc++/48891
2915         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
2916         checks for all targets except *-*-solaris2.* and ensure we find the
2917         libc math.h header not our own.
2918         * configure: Regenerate.
2920 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2922         * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
2923         New file.  Copied over from s390-linux-gnu.
2925 2016-02-04  Jonathan Wakely  <jwakely@redhat.com>
2927         PR libstdc++/69626
2928         * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
2929         with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
2930         * config.h.in: Regenerate.
2931         * configure: Regenerate.
2932         * testsuite/21_strings/c_strings/char/69626.cc: New.
2934         * doc/html/index.html: Regenerate.
2936         * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
2937         * doc/xml/manual/spine.xml: Update copyright years and author blurb.
2938         * doc/html/*: Regenerate.
2940 2016-02-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2942         PR libstdc++/69581
2943         * include/c_compatibility/math.h: Move header guards.
2944         * include/c_compatibility/stdlib.h: Likewise.
2946 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
2948         PR libstdc++/69506
2949         * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
2951 2016-01-28  John David Anglin  <danglin@gcc.gnu.org>
2953         PR libstdc++/69450
2954         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
2955         isinf and isnan functions into two independent checks.  Check on hpux.
2956         * config.h.in: Regenerate.
2957         * configure: Regenerate.
2958         * include/c_global/cmath (isinf(double), isnan(double)): Use
2959         _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
2960         respectively.
2962 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
2964         * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
2966 2016-01-27  Jonathan Wakely  <jwakely@redhat.com>
2968         PR libstdc++/69295
2969         * testsuite/ext/special_functions/hyperg/check_value.cc: Use
2970         -ffp-contract=off, and -ffloat-store to disable excess precision.
2971         * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
2972         -ffp-contract=off.
2974 2016-01-26  Jonathan Wakely  <jwakely@redhat.com>
2976         PR libstdc++/69478
2977         * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
2978         random_access_iterator_tag>): Check is_move_assignable when moving.
2979         (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
2980         Likewise.
2981         * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
2982         * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
2983         * testsuite/25_algorithms/move/69478.cc: New.
2984         * testsuite/25_algorithms/move_backward/69478.cc: new.
2986 2016-01-26  Andris Pavenis  <andris.pavenis@iki.fi>
2988         * include/c_compatibility/stdlib.h: Include wide character related
2989         definitions only when they are available in cstdlib.
2991 2016-01-25  Jonathan Wakely  <jwakely@redhat.com>
2993         PR libstdc++/69464
2994         * include/Makefile.am: Add new header.
2995         * include/Makefile.in: Regenerate.
2996         * include/bits/random.h (uniform_int_distribution): Move to
2997         bits/uniform_int_dist.h.
2998         * include/bits/random.tcc (uniform_int_distribution::operator(),
2999         uniform_int_distribution::__generate_impl): Likewise.
3000         * include/bits/uniform_int_dist.h: New header.
3001         * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3002         <bits/uniform_int_dist.h> instead of <random>.
3003         * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3004         move_iterators/1.cc: Include correct header for uninitialized_copy.
3005         * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3006         move_iterators/1.cc: Likewise.
3007         * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3008         header for vector.
3009         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3011 2016-01-23  John David Anglin  <danglin@gcc.gnu.org>
3013         PR libstdc++/69446
3014         * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3016 2016-01-22  Edward Smith-Rowland  <3dw4rd@verizon.net>
3018         TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3019         * include/c_compatibility/math.h: Import the TR29124 functions
3020         into the global namespace.
3021         * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3022         xfail and make compile-only.
3023         * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3024         * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3025         * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3026         * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3027         * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3028         * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3029         * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3030         * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3031         * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3032         * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3033         * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3034         * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3035         * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3036         * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3037         * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3038         * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3039         * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3040         * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3041         * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3042         * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3044 2016-01-22  Jonathan Wakely  <jwakely@redhat.com>
3046         PR libstdc++/69116
3047         * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3048         define result_type for types which can be safely used with valarrays.
3049         * testsuite/26_numerics/valarray/69116.cc: New.
3051         PR libstdc++/69413
3052         * config/os/gnu-linux/os_defines.h: Define
3053         _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3054         * include/c_global/cmath (isinf, isnan): Check it.
3055         * doc/xml/manual/internals.xml: Document it.
3056         * doc/html/*: Regenerate.
3058 2016-01-21  Jonathan Wakely  <jwakely@redhat.com>
3060         PR libstdc++/69406
3061         * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3062         * include/ext/type_traits.h: Likewise.
3063         * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3064         for presence of C headers.
3065         * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3066         dg-error line number.
3067         * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3068         * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3069         * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3071 2016-01-20  Torvald Riegel  <triegel@redhat.com>
3073         PR libstdc++/69310
3074         * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3076 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
3078         PR libstdc++/60401
3079         * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3080         copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3081         lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3082         nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3083         tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3084         Add using declarations.
3085         * testsuite/26_numerics/headers/cmath/60401.cc: New.
3087         PR libstdc++/69386
3088         * include/c_global/ccomplex: Ensure C++ language linkage.
3089         * include/c_global/cmath: Likewise.
3090         * include/c_global/cstdlib: Likewise.
3091         * include/c_global/ctgmath: Likewise.
3092         * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3094 2016-01-19  Jonathan Wakely  <jwakely@redhat.com>
3096         PR libstdc++/14608
3097         PR libstdc++/60401
3098         * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3099         --enable-cheaders=c_global configs.
3100         * include/Makefile.in: Regenerate.
3101         * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3102         test and allow inclusion from C files.
3103         * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3104         (at_quick_exit, quick_exit): Add using directives.
3105         * include/c_global/cmath: Use #include_next for math.h.
3106         * include/c_global/cstdlib: Use #include_next for stdlib.h.
3107         * testsuite/26_numerics/headers/cmath/14608.cc: New.
3108         * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3109         Remove xfail for most targets.
3110         * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3112 2016-01-18  Torvald Riegel  <triegel@redhat.com>
3114         * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3115         (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3116         and move after its definition.
3117         * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3118         * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3119         __GXX_WEAK__, and only provide transactional clones if
3120         _GLIBCXX_USE_WEAK_REF is true.  Don't provide stubs of libitm
3121         functions.
3123 2016-01-18  Jonathan Wakely  <jwakely@redhat.com>
3125         PR libstdc++/60637
3126         * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3128         PR libstdc++/69243
3129         * include/std/functional (_Function_base::_M_not_empty_function):
3130         Change overloads for pointers to take arguments by value.
3131         * testsuite/20_util/function/cons/57465.cc: Add tests for
3132         pointer-to-member cases.
3134         PR libstdc++/69340
3135         * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3136         Use macros for exception handling and fix unused parameter warning.
3138 2016-01-17  John David Anglin  <danglin@gcc.gnu.org>
3140         PR libstdc++/68734
3141         * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3143 2016-01-17  Torvald Riegel  <triegel@redhat.com>
3145         * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3147 2016-01-16  H.J. Lu  <hongjiu.lu@intel.com>
3149         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3150         __int128 symbols.
3152 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
3154         PR libstdc++/69293
3155         * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3156         static assertion that type is constructible from the arguments.
3157         * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
3158         * testsuite/20_util/uses_allocator/69293_neg.cc: New.
3159         * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
3161         PR libstdc++/69294
3162         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3163         and isnan on AIX. Quote variables.
3164         * configure: Regenerate.
3166 2016-01-15  Torvald Riegel  <triegel@redhat.com>
3168         * include/bits/basic_string.h (basic_string): Declare friends.
3169         * include/bits/c++config (_GLIBCXX_TXN_SAFE,
3170         _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
3171         * include/std/stdexcept (logic_error, domain_error, invalid_argument,
3172         length_error, out_of_range, runtime_error, range_error,
3173         underflow_error, overflow_error): Declare members as transaction-safe.
3174         (logic_error, runtime_error): Declare friend functions.
3175         * libsupc++/exception (exception, bad_exception): Declare members as
3176         transaction-safe.
3177         * src/c++11/cow-stdexcept.cc: Define transactional clones for the
3178         transaction-safe members of exceptions and helper functions.
3179         * libsupc++/eh_exception.cc: Adjust and define transactional clones.
3180         * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
3181         (CXXABI_1.3.10): New.
3182         * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
3183         (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
3184         * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
3185         * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
3186         * include/Makefile.in: Regenerate.
3187         * config.h.in: Regenerate.
3188         * configure: Regenerate.
3189         * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
3191 2016-01-15  Steve Ellcey  <sellcey@imgtec.com>
3193         * include/ext/random.tcc: Use __builtin_isfinite instead of
3194         std::isfinite.
3196 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
3198         * include/bits/std_mutex.h: Fix Doxygen @file name.
3200 2016-01-14  Edward Smith-Rowland  <3dw4rd@verizon.net>
3201             Jonathan Wakely  <jwakely@redhat.com>
3202             Florian Goth <CaptainSifff@gmx.de>
3204         Implement TR29124 C++ special Math Functions.
3205         * include/Makefile.am: Add new headers.
3206         * include/Makefile.in: Regenerate.
3207         * include/bits/specfun.h: New.
3208         * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
3209         * include/tr1/bessel_function.tcc: Ditto.
3210         * include/tr1/beta_function.tcc: Ditto.
3211         * include/tr1/cmath: Ditto.
3212         * include/tr1/ell_integral.tcc: Ditto.
3213         * include/tr1/exp_integral.tcc: Ditto.
3214         * include/tr1/gamma.tcc: Ditto.
3215         * include/tr1/hypergeometric.tcc: Ditto.
3216         * include/tr1/legendre_function.tcc: Ditto.
3217         * include/tr1/modified_bessel_func.tcc: Ditto.
3218         * include/tr1/poly_hermite.tcc: Ditto.
3219         * include/tr1/poly_laguerre.tcc: Ditto.
3220         * include/tr1/riemann_zeta.tcc: Ditto.
3221         * include/tr1/special_function_util.h: Ditto.
3222         * testsuite/ext/special_functions/conf_hyperg: New.
3223         * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
3224         * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
3225         * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
3226         * testsuite/ext/special_functions/hyperg: New.
3227         * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
3228         * testsuite/ext/special_functions/hyperg/check_value.cc: New.
3229         * testsuite/ext/special_functions/hyperg/compile.cc: New.
3230         * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
3231         * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
3232         * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
3233         * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
3234         * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
3235         * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
3236         * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
3237         * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
3238         * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
3239         * testsuite/special_functions/03_beta/check_nan.cc: New.
3240         * testsuite/special_functions/03_beta/check_value.cc: New.
3241         * testsuite/special_functions/03_beta/compile.cc: New.
3242         * testsuite/special_functions/03_beta/compile_2.cc: New.
3243         * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
3244         * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
3245         * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
3246         * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
3247         * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
3248         * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
3249         * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
3250         * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
3251         * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
3252         * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
3253         * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
3254         * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
3255         * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
3256         * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
3257         * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
3258         * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
3259         * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
3260         * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
3261         * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
3262         * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
3263         * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
3264         * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
3265         * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
3266         * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
3267         * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
3268         * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
3269         * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
3270         * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
3271         * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
3272         * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
3273         * testsuite/special_functions/11_ellint_1/check_value.cc: New.
3274         * testsuite/special_functions/11_ellint_1/compile.cc: New.
3275         * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
3276         * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
3277         * testsuite/special_functions/12_ellint_2/check_value.cc: New.
3278         * testsuite/special_functions/12_ellint_2/compile.cc: New.
3279         * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
3280         * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
3281         * testsuite/special_functions/13_ellint_3/check_value.cc: New.
3282         * testsuite/special_functions/13_ellint_3/compile.cc: New.
3283         * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
3284         * testsuite/special_functions/14_expint/check_nan.cc: New.
3285         * testsuite/special_functions/14_expint/check_value.cc: New.
3286         * testsuite/special_functions/14_expint/compile.cc: New.
3287         * testsuite/special_functions/14_expint/compile_2.cc: New.
3288         * testsuite/special_functions/15_hermite/check_nan.cc: New.
3289         * testsuite/special_functions/15_hermite/check_value.cc: New.
3290         * testsuite/special_functions/15_hermite/compile.cc: New.
3291         * testsuite/special_functions/15_hermite/compile_2.cc: New.
3292         * testsuite/special_functions/16_laguerre/check_nan.cc: New.
3293         * testsuite/special_functions/16_laguerre/check_value.cc: New.
3294         * testsuite/special_functions/16_laguerre/compile.cc: New.
3295         * testsuite/special_functions/16_laguerre/compile_2.cc: New.
3296         * testsuite/special_functions/17_legendre/check_nan.cc: New.
3297         * testsuite/special_functions/17_legendre/check_value.cc: New.
3298         * testsuite/special_functions/17_legendre/compile.cc: New.
3299         * testsuite/special_functions/17_legendre/compile_2.cc: New.
3300         * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
3301         * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
3302         * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
3303         * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
3304         * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
3305         * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
3306         * testsuite/special_functions/19_sph_bessel/compile.cc: New.
3307         * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
3308         * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
3309         * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
3310         * testsuite/special_functions/20_sph_legendre/compile.cc: New.
3311         * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
3312         * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
3313         * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
3314         * testsuite/special_functions/21_sph_neumann/compile.cc: New.
3315         * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
3316         * testsuite/util/specfun_testcase.h: New.
3317         * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
3318         * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
3319         * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
3320         * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
3321         * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
3322         * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
3323         * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
3325 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
3327         PR libstdc++/48891
3328         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3329         and isnan functions.
3330         * config.h.in: Regenerate.
3331         * configure: Regenerate.
3332         * include/c_global/cmath (isinf(double), isnan(double))
3333         [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
3334         * testsuite/26_numerics/headers/cmath/48891.cc: New.
3336 2016-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3338         PR libstdc++/66006
3339         * configure.host (abi_baseline_pair): Use separate baseline for
3340         Solaris 11+ and Solaris 10 with gld.
3341         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
3342         * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
3343         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
3345 2016-01-12  Daniel Kruegler  <daniel.kruegler@gmail.com>
3347         PR libstdc++/68877
3348         * include/std/type_traits: Following N4511, reimplement __is_swappable
3349         and __is_nothrow_swappable. Move __is_swappable to namespace std,
3350         adjust callers. Use __is_nothrow_swappable in swap.
3351         * include/bits/move.h: Use __is_nothrow_swappable in swap.
3352         * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
3353         __is_swappable related tests.
3354         * testsuite/20_util/is_swappable/value.cc: New.
3355         * testsuite/20_util/is_swappable/requirements/
3356         explicit_instantiation.cc: New.
3357         * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
3358         * testsuite/25_algorithms/swap/68877.cc: New.
3360 2016-01-12  Jonathan Wakely  <jwakely@redhat.com>
3362         * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
3364         PR libstdc++/69005
3365         PR libstdc++/69222
3366         * include/std/functional (function::_Invoke): Remove, use result_of.
3367         (function::_Callable): Replace alias template with class template
3368         and use partial specialization instead of _NotSelf alias template.
3369         (function(_Functor)): Add "not self" constraint so that _Callable is
3370         not used while type is incomplete.
3371         * testsuite/20_util/function/69222.cc: New.
3373 2016-01-11  Jonathan Wakely  <jwakely@redhat.com>
3375         PR libstdc++/60976
3376         * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
3377         Define partial specialization.
3378         * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
3379         destroy members to std::allocator explicit specialization.
3381 2016-01-08  Jonathan Wakely  <jwakely@redhat.com>
3383         * testsuite/26_numerics/headers/cmath/
3384         c99_classification_macros_c++.cc: Rename to ...
3385         * testsuite/26_numerics/headers/cmath/
3386         c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
3387         * testsuite/26_numerics/headers/cmath/
3388         c99_classification_macros_c++0x.cc: Rename to ...
3389         * testsuite/26_numerics/headers/cmath/
3390         c99_classification_macros_c++11.cc: Here.
3392         PR libstdc++/69190
3393         * include/bits/uses_allocator.h: Add missing include.
3395 2016-01-07  Jonathan Wakely  <jwakely@redhat.com>
3397         PR libstdc++/69105
3398         PR libstdc++/69106
3399         PR libstdc++/69114
3400         * include/bits/stl_iterator.h (back_insert_iterator,
3401         front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
3402         * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
3403         * include/std/future (__future::base::_State_baseV2::__setter):
3404         Likewise.
3405         * include/std/scoped_allocator (__outermost): Likewise.
3406         * testsuite/20_util/scoped_allocator/69114.cc: New.
3407         * testsuite/20_util/uses_allocator/69114.cc: New.
3408         * testsuite/30_threads/promise/69106.cc: New.
3410 2016-01-06  Jonathan Wakely  <jwakely@redhat.com>
3412         PR libstdc++/69092
3413         * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
3414         Remove _GLIBCXX_NOEXCEPT.
3415         testsuite/21_strings/basic_string/cons/char/69092.cc: New.
3417         * include/Makefile.am: Adjust.
3418         * include/Makefile.in: Regenerate.
3419         * include/bits/mutex.h: Rename to bits/std_mutex.h.
3420         * include/std/condition_variable: Adjust include.
3421         * include/std/mutex: Likewise.
3423 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
3425         Update copyright years.
3427 Copyright (C) 2016 Free Software Foundation, Inc.
3429 Copying and distribution of this file, with or without modification,
3430 are permitted in any medium without royalty provided the copyright
3431 notice and this notice are preserved.