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