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