1 2016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
4 * include/bits/stl_construct.h: (_Construct_novalue): New.
5 (_Destroy_n_aux, _Destroy_n): New.
6 * include/bits/stl_uninitialized.h: (type_traits):
7 New include in C++11 mode.
8 (__uninitialized_default_novalue_1): New.
9 (__uninitialized_default_novalue_n_1): Likewise.
10 (__uninitialized_default_novalue): Likewise.
11 (__uninitialized_default_novalue_n): Likewise.
12 (__uninitialized_copy_n_pair): Likewise.
13 (uninitialized_default_construct):
14 Use __uninitialized_default_novalue.
15 (uninitialized_default_construct_n):
16 Use __uninitialized_default_novalue_n.
17 (uninitialized_value_construct): Use __uninitialized_default.
18 (uninitialized_value_construct_n): Use __uninitialized_default_n.
19 (uninitialized_move): Use uninitialized_copy.
20 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
21 (destroy_at): Use _Destroy.
23 (destroy_n): Likewise.
24 * testsuite/20_util/specialized_algorithms/
25 memory_management_tools/1.cc: Add tests for exceptions,
26 add tests for trivial cases for construct and move.
28 2016-09-20 Jonathan Wakely <jwakely@redhat.com>
30 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
31 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
33 2016-09-19 Jonathan Wakely <jwakely@redhat.com>
36 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
37 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
38 division to int to work with Python 3.
40 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
42 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
43 display_hint to be set by subclasses.
44 (StdVariantPrinter): Use array for display_hint. Adjust output to be
45 more similar to std::any and std::optional output.
46 (register_type_printers): Add type printers for basic_string_view
47 typedefs and experimental::any. Adjust type printers for
48 fundamentals_v1 templates to match fundamentals_v2 and later.
49 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
52 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
54 (ListWorkerBase.get_value_from_node): Define new method.
55 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
57 2016-09-17 Jonathan Wakely <jwakely@redhat.com>
59 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
60 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
61 Register for C++17 components in namespace std. Strip inline namespace
64 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
66 * doc/xml/manual/profile_mode.xml: Fix typo.
67 * doc/html/manual/profile_mode_devel.html: Regenerate.
69 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
70 Marc Glisse <marc.glisse@inria.fr>
72 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
73 (operator new(size_t, align_val_t)): Replace modulus operator with
76 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
78 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
79 Increase alignment if less than sizeof(void*).
80 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
81 Increase size if not a multiple of alignment.
83 2016-09-15 Jonathan Wakely <jwakely@redhat.com>
85 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
86 * doc/html/*: Regenerate.
88 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
90 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
92 2016-09-14 Marek Polacek <polacek@redhat.com>
94 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
97 2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
99 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
100 Move dg-do directive before dg-skip.
101 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
102 Move dg-do directive before dg-require.
103 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
104 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
105 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
106 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
107 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
108 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
109 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
110 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
111 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
112 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
113 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
114 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
115 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
116 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
117 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
119 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
120 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
121 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
122 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
123 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
125 2016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
127 Implement P0040R3, Extending memory management tools.
128 * include/bits/stl_uninitialized.h (utility): New include
130 (uninitialized_default_construct): New.
131 (uninitialized_default_construct_n): Likewise.
132 (uninitialized_value_construct): Likewise.
133 (uninitialized_value_construct_n): Likewise.
134 (uninitialized_move): Likewise.
135 (uninitialized_move_n): Likewise.
136 (destroy_at, destroy, destroy_n): Likewise.
137 * testsuite/20_util/specialized_algorithms/memory_management_tools/
140 2016-09-12 Jason Merrill <jason@redhat.com>
142 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
144 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
146 Implement P0253R1, Fixing a design mistake in the searchers
147 interface in Library Fundamentals.
148 * include/std/functional: (utility): New include in C++17 mode.
149 (default_searcher): Use a pair as return type, adjust the definition.
150 (boyer_moore_searcher): Likewise.
151 (boyer_moore_horspool_searcher): Likewise.
152 * testsuite/20_util/function_objects/searchers.cc: Adjust.
154 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
156 Implement C++17 string searchers.
157 * include/std/functional: (unordered_map, vector): New includes
159 (array, bits/stl_algo.h): Likewise.
160 (default_searcher, __boyer_moore_map_base): New.
161 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
162 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
163 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
164 (make_boyer_moore_searcher): Likewise.
165 (make_boyer_moore_horspool_searcher): Likewise.
166 * testsuite/20_util/function_objects/searchers.cc: New.
168 2016-09-12 Matthew Wahab <matthew.wahab@arm.com>
170 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
171 Move dg-do directive before dg-require.
172 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
173 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
175 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
176 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
177 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
178 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
179 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
180 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
181 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
182 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
183 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
184 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
185 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
186 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
187 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
189 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
191 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
192 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
193 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
195 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
197 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
199 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
201 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
203 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
205 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
207 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
209 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
211 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
213 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
215 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
217 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
219 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
221 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
223 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
225 * testsuite/23_containers/forward_list/debug/
226 iterator_self_move_assign_neg.cc: Likewise.
227 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
229 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
231 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
233 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
235 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
237 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
239 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
241 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
243 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
244 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
245 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
246 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
247 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
248 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
249 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
250 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
251 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
252 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
253 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
255 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
256 * testsuite/23_containers/map/debug/60499.cc: Likewise.
257 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
258 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
259 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
260 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
261 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
262 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
263 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
265 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
266 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
267 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
268 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
269 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
270 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
271 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
272 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
273 * testsuite/23_containers/multimap/debug/
274 iterator_self_move_assign_neg.cc: Likewise.
275 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
277 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
278 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
279 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
280 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
281 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
282 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
283 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
284 * testsuite/23_containers/multiset/debug/
285 iterator_self_move_assign_neg.cc: Likewise.
286 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
288 * testsuite/23_containers/set/debug/60499.cc: Likewise.
289 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
290 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
291 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
292 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
293 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
294 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
295 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
297 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
298 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
299 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
300 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
301 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
303 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
304 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
305 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
307 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
309 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
311 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
312 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
313 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
314 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
315 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
316 * testsuite/23_containers/unordered_map/debug/
317 invalid_local_iterator_compare_neg.cc: Likewise.
318 * testsuite/23_containers/unordered_map/debug/
319 invalid_local_iterator_range_neg.cc: Likewise.
320 * testsuite/23_containers/unordered_map/debug/
321 iterator_self_move_assign_neg.cc: Likewise.
322 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
324 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
326 * testsuite/23_containers/unordered_map/debug/
327 use_erased_local_iterator_neg.cc: Likewise.
328 * testsuite/23_containers/unordered_map/debug/
329 use_invalid_iterator_neg.cc: Likewise.
330 * testsuite/23_containers/unordered_map/debug/
331 use_invalid_local_iterator_neg.cc: Likewise.
332 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
333 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
335 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
337 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
339 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
341 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
343 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
345 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
347 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
349 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
351 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
353 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
355 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
357 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
359 * testsuite/23_containers/unordered_multimap/debug/
360 invalid_local_iterator_compare_neg.cc: Likewise.
361 * testsuite/23_containers/unordered_multimap/debug/
362 invalid_local_iterator_range_neg.cc: Likewise.
363 * testsuite/23_containers/unordered_multimap/debug/
364 iterator_self_move_assign_neg.cc: Likewise.
365 * testsuite/23_containers/unordered_multimap/debug/
366 max_load_factor_neg.cc: Likewise.
367 * testsuite/23_containers/unordered_multimap/debug/
368 self_move_assign_neg.cc: Likewise.
369 * testsuite/23_containers/unordered_multimap/debug/
370 use_erased_local_iterator_neg.cc: Likewise.
371 * testsuite/23_containers/unordered_multimap/debug/
372 use_invalid_iterator_neg.cc: Likewise.
373 * testsuite/23_containers/unordered_multimap/debug/
374 use_invalid_local_iterator_neg.cc: Likewise.
375 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
377 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
379 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
381 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
383 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
385 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
387 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
389 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
391 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
393 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
395 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
397 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
399 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
401 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
403 * testsuite/23_containers/unordered_multiset/debug/
404 invalid_local_iterator_compare_neg.cc: Likewise.
405 * testsuite/23_containers/unordered_multiset/debug/
406 invalid_local_iterator_range_neg.cc: Likewise.
407 * testsuite/23_containers/unordered_multiset/debug/
408 iterator_self_move_assign_neg.cc: Likewise.
409 * testsuite/23_containers/unordered_multiset/debug/
410 max_load_factor_neg.cc: Likewise.
411 * testsuite/23_containers/unordered_multiset/debug/
412 self_move_assign_neg.cc: Likewise.
413 * testsuite/23_containers/unordered_multiset/debug/
414 use_erased_local_iterator_neg.cc: Likewise.
415 * testsuite/23_containers/unordered_multiset/debug/
416 use_invalid_iterator_neg.cc: Likewise.
417 * testsuite/23_containers/unordered_multiset/debug/
418 use_invalid_local_iterator_neg.cc: Likewise.
419 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
420 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
421 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
422 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
424 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
425 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
426 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
428 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
430 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
432 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
433 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
434 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
435 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
436 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
437 * testsuite/23_containers/unordered_set/debug/
438 invalid_local_iterator_compare_neg.cc: Likewise.
439 * testsuite/23_containers/unordered_set/debug/
440 invalid_local_iterator_range_neg.cc: Likewise.
441 * testsuite/23_containers/unordered_set/debug/
442 iterator_self_move_assign_neg.cc: Likewise.
443 * testsuite/23_containers/unordered_set/debug/
444 max_load_factor_neg.cc: Likewise.
445 * testsuite/23_containers/unordered_set/debug/
446 self_move_assign_neg.cc: Likewise.
447 * testsuite/23_containers/unordered_set/debug/
448 use_erased_local_iterator_neg.cc: Likewise.
449 * testsuite/23_containers/unordered_set/debug/
450 use_invalid_iterator_neg.cc: Likewise.
451 * testsuite/23_containers/unordered_set/debug/
452 use_invalid_local_iterator_neg.cc: Likewise.
453 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
454 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
455 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
456 * testsuite/23_containers/vector/debug/
457 iterator_self_move_assign_neg.cc: Likewise.
458 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
460 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
461 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
462 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
463 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
464 * testsuite/29_atomics/atomic/60658.cc: Likewise.
465 * testsuite/29_atomics/atomic/60695.cc: Likewise.
466 * testsuite/29_atomics/atomic/62259.cc: Likewise.
467 * testsuite/29_atomics/atomic/64658.cc: Likewise.
468 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
469 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
470 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
473 2016-09-11 Jonathan Wakely <jwakely@redhat.com>
475 * libsupc++/new_opant.cc: Include exception_defines.h.
476 * libsupc++/new_opvant.cc: Likewise.
478 2016-09-09 Jason Merrill <jason@redhat.com>
480 Implement P0035R4, C++17 new of over-aligned types.
481 * libsupc++/new: Declare aligned new/delete operators.
482 * config/abi/pre/gnu.ver: Export them.
483 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
485 * libsupc++/new_opa.cc: New.
486 * libsupc++/new_opant.cc: New.
487 * libsupc++/new_opva.cc: New.
488 * libsupc++/new_opva.cc: New.
489 * libsupc++/del_opa.cc: New.
490 * libsupc++/del_opant.cc: New.
491 * libsupc++/del_opsa.cc: New.
492 * libsupc++/del_opva.cc: New.
493 * libsupc++/del_opvant.cc: New.
494 * libsupc++/del_opvsa.cc: New.
495 * libsupc++/Makefile.am: Build them.
497 2016-09-05 Tim Shen <timshen@google.com>
499 * include/std/variant: include bits/move.h for std::addressof.
501 2016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
503 * include/std/variant (_Variant_storage::_M_storage()): Use
504 std::addressof instead of operator& to take address.
506 2016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
508 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
509 setrlimit on both native and cross targets.
510 * configure: Regenerate.
512 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
514 * include/bits/shared_ptr.h (_Assignable): New alias template.
515 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
516 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
517 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
519 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
520 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
521 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
522 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
524 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
525 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
527 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
529 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
530 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
531 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
532 expected errors. Remove unnecessary code.
533 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
535 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
537 * testsuite/23_containers/set/move_comparison.cc: New test.
539 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
542 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
545 * include/std/type_traits (is_constructible): Forward-declare...
546 (__is_base_to_derived_ref): ...and use here.
547 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
548 * testsuite/20_util/is_constructible/77395.cc: New.
549 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
550 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
552 * testsuite/20_util/tuple/77395.cc: New.
554 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
556 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
557 directive above dg-require-namedlocale directive.
558 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
559 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
560 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
561 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
562 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
564 2016-08-27 Tim Shen <timshen@google.com>
567 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
568 _M_expression_term): Modify to support dash literal.
569 * include/bits/regex_scanner.h: Add dash as a token type to make
570 a different from the mandated dash literal by escaping.
571 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
572 token in bracket expression parsing.
573 * testsuite/28_regex/regression.cc: Add new testcases.
575 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
578 * doc/xml/manual/intro.xml: Document DR 2127 change.
579 * doc/html/*: Regenerate.
580 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
581 (operator++(), operator++(int)): Use injected class name.
582 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
584 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
585 using -std in dg-options.
587 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
588 Pedro Alves <palves@redhat.com>
590 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
591 and restore dg-interpreter-batch-mode.
592 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
593 gdb-dg-runtest instead of dg-runtest.
594 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
596 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
598 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
599 precise patterns for basic_string constructors.
600 (GLIBCXX_3.4.23): Export new constructors.
601 * doc/xml/manual/intro.xml: Document LWG 2583 status.
602 * doc/html/*: Regenerate.
603 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
604 (basic_string(const basic_string&, size_type, const Alloc&)): Add
605 new constructor for LWG 2583.
606 (basic_string(const basic_string&, size_type, size_type)): Remove
608 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
609 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
610 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
611 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
613 2016-08-24 Aditya Kumar <hiraditya@msn.com>
615 * include/bits/algorithmfwd.h: Remove trailing whitespace.
616 * include/bits/shared_ptr_base.h: Likewise.
618 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
620 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
621 * include/profile/array (array): Likewise.
622 (array::swap): Fix exception specification for zero-sized arrays.
625 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
626 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
627 * testsuite/23_containers/map/77334.cc: New test.
629 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
630 * doc/html/*: Regenerate.
632 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
633 * testsuite/experimental/feat-lib-fund.cc: Likewise.
636 * include/bits/stl_iterator.h
637 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
638 define for C++98 mode.
639 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
640 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
642 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
643 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
644 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
645 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
647 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
648 difference operator for C++98.
649 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
651 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
652 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
653 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
654 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
655 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
657 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
658 _GLIBCXX14_CONSTEXPR.
659 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
660 * include/std/array (array::begin, array::end, array::rbegin)
661 (array::rend, array::cbegin, array:cend, array::crbegin)
662 (array::crend, array::operator[], array::at, array::front)
663 (array::back, array::data): Likewise.
664 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
665 with separate tests for C++11, C++14, and C++17.
666 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
667 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
668 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
670 2016-08-22 Tim Shen <timshen@google.com>
672 Split _M_dfs() into smaller functions.
673 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
674 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
675 (_M_handle_line_end_assertion, _M_handle_word_boundary)
676 (_M_handle_subexpr_lookahead, _M_handle_match)
677 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
678 Add separate function declarations.
679 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
681 2016-08-22 Gleb Natapov <gleb@scylladb.com>
684 * config/abi/pre/gnu-versioned-namespace.ver: Export
685 __cxa_init_primary_exception and std::exception_ptr(void*).
686 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
687 export __cxa_init_primary_exception and std::exception_ptr(void*).
688 * include/Makefile.am: Add new headers.
689 * include/Makefile.in: Regenerate.
690 * libsupc++/Makefile.am: Add new headers.
691 * libsupc++/Makefile.in: Regenerate.
692 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
693 * libsupc++/cxxabi_init_exception.h: New header.
694 (__cxa_init_primary_exception): Declare.
695 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
696 (__cxa_throw): Use __cxa_init_primary_exception.
697 * libsupc++/exception (std::exception): Move to ...
698 * libsupc++/exception.h: New header.
699 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
701 (__exception_ptr::__dest_thunk): New function template.
702 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
703 Use __cxa_allocate_exception and __cxa_init_primary_exception to
704 create exception_ptr.
705 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
706 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
708 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
710 * doc/xml/api.xml: Replace hardcoded links for specific versions with
711 link to docs for all releases.
712 * doc/html/*: Regenerate.
715 * doc/xml/manual/intro.xml: Document DR 2062 change.
716 * include/std/functional (function::swap): Add noexcept.
717 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
718 * testsuite/20_util/function/77322.cc: New test.
720 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
722 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
723 *-*-solaris* instead of -pthreads.
724 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
725 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
726 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
727 * testsuite/23_containers/list/pthread1.cc: Likewise.
728 * testsuite/23_containers/list/pthread5.cc: Likewise.
729 * testsuite/23_containers/map/pthread6.cc: Likewise.
730 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
731 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
732 * testsuite/30_threads/shared_mutex/*: Likewise.
733 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
734 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
735 default_weaktoshared.cc: Likewise.
736 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
737 mutex_weaktoshared.cc: Likewise.
738 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
739 dg-require-effective-target instead of using -std option.
740 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
742 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
743 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
745 * testsuite/30_threads/async/*: Likewise.
746 * testsuite/30_threads/call_once/*: Likewise.
747 * testsuite/30_threads/condition_variable/*: Likewise.
748 * testsuite/30_threads/condition_variable_any/*: Likewise.
749 * testsuite/30_threads/future/*: Likewise.
750 * testsuite/30_threads/lock/*: Likewise.
751 * testsuite/30_threads/mutex/*: Likewise.
752 * testsuite/30_threads/packaged_task/*: Likewise.
753 * testsuite/30_threads/promise/*: Likewise.
754 * testsuite/30_threads/recursive_mutex/*: Likewise.
755 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
756 * testsuite/30_threads/shared_future/*: Likewise.
757 * testsuite/30_threads/shared_lock/*: Likewise.
758 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
759 * testsuite/30_threads/this_thread/*: Likewise.
760 * testsuite/30_threads/thread/*: Likewise.
761 * testsuite/30_threads/timed_mutex/*: Likewise.
762 * testsuite/30_threads/try_lock/*: Likewise.
763 * testsuite/30_threads/unique_lock/*: Likewise.
765 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
766 * doc/html/*: Regenerate.
767 * include/experimental/functional (_Not_fn, not_fn): Match C++17
769 * include/std/functional (_Not_fn, not_fn): Define for C++17.
770 * testsuite/20_util/not_fn/1.cc: New.
771 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
772 Remove test for volatile-qualified wrapper.
774 * include/std/atomic (atomic::is_always_lock_free): Define.
775 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
776 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
777 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
778 * doc/xml/manual/status_cxx2017.xml: Update status.
779 * doc/html/*: Regenerate.
781 * include/experimental/tuple (apply): Qualify call to __apply_impl.
782 * include/std/tuple (apply): Likewise.
783 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
785 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
786 * testsuite/experimental/type_traits/value.cc: Likewise.
788 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
790 * doc/html/*: Regenerate.
792 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
794 Implement the latest proposed resolution of LWG 2756.
795 * include/std/optional (Optional_base(const _Tp&))
796 (Optional_base(_Tp&&), using _Base::_Base): Remove.
797 (optional(nullopt_t)): New.
798 (optional(_Up&&)): Invoke base directly with in_place
799 rather than creating a temporary, add default template
800 argument, change constraints.
801 (optional(const optional<_Up>&)): Invoke base directly
802 with in_place, remove unnecessary constraints.
803 (optional(optional<_Up>&& __t)): Likewise.
804 (optional(in_place_t, _Args&&...)): New.
805 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
806 (operator=(_Up&&)): Add default template argument, change constraints.
807 (operator=(const optional<_Up>&)): Put is_same first in the
809 (operator=(optional<_Up>&&)): Likewise.
810 * testsuite/20_util/optional/assignment/5.cc: Add a test to
811 verify assignment from something that can't be perfect-forwarded.
812 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
813 that a nested optional is disengaged when constructed
814 from a disengaged element type, and to verify that assignments
815 from an engaged element type engage the optional.
817 2016-08-18 Tim Shen <timshen@google.com>
821 * include/Makefile.am: Add new file std/variant.
822 * include/Makefile.in: Generated from Makefile.am.
823 * include/bits/enable_special_members.h: Add a tag type to allow
824 the construction in non-default constructor.
825 * include/bits/uses_allocator.h: Add convenience traits to
826 detect constructibility.
827 * include/std/variant: Implement <variant>.
828 * testsuite/20_util/variant/compile.cc: Compile-time tests.
829 * testsuite/20_util/variant/run.cc: Runtime tests.
831 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
833 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
834 (test.new_tests): Rewrite section.
835 (tests.dg.directives): New section.
836 * doc/html/*: Regenerate.
838 * doc/xml/manual/test.xml: Improve documentation of test targets.
839 Document new-abi-baseline, check-debug, and check-parallel targets.
841 * doc/xml/manual/build_hacking.xml: New section on shared library
844 * doc/xml/manual/build_hacking.xml: Improve markup.
845 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
847 * doc/xml/faq.xml: Change link text to "Testing".
849 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
850 dg-options directive.
852 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
854 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
855 directive and use effective target instead of dg-options.
857 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
858 instead of -std in dg-options.
859 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
860 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
861 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
862 * testsuite/20_util/hash/quality.cc: Likewise.
863 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
864 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
865 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
866 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
867 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
868 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
870 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
871 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
872 * testsuite/27_io/rvalue_streams.cc: Likewise.
874 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
876 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
877 Remove duplicate dg-options directive.
879 * testsuite/ext/profile/all.cc: Use effective target instead of
880 -std=gnu++11. Use dg-additional-options instead of repeating options.
882 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
883 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
884 instead of dg-excess-errors.
886 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
888 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
889 * testsuite/experimental/ratio/value.cc: Likewise.
890 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
892 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
893 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
894 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
895 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
896 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
897 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
898 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
899 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
900 * testsuite/tr1/5_numerical_facilities/special_functions/
901 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
904 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
905 expected signatures for C++14 compatibility.
908 * include/bits/basic_string.h (operator=(__sv_type)
909 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
910 (replace(size_type, size_type, __sv_type))
911 (replace(const_iterator, const_iterator, __sv_type))
912 (find(__sv_type, size_type), rfind(__sv_type, size_type))
913 (compare(size_type, size_type, __sv_type)): Reformat.
914 (_If_sv): Define helper for SFINAE constaints.
915 (append(const _Tp&, size_type, size_type))
916 (assign(const _Tp&, size_type, size_type))
917 (insert(size_type, const _Tp&, size_type, size_type))
918 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
920 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
922 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
924 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
926 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
928 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
930 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
932 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
934 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
936 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
938 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
940 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
943 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
946 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
947 pointers to start and end of storage.
948 * testsuite/23_containers/vector/bool/72847.cc: New test.
949 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
950 _M_finish after deallocating.
951 (vector<bool>::_M_fill_insert): Likewise.
952 (vector<bool>::_M_insert_range): Likewise.
953 (vector<bool>::_M_insert_aux): Likewise.
955 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
957 Implement LWG 2744 and LWG 2754.
958 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
959 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
960 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
962 (emplace(_Args&&...)): Likewise.
963 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
964 * include/std/utility: (__is_in_place_type_impl): New.
965 (__is_in_place_type): Likewise.
966 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
968 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
969 in_place constructor.
970 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
971 * testsuite/20_util/any/requirements.cc: Add a test for
972 in_place-constructing a non-default-constructible type.
974 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
976 Add a feature macro for C++17 make_from_tuple.
977 * include/std/tuple (__cpp_lib_make_from_tuple): New.
978 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
979 Qualify the call to get<>().
980 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
982 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
984 * src/filesystem/ops.cc: Always include ostream and
986 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
987 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
988 sendfile fails with ENOSYS or EINVAL.
990 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
993 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
996 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
998 Implement C++17 make_from_tuple.
999 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1000 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1002 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1005 * include/bits/basic_string.h
1006 (append(__sv_type, size_type, size_type)): Turn into a template,
1007 change parameter type, constrain, add a conversion to __sv_type
1008 from the dependent parameter type.
1009 (assign(__sv_type, size_type, size_type)): Likewise.
1010 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1011 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1013 (compare(size_type, size_type,__sv_type, size_type, size_type)):
1015 * testsuite/21_strings/basic_string/lwg2758.cc: New.
1017 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
1019 * doc/xml/manual/status_cxx2017.xml: Update status table.
1020 * doc/html/manual/status.html: Regenerate.
1022 * testsuite/lib/libstdc++.exp: Fix typo in comment.
1025 * include/std/functional (_Function_base::_Base_manager::_M_clone):
1026 Qualify new operator.
1027 * testsuite/20_util/function/cons/72820.cc: New test.
1029 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1030 * doc/html/manual/status.html: Regenerate.
1031 * include/Makefile.am: Add new header.
1032 * include/Makefile.in: Regenerate.
1033 * include/bits/invoke.h: New header.
1034 (__invoke): Make constexpr. Add && to types in exception specification.
1035 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1036 names. Include <bits/invoke.h> and use std::__invoke.
1037 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1039 (invoke): Add && to types in exception specification.
1040 * include/std/tuple (apply, __apply_impl): Define for C++17.
1041 * testsuite/20_util/tuple/apply/1.cc: New test.
1042 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1045 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
1047 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1048 * doc/html/manual/status.html: Regenerate.
1050 * include/std/chrono (floor, ceil, round, abs): New for C++17.
1051 * testsuite/20_util/duration_cast/rounding.cc: New test.
1052 * testsuite/20_util/time_point_cast/rounding.cc: New test.
1053 * doc/xml/manual/status_cxx2017.xml: Update status table.
1054 * doc/html/manual/status.html: Regenerate.
1055 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1057 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1058 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1059 * testsuite/20_util/duration/literals/range.cc: Likewise.
1061 * include/std/functional (__callable_functor): Remove.
1062 (_Function_handler::_M_invoke): Use __invoke instead of
1063 __callable_functor or mem_fn.
1064 (function::_Callable): Use lvalue in result_of expression.
1065 (function): Remove TODO comments about allocators.
1066 * testsuite/20_util/function/cons/refqual.cc: New test.
1068 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
1070 * doc/xml/manual/status_cxx2017.xml: Update status table.
1071 * include/std/functional (__inv_unwrap): Move to <type_traits>.
1072 (__invoke_impl): Remove exception specifications.
1073 (__invoke, invoke): Add exception specifications using
1074 __is_nothrow_callable.
1075 * include/std/type_traits (__inv_unwrap): Move from <functional>.
1076 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1077 (__is_callable, __is_nothrow_callable): New traits.
1078 (is_callable, is_callable_v): New C++17 traits.
1079 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1080 * testsuite/20_util/is_callable/requirements/
1081 explicit_instantiation.cc: New test.
1082 * testsuite/20_util/is_callable/requirements/
1083 explicit_instantiation_ext.cc: New test.
1084 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1085 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1087 * testsuite/20_util/is_callable/value.cc: New test.
1088 * testsuite/20_util/is_callable/value_ext.cc: New test.
1089 * testsuite/20_util/is_nothrow_callable/requirements/
1090 explicit_instantiation.cc: New test.
1091 * testsuite/20_util/is_nothrow_callable/requirements/
1092 explicit_instantiation_ext.cc: New test.
1093 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1095 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1097 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1098 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1100 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1101 * doc/html/manual/status.html: Regenerate.
1103 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1104 effective target not dg-options. Move check for feature-test macro to:
1105 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1108 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1110 (__invoke_impl): Remove unused template parameters.
1111 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1113 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1114 and test __invoke extension for C++11.
1116 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
1118 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1119 Define feature-test macro.
1120 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1123 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1124 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1125 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1126 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1127 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1129 * include/std/utility (as_const): Define.
1130 * testsuite/20_util/as_const/1.cc: New test.
1131 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1133 * include/bits/shared_ptr.h (owner_less): Add default template
1135 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1137 (owner_less<void>): Define specialization.
1138 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1140 * testsuite/20_util/owner_less/void.cc: New test.
1141 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1143 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1144 Define feature-test macro.
1145 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1146 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1147 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1148 (__cpp_lib_type_trait_variable_templates): Define.
1150 * include/bits/stl_function.h: Remove commented-out macro.
1151 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1152 Define feature-test macro.
1153 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1155 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1156 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1158 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1159 do #error for C++17.
1160 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1161 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1162 * include/tr1/bessel_function.tcc: Likewise.
1163 * include/tr1/beta_function.tcc: Likewise.
1164 * include/tr1/cmath: Likewise.
1165 * include/tr1/ell_integral.tcc: Likewise.
1166 * include/tr1/exp_integral.tcc: Likewise.
1167 * include/tr1/gamma.tcc: Likewise.
1168 * include/tr1/hypergeometric.tcc: Likewise.
1169 * include/tr1/legendre_function.tcc: Likewise.
1170 * include/tr1/modified_bessel_func.tcc: Likewise.
1171 * include/tr1/poly_hermite.tcc: Likewise.
1172 * include/tr1/poly_laguerre.tcc: Likewise.
1173 * include/tr1/riemann_zeta.tcc: Likewise.
1174 * include/tr1/special_function_util.h: Likewise.
1175 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1177 * include/std/type_traits (has_trivial_default_constructor): Remove.
1178 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1179 * testsuite/20_util/has_trivial_copy_assign/requirements/
1180 explicit_instantiation.cc: Remove test.
1181 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1183 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1185 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1186 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1187 explicit_instantiation.cc: Likewise.
1188 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1189 typedefs.cc: Likewise.
1190 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1191 * testsuite/20_util/has_trivial_default_constructor/requirements/
1192 explicit_instantiation.cc: Likewise.
1193 * testsuite/20_util/has_trivial_default_constructor/requirements/
1194 typedefs.cc: Likewise.
1195 * testsuite/20_util/has_trivial_default_constructor/value.cc:
1197 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1198 Check has_trivial_default_constructor, has_trivial_copy_constructor,
1199 and has_trivial_copy_assign are not defined.
1200 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1202 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1203 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1204 dg-error line number.
1205 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1208 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1210 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1211 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1212 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1214 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1216 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1218 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1220 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1222 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1225 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1228 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1229 dg-error to relevant line.
1230 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1232 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1234 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1236 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1237 options are present that aren't valid for C.
1238 * testsuite/abi/header_cxxabi.c: Likewise.
1240 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1241 check_value.cc: Do not add special functions to namespace std in TR1
1244 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1245 run for C++11 and later.
1246 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1248 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1249 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1250 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1251 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1252 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1254 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1256 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1257 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1259 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1261 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1263 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1264 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1265 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1266 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1267 * testsuite/special_functions/03_beta/compile.cc: Likewise.
1268 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1269 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1270 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1272 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1273 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1274 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1275 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1277 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1278 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1279 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1280 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1282 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1283 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1284 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1285 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1287 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1288 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1289 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1290 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1291 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1293 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1294 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1295 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1296 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1298 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1299 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1300 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1301 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1302 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1303 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1304 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1305 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
1306 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
1307 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
1308 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1309 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
1310 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
1311 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
1312 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1313 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
1314 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
1315 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
1316 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1317 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
1318 * testsuite/special_functions/14_expint/compile.cc: Likewise.
1319 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
1320 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1321 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
1322 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
1323 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
1324 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1325 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
1326 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
1327 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
1328 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1329 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
1330 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
1331 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
1332 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
1333 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
1335 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
1336 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
1337 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
1338 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
1339 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
1340 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
1341 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
1342 * testsuite/special_functions/20_sph_legendre/check_value.cc:
1344 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
1345 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
1346 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
1347 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
1348 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
1349 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
1351 * testsuite/tr1/5_numerical_facilities/special_functions/
1352 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
1354 * testsuite/tr1/5_numerical_facilities/special_functions/
1355 09_cyl_bessel_j/check_value.cc: Likewise.
1356 * testsuite/tr1/5_numerical_facilities/special_functions/
1357 10_cyl_bessel_k/check_value.cc: Likewise.
1358 * testsuite/tr1/5_numerical_facilities/special_functions/
1359 11_cyl_neumann/check_value.cc: Likewise.
1360 * testsuite/tr1/5_numerical_facilities/special_functions/
1361 21_sph_bessel/check_value.cc: Likewise.
1362 * testsuite/tr1/5_numerical_facilities/special_functions/
1363 23_sph_neumann/check_value.cc: Likewise.
1365 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1367 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1368 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1369 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1370 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
1371 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
1372 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
1374 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1376 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
1379 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
1380 additional flags for compiling libtestc++.a objects.
1382 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
1384 * include/bits/basic_string.h (data() const): Update comment.
1385 (data()): Add non-const overload for C++17.
1386 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
1387 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
1389 * include/bits/basic_string.tcc: Disable explicit instantiation
1390 declarations for C++17.
1392 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
1393 ignored "xfail" from { dg-do compile { xfail selector } } directive.
1394 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
1396 * testsuite/26_numerics/headers/cmath/
1397 c99_classification_macros_c++11.cc: Likewise.
1398 * testsuite/26_numerics/headers/cmath/
1399 c99_classification_macros_c++98.cc: Likewise.
1400 * testsuite/26_numerics/headers/cmath/
1401 c99_classification_macros_c.cc: Likewise.
1403 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
1404 for different construct/destroy counts in C++98 mode.
1406 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
1408 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
1410 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
1413 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
1414 C++98-compatible initialization for array.
1416 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
1417 unused header and variable from compile-only test.
1418 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
1419 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
1420 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
1421 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
1424 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
1425 Remove duplicate dg-options directive.
1427 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
1428 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
1430 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
1431 linker options from compile-only tests.
1432 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1435 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
1436 supported for C++11 and later.
1437 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
1438 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
1440 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
1442 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1444 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
1446 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
1449 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1450 Ensure test is compiled with optimization.
1452 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1453 Adjust dg-prune-output pattern for error in C++98 mode.
1455 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
1456 run for C++11 or later.
1458 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
1459 test to not rely on GNU extension (escaped normal characters in POSIX
1460 BRE). Enable tests for other strings which are now supported.
1462 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
1463 c++11 instead of setting -std=gnu++14.
1466 * include/std/array (get): Use positive message for static assertions.
1467 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
1468 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
1469 specialization for invalid indices, with static assertion.
1470 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
1472 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
1473 dg-error to relevant line.
1474 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1476 * testsuite/23_containers/forward_list/requirements/dr438/
1477 assign_neg.cc: Likewise.
1478 * testsuite/23_containers/forward_list/requirements/dr438/
1479 constructor_1_neg.cc: Likewise.
1480 * testsuite/23_containers/forward_list/requirements/dr438/
1481 constructor_2_neg.cc: Likewise.
1482 * testsuite/23_containers/forward_list/requirements/dr438/
1483 insert_neg.cc: Likewise.
1484 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
1486 * testsuite/26_numerics/random/linear_congruential_engine/
1487 requirements/non_uint_neg.cc: Likewise.
1488 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
1489 Likewise. Also test for std::atomic_address.
1491 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
1493 Add missing variable traits, fix testsuite failures.
1494 * include/bits/uses_allocator.h (uses_allocator_v): New.
1495 * include/std/functional (is_bind_expression_v, is_placeholder_v):
1497 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
1498 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1499 * testsuite/20_util/duration/literals/range.cc: Likewise.
1500 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1501 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1502 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1503 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
1504 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1506 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
1507 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1510 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
1512 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
1513 not test 128-bit types.
1514 * testsuite/20_util/is_floating_point/value.cc: Likewise.
1515 * testsuite/20_util/is_integral/value.cc: Likewise.
1516 * testsuite/20_util/is_signed/value.cc: Likewise.
1517 * testsuite/20_util/is_unsigned/value.cc: Likewise.
1518 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
1519 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
1520 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1522 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1525 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
1527 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1529 Implement C++17 variable templates for type traits.
1530 * include/std/chrono (treat_as_floating_point_v): New.
1531 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
1532 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
1533 (ratio_greater_equal_v): Likewise.
1534 * include/std/system_error (is_error_code_enum_v)
1535 (is_error_condition_enum_v): Likewise.
1536 * include/std/tuple (tuple_size_v): Likewise.
1537 * type_traits (conjunction_v, disjunction_v, negation_v)
1538 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
1539 (is_array_v, is_pointer_v, is_lvalue_reference_v)
1540 (is_rvalue_reference_v, is_member_object_pointer_v)
1541 (is_member_function_pointer_v, is_enum_v, is_union_v)
1542 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
1543 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
1544 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
1545 (is_trivially_copyable_v, is_standard_layout_v)
1546 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
1547 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
1548 (is_constructible_v, is_default_constructible_v)
1549 (is_copy_constructible_v, is_move_constructible_v)
1550 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
1551 (is_destructible_v, is_trivially_constructible_v)
1552 (is_trivially_default_constructible_v)
1553 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
1554 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1555 (is_trivially_move_assignable_v, is_trivially_destructible_v)
1556 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
1557 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
1558 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1559 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
1560 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
1561 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
1562 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
1563 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1565 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
1566 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1567 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1569 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
1571 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1572 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1573 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1575 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
1577 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
1578 * doc/html/manual/abi.html: Regenerate.
1580 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
1581 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
1583 * configure: Regenerate.
1584 * testsuite/util/testsuite_abi.cc: Add new symbol version.
1586 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1587 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1588 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
1589 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
1591 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1592 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1593 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
1595 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
1597 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
1598 Adjust dg-prune-output pattern for error in C++98 mode.
1599 * testsuite/23_containers/deque/requirements/dr438/
1600 constructor_1_neg.cc: Likewise.
1601 * testsuite/23_containers/deque/requirements/dr438/
1602 constructor_2_neg.cc: Likewise.
1603 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
1605 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1607 * testsuite/23_containers/list/requirements/dr438/
1608 constructor_1_neg.cc: Likewise.
1609 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1611 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
1613 * testsuite/23_containers/vector/requirements/dr438/
1614 constructor_1_neg.cc: Likewise.
1615 * testsuite/23_containers/vector/requirements/dr438/
1616 constructor_2_neg.cc: Likewise.
1617 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
1620 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
1621 for different construct/destroy counts in C++98 mode.
1623 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
1624 dg-options to dg-additional-options so that default options are used.
1625 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
1627 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
1628 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
1630 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1631 Use dg-additional-options instead of repeating the common options.
1633 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
1634 dg-do compile directive.
1635 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
1637 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
1639 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
1641 Implement std::string_view and P0254r2,
1642 Integrating std::string_view and std::string.
1643 * include/Makefile.am: Add string_view and string_view.tcc
1644 to the exported headers.
1645 * include/Makefile.in: Likewise.
1646 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
1648 (basic_string(__sv_type, const _Alloc&)): Likewise.
1649 (operator=(__sv_type)): Likewise.
1650 (operator __sv_type()): Likewise.
1651 (operator+=(__sv_type)): Likewise.
1652 (append(__sv_type __sv)): Likewise.
1653 (append(__sv_type, size_type, size_type)): Likewise.
1654 (assign(__sv_type)): Likewise.
1655 (assign(__sv_type, size_type, size_type)): Likewise.
1656 (insert(size_type, __sv_type)): Likewise.
1657 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1658 (replace(size_type, size_type, __sv_type)): Likewise.
1659 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1661 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
1662 (find(__sv_type, size_type)): Likewise.
1663 (rfind(__sv_type, size_type)): Likewise.
1664 (find_first_of(__sv_type, size_type)): Likewise.
1665 (find_last_of(__sv_type, size_type)): Likewise.
1666 (find_first_not_of(__sv_type, size_type)): Likewise.
1667 (find_last_not_of(__sv_type, size_type)): Likewise.
1668 (compare(__sv_type)): Likewise.
1669 (compare(size_type, size_type, __sv_type)): Likewise.
1670 (compare(size_type, size_type, __sv_type, size_type, size_type)):
1672 * include/bits/string_view.tcc: New.
1673 * include/std/string_view: Likewise.
1674 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
1675 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
1676 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
1678 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1680 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1682 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1684 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1686 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1688 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1690 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1692 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1694 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1696 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
1698 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
1700 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
1701 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
1702 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
1703 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
1704 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
1705 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
1706 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
1707 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
1708 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
1709 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1711 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1713 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
1715 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
1717 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1719 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
1721 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
1723 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
1725 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
1726 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
1727 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
1728 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
1729 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
1731 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
1733 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
1735 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
1737 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
1739 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
1741 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
1743 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
1745 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1747 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
1749 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
1751 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
1753 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1755 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1757 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
1759 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
1761 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1763 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1765 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1767 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
1769 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1771 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1773 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1775 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
1777 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
1779 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1781 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
1783 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
1785 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
1787 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
1789 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
1791 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
1793 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
1795 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
1796 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1798 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
1800 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1802 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
1804 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
1806 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
1808 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
1810 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
1812 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
1814 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
1815 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
1817 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
1819 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
1821 2016-07-25 Georeth Chow <georeth2010@gmail.com>
1823 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
1824 _S_concat enumerator.
1825 * testsuite/ext/rope/6.cc: New test.
1827 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
1829 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
1830 std::mt19937, std::thread and std::atomic to simplify test.
1831 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1833 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
1836 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1837 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
1838 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
1839 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
1840 * testsuite/23_containers/set/allocator/71964.cc: New test.
1842 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
1843 delete[] instead of delete.
1845 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
1847 * include/experimental/propagate_const (propagate_const::__t): Rename
1848 to _M_t and remove comment. Qualify std::move and std::forward.
1849 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
1851 * testsuite/23_containers/vector/zero_sized_allocations.cc:
1852 Define sized deallocation function.
1853 * testsuite/util/testsuite_new_operators.h:
1854 (operator delete(void*, const std::nothrow_t&)): Define nothrow
1855 deallocation function.
1857 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
1858 reads past the end of strings.
1859 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
1861 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
1862 invalid array accesses.
1863 * testsuite/experimental/string_view/operations/compare/char/1.cc:
1864 Fix read past the end of string.
1865 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
1867 * testsuite/24_iterators/container_access.cc: Fix missing returns.
1868 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
1870 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
1871 leak) memory for arguments to placement delete.
1872 * testsuite/20_util/addressof/1.cc: Don't leak memory.
1873 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
1874 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
1877 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
1879 * doc/xml/manual/intro.xml: Document DR 2684 status.
1880 * doc/html/*: Regenerate.
1882 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
1883 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
1884 (atomic_uint64_t): Define (LWG 2441).
1885 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
1887 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
1889 * doc/xml/manual/intro.xml: Document DR 2441 status.
1891 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
1892 to use perfect forwarding (LWG 2328).
1893 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
1894 * doc/xml/manual/intro.xml: Document DR 2328 status.
1896 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
1897 static objects for catching nullptr as pointer to member types.
1899 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
1901 Clean up optional's comments.
1902 * include/std/optional: Remove incorrect section headers
1903 from comments when redundant, replace bare section
1904 headers with more descriptive comments.
1906 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
1908 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
1909 * include/bits/move.h: Likewise.
1910 * include/bits/postypes.h: Likewise.
1911 * include/debug/bitset: Likewise.
1912 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
1913 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
1915 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
1916 * testsuite/util/thread/all.h: Likewise.
1918 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
1922 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
1923 nullptr match handlers of pointer type.
1925 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
1927 Implement C++17 P0025 clamp.
1928 * include/bits/algorithmfwd.h: Declare clamp overloads.
1929 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
1930 * testsuite/25_algorithms/clamp/1.cc: New test.
1931 * testsuite/25_algorithms/clamp/2.cc: New test.
1932 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
1933 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
1935 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
1938 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
1940 Fix the constraints for any's assignment operator template to properly
1941 reject assignment from a non-copyable lvalue.
1942 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
1943 type for is_copy_constructible,
1944 * testsuite/20_util/any/requirements.cc: Add a test for
1945 non-copyable lvalues.
1947 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
1949 * include/experimental/functional: Include <parallel/algorithm> in
1952 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
1956 * include/bits/forward_list.h (forward_list): Update doxygen comments
1957 to reflect allocator propagation semantics. Remove ambiguous
1958 statements about data being lost.
1959 * include/bits/stl_deque.h (deque): Likewise.
1960 * include/bits/stl_list.h (list): Likewise.
1961 * include/bits/stl_map.h (map): Likewise.
1962 * include/bits/stl_multimap.h (multimap): Likewise.
1963 * include/bits/stl_multiset.h (multiset): Likewise.
1964 * include/bits/stl_set.h (set): Likewise.
1965 * include/bits/stl_vector.h (vector): Likewise.
1966 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
1968 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
1971 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
1973 Implement P0032R3, Homogeneous interface for variant, any and optional,
1974 for the parts concerning any and optional.
1975 * include/std/any (_Storage()): Make constexpr and have it
1977 (any()): Make constexpr.
1978 (any(const any&)): Adjust.
1979 (any(any&&)): Likewise.
1980 (__any_constructible_t): New.
1981 (any(_ValueType&&)): Constrain.
1982 (any(in_place_type_t<_Tp>, _Args&&...)): New.
1983 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
1986 (operator=(const any&)): Likewise.
1987 (operator=(any&&)): Likewise.
1988 (operator=(_ValueType&&)): Constrain.
1989 (emplace(_Args&&...)): New.
1990 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1993 (swap(any&)): Adjust.
1997 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
1998 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
1999 (make_any(_Args&&...)): Likewise.
2000 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2001 * include/std/optional (in_place_t, in_place): Remove.
2002 (bad_optional_access): Add a comment referring to LEWG 72.
2003 (emplace(_Args&&...)): Constrain.
2005 (reset()): Likewise.
2006 (make_optional(_Args&&...)): Likewise.
2007 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2008 * include/std/utility (in_place_tag): New.
2009 (__in_place, __in_place_type, __in_place_index): Likewise.
2010 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2011 (in_place(__in_place*)): Likewise.
2012 (in_place(__in_place_type<_Tp>*)): Likewise.
2013 (in_place(__in_place_index<_Idx>*)): Likewise.
2014 * testsuite/20_util/any/assign/1.cc: Adjust.
2015 * testsuite/20_util/any/assign/emplace.cc: New.
2016 * testsuite/20_util/any/assign/self.cc: Adjust.
2017 * testsuite/20_util/any/cons/1.cc: Likewise.
2018 * testsuite/20_util/any/cons/in_place.cc: New.
2019 * testsuite/20_util/any/make_any.cc: Likewise.
2020 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2021 * testsuite/20_util/any/misc/swap.cc: Likewise.
2022 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2023 * testsuite/20_util/any/requirements.cc: New.
2024 * testsuite/20_util/in_place/requirements.cc: Likewise.
2025 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2026 * testsuite/20_util/optional/in_place.cc: Likewise.
2027 * testsuite/20_util/optional/make_optional.cc: Add tests for
2028 the new overloads of make_optional.
2030 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2032 Implement P0307R2, Making Optional Greater Equal Again.
2033 * include/experimental/optional (_Has_addressof): Fix the comment.
2034 * include/std/optional (_Has_addressof): Likewise.
2035 (operator=(_Up&&)): Constrain.
2036 (operator=(const optional<_Up>&)): Likewise.
2037 (operator=(optional<_Up>&&)): Likewise.
2038 (__optional_relop_t): New.
2039 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2040 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2041 Constrain and make transparent.
2042 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2043 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2044 Constrain and make transparent.
2045 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2046 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2047 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2048 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2049 (operator!=(const optional<_Tp>&, _Tp const&)):
2050 Constrain and make transparent.
2051 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2052 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2053 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2054 (operator>(const optional<_Tp>&, const _Tp&)):
2055 Constrain and make transparent.
2056 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2057 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2058 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2059 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2060 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2061 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2062 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2063 * testsuite/20_util/optional/relops/1.cc: Likewise.
2064 * testsuite/20_util/optional/relops/2.cc: Likewise.
2065 * testsuite/20_util/optional/relops/3.cc: Likewise.
2066 * testsuite/20_util/optional/relops/4.cc: Likewise.
2067 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2068 that optional's relops are transparent and don't synthesize
2069 operators. Also test that assignment sfinaes.
2071 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2074 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2075 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2076 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2077 on _GLIBCXX_ASSERTIONS.
2078 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2079 Include <unistd.h> for sleep.
2080 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2081 * include/parallel/merge.h: Likewise.
2082 * include/parallel/multiway_merge.h: Likewise.
2083 * include/parallel/partition.h: Likewise.
2084 * include/parallel/queue.h: Likewise.
2085 * include/parallel/sort.h: Likewise.
2086 * testsuite/25_algorithms/headers/algorithm/
2087 parallel_algorithm_assert.cc: New.
2089 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2090 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2091 Forward to different overload.
2093 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2096 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2098 Revert "Add non-const overload of std::string::data()".
2100 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2102 Implement P0307R2, Making Optional Greater Equal Again.
2103 * include/experimental/optional (_Has_addressof): Fix the comment.
2104 * include/std/optional (_Has_addressof): Likewise.
2105 (operator=(_Up&&)): Constrain.
2106 (operator=(const optional<_Up>&)): Likewise.
2107 (operator=(optional<_Up>&&)): Likewise.
2108 (__optional_relop_t): New.
2109 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2110 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2111 Constrain and make transparent.
2112 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2113 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2114 Constrain and make transparent.
2115 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2116 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2117 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2118 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2119 (operator!=(const optional<_Tp>&, _Tp const&)):
2120 Constrain and make transparent.
2121 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2122 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2123 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2124 (operator>(const optional<_Tp>&, const _Tp&)):
2125 Constrain and make transparent.
2126 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2127 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2128 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2129 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2130 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2131 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2132 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2133 * testsuite/20_util/optional/relops/1.cc: Likewise.
2134 * testsuite/20_util/optional/relops/2.cc: Likewise.
2135 * testsuite/20_util/optional/relops/3.cc: Likewise.
2136 * testsuite/20_util/optional/relops/4.cc: Likewise.
2137 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2138 that optional's relops are transparent and don't synthesize
2139 operators. Also test that assignment sfinaes.
2141 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2143 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2145 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2146 instead of _M_data().
2147 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2149 (append(const basic_string&)): Likewise.
2150 (append(const basic_string&, size_type, size_type)): Likewise.
2151 (assign(const basic_string&, size_type, size_type)): Likewise.
2152 (insert(size_type, const basic_string&)): Likewise.
2153 (insert(size_type, const basic_string&, size_type, size_type)):
2155 (replace(size_type, size_type, const basic_string&, size_type,
2156 size_type)): Likewise.
2157 (replace(__const_iterator, __const_iterator, const basic_string&)):
2159 (c_str(), data()): Use c_str() instead of _M_data().
2160 (data()): Add non-const overload as per LWG 2391 and P0272R1.
2161 (compare(const basic_string&)): Use data() instead of _M_data().
2162 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2163 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2164 Pass raw pointers to _S_copy.
2165 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2167 (find(const _CharT*, size_type, size_type)): Use data instead of
2169 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2170 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2171 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2173 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
2175 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2176 * doc/xml/manual/intro.xml: Document DR 2458 status.
2177 * doc/html*: Regenerate.
2179 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2180 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2181 Only include <array>.
2182 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2184 * doc/xml/manual/intro.xml: Document LWG 2212 support.
2185 * doc/html*: Regenerate.
2187 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2188 Add testcase from LWG 2164.
2190 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
2192 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2193 to _M_realloc_insert.
2194 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2195 (_M_realloc_insert): Declare new function.
2196 (_M_emplace_back_aux): Remove definition.
2197 * include/bits/vector.tcc (emplace_back(_Args...)):
2198 Use _M_realloc_insert.
2199 (insert(const_iterator, const value_type&)): Likewise.
2200 (_M_insert_rval, _M_emplace_aux): Likewise.
2201 (_M_emplace_back_aux): Remove declaration.
2202 (_M_realloc_insert): Define.
2203 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2204 Adjust expected results for emplacing an lvalue with reallocation.
2206 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
2208 Implement std::optional.
2209 * include/Makefile.am: Add optional to exported headers.
2210 * include/Makefile.in: Likewise.
2211 * include/std/optional: New.
2212 * testsuite/20_util/optional/typedefs.cc: Likewise.
2213 * testsuite/20_util/optional/relops/2.cc: Likewise.
2214 * testsuite/20_util/optional/relops/3.cc: Likewise.
2215 * testsuite/20_util/optional/relops/4.cc: Likewise.
2216 * testsuite/20_util/optional/relops/5.cc: Likewise.
2217 * testsuite/20_util/optional/relops/1.cc: Likewise.
2218 * testsuite/20_util/optional/relops/6.cc: Likewise.
2219 * testsuite/20_util/optional/nullopt.cc: Likewise.
2220 * testsuite/20_util/optional/in_place.cc: Likewise.
2221 * testsuite/20_util/optional/make_optional.cc: Likewise.
2222 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2223 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2224 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2225 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2226 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2227 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2228 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2229 * testsuite/20_util/optional/cons/default.cc: Likewise.
2230 * testsuite/20_util/optional/cons/move.cc: Likewise.
2231 * testsuite/20_util/optional/cons/value.cc: Likewise.
2232 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2233 * testsuite/20_util/optional/requirements.cc: Likewise.
2234 * testsuite/20_util/optional/observers/2.cc: Likewise.
2235 * testsuite/20_util/optional/observers/3.cc: Likewise.
2236 * testsuite/20_util/optional/observers/4.cc: Likewise.
2237 * testsuite/20_util/optional/observers/5.cc: Likewise.
2238 * testsuite/20_util/optional/observers/1.cc: Likewise.
2239 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2240 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2241 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2242 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2243 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2244 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2245 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2246 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2247 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2248 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2249 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2250 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2251 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2252 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2253 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2254 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2255 * testsuite/20_util/optional/swap/1.cc: Likewise.
2257 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
2259 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2261 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
2263 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2264 * doc/html/*: Regenerate.
2266 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
2269 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2270 * include/Makefile.in: Likewise.
2271 * include/std/any: New.
2272 * testsuite/20_util/any/assign/1.cc: Likewise.
2273 * testsuite/20_util/any/assign/2.cc: Likewise.
2274 * testsuite/20_util/any/assign/self.cc: Likewise.
2275 * testsuite/20_util/any/cons/1.cc: Likewise.
2276 * testsuite/20_util/any/cons/2.cc: Likewise.
2277 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2278 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2279 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2280 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2281 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2282 * testsuite/20_util/any/misc/swap.cc: Likewise.
2283 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2284 * testsuite/20_util/any/observers/type.cc: Likewise.
2285 * testsuite/20_util/any/typedefs.cc: Likewise.
2287 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2289 Add a new header for diagnosing the use of C++17 facilities
2291 * include/bits/c++17_warning.h: New.
2293 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2295 Implement LWG 2451, optional<T> should 'forward' T's
2296 implicit conversions.
2297 * include/experimental/optional (__is_optional_impl, __is_optional):
2299 (optional()): Make constexpr and default.
2300 (optional(_Up&&), optional(const optional<_Up>&),
2301 optional(optional<_Up>&& __t): New.
2302 (operator=(_Up&&)): Constrain.
2303 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2304 * testsuite/experimental/optional/cons/value.cc:
2305 Add tests for the functionality added by LWG 2451.
2306 * testsuite/experimental/optional/cons/value_neg.cc: New.
2308 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2311 any_cast doesn't work with rvalue reference targets and cannot
2312 move with a value target.
2313 * include/experimental/any (any(_ValueType&&)): Constrain and
2314 add an overload that doesn't forward.
2315 (any_cast(any&&)): Constrain and add an overload that moves.
2316 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
2317 the functionality added by LWG 2509.
2319 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
2321 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2323 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2326 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
2328 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
2329 Define inline. Forward to _M_emplace_aux.
2330 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2331 (_M_insert_rval, _M_emplace_aux): Declare new functions.
2332 (_Temporary_value): New RAII type using allocator to construct/destroy.
2333 (_S_insert_aux_assign): Remove.
2334 (_M_insert_aux): Make non-variadic.
2335 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
2336 Use _Temporary_value.
2337 (emplace(const_iterator, _Args&&...)): Remove definition.
2338 (_M_insert_rval, _M_emplace_aux): Define.
2339 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
2340 (_M_fill_insert): Use _Temporary_value.
2341 * testsuite/23_containers/vector/allocator/construction.cc: New test.
2342 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2343 Adjust expected results for emplacing an lvalue with reallocation.
2344 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
2345 expected results to account for construction/destruction of temporary
2347 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
2349 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
2352 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
2353 Call remove_all for children of a directory.
2354 * testsuite/experimental/filesystem/operations/create_directories.cc:
2357 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
2359 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
2360 dg-error line numbers.
2361 * testsuite/23_containers/array/tuple_interface/
2362 tuple_element_debug_neg.cc: Likewise.
2363 * testsuite/25_algorithms/lexicographical_compare/debug/
2364 irreflexive_neg.cc: Remove.
2366 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
2368 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
2369 than specific target.
2371 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
2374 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
2377 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
2379 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
2382 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2384 * configure.host: Remove mep-* support.
2386 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2388 * configure: Regenerate.
2389 * configure.host: Remove support for knetbsd.
2390 * crossconfig.m4: Likewise.
2392 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
2395 * include/tr1/hashtable_policy.h
2396 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
2397 dereferenceable to avoid check on lower_bound result.
2398 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
2399 (_Prime_rehash_policy::_M_need_rehash): Likewise.
2400 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
2401 Always return a value greater than input value. Set _M_next_resize to
2402 max value when reaching highest prime number.
2403 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
2405 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
2406 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
2408 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
2409 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2412 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
2415 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
2416 Remove irreflexive checks.
2417 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
2418 binary_search): Likewise.
2419 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
2420 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
2421 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
2422 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
2423 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
2424 Add constructor from array.
2426 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
2428 * include/debug/debug.h
2429 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
2430 (__glibcxx_requires_subscript): Move...
2431 * include/debug/assertions.h: ...here and add __builtin_expect.
2432 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
2433 * include/bits/stl_deque.h
2434 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
2435 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
2436 (std::deque<>::back()): Likewise.
2437 (std::deque<>::pop_front()): Likewise.
2438 (std::deque<>::pop_back()): Likewise.
2439 (std::deque<>::swap(deque&)): Add allocator check.
2440 * include/bits/stl_vector.h
2441 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
2442 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
2443 (std::vector<>::back()): Likewise.
2444 (std::vector<>::pop_back()): Likewise.
2445 (std::vector<>::swap(vector&)): Add allocator check.
2447 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
2449 Provide swappable traits (p0185r1)
2450 * include/std/type_traits (is_swappable, is_nothrow_swappable,
2451 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
2452 is_nothrow_swappable_v, is_swappable_with_v,
2453 is_nothrow_swappable_with_v): New.
2454 * include/bits/stl_pair.h: Use it as per p0185r1.
2455 * include/bits/stl_queue.h: Likewise.
2456 * include/bits/stl_stack.h: Likewise.
2457 * include/bits/unique_ptr.h: Likewise.
2458 * include/std/tuple: Likewise.
2459 * include/std/array: Likewise. Fix zero-size member swap.
2460 * include/bits/hashtable.h: Use __and_.
2461 * testsuite/20_util/is_nothrow_swappable/requirements/
2462 explicit_instantiation.cc: Change test options to std=gnu++17.
2463 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2465 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2466 * testsuite/20_util/is_swappable/requirements/
2467 explicit_instantiation.cc: Likewise.
2468 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
2469 * testsuite/20_util/is_swappable/value.cc: Likewise.
2470 * testsuite/20_util/is_nothrow_swappable/requirements/
2471 explicit_instantiation_ext.cc: New.
2472 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
2474 * testsuite/20_util/is_nothrow_swappable/value.h: New.
2475 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
2476 * testsuite/20_util/is_nothrow_swappable_with/requirements/
2477 explicit_instantiation.cc: New.
2478 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2480 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
2481 * testsuite/20_util/is_swappable/requirements/
2482 explicit_instantiation_ext.cc: New.
2483 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
2484 * testsuite/20_util/is_swappable/value.h: New.
2485 * testsuite/20_util/is_swappable/value_ext.cc: New.
2486 * testsuite/20_util/is_swappable_with/requirements/
2487 explicit_instantiation.cc: New.
2488 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
2489 * testsuite/20_util/is_swappable_with/value.cc: New.
2490 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
2491 dg-error line numbers.
2492 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2495 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
2497 * include/std/array: Remove trailing whitespace.
2498 * include/std/atomic: Likewise.
2499 * include/std/bitset: Likewise.
2500 * include/std/chrono: Likewise.
2501 * include/std/complex: Likewise.
2502 * include/std/condition_variable: Likewise.
2503 * include/std/fstream: Likewise.
2504 * include/std/functional: Likewise.
2505 * include/std/future: Likewise.
2506 * include/std/iomanip: Likewise.
2507 * include/std/iosfwd: Likewise.
2508 * include/std/istream: Likewise.
2509 * include/std/limits: Likewise.
2510 * include/std/ratio: Likewise.
2511 * include/std/scoped_allocator: Likewise.
2512 * include/std/sstream: Likewise.
2513 * include/std/stdexcept: Likewise.
2514 * include/std/string: Likewise.
2515 * include/std/system_error: Likewise.
2516 * include/std/thread: Likewise.
2517 * include/std/tuple: Likewise.
2518 * include/std/type_traits: Likewise.
2519 * include/std/utility: Likewise.
2520 * include/std/valarray: Likewise.
2521 * include/std/vector: Likewise.
2523 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
2524 new overloaded functions.
2525 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
2526 to avoid creating a redundant temporary.
2527 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
2530 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
2532 * include/bits/stl_deque.h
2533 (std::deque<>::operator=): Call _M_assign_aux.
2534 (std::deque<>::assign(initializer_list<>)): Likewise.
2535 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2536 (std::deque<>::insert(const_iterator, initializer_list<>)):
2537 Call _M_range_insert_aux.
2538 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
2540 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
2541 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
2542 * include/bits/deque.tcc
2543 (std::deque<>::operator=): Call _M_range_insert_aux.
2544 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
2546 * include/bits/stl_vector.h
2547 (std::vector<>::operator=): Call _M_assign_aux.
2548 (std::vector<>::assign(initializer_list<>)): Likewise.
2549 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2550 (std::vector<>::insert(const_iterator, initializer_list<>)):
2551 Call _M_range_insert.
2552 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
2554 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
2556 * include/std/tuple (_Head_base<>): Default specialization condition at
2559 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2561 Support allocators in tuples of zero size.
2562 * include/std/tuple (tuple<>::tuple(),
2563 tuple<>::tuple(allocator_arg_t, const _Alloc&),
2564 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
2565 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
2567 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
2570 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
2571 Add or remove permissions according to perms argument.
2572 * testsuite/experimental/filesystem/operations/permissions.cc: New
2575 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2577 Protect allocator-overloads of tuple-from-tuple constructors
2578 from cases that would create dangling references.
2579 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2580 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
2581 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
2582 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
2584 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
2586 * doc/xml/manual/backwards_compatibility.xml: Adjust
2587 lists.debian.org link to https.
2588 * doc/html/manual/backwards.html: Regenerate.
2590 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
2592 * doc/xml/manual/abi.xml: Adjust URL to use https.
2593 * doc/html/manual/*: Regenerate.
2595 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
2598 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
2599 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
2600 check for _NotSameTuple.
2601 * include/std/tuple (_TMCT): New.
2602 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
2603 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
2604 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2605 const tuple<_UElements...>&)): Likewise.
2606 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2607 tuple<_UElements...>&&)): Likewise.
2608 * testsuite/20_util/tuple/cons/66338.cc: New.
2610 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
2612 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
2613 * configure: Regenerate.
2614 * config.h.in: Regenerate.
2616 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
2617 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
2618 Remove const qualification on function. Replace
2619 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
2620 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
2621 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
2623 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
2625 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
2626 * include/bits/hashtable_policy.h
2627 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
2628 having load factor management.
2629 (_Mask_range_hashing): New.
2631 (_Power2_rehash_policy): New.
2632 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
2633 partial specializations only depend on whether iterators are constant
2635 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
2636 test new hash policy.
2637 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
2639 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2641 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
2643 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
2645 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
2647 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
2648 using the new hash policy.
2649 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
2651 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
2653 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
2655 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
2657 * include/debug/safe_iterator.h
2658 (_Safe_iterator<>::operator->()): Implement using underlying iterator
2660 * include/debug/safe_local_iterator.h
2661 (_Safe_local_iterator<>::operator->()): Likewise.
2663 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
2665 * testsuite/experimental/memory_resource/1.cc: Add required argument
2666 to dg-require-atomic-builtins.
2668 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
2671 * include/debug/bitset: Add #pragma GCC system_header.
2672 * include/debug/deque: Likewise.
2673 * include/debug/list: Likewise.
2674 * include/debug/map: Likewise.
2675 * include/debug/set: Likewise.
2676 * include/debug/string: Likewise.
2677 * include/debug/unordered_map: Likewise.
2678 * include/debug/unordered_set: Likewise.
2679 * include/debug/vector: Likewise.
2680 * include/debug/functions.h: Adjust whitespace.
2682 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
2685 * testsuite/experimental/memory_resource/1.cc: Require atomics.
2687 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
2690 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
2691 exception constructors with __sso_string parameters.
2693 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
2695 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
2696 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2697 Test begin and end functions.
2698 * testsuite/experimental/filesystem/iterators/
2699 recursive_directory_iterator.cc: Likewise.
2702 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
2703 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
2705 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
2706 Overload operator* to move from rvalues.
2709 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
2710 * testsuite/experimental/filesystem/operations/create_directory.cc:
2714 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
2715 base path to exception.
2716 * testsuite/experimental/filesystem/operations/canonical.cc: Test
2717 paths contained in exception.
2719 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
2723 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
2725 (directory_iterator::operator++(int)): Return proxy.
2726 (recursive_directory_iterator::operator++(int)): Likewise.
2727 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2728 Test post-increment.
2729 * testsuite/experimental/filesystem/iterators/
2730 recursive_directory_iterator.cc: Likewise.
2732 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
2735 * testsuite/experimental/filesystem/iterators/
2736 recursive_directory_iterator.cc: Fix test02 to not call member
2737 functions on invalid iterator, and use VERIFY not assert.
2739 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
2741 Avoid endless run-time recursion for copying single-element
2742 tuples where the element type is by-value constructible
2744 * include/std/tuple (_NotSameTuple): New.
2745 * include/std/tuple (tuple(_UElements&&...): Use it.
2746 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
2748 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
2751 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
2752 Initialize scalar member variables in default constructor.
2753 * testsuite/experimental/filesystem/iterators/
2754 recursive_directory_iterator.cc: Test default construction.
2756 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2758 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
2760 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
2762 * testsuite/experimental/filesystem/path/native/string.cc: Add
2763 dg-require-filesystem-ts directive.
2765 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
2768 * include/experimental/memory_resource
2769 (__resource_adaptor_imp::do_allocate): Do not default-construct
2771 (__resource_adaptor_imp::do_deallocate): Likewise. Use
2772 allocator_traits to get pointer type.
2773 (__null_memory_resource::do_allocate): Remove unused parameters.
2774 (__null_memory_resource::do_deallocate): Likewise.
2775 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
2776 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
2777 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
2779 * testsuite/experimental/memory_resource/1.cc: Here.
2780 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
2781 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
2783 2016-04-29 Chris Gregory <czipperz@gmail.com>
2785 * config/*: Remove trailing whitespace.
2787 * testsuite/tr1/*: Likewise.
2788 * testsuite/util/*: Likewise.
2790 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
2793 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
2795 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
2797 * include/std/atomic (atomic<_Tp>): Likewise.
2798 * include/std/shared_mutex (shared_lock): Likewise.
2799 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
2800 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
2801 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
2802 * testsuite/29_atomics/atomic/70766.cc: New test.
2803 * testsuite/30_threads/shared_lock/70766.cc: New test.
2805 * include/bits/hashtable_policy.h (__detail::_Insert_base,
2806 __detail::_Insert): Improve comments.
2808 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
2811 * include/std/limits: Update comments about DRs.
2812 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
2813 numeric_limits<const volatile _Tp>): Define unconditionally.
2815 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
2818 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
2819 static counter to return a different path on every call.
2821 2016-04-22 Tim Shen <timshen@google.com>
2824 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
2825 Fix the match_not_bow and match_not_eow behavior.
2826 * testsuite/28_regex/regression.cc: Add testcase.
2828 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
2831 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
2832 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
2834 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
2837 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
2838 Override endianness bit in mode.
2839 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
2840 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
2841 that little_endian mode is ignored.
2842 * testsuite/experimental/filesystem/path/native/string.cc: New test.
2845 * src/filesystem/ops.cc (close_fd): New function.
2846 (do_copy_file): Set permissions before copying file contents. Check
2847 result of closing file descriptors. Don't copy streambuf when file
2849 (copy(const path&, const path&, copy_options, error_code&)): Use
2850 lstat for source file when copy_symlinks is set.
2851 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
2853 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
2854 operator~ operator&=, operator|=, operator^=): Add noexcept to
2855 overloaded operators for copy_options, perms and directory_options.
2856 * src/filesystem/ops.cc (make_file_type, make_file_status,
2857 is_not_found_errno, file_time): Add noexcept.
2859 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
2861 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
2863 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
2866 * include/bits/random.h: Reword static assertion messages to state
2867 positive conditions.
2868 * include/bits/random.tcc: Likewise.
2869 * include/bits/uniform_int_dist.h: Likewise.
2870 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2873 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
2875 * config/cpu/sh/atomicity.h: Fix typo in comment.
2878 * include/std/thread (operator<, operator==): Move definitions to
2880 * testsuite/30_threads/thread/id/70294.cc: New test.
2882 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
2883 -Wno-pedantic to dg-options.
2884 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
2885 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
2887 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
2888 Remove extra semi-colon.
2889 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2890 Always supply second argument to static_assert.
2891 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
2893 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
2895 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
2896 * testsuite/29_atomics/atomic/60695.cc: Likewise.
2897 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
2898 alignof when operand is an object not a type.
2899 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
2900 * testsuite/decimal/make-decimal.cc: Likewise.
2901 * testsuite/experimental/type_traits/value.cc: Always supply second
2902 argument to static_assert.
2903 * testsuite/util/testsuite_common_types.h: Use __extension__ for
2906 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
2908 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
2909 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
2910 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
2911 Likewise. Add licence and change to compile-only test.
2913 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
2915 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
2917 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
2920 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
2922 * include/bits/specfun.h: Trivial comment misspelling.
2924 2016-04-14 Jason Merrill <jason@redhat.com>
2926 Revert Jonathan's empty ABI change from yesterday.
2928 2016-04-13 Martin Sebor <msebor@redhat.com>
2931 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
2932 upper bound is positive.
2934 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
2936 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
2937 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
2938 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
2939 of functions taking empty structs by value. Add a template parameter
2940 to overloads without hints. Rename overloads with hints to
2942 (_Hashtable::_M_erase(true_type, const_iterator),
2943 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
2944 by reordering parameters.
2945 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
2946 _M_emplace_hint instead of _M_emplace.
2947 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
2948 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
2949 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
2950 __shared_ptr): Likewise.
2951 * include/bits/stl_algo.h (replace_if): Likewise.
2952 * include/bits/stl_pair.h (piecewise_construct_t,
2953 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
2954 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
2955 __uses_alloc0): Likewise.
2956 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
2957 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
2958 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
2959 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
2960 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
2961 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
2962 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
2964 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
2966 Document C++17/TR29124 C++ Special Math Functions.
2967 * include/bits/specfun.h: Add Doxygen markup.
2969 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
2971 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
2973 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
2975 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
2976 * src/Makefile.in: Regenerate.
2978 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
2981 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
2982 __atomic_fetch_add for bool.
2983 * configure: Regenerate.
2985 * testsuite/30_threads/thread/70503.cc: Require -static to work.
2988 * src/c++11/thread.cc (execute_native_thread_routine,
2989 execute_native_thread_routine_compat): Give internal linkage.
2990 * testsuite/30_threads/thread/70503.cc: New test.
2992 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2995 * include/bits/stl_pair.h (_ConstructiblePair,
2996 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
2997 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
2998 for same-type cases.
2999 * testsuite/20_util/pair/70437.cc: New.
3001 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
3004 * config/abi/pre/gnu.ver: Add new symbol.
3005 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3006 * testsuite/18_support/free_eh_pool.cc: New test.
3008 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3010 * include/Makefile.am (install-freestanding-headers): Add
3011 concept_check.h and move.h to the installed headers.
3012 * include/Makefile.in: Regenerated.
3013 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3014 freestanding implementations.
3015 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3016 that this macro has no effect for freestanding implementations.
3017 * doc/html/manual/using_macros.html: Likewise.
3019 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
3022 * include/experimental/tuple (__apply_impl): Qualify get and forward.
3024 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
3026 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3027 * doc/html/*: Regenerate.
3030 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3031 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3032 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3033 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3034 trunc) [__cplusplus >= 201103L]: Import from namespace std.
3035 (fabs) [__cplusplus < 201103L]: Import from namespace std.
3036 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3038 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3039 namespace before including TR1 headers.
3040 * testsuite/tr1/headers/c++200x/math.cc: New test.
3042 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3045 * include/c_global/cstdarg: Undefine __need___va_list.
3046 * include/c_global/cstddef: Undefine all kinds of __need_*.
3048 2016-02-16 Tim Shen <timshen@google.com>
3051 * include/bits/regex_scanner.h: Add different special character
3052 sets for grep and egrep regex.
3053 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3054 * testsuite/28_regex/regression.cc: Add new testcase.
3056 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
3058 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3059 added 'constexpr' in previous commit.
3060 * configure: Regenerate.
3063 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3064 checks for all targets except *-*-solaris2.* and ensure we find the
3065 libc math.h header not our own.
3066 * configure: Regenerate.
3068 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
3070 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3071 New file. Copied over from s390-linux-gnu.
3073 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
3076 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3077 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3078 * config.h.in: Regenerate.
3079 * configure: Regenerate.
3080 * testsuite/21_strings/c_strings/char/69626.cc: New.
3082 * doc/html/index.html: Regenerate.
3084 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3085 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3086 * doc/html/*: Regenerate.
3088 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3091 * include/c_compatibility/math.h: Move header guards.
3092 * include/c_compatibility/stdlib.h: Likewise.
3094 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
3097 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3099 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
3102 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3103 isinf and isnan functions into two independent checks. Check on hpux.
3104 * config.h.in: Regenerate.
3105 * configure: Regenerate.
3106 * include/c_global/cmath (isinf(double), isnan(double)): Use
3107 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3110 2016-01-27 Jakub Jelinek <jakub@redhat.com>
3112 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3114 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
3117 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3118 -ffp-contract=off, and -ffloat-store to disable excess precision.
3119 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3122 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
3125 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3126 random_access_iterator_tag>): Check is_move_assignable when moving.
3127 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3129 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3130 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3131 * testsuite/25_algorithms/move/69478.cc: New.
3132 * testsuite/25_algorithms/move_backward/69478.cc: new.
3134 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
3136 * include/c_compatibility/stdlib.h: Include wide character related
3137 definitions only when they are available in cstdlib.
3139 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
3142 * include/Makefile.am: Add new header.
3143 * include/Makefile.in: Regenerate.
3144 * include/bits/random.h (uniform_int_distribution): Move to
3145 bits/uniform_int_dist.h.
3146 * include/bits/random.tcc (uniform_int_distribution::operator(),
3147 uniform_int_distribution::__generate_impl): Likewise.
3148 * include/bits/uniform_int_dist.h: New header.
3149 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3150 <bits/uniform_int_dist.h> instead of <random>.
3151 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3152 move_iterators/1.cc: Include correct header for uninitialized_copy.
3153 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3154 move_iterators/1.cc: Likewise.
3155 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3157 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3159 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
3162 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3164 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
3166 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3167 * include/c_compatibility/math.h: Import the TR29124 functions
3168 into the global namespace.
3169 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3170 xfail and make compile-only.
3171 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3172 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3173 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3174 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3175 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3176 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3177 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3178 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3179 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3180 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3181 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3182 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3183 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3184 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3185 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3186 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3187 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3188 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3189 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3190 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3192 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
3195 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3196 define result_type for types which can be safely used with valarrays.
3197 * testsuite/26_numerics/valarray/69116.cc: New.
3200 * config/os/gnu-linux/os_defines.h: Define
3201 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3202 * include/c_global/cmath (isinf, isnan): Check it.
3203 * doc/xml/manual/internals.xml: Document it.
3204 * doc/html/*: Regenerate.
3206 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
3209 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3210 * include/ext/type_traits.h: Likewise.
3211 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3212 for presence of C headers.
3213 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3214 dg-error line number.
3215 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3216 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3217 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3219 2016-01-20 Torvald Riegel <triegel@redhat.com>
3222 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3224 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
3227 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3228 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3229 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3230 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3231 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3232 Add using declarations.
3233 * testsuite/26_numerics/headers/cmath/60401.cc: New.
3236 * include/c_global/ccomplex: Ensure C++ language linkage.
3237 * include/c_global/cmath: Likewise.
3238 * include/c_global/cstdlib: Likewise.
3239 * include/c_global/ctgmath: Likewise.
3240 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3242 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
3246 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3247 --enable-cheaders=c_global configs.
3248 * include/Makefile.in: Regenerate.
3249 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3250 test and allow inclusion from C files.
3251 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3252 (at_quick_exit, quick_exit): Add using directives.
3253 * include/c_global/cmath: Use #include_next for math.h.
3254 * include/c_global/cstdlib: Use #include_next for stdlib.h.
3255 * testsuite/26_numerics/headers/cmath/14608.cc: New.
3256 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3257 Remove xfail for most targets.
3258 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3260 2016-01-18 Torvald Riegel <triegel@redhat.com>
3262 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3263 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3264 and move after its definition.
3265 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3266 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3267 __GXX_WEAK__, and only provide transactional clones if
3268 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
3271 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
3274 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3277 * include/std/functional (_Function_base::_M_not_empty_function):
3278 Change overloads for pointers to take arguments by value.
3279 * testsuite/20_util/function/cons/57465.cc: Add tests for
3280 pointer-to-member cases.
3283 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3284 Use macros for exception handling and fix unused parameter warning.
3286 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
3289 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3291 2016-01-17 Torvald Riegel <triegel@redhat.com>
3293 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3295 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
3297 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3300 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3303 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3304 static assertion that type is constructible from the arguments.
3305 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
3306 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
3307 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
3310 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3311 and isnan on AIX. Quote variables.
3312 * configure: Regenerate.
3314 2016-01-15 Torvald Riegel <triegel@redhat.com>
3316 * include/bits/basic_string.h (basic_string): Declare friends.
3317 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
3318 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
3319 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
3320 length_error, out_of_range, runtime_error, range_error,
3321 underflow_error, overflow_error): Declare members as transaction-safe.
3322 (logic_error, runtime_error): Declare friend functions.
3323 * libsupc++/exception (exception, bad_exception): Declare members as
3325 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
3326 transaction-safe members of exceptions and helper functions.
3327 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
3328 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
3329 (CXXABI_1.3.10): New.
3330 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
3331 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
3332 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
3333 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
3334 * include/Makefile.in: Regenerate.
3335 * config.h.in: Regenerate.
3336 * configure: Regenerate.
3337 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
3339 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
3341 * include/ext/random.tcc: Use __builtin_isfinite instead of
3344 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3346 * include/bits/std_mutex.h: Fix Doxygen @file name.
3348 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
3349 Jonathan Wakely <jwakely@redhat.com>
3350 Florian Goth <CaptainSifff@gmx.de>
3352 Implement TR29124 C++ special Math Functions.
3353 * include/Makefile.am: Add new headers.
3354 * include/Makefile.in: Regenerate.
3355 * include/bits/specfun.h: New.
3356 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
3357 * include/tr1/bessel_function.tcc: Ditto.
3358 * include/tr1/beta_function.tcc: Ditto.
3359 * include/tr1/cmath: Ditto.
3360 * include/tr1/ell_integral.tcc: Ditto.
3361 * include/tr1/exp_integral.tcc: Ditto.
3362 * include/tr1/gamma.tcc: Ditto.
3363 * include/tr1/hypergeometric.tcc: Ditto.
3364 * include/tr1/legendre_function.tcc: Ditto.
3365 * include/tr1/modified_bessel_func.tcc: Ditto.
3366 * include/tr1/poly_hermite.tcc: Ditto.
3367 * include/tr1/poly_laguerre.tcc: Ditto.
3368 * include/tr1/riemann_zeta.tcc: Ditto.
3369 * include/tr1/special_function_util.h: Ditto.
3370 * testsuite/ext/special_functions/conf_hyperg: New.
3371 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
3372 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
3373 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
3374 * testsuite/ext/special_functions/hyperg: New.
3375 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
3376 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
3377 * testsuite/ext/special_functions/hyperg/compile.cc: New.
3378 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
3379 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
3380 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
3381 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
3382 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
3383 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
3384 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
3385 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
3386 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
3387 * testsuite/special_functions/03_beta/check_nan.cc: New.
3388 * testsuite/special_functions/03_beta/check_value.cc: New.
3389 * testsuite/special_functions/03_beta/compile.cc: New.
3390 * testsuite/special_functions/03_beta/compile_2.cc: New.
3391 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
3392 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
3393 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
3394 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
3395 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
3396 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
3397 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
3398 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
3399 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
3400 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
3401 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
3402 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
3403 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
3404 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
3405 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
3406 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
3407 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
3408 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
3409 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
3410 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
3411 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
3412 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
3413 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
3414 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
3415 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
3416 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
3417 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
3418 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
3419 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
3420 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
3421 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
3422 * testsuite/special_functions/11_ellint_1/compile.cc: New.
3423 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
3424 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
3425 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
3426 * testsuite/special_functions/12_ellint_2/compile.cc: New.
3427 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
3428 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
3429 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
3430 * testsuite/special_functions/13_ellint_3/compile.cc: New.
3431 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
3432 * testsuite/special_functions/14_expint/check_nan.cc: New.
3433 * testsuite/special_functions/14_expint/check_value.cc: New.
3434 * testsuite/special_functions/14_expint/compile.cc: New.
3435 * testsuite/special_functions/14_expint/compile_2.cc: New.
3436 * testsuite/special_functions/15_hermite/check_nan.cc: New.
3437 * testsuite/special_functions/15_hermite/check_value.cc: New.
3438 * testsuite/special_functions/15_hermite/compile.cc: New.
3439 * testsuite/special_functions/15_hermite/compile_2.cc: New.
3440 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
3441 * testsuite/special_functions/16_laguerre/check_value.cc: New.
3442 * testsuite/special_functions/16_laguerre/compile.cc: New.
3443 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
3444 * testsuite/special_functions/17_legendre/check_nan.cc: New.
3445 * testsuite/special_functions/17_legendre/check_value.cc: New.
3446 * testsuite/special_functions/17_legendre/compile.cc: New.
3447 * testsuite/special_functions/17_legendre/compile_2.cc: New.
3448 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
3449 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
3450 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
3451 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
3452 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
3453 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
3454 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
3455 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
3456 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
3457 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
3458 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
3459 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
3460 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
3461 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
3462 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
3463 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
3464 * testsuite/util/specfun_testcase.h: New.
3465 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
3466 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
3467 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
3468 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
3469 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
3470 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
3471 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
3473 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
3476 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3477 and isnan functions.
3478 * config.h.in: Regenerate.
3479 * configure: Regenerate.
3480 * include/c_global/cmath (isinf(double), isnan(double))
3481 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
3482 * testsuite/26_numerics/headers/cmath/48891.cc: New.
3484 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3487 * configure.host (abi_baseline_pair): Use separate baseline for
3488 Solaris 11+ and Solaris 10 with gld.
3489 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
3490 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
3491 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
3493 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
3496 * include/std/type_traits: Following N4511, reimplement __is_swappable
3497 and __is_nothrow_swappable. Move __is_swappable to namespace std,
3498 adjust callers. Use __is_nothrow_swappable in swap.
3499 * include/bits/move.h: Use __is_nothrow_swappable in swap.
3500 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
3501 __is_swappable related tests.
3502 * testsuite/20_util/is_swappable/value.cc: New.
3503 * testsuite/20_util/is_swappable/requirements/
3504 explicit_instantiation.cc: New.
3505 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
3506 * testsuite/25_algorithms/swap/68877.cc: New.
3508 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
3510 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
3514 * include/std/functional (function::_Invoke): Remove, use result_of.
3515 (function::_Callable): Replace alias template with class template
3516 and use partial specialization instead of _NotSelf alias template.
3517 (function(_Functor)): Add "not self" constraint so that _Callable is
3518 not used while type is incomplete.
3519 * testsuite/20_util/function/69222.cc: New.
3521 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
3524 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
3525 Define partial specialization.
3526 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
3527 destroy members to std::allocator explicit specialization.
3529 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
3531 * testsuite/26_numerics/headers/cmath/
3532 c99_classification_macros_c++.cc: Rename to ...
3533 * testsuite/26_numerics/headers/cmath/
3534 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
3535 * testsuite/26_numerics/headers/cmath/
3536 c99_classification_macros_c++0x.cc: Rename to ...
3537 * testsuite/26_numerics/headers/cmath/
3538 c99_classification_macros_c++11.cc: Here.
3541 * include/bits/uses_allocator.h: Add missing include.
3543 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
3548 * include/bits/stl_iterator.h (back_insert_iterator,
3549 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
3550 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
3551 * include/std/future (__future::base::_State_baseV2::__setter):
3553 * include/std/scoped_allocator (__outermost): Likewise.
3554 * testsuite/20_util/scoped_allocator/69114.cc: New.
3555 * testsuite/20_util/uses_allocator/69114.cc: New.
3556 * testsuite/30_threads/promise/69106.cc: New.
3558 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
3561 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
3562 Remove _GLIBCXX_NOEXCEPT.
3563 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
3565 * include/Makefile.am: Adjust.
3566 * include/Makefile.in: Regenerate.
3567 * include/bits/mutex.h: Rename to bits/std_mutex.h.
3568 * include/std/condition_variable: Adjust include.
3569 * include/std/mutex: Likewise.
3571 2016-01-04 Jakub Jelinek <jakub@redhat.com>
3573 Update copyright years.
3575 Copyright (C) 2016 Free Software Foundation, Inc.
3577 Copying and distribution of this file, with or without modification,
3578 are permitted in any medium without royalty provided the copyright
3579 notice and this notice are preserved.