libstdc++: Make certain exceptions transaction_safe.
[gcc.git] / libstdc++-v3 / ChangeLog
1 2016-01-15 Torvald Riegel <triegel@redhat.com>
2
3 * include/bits/basic_string.h (basic_string): Declare friends.
4 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
5 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
6 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
7 length_error, out_of_range, runtime_error, range_error,
8 underflow_error, overflow_error): Declare members as transaction-safe.
9 (logic_error, runtime_error): Declare friend functions.
10 * libsupc++/exception (exception, bad_exception): Declare members as
11 transaction-safe.
12 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
13 transaction-safe members of exceptions and helper functions.
14 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
15 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
16 (CXXABI_1.3.10): New.
17 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
18 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
19 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
20 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
21 * include/Makefile.in: Regenerate.
22 * config.h.in: Regenerate.
23 * configure: Regenerate.
24 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
25
26 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
27
28 * include/ext/random.tcc: Use __builtin_isfinite instead of
29 std::isfinite.
30
31 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
32
33 * include/bits/std_mutex.h: Fix Doxygen @file name.
34
35 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
36 Jonathan Wakely <jwakely@redhat.com>
37 Florian Goth <CaptainSifff@gmx.de>
38
39 Implement TR29124 C++ special Math Functions.
40 * include/Makefile.am: Add new headers.
41 * include/Makefile.in: Regenerate.
42 * include/bits/specfun.h: New.
43 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
44 * include/tr1/bessel_function.tcc: Ditto.
45 * include/tr1/beta_function.tcc: Ditto.
46 * include/tr1/cmath: Ditto.
47 * include/tr1/ell_integral.tcc: Ditto.
48 * include/tr1/exp_integral.tcc: Ditto.
49 * include/tr1/gamma.tcc: Ditto.
50 * include/tr1/hypergeometric.tcc: Ditto.
51 * include/tr1/legendre_function.tcc: Ditto.
52 * include/tr1/modified_bessel_func.tcc: Ditto.
53 * include/tr1/poly_hermite.tcc: Ditto.
54 * include/tr1/poly_laguerre.tcc: Ditto.
55 * include/tr1/riemann_zeta.tcc: Ditto.
56 * include/tr1/special_function_util.h: Ditto.
57 * testsuite/ext/special_functions/conf_hyperg: New.
58 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
59 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
60 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
61 * testsuite/ext/special_functions/hyperg: New.
62 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
63 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
64 * testsuite/ext/special_functions/hyperg/compile.cc: New.
65 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
66 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
67 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
68 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
69 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
70 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
71 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
72 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
73 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
74 * testsuite/special_functions/03_beta/check_nan.cc: New.
75 * testsuite/special_functions/03_beta/check_value.cc: New.
76 * testsuite/special_functions/03_beta/compile.cc: New.
77 * testsuite/special_functions/03_beta/compile_2.cc: New.
78 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
79 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
80 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
81 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
82 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
83 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
84 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
85 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
86 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
87 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
88 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
89 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
90 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
91 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
92 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
93 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
94 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
95 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
96 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
97 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
98 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
99 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
100 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
101 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
102 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
103 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
104 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
105 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
106 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
107 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
108 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
109 * testsuite/special_functions/11_ellint_1/compile.cc: New.
110 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
111 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
112 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
113 * testsuite/special_functions/12_ellint_2/compile.cc: New.
114 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
115 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
116 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
117 * testsuite/special_functions/13_ellint_3/compile.cc: New.
118 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
119 * testsuite/special_functions/14_expint/check_nan.cc: New.
120 * testsuite/special_functions/14_expint/check_value.cc: New.
121 * testsuite/special_functions/14_expint/compile.cc: New.
122 * testsuite/special_functions/14_expint/compile_2.cc: New.
123 * testsuite/special_functions/15_hermite/check_nan.cc: New.
124 * testsuite/special_functions/15_hermite/check_value.cc: New.
125 * testsuite/special_functions/15_hermite/compile.cc: New.
126 * testsuite/special_functions/15_hermite/compile_2.cc: New.
127 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
128 * testsuite/special_functions/16_laguerre/check_value.cc: New.
129 * testsuite/special_functions/16_laguerre/compile.cc: New.
130 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
131 * testsuite/special_functions/17_legendre/check_nan.cc: New.
132 * testsuite/special_functions/17_legendre/check_value.cc: New.
133 * testsuite/special_functions/17_legendre/compile.cc: New.
134 * testsuite/special_functions/17_legendre/compile_2.cc: New.
135 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
136 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
137 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
138 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
139 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
140 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
141 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
142 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
143 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
144 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
145 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
146 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
147 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
148 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
149 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
150 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
151 * testsuite/util/specfun_testcase.h: New.
152 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
153 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
154 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
155 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
156 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
157 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
158 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
159
160 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
161
162 PR libstdc++/48891
163 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
164 and isnan functions.
165 * config.h.in: Regenerate.
166 * configure: Regenerate.
167 * include/c_global/cmath (isinf(double), isnan(double))
168 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
169 * testsuite/26_numerics/headers/cmath/48891.cc: New.
170
171 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
172
173 PR libstdc++/66006
174 * configure.host (abi_baseline_pair): Use separate baseline for
175 Solaris 11+ and Solaris 10 with gld.
176 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
177 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
178 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
179
180 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
181
182 PR libstdc++/68877
183 * include/std/type_traits: Following N4511, reimplement __is_swappable
184 and __is_nothrow_swappable. Move __is_swappable to namespace std,
185 adjust callers. Use __is_nothrow_swappable in swap.
186 * include/bits/move.h: Use __is_nothrow_swappable in swap.
187 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
188 __is_swappable related tests.
189 * testsuite/20_util/is_swappable/value.cc: New.
190 * testsuite/20_util/is_swappable/requirements/
191 explicit_instantiation.cc: New.
192 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
193 * testsuite/25_algorithms/swap/68877.cc: New.
194
195 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
196
197 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
198
199 PR libstdc++/69005
200 PR libstdc++/69222
201 * include/std/functional (function::_Invoke): Remove, use result_of.
202 (function::_Callable): Replace alias template with class template
203 and use partial specialization instead of _NotSelf alias template.
204 (function(_Functor)): Add "not self" constraint so that _Callable is
205 not used while type is incomplete.
206 * testsuite/20_util/function/69222.cc: New.
207
208 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
209
210 PR libstdc++/60976
211 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
212 Define partial specialization.
213 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
214 destroy members to std::allocator explicit specialization.
215
216 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
217
218 * testsuite/26_numerics/headers/cmath/
219 c99_classification_macros_c++.cc: Rename to ...
220 * testsuite/26_numerics/headers/cmath/
221 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
222 * testsuite/26_numerics/headers/cmath/
223 c99_classification_macros_c++0x.cc: Rename to ...
224 * testsuite/26_numerics/headers/cmath/
225 c99_classification_macros_c++11.cc: Here.
226
227 PR libstdc++/69190
228 * include/bits/uses_allocator.h: Add missing include.
229
230 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
231
232 PR libstdc++/69105
233 PR libstdc++/69106
234 PR libstdc++/69114
235 * include/bits/stl_iterator.h (back_insert_iterator,
236 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
237 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
238 * include/std/future (__future::base::_State_baseV2::__setter):
239 Likewise.
240 * include/std/scoped_allocator (__outermost): Likewise.
241 * testsuite/20_util/scoped_allocator/69114.cc: New.
242 * testsuite/20_util/uses_allocator/69114.cc: New.
243 * testsuite/30_threads/promise/69106.cc: New.
244
245 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
246
247 PR libstdc++/69092
248 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
249 Remove _GLIBCXX_NOEXCEPT.
250 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
251
252 * include/Makefile.am: Adjust.
253 * include/Makefile.in: Regenerate.
254 * include/bits/mutex.h: Rename to bits/std_mutex.h.
255 * include/std/condition_variable: Adjust include.
256 * include/std/mutex: Likewise.
257
258 2016-01-04 Jakub Jelinek <jakub@redhat.com>
259
260 Update copyright years.
261 \f
262 Copyright (C) 2016 Free Software Foundation, Inc.
263
264 Copying and distribution of this file, with or without modification,
265 are permitted in any medium without royalty provided the copyright
266 notice and this notice are preserved.