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