libstdc++/70609 fix filesystem::copy()
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob1607e63d6093094dc15a1a5f37a6f135dc3e6c5c
1 2016-04-19  Jonathan Wakely  <jwakely@redhat.com>
3         PR libstdc++/70609
4         * src/filesystem/ops.cc (close_fd): New function.
5         (do_copy_file): Set permissions before copying file contents. Check
6         result of closing file descriptors. Don't copy streambuf when file
7         is empty.
8         (copy(const path&, const path&, copy_options, error_code&)): Use
9         lstat for source file when copy_symlinks is set.
10         * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
12         * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
13         operator~ operator&=, operator|=, operator^=): Add noexcept to
14         overloaded operators for copy_options, perms and directory_options.
15         * src/filesystem/ops.cc (make_file_type, make_file_status,
16         is_not_found_errno, file_time): Add noexcept.
18 2016-04-19  Edward Smith-Rowland  <3dw4rd@verizon.net>
20         * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
22 2016-04-18  Jonathan Wakely  <jwakely@redhat.com>
24         PR libstdc++/41759
25         * include/bits/random.h: Reword static assertion messages to state
26         positive conditions.
27         * include/bits/random.tcc: Likewise.
28         * include/bits/uniform_int_dist.h: Likewise.
29         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
30         patterns.
32         * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
34         * config/cpu/sh/atomicity.h: Fix typo in comment.
36         PR libstdc++/70294
37         * include/std/thread (operator<, operator==): Move definitions to
38         namespace-scope.
39         * testsuite/30_threads/thread/id/70294.cc: New test.
41         * testsuite/18_support/bad_exception/23591_thread-1.c: Add
42         -Wno-pedantic to dg-options.
43         * testsuite/20_util/align/2.cc: Use type as operand of alignof.
44         * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
45         to dg-options.
46         * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
47         Remove extra semi-colon.
48         * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
49         Always supply second argument to static_assert.
50         * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
51         semi-colon.
52         * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
53         dg-options.
54         * testsuite/26_numerics/complex/literals/values.cc: Likewise.
55         * testsuite/29_atomics/atomic/60695.cc: Likewise.
56         * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
57         alignof when operand is an object not a type.
58         * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
59         * testsuite/decimal/make-decimal.cc: Likewise.
60         * testsuite/experimental/type_traits/value.cc: Always supply second
61         argument to static_assert.
62         * testsuite/util/testsuite_common_types.h: Use __extension__ for
63         __int128 types.
65         * testsuite/experimental/type_erased_allocator/1.cc: Don't include
66         internal header.
67         * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
68         * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
69         * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
70         Likewise. Add licence and change to compile-only test.
72         * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
73         unused parameter.
74         * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
76         * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
77         warnings.
79 2016-04-17  Edward Smith-Rowland  <3dw4rd@verizon.net>
81         * include/bits/specfun.h: Trivial comment misspelling.
83 2016-04-14  Jason Merrill  <jason@redhat.com>
85         Revert Jonathan's empty ABI change from yesterday.
87 2016-04-13  Martin Sebor  <msebor@redhat.com>
89         PR c++/69517
90         * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
91         upper bound is positive.
93 2016-04-13  Jonathan Wakely  <jwakely@redhat.com>
95         * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
96         _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
97         * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
98         of functions taking empty structs by value. Add a template parameter
99         to overloads without hints. Rename overloads with hints to
100         _M_emplace_hint.
101         (_Hashtable::_M_erase(true_type, const_iterator),
102         _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
103         by reordering parameters.
104         * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
105         _M_emplace_hint instead of _M_emplace.
106         * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
107         shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
108         * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
109         __shared_ptr): Likewise.
110         * include/bits/stl_algo.h (replace_if): Likewise.
111         * include/bits/stl_pair.h (piecewise_construct_t,
112         piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
113         * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
114         __uses_alloc0): Likewise.
115         * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
116         * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
117         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
118         * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
119         * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
120         * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
121         * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
123 2016-04-12  Edward Smith-Rowland  <3dw4rd@verizon.net>
125         Document C++17/TR29124 C++ Special Math Functions.
126         * include/bits/specfun.h: Add Doxygen markup.
128 2016-04-07  Jonathan Wakely  <jwakely@redhat.com>
130         * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
132 2016-04-06  Eric Botcazou  <ebotcazou@adacore.com>
134         * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
135         * src/Makefile.in: Regenerate.
137 2016-04-05  Jonathan Wakely  <jwakely@redhat.com>
139         PR libstdc++/70554
140         * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
141         __atomic_fetch_add for bool.
142         * configure: Regenerate.
144         * testsuite/30_threads/thread/70503.cc: Require -static to work.
146         PR libstdc++/70503
147         * src/c++11/thread.cc (execute_native_thread_routine,
148         execute_native_thread_routine_compat): Give internal linkage.
149         * testsuite/30_threads/thread/70503.cc: New test.
151 2016-04-05  Ville Voutilainen  <ville.voutilainen@gmail.com>
153         PR libstdc++/70437
154         * include/bits/stl_pair.h (_ConstructiblePair,
155         _ImplicitlyConvertiblePair, _MoveConstructiblePair,
156         _ImplicitlyMoveConvertiblePair): Add shortcut conditions
157         for same-type cases.
158         * testsuite/20_util/pair/70437.cc: New.
160 2016-03-24  Jonathan Wakely  <jwakely@redhat.com>
162         PR libstdc++/69945
163         * config/abi/pre/gnu.ver: Add new symbol.
164         * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
165         * testsuite/18_support/free_eh_pool.cc: New test.
167 2016-03-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
169         * include/Makefile.am (install-freestanding-headers): Add
170         concept_check.h and move.h to the installed headers.
171         * include/Makefile.in: Regenerated.
172         * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
173         freestanding implementations.
174         * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
175         that this macro has no effect for freestanding implementations.
176         * doc/html/manual/using_macros.html: Likewise.
178 2016-02-24  Jonathan Wakely  <jwakely@redhat.com>
180         PR libstdc++/69939
181         * include/experimental/tuple (__apply_impl): Qualify get and forward.
183 2016-02-23  Jonathan Wakely  <jwakely@redhat.com>
185         * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
186         * doc/html/*: Regenerate.
188         PR libstdc++/69893
189         * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
190         exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
191         llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
192         nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
193         trunc) [__cplusplus >= 201103L]: Import from namespace std.
194         (fabs) [__cplusplus < 201103L]: Import from namespace std.
195         * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
196         Likewise.
197         * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
198         namespace before including TR1 headers.
199         * testsuite/tr1/headers/c++200x/math.cc: New test.
201 2016-02-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
203         PR libstdc++/69881
204         * include/c_global/cstdarg: Undefine __need___va_list.
205         * include/c_global/cstddef: Undefine all kinds of __need_*.
207 2016-02-16  Tim Shen  <timshen@google.com>
209         PR libstdc++/69794
210         * include/bits/regex_scanner.h: Add different special character
211         sets for grep and egrep regex.
212         * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
213         * testsuite/28_regex/regression.cc: Add new testcase.
215 2016-02-08  Jonathan Wakely  <jwakely@redhat.com>
217         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
218         added 'constexpr' in previous commit.
219         * configure: Regenerate.
221         PR libstdc++/48891
222         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
223         checks for all targets except *-*-solaris2.* and ensure we find the
224         libc math.h header not our own.
225         * configure: Regenerate.
227 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
229         * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
230         New file.  Copied over from s390-linux-gnu.
232 2016-02-04  Jonathan Wakely  <jwakely@redhat.com>
234         PR libstdc++/69626
235         * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
236         with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
237         * config.h.in: Regenerate.
238         * configure: Regenerate.
239         * testsuite/21_strings/c_strings/char/69626.cc: New.
241         * doc/html/index.html: Regenerate.
243         * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
244         * doc/xml/manual/spine.xml: Update copyright years and author blurb.
245         * doc/html/*: Regenerate.
247 2016-02-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
249         PR libstdc++/69581
250         * include/c_compatibility/math.h: Move header guards.
251         * include/c_compatibility/stdlib.h: Likewise.
253 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
255         PR libstdc++/69506
256         * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
258 2016-01-28  John David Anglin  <danglin@gcc.gnu.org>
260         PR libstdc++/69450
261         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
262         isinf and isnan functions into two independent checks.  Check on hpux.
263         * config.h.in: Regenerate.
264         * configure: Regenerate.
265         * include/c_global/cmath (isinf(double), isnan(double)): Use
266         _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
267         respectively.
269 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
271         * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
273 2016-01-27  Jonathan Wakely  <jwakely@redhat.com>
275         PR libstdc++/69295
276         * testsuite/ext/special_functions/hyperg/check_value.cc: Use
277         -ffp-contract=off, and -ffloat-store to disable excess precision.
278         * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
279         -ffp-contract=off.
281 2016-01-26  Jonathan Wakely  <jwakely@redhat.com>
283         PR libstdc++/69478
284         * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
285         random_access_iterator_tag>): Check is_move_assignable when moving.
286         (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
287         Likewise.
288         * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
289         * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
290         * testsuite/25_algorithms/move/69478.cc: New.
291         * testsuite/25_algorithms/move_backward/69478.cc: new.
293 2016-01-26  Andris Pavenis  <andris.pavenis@iki.fi>
295         * include/c_compatibility/stdlib.h: Include wide character related
296         definitions only when they are available in cstdlib.
298 2016-01-25  Jonathan Wakely  <jwakely@redhat.com>
300         PR libstdc++/69464
301         * include/Makefile.am: Add new header.
302         * include/Makefile.in: Regenerate.
303         * include/bits/random.h (uniform_int_distribution): Move to
304         bits/uniform_int_dist.h.
305         * include/bits/random.tcc (uniform_int_distribution::operator(),
306         uniform_int_distribution::__generate_impl): Likewise.
307         * include/bits/uniform_int_dist.h: New header.
308         * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
309         <bits/uniform_int_dist.h> instead of <random>.
310         * testsuite/20_util/specialized_algorithms/uninitialized_copy/
311         move_iterators/1.cc: Include correct header for uninitialized_copy.
312         * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
313         move_iterators/1.cc: Likewise.
314         * testsuite/25_algorithms/nth_element/58800.cc: Include correct
315         header for vector.
316         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
318 2016-01-23  John David Anglin  <danglin@gcc.gnu.org>
320         PR libstdc++/69446
321         * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
323 2016-01-22  Edward Smith-Rowland  <3dw4rd@verizon.net>
325         TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
326         * include/c_compatibility/math.h: Import the TR29124 functions
327         into the global namespace.
328         * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
329         xfail and make compile-only.
330         * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
331         * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
332         * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
333         * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
334         * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
335         * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
336         * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
337         * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
338         * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
339         * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
340         * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
341         * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
342         * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
343         * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
344         * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
345         * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
346         * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
347         * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
348         * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
349         * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
351 2016-01-22  Jonathan Wakely  <jwakely@redhat.com>
353         PR libstdc++/69116
354         * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
355         define result_type for types which can be safely used with valarrays.
356         * testsuite/26_numerics/valarray/69116.cc: New.
358         PR libstdc++/69413
359         * config/os/gnu-linux/os_defines.h: Define
360         _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
361         * include/c_global/cmath (isinf, isnan): Check it.
362         * doc/xml/manual/internals.xml: Document it.
363         * doc/html/*: Regenerate.
365 2016-01-21  Jonathan Wakely  <jwakely@redhat.com>
367         PR libstdc++/69406
368         * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
369         * include/ext/type_traits.h: Likewise.
370         * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
371         for presence of C headers.
372         * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
373         dg-error line number.
374         * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
375         * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
376         * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
378 2016-01-20  Torvald Riegel  <triegel@redhat.com>
380         PR libstdc++/69310
381         * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
383 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
385         PR libstdc++/60401
386         * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
387         copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
388         lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
389         nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
390         tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
391         Add using declarations.
392         * testsuite/26_numerics/headers/cmath/60401.cc: New.
394         PR libstdc++/69386
395         * include/c_global/ccomplex: Ensure C++ language linkage.
396         * include/c_global/cmath: Likewise.
397         * include/c_global/cstdlib: Likewise.
398         * include/c_global/ctgmath: Likewise.
399         * testsuite/17_intro/headers/c++2011/linkage.cc: New.
401 2016-01-19  Jonathan Wakely  <jwakely@redhat.com>
403         PR libstdc++/14608
404         PR libstdc++/60401
405         * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
406         --enable-cheaders=c_global configs.
407         * include/Makefile.in: Regenerate.
408         * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
409         test and allow inclusion from C files.
410         * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
411         (at_quick_exit, quick_exit): Add using directives.
412         * include/c_global/cmath: Use #include_next for math.h.
413         * include/c_global/cstdlib: Use #include_next for stdlib.h.
414         * testsuite/26_numerics/headers/cmath/14608.cc: New.
415         * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
416         Remove xfail for most targets.
417         * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
419 2016-01-18  Torvald Riegel  <triegel@redhat.com>
421         * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
422         (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
423         and move after its definition.
424         * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
425         * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
426         __GXX_WEAK__, and only provide transactional clones if
427         _GLIBCXX_USE_WEAK_REF is true.  Don't provide stubs of libitm
428         functions.
430 2016-01-18  Jonathan Wakely  <jwakely@redhat.com>
432         PR libstdc++/60637
433         * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
435         PR libstdc++/69243
436         * include/std/functional (_Function_base::_M_not_empty_function):
437         Change overloads for pointers to take arguments by value.
438         * testsuite/20_util/function/cons/57465.cc: Add tests for
439         pointer-to-member cases.
441         PR libstdc++/69340
442         * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
443         Use macros for exception handling and fix unused parameter warning.
445 2016-01-17  John David Anglin  <danglin@gcc.gnu.org>
447         PR libstdc++/68734
448         * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
450 2016-01-17  Torvald Riegel  <triegel@redhat.com>
452         * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
454 2016-01-16  H.J. Lu  <hongjiu.lu@intel.com>
456         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
457         __int128 symbols.
459 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
461         PR libstdc++/69293
462         * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
463         static assertion that type is constructible from the arguments.
464         * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
465         * testsuite/20_util/uses_allocator/69293_neg.cc: New.
466         * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
468         PR libstdc++/69294
469         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
470         and isnan on AIX. Quote variables.
471         * configure: Regenerate.
473 2016-01-15  Torvald Riegel  <triegel@redhat.com>
475         * include/bits/basic_string.h (basic_string): Declare friends.
476         * include/bits/c++config (_GLIBCXX_TXN_SAFE,
477         _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
478         * include/std/stdexcept (logic_error, domain_error, invalid_argument,
479         length_error, out_of_range, runtime_error, range_error,
480         underflow_error, overflow_error): Declare members as transaction-safe.
481         (logic_error, runtime_error): Declare friend functions.
482         * libsupc++/exception (exception, bad_exception): Declare members as
483         transaction-safe.
484         * src/c++11/cow-stdexcept.cc: Define transactional clones for the
485         transaction-safe members of exceptions and helper functions.
486         * libsupc++/eh_exception.cc: Adjust and define transactional clones.
487         * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
488         (CXXABI_1.3.10): New.
489         * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
490         (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
491         * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
492         * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
493         * include/Makefile.in: Regenerate.
494         * config.h.in: Regenerate.
495         * configure: Regenerate.
496         * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
498 2016-01-15  Steve Ellcey  <sellcey@imgtec.com>
500         * include/ext/random.tcc: Use __builtin_isfinite instead of
501         std::isfinite.
503 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
505         * include/bits/std_mutex.h: Fix Doxygen @file name.
507 2016-01-14  Edward Smith-Rowland  <3dw4rd@verizon.net>
508             Jonathan Wakely  <jwakely@redhat.com>
509             Florian Goth <CaptainSifff@gmx.de>
511         Implement TR29124 C++ special Math Functions.
512         * include/Makefile.am: Add new headers.
513         * include/Makefile.in: Regenerate.
514         * include/bits/specfun.h: New.
515         * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
516         * include/tr1/bessel_function.tcc: Ditto.
517         * include/tr1/beta_function.tcc: Ditto.
518         * include/tr1/cmath: Ditto.
519         * include/tr1/ell_integral.tcc: Ditto.
520         * include/tr1/exp_integral.tcc: Ditto.
521         * include/tr1/gamma.tcc: Ditto.
522         * include/tr1/hypergeometric.tcc: Ditto.
523         * include/tr1/legendre_function.tcc: Ditto.
524         * include/tr1/modified_bessel_func.tcc: Ditto.
525         * include/tr1/poly_hermite.tcc: Ditto.
526         * include/tr1/poly_laguerre.tcc: Ditto.
527         * include/tr1/riemann_zeta.tcc: Ditto.
528         * include/tr1/special_function_util.h: Ditto.
529         * testsuite/ext/special_functions/conf_hyperg: New.
530         * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
531         * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
532         * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
533         * testsuite/ext/special_functions/hyperg: New.
534         * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
535         * testsuite/ext/special_functions/hyperg/check_value.cc: New.
536         * testsuite/ext/special_functions/hyperg/compile.cc: New.
537         * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
538         * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
539         * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
540         * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
541         * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
542         * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
543         * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
544         * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
545         * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
546         * testsuite/special_functions/03_beta/check_nan.cc: New.
547         * testsuite/special_functions/03_beta/check_value.cc: New.
548         * testsuite/special_functions/03_beta/compile.cc: New.
549         * testsuite/special_functions/03_beta/compile_2.cc: New.
550         * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
551         * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
552         * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
553         * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
554         * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
555         * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
556         * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
557         * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
558         * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
559         * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
560         * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
561         * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
562         * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
563         * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
564         * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
565         * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
566         * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
567         * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
568         * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
569         * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
570         * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
571         * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
572         * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
573         * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
574         * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
575         * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
576         * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
577         * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
578         * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
579         * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
580         * testsuite/special_functions/11_ellint_1/check_value.cc: New.
581         * testsuite/special_functions/11_ellint_1/compile.cc: New.
582         * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
583         * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
584         * testsuite/special_functions/12_ellint_2/check_value.cc: New.
585         * testsuite/special_functions/12_ellint_2/compile.cc: New.
586         * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
587         * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
588         * testsuite/special_functions/13_ellint_3/check_value.cc: New.
589         * testsuite/special_functions/13_ellint_3/compile.cc: New.
590         * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
591         * testsuite/special_functions/14_expint/check_nan.cc: New.
592         * testsuite/special_functions/14_expint/check_value.cc: New.
593         * testsuite/special_functions/14_expint/compile.cc: New.
594         * testsuite/special_functions/14_expint/compile_2.cc: New.
595         * testsuite/special_functions/15_hermite/check_nan.cc: New.
596         * testsuite/special_functions/15_hermite/check_value.cc: New.
597         * testsuite/special_functions/15_hermite/compile.cc: New.
598         * testsuite/special_functions/15_hermite/compile_2.cc: New.
599         * testsuite/special_functions/16_laguerre/check_nan.cc: New.
600         * testsuite/special_functions/16_laguerre/check_value.cc: New.
601         * testsuite/special_functions/16_laguerre/compile.cc: New.
602         * testsuite/special_functions/16_laguerre/compile_2.cc: New.
603         * testsuite/special_functions/17_legendre/check_nan.cc: New.
604         * testsuite/special_functions/17_legendre/check_value.cc: New.
605         * testsuite/special_functions/17_legendre/compile.cc: New.
606         * testsuite/special_functions/17_legendre/compile_2.cc: New.
607         * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
608         * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
609         * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
610         * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
611         * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
612         * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
613         * testsuite/special_functions/19_sph_bessel/compile.cc: New.
614         * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
615         * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
616         * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
617         * testsuite/special_functions/20_sph_legendre/compile.cc: New.
618         * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
619         * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
620         * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
621         * testsuite/special_functions/21_sph_neumann/compile.cc: New.
622         * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
623         * testsuite/util/specfun_testcase.h: New.
624         * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
625         * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
626         * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
627         * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
628         * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
629         * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
630         * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
632 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
634         PR libstdc++/48891
635         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
636         and isnan functions.
637         * config.h.in: Regenerate.
638         * configure: Regenerate.
639         * include/c_global/cmath (isinf(double), isnan(double))
640         [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
641         * testsuite/26_numerics/headers/cmath/48891.cc: New.
643 2016-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
645         PR libstdc++/66006
646         * configure.host (abi_baseline_pair): Use separate baseline for
647         Solaris 11+ and Solaris 10 with gld.
648         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
649         * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
650         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
652 2016-01-12  Daniel Kruegler  <daniel.kruegler@gmail.com>
654         PR libstdc++/68877
655         * include/std/type_traits: Following N4511, reimplement __is_swappable
656         and __is_nothrow_swappable. Move __is_swappable to namespace std,
657         adjust callers. Use __is_nothrow_swappable in swap.
658         * include/bits/move.h: Use __is_nothrow_swappable in swap.
659         * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
660         __is_swappable related tests.
661         * testsuite/20_util/is_swappable/value.cc: New.
662         * testsuite/20_util/is_swappable/requirements/
663         explicit_instantiation.cc: New.
664         * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
665         * testsuite/25_algorithms/swap/68877.cc: New.
667 2016-01-12  Jonathan Wakely  <jwakely@redhat.com>
669         * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
671         PR libstdc++/69005
672         PR libstdc++/69222
673         * include/std/functional (function::_Invoke): Remove, use result_of.
674         (function::_Callable): Replace alias template with class template
675         and use partial specialization instead of _NotSelf alias template.
676         (function(_Functor)): Add "not self" constraint so that _Callable is
677         not used while type is incomplete.
678         * testsuite/20_util/function/69222.cc: New.
680 2016-01-11  Jonathan Wakely  <jwakely@redhat.com>
682         PR libstdc++/60976
683         * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
684         Define partial specialization.
685         * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
686         destroy members to std::allocator explicit specialization.
688 2016-01-08  Jonathan Wakely  <jwakely@redhat.com>
690         * testsuite/26_numerics/headers/cmath/
691         c99_classification_macros_c++.cc: Rename to ...
692         * testsuite/26_numerics/headers/cmath/
693         c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
694         * testsuite/26_numerics/headers/cmath/
695         c99_classification_macros_c++0x.cc: Rename to ...
696         * testsuite/26_numerics/headers/cmath/
697         c99_classification_macros_c++11.cc: Here.
699         PR libstdc++/69190
700         * include/bits/uses_allocator.h: Add missing include.
702 2016-01-07  Jonathan Wakely  <jwakely@redhat.com>
704         PR libstdc++/69105
705         PR libstdc++/69106
706         PR libstdc++/69114
707         * include/bits/stl_iterator.h (back_insert_iterator,
708         front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
709         * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
710         * include/std/future (__future::base::_State_baseV2::__setter):
711         Likewise.
712         * include/std/scoped_allocator (__outermost): Likewise.
713         * testsuite/20_util/scoped_allocator/69114.cc: New.
714         * testsuite/20_util/uses_allocator/69114.cc: New.
715         * testsuite/30_threads/promise/69106.cc: New.
717 2016-01-06  Jonathan Wakely  <jwakely@redhat.com>
719         PR libstdc++/69092
720         * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
721         Remove _GLIBCXX_NOEXCEPT.
722         testsuite/21_strings/basic_string/cons/char/69092.cc: New.
724         * include/Makefile.am: Adjust.
725         * include/Makefile.in: Regenerate.
726         * include/bits/mutex.h: Rename to bits/std_mutex.h.
727         * include/std/condition_variable: Adjust include.
728         * include/std/mutex: Likewise.
730 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
732         Update copyright years.
734 Copyright (C) 2016 Free Software Foundation, Inc.
736 Copying and distribution of this file, with or without modification,
737 are permitted in any medium without royalty provided the copyright
738 notice and this notice are preserved.