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