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