]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/ChangeLog
Implement C++17 P0025 clamp.
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
CommitLineData
4db1cb44
ESR
12016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
2
3 Implement C++17 P0025 clamp.
4 * include/bits/algorithmfwd.h: Declare clamp overloads.
5 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
6 * testsuite/25_algorithms/clamp/1.cc: New test.
7 * testsuite/25_algorithms/clamp/2.cc: New test.
8 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
9 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
10 1.cc: New test.
11 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
12 pod.cc: New test.
13
1ec0f763
VV
142016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
15
16 Fix the constraints for any's assignment operator template to properly
17 reject assignment from a non-copyable lvalue.
18 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
19 type for is_copy_constructible,
20 * testsuite/20_util/any/requirements.cc: Add a test for
21 non-copyable lvalues.
22
0a2bf188
JW
232016-07-14 Jonathan Wakely <jwakely@redhat.com>
24
ea5ec6b7
JW
25 * include/experimental/functional: Include <parallel/algorithm> in
26 Parallel Mode.
27
47d5cb3c
JW
28 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
29 for std::search.
30
0a2bf188
JW
31 PR libstdc++/70716
32 * include/bits/forward_list.h (forward_list): Update doxygen comments
33 to reflect allocator propagation semantics. Remove ambiguous
34 statements about data being lost.
35 * include/bits/stl_deque.h (deque): Likewise.
36 * include/bits/stl_list.h (list): Likewise.
37 * include/bits/stl_map.h (map): Likewise.
38 * include/bits/stl_multimap.h (multimap): Likewise.
39 * include/bits/stl_multiset.h (multiset): Likewise.
40 * include/bits/stl_set.h (set): Likewise.
41 * include/bits/stl_vector.h (vector): Likewise.
42 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
43 Likewise.
44 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
45 Likewise.
46
25a69162
VV
472016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
48
49 Implement P0032R3, Homogeneous interface for variant, any and optional,
50 for the parts concerning any and optional.
51 * include/std/any (_Storage()): Make constexpr and have it
52 initialize _M_ptr.
53 (any()): Make constexpr.
54 (any(const any&)): Adjust.
55 (any(any&&)): Likewise.
56 (__any_constructible_t): New.
57 (any(_ValueType&&)): Constrain.
58 (any(in_place_type_t<_Tp>, _Args&&...)): New.
59 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
60 Likewise.
61 (~any()): Adjust.
62 (operator=(const any&)): Likewise.
63 (operator=(any&&)): Likewise.
64 (operator=(_ValueType&&)): Constrain.
65 (emplace(_Args&&...)): New.
66 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
67 (clear()): Remove.
68 (reset()): New.
69 (swap(any&)): Adjust.
70 (empty()): Remove.
71 (has_value()): New.
72 (type()): Adjust.
73 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
74 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
75 (make_any(_Args&&...)): Likewise.
76 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
77 * include/std/optional (in_place_t, in_place): Remove.
78 (bad_optional_access): Add a comment referring to LEWG 72.
79 (emplace(_Args&&...)): Constrain.
80 (has_value()): New.
81 (reset()): Likewise.
82 (make_optional(_Args&&...)): Likewise.
83 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
84 * include/std/utility (in_place_tag): New.
85 (__in_place, __in_place_type, __in_place_index): Likewise.
86 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
87 (in_place(__in_place*)): Likewise.
88 (in_place(__in_place_type<_Tp>*)): Likewise.
89 (in_place(__in_place_index<_Idx>*)): Likewise.
90 * testsuite/20_util/any/assign/1.cc: Adjust.
91 * testsuite/20_util/any/assign/emplace.cc: New.
92 * testsuite/20_util/any/assign/self.cc: Adjust.
93 * testsuite/20_util/any/cons/1.cc: Likewise.
94 * testsuite/20_util/any/cons/in_place.cc: New.
95 * testsuite/20_util/any/make_any.cc: Likewise.
96 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
97 * testsuite/20_util/any/misc/swap.cc: Likewise.
98 * testsuite/20_util/any/modifiers/1.cc: Likewise.
99 * testsuite/20_util/any/requirements.cc: New.
100 * testsuite/20_util/in_place/requirements.cc: Likewise.
101 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
102 * testsuite/20_util/optional/in_place.cc: Likewise.
103 * testsuite/20_util/optional/make_optional.cc: Add tests for
104 the new overloads of make_optional.
105
c0d31471
VV
1062016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
107
108 Implement P0307R2, Making Optional Greater Equal Again.
109 * include/experimental/optional (_Has_addressof): Fix the comment.
110 * include/std/optional (_Has_addressof): Likewise.
111 (operator=(_Up&&)): Constrain.
112 (operator=(const optional<_Up>&)): Likewise.
113 (operator=(optional<_Up>&&)): Likewise.
114 (__optional_relop_t): New.
115 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
116 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
117 Constrain and make transparent.
118 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
119 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
120 Constrain and make transparent.
121 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
122 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
123 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
124 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
125 (operator!=(const optional<_Tp>&, _Tp const&)):
126 Constrain and make transparent.
127 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
128 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
129 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
130 (operator>(const optional<_Tp>&, const _Tp&)):
131 Constrain and make transparent.
132 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
133 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
134 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
135 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
136 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
137 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
138 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
139 * testsuite/20_util/optional/relops/1.cc: Likewise.
140 * testsuite/20_util/optional/relops/2.cc: Likewise.
141 * testsuite/20_util/optional/relops/3.cc: Likewise.
142 * testsuite/20_util/optional/relops/4.cc: Likewise.
143 * testsuite/20_util/optional/requirements.cc: Add tests to verify
144 that optional's relops are transparent and don't synthesize
145 operators. Also test that assignment sfinaes.
146
260d92cd
JW
1472016-07-13 Jonathan Wakely <jwakely@redhat.com>
148
e383deac
JW
149 PR libstdc++/71856
150 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
151 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
152 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
153 on _GLIBCXX_ASSERTIONS.
154 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
155 Include <unistd.h> for sleep.
156 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
157 * include/parallel/merge.h: Likewise.
158 * include/parallel/multiway_merge.h: Likewise.
159 * include/parallel/partition.h: Likewise.
160 * include/parallel/queue.h: Likewise.
161 * include/parallel/sort.h: Likewise.
162 * testsuite/25_algorithms/headers/algorithm/
163 parallel_algorithm_assert.cc: New.
164
17f8dc93
JW
165 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
166 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
167 Forward to different overload.
168
260d92cd
JW
169 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
170 static.
171
2d60da10
JW
1722016-07-13 Jonathan Wakely <jwakely@redhat.com>
173
174 Revert "Add non-const overload of std::string::data()".
175
05505e9d
VV
1762016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
177
86c0ec1d
VV
178 Implement P0307R2, Making Optional Greater Equal Again.
179 * include/experimental/optional (_Has_addressof): Fix the comment.
180 * include/std/optional (_Has_addressof): Likewise.
181 (operator=(_Up&&)): Constrain.
182 (operator=(const optional<_Up>&)): Likewise.
183 (operator=(optional<_Up>&&)): Likewise.
184 (__optional_relop_t): New.
185 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
186 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
187 Constrain and make transparent.
188 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
189 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
190 Constrain and make transparent.
191 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
192 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
193 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
194 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
195 (operator!=(const optional<_Tp>&, _Tp const&)):
196 Constrain and make transparent.
197 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
198 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
199 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
200 (operator>(const optional<_Tp>&, const _Tp&)):
201 Constrain and make transparent.
202 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
203 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
204 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
205 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
206 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
207 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
208 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
209 * testsuite/20_util/optional/relops/1.cc: Likewise.
210 * testsuite/20_util/optional/relops/2.cc: Likewise.
211 * testsuite/20_util/optional/relops/3.cc: Likewise.
212 * testsuite/20_util/optional/relops/4.cc: Likewise.
213 * testsuite/20_util/optional/requirements.cc: Add tests to verify
214 that optional's relops are transparent and don't synthesize
215 operators. Also test that assignment sfinaes.
216
ceea48fc
JW
2172016-07-13 Jonathan Wakely <jwakely@redhat.com>
218
219 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
220 New function.
221 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
222 instead of _M_data().
223 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
224 Likewise.
225 (append(const basic_string&)): Likewise.
226 (append(const basic_string&, size_type, size_type)): Likewise.
227 (assign(const basic_string&, size_type, size_type)): Likewise.
228 (insert(size_type, const basic_string&)): Likewise.
229 (insert(size_type, const basic_string&, size_type, size_type)):
230 Likewise.
231 (replace(size_type, size_type, const basic_string&, size_type,
232 size_type)): Likewise.
233 (replace(__const_iterator, __const_iterator, const basic_string&)):
234 Likewise.
235 (c_str(), data()): Use c_str() instead of _M_data().
236 (data()): Add non-const overload as per LWG 2391 and P0272R1.
237 (compare(const basic_string&)): Use data() instead of _M_data().
238 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
239 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
240 Pass raw pointers to _S_copy.
241 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
242 _S_assign.
243 (find(const _CharT*, size_type, size_type)): Use data instead of
244 _M_data().
245 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
246 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
247 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
248
17b31c05
JW
2492016-07-12 Jonathan Wakely <jwakely@redhat.com>
250
7cbadfdc
JW
251 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
252 * doc/xml/manual/intro.xml: Document DR 2458 status.
253 * doc/html*: Regenerate.
254
1b24fb4c
JW
255 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
256 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
257 Only include <array>.
258 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
259 Likewise.
1b1c16e0 260 * doc/xml/manual/intro.xml: Document LWG 2212 support.
1b24fb4c
JW
261 * doc/html*: Regenerate.
262
17b31c05
JW
263 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
264 Add testcase from LWG 2164.
265
76225d2c
FD
2662016-07-11 François Dumont <fdumont@gcc.gnu.org>
267
268 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
269 to _M_realloc_insert.
270 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
271 (_M_realloc_insert): Declare new function.
272 (_M_emplace_back_aux): Remove definition.
273 * include/bits/vector.tcc (emplace_back(_Args...)):
274 Use _M_realloc_insert.
275 (insert(const_iterator, const value_type&)): Likewise.
276 (_M_insert_rval, _M_emplace_aux): Likewise.
277 (_M_emplace_back_aux): Remove declaration.
278 (_M_realloc_insert): Define.
279 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
280 Adjust expected results for emplacing an lvalue with reallocation.
281
435e56fb
VV
2822016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
283
284 Implement std::optional.
285 * include/Makefile.am: Add optional to exported headers.
286 * include/Makefile.in: Likewise.
287 * include/std/optional: New.
288 * testsuite/20_util/optional/typedefs.cc: Likewise.
289 * testsuite/20_util/optional/relops/2.cc: Likewise.
290 * testsuite/20_util/optional/relops/3.cc: Likewise.
291 * testsuite/20_util/optional/relops/4.cc: Likewise.
292 * testsuite/20_util/optional/relops/5.cc: Likewise.
293 * testsuite/20_util/optional/relops/1.cc: Likewise.
294 * testsuite/20_util/optional/relops/6.cc: Likewise.
295 * testsuite/20_util/optional/nullopt.cc: Likewise.
296 * testsuite/20_util/optional/in_place.cc: Likewise.
297 * testsuite/20_util/optional/make_optional.cc: Likewise.
298 * testsuite/20_util/optional/assignment/2.cc: Likewise.
299 * testsuite/20_util/optional/assignment/3.cc: Likewise.
300 * testsuite/20_util/optional/assignment/4.cc: Likewise.
301 * testsuite/20_util/optional/assignment/5.cc: Likewise.
302 * testsuite/20_util/optional/assignment/1.cc: Likewise.
303 * testsuite/20_util/optional/assignment/6.cc: Likewise.
304 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
305 * testsuite/20_util/optional/cons/default.cc: Likewise.
306 * testsuite/20_util/optional/cons/move.cc: Likewise.
307 * testsuite/20_util/optional/cons/value.cc: Likewise.
308 * testsuite/20_util/optional/cons/copy.cc: Likewise.
309 * testsuite/20_util/optional/requirements.cc: Likewise.
310 * testsuite/20_util/optional/observers/2.cc: Likewise.
311 * testsuite/20_util/optional/observers/3.cc: Likewise.
312 * testsuite/20_util/optional/observers/4.cc: Likewise.
313 * testsuite/20_util/optional/observers/5.cc: Likewise.
314 * testsuite/20_util/optional/observers/1.cc: Likewise.
315 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
316 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
317 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
318 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
319 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
320 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
321 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
322 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
323 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
324 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
325 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
326 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
327 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
328 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
329 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
330 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
331 * testsuite/20_util/optional/swap/1.cc: Likewise.
332
d81102f4
JW
3332016-07-08 Jonathan Wakely <jwakely@redhat.com>
334
335 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
336
9fc0faf0
JW
3372016-07-07 Jonathan Wakely <jwakely@redhat.com>
338
339 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
340 * doc/html/*: Regenerate.
341
52e86221
VV
3422016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
343
344 Implement std::any.
345 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
346 * include/Makefile.in: Likewise.
347 * include/std/any: New.
348 * testsuite/20_util/any/assign/1.cc: Likewise.
349 * testsuite/20_util/any/assign/2.cc: Likewise.
350 * testsuite/20_util/any/assign/self.cc: Likewise.
351 * testsuite/20_util/any/cons/1.cc: Likewise.
352 * testsuite/20_util/any/cons/2.cc: Likewise.
353 * testsuite/20_util/any/cons/aligned.cc: Likewise.
354 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
355 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
356 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
357 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
358 * testsuite/20_util/any/misc/swap.cc: Likewise.
359 * testsuite/20_util/any/modifiers/1.cc: Likewise.
360 * testsuite/20_util/any/observers/type.cc: Likewise.
361 * testsuite/20_util/any/typedefs.cc: Likewise.
362
3042e708
VV
3632016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
364
365 Add a new header for diagnosing the use of C++17 facilities
366 in pre-C++17 modes.
367 * include/bits/c++17_warning.h: New.
368
6ffe8548
VV
3692016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
370
371 Implement LWG 2451, optional<T> should 'forward' T's
372 implicit conversions.
373 * include/experimental/optional (__is_optional_impl, __is_optional):
374 New.
375 (optional()): Make constexpr and default.
376 (optional(_Up&&), optional(const optional<_Up>&),
377 optional(optional<_Up>&& __t): New.
378 (operator=(_Up&&)): Constrain.
379 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
380 * testsuite/experimental/optional/cons/value.cc:
381 Add tests for the functionality added by LWG 2451.
382 * testsuite/experimental/optional/cons/value_neg.cc: New.
383
7d4f48b5
VV
3842016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
385
386 Implement LWG 2509,
387 any_cast doesn't work with rvalue reference targets and cannot
388 move with a value target.
389 * include/experimental/any (any(_ValueType&&)): Constrain and
390 add an overload that doesn't forward.
391 (any_cast(any&&)): Constrain and add an overload that moves.
392 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
393 the functionality added by LWG 2509.
394
097e8994
FD
3952016-07-04 François Dumont <fdumont@gcc.gnu.org>
396
397 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
398 New test.
399 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
400 test.
401
9958c7eb
JW
4022016-07-04 Jonathan Wakely <jwakely@redhat.com>
403
404 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
405 Define inline. Forward to _M_emplace_aux.
406 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
407 (_M_insert_rval, _M_emplace_aux): Declare new functions.
408 (_Temporary_value): New RAII type using allocator to construct/destroy.
409 (_S_insert_aux_assign): Remove.
410 (_M_insert_aux): Make non-variadic.
411 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
412 Use _Temporary_value.
413 (emplace(const_iterator, _Args&&...)): Remove definition.
414 (_M_insert_rval, _M_emplace_aux): Define.
415 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
416 (_M_fill_insert): Use _Temporary_value.
417 * testsuite/23_containers/vector/allocator/construction.cc: New test.
418 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
419 Adjust expected results for emplacing an lvalue with reallocation.
420 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
421 expected results to account for construction/destruction of temporary
422 using allocator.
423 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
424
e12880f9
VV
4252016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
426
427 PR libstdc++/71313
428 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
429 Call remove_all for children of a directory.
430 * testsuite/experimental/filesystem/operations/create_directories.cc:
431 Adjust.
432
6c539f2e
FD
4332016-07-02 François Dumont <fdumont@gcc.gnu.org>
434
435 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
436 dg-error line numbers.
437 * testsuite/23_containers/array/tuple_interface/
438 tuple_element_debug_neg.cc: Likewise.
439 * testsuite/25_algorithms/lexicographical_compare/debug/
440 irreflexive_neg.cc: Remove.
441
72fb6bae
TP
4422016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
443
444 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
445 than specific target.
446
dc448fa0
FD
4472016-06-27 François Dumont <fdumont@gcc.gnu.org>
448
449 PR libstdc++/71640
450 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
451 friend declaration.
452
e615c24c
FD
4532016-06-23 François Dumont <fdumont@gcc.gnu.org>
454
455 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
456 zero-size array.
457
0609abda
TS
4582016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
459
460 * configure.host: Remove mep-* support.
461
8466af06
TS
4622016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
463
464 * configure: Regenerate.
465 * configure.host: Remove support for knetbsd.
466 * crossconfig.m4: Likewise.
467
29dbb034
FD
4682016-06-20 François Dumont <fdumont@gcc.gnu.org>
469
470 PR libstdc++/71181
471 * include/tr1/hashtable_policy.h
472 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
473 dereferenceable to avoid check on lower_bound result.
474 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
475 (_Prime_rehash_policy::_M_need_rehash): Likewise.
476 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
477 Always return a value greater than input value. Set _M_next_resize to
478 max value when reaching highest prime number.
479 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
480 being now useless.
481 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
482 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
483 (test02): New.
484 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
485 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
486 Fix indentation.
487
3ebacabd
JW
4882016-06-17 Jonathan Wakely <jwakely@redhat.com>
489
490 PR libstdc++/71545
491 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
492 Remove irreflexive checks.
493 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
494 binary_search): Likewise.
495 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
496 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
497 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
498 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
499 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
500 Add constructor from array.
501
bd2ee798
FD
5022016-06-16 François Dumont <fdumont@gcc.gnu.org>
503
504 * include/debug/debug.h
505 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
506 (__glibcxx_requires_subscript): Move...
507 * include/debug/assertions.h: ...here and add __builtin_expect.
508 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
509 * include/bits/stl_deque.h
510 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
511 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
512 (std::deque<>::back()): Likewise.
513 (std::deque<>::pop_front()): Likewise.
514 (std::deque<>::pop_back()): Likewise.
515 (std::deque<>::swap(deque&)): Add allocator check.
516 * include/bits/stl_vector.h
517 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
518 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
519 (std::vector<>::back()): Likewise.
520 (std::vector<>::pop_back()): Likewise.
521 (std::vector<>::swap(vector&)): Add allocator check.
522
6b9539e2
DK
5232016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
524
525 Provide swappable traits (p0185r1)
526 * include/std/type_traits (is_swappable, is_nothrow_swappable,
527 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
528 is_nothrow_swappable_v, is_swappable_with_v,
529 is_nothrow_swappable_with_v): New.
530 * include/bits/stl_pair.h: Use it as per p0185r1.
531 * include/bits/stl_queue.h: Likewise.
532 * include/bits/stl_stack.h: Likewise.
533 * include/bits/unique_ptr.h: Likewise.
534 * include/std/tuple: Likewise.
535 * include/std/array: Likewise. Fix zero-size member swap.
536 * include/bits/hashtable.h: Use __and_.
537 * testsuite/20_util/is_nothrow_swappable/requirements/
538 explicit_instantiation.cc: Change test options to std=gnu++17.
539 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
540 Likewise.
541 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
542 * testsuite/20_util/is_swappable/requirements/
543 explicit_instantiation.cc: Likewise.
544 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
545 * testsuite/20_util/is_swappable/value.cc: Likewise.
546 * testsuite/20_util/is_nothrow_swappable/requirements/
547 explicit_instantiation_ext.cc: New.
548 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
549 New.
550 * testsuite/20_util/is_nothrow_swappable/value.h: New.
551 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
552 * testsuite/20_util/is_nothrow_swappable_with/requirements/
553 explicit_instantiation.cc: New.
554 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
555 New.
556 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
557 * testsuite/20_util/is_swappable/requirements/
558 explicit_instantiation_ext.cc: New.
559 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
560 * testsuite/20_util/is_swappable/value.h: New.
561 * testsuite/20_util/is_swappable/value_ext.cc: New.
562 * testsuite/20_util/is_swappable_with/requirements/
563 explicit_instantiation.cc: New.
564 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
565 * testsuite/20_util/is_swappable_with/value.cc: New.
566 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
567 dg-error line numbers.
568 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
569 Likewise.
570
0ae207e9
JW
5712016-06-16 Jonathan Wakely <jwakely@redhat.com>
572
33ac58d5
JW
573 * include/std/array: Remove trailing whitespace.
574 * include/std/atomic: Likewise.
575 * include/std/bitset: Likewise.
576 * include/std/chrono: Likewise.
577 * include/std/complex: Likewise.
578 * include/std/condition_variable: Likewise.
579 * include/std/fstream: Likewise.
580 * include/std/functional: Likewise.
581 * include/std/future: Likewise.
582 * include/std/iomanip: Likewise.
583 * include/std/iosfwd: Likewise.
584 * include/std/istream: Likewise.
585 * include/std/limits: Likewise.
586 * include/std/ratio: Likewise.
587 * include/std/scoped_allocator: Likewise.
588 * include/std/sstream: Likewise.
589 * include/std/stdexcept: Likewise.
590 * include/std/string: Likewise.
591 * include/std/system_error: Likewise.
592 * include/std/thread: Likewise.
593 * include/std/tuple: Likewise.
594 * include/std/type_traits: Likewise.
595 * include/std/utility: Likewise.
596 * include/std/valarray: Likewise.
597 * include/std/vector: Likewise.
598
0ae207e9
JW
599 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
600 new overloaded functions.
601 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
602 to avoid creating a redundant temporary.
603 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
604 test.
605
d7e16fc5
FD
6062016-06-15 François Dumont <fdumont@gcc.gnu.org>
607
608 * include/bits/stl_deque.h
609 (std::deque<>::operator=): Call _M_assign_aux.
610 (std::deque<>::assign(initializer_list<>)): Likewise.
611 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
612 (std::deque<>::insert(const_iterator, initializer_list<>)):
613 Call _M_range_insert_aux.
614 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
615 Likewise.
616 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
617 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
618 * include/bits/deque.tcc
619 (std::deque<>::operator=): Call _M_range_insert_aux.
620 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
621 Likewise.
622 * include/bits/stl_vector.h
623 (std::vector<>::operator=): Call _M_assign_aux.
624 (std::vector<>::assign(initializer_list<>)): Likewise.
625 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
626 (std::vector<>::insert(const_iterator, initializer_list<>)):
627 Call _M_range_insert.
628 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
629
373c0095
FD
6302016-06-07 François Dumont <fdumont@gcc.gnu.org>
631
632 * include/std/tuple (_Head_base<>): Default specialization condition at
633 type declaration.
634
dbc6221f
VV
6352016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
636
637 Support allocators in tuples of zero size.
638 * include/std/tuple (tuple<>::tuple(),
639 tuple<>::tuple(allocator_arg_t, const _Alloc&),
640 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
641 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
642
94229fb6
JW
6432016-06-06 Jonathan Wakely <jwakely@redhat.com>
644
645 PR libstdc++/71320
646 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
647 Add or remove permissions according to perms argument.
648 * testsuite/experimental/filesystem/operations/permissions.cc: New
649 test.
650
7a667453
VV
6512016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
652
653 Protect allocator-overloads of tuple-from-tuple constructors
654 from cases that would create dangling references.
655 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
656 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
657 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
658 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
659
4acc3634
GP
6602016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
661
662 * doc/xml/manual/backwards_compatibility.xml: Adjust
663 lists.debian.org link to https.
664 * doc/html/manual/backwards.html: Regenerate.
665
9020909e
JW
6662016-05-27 Jonathan Wakely <jwakely@redhat.com>
667
668 * doc/xml/manual/abi.xml: Adjust URL to use https.
669 * doc/html/manual/*: Regenerate.
670
b7021006
VV
6712016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
672
673 PR libstdc++/66338
674 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
675 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
676 check for _NotSameTuple.
677 * include/std/tuple (_TMCT): New.
678 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
679 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
680 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
681 const tuple<_UElements...>&)): Likewise.
682 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
683 tuple<_UElements...>&&)): Likewise.
684 * testsuite/20_util/tuple/cons/66338.cc: New.
685
834f4c43
JW
6862016-05-25 Jonathan Wakely <jwakely@redhat.com>
687
c42d2288
JW
688 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
689 * configure: Regenerate.
690 * config.h.in: Regenerate.
691
834f4c43
JW
692 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
693 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
694 Remove const qualification on function. Replace
695 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
696 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
697 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
698
732eb076
FD
6992016-05-24 François Dumont <fdumont@gcc.gnu.org>
700
701 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
702 * include/bits/hashtable_policy.h
703 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
704 having load factor management.
705 (_Mask_range_hashing): New.
706 (__clp2): New.
707 (_Power2_rehash_policy): New.
708 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
709 partial specializations only depend on whether iterators are constant
710 or not.
711 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
712 test new hash policy.
713 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
714 Likewise.
715 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
716 Likewise.
717 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
718 Likewise.
719 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
720 Likewise.
721 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
722 New.
723 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
724 using the new hash policy.
725 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
726
8be062c6
JW
7272016-05-24 Jonathan Wakely <jwakely@redhat.com>
728
729 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
730
447caf82
FD
7312016-05-23 François Dumont <fdumont@gcc.gnu.org>
732
733 * include/debug/safe_iterator.h
734 (_Safe_iterator<>::operator->()): Implement using underlying iterator
735 operator ->.
736 * include/debug/safe_local_iterator.h
737 (_Safe_local_iterator<>::operator->()): Likewise.
738
11f8114b
TP
7392016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
740
741 * testsuite/experimental/memory_resource/1.cc: Add required argument
742 to dg-require-atomic-builtins.
743
541a9b10
JW
7442016-05-13 Jonathan Wakely <jwakely@redhat.com>
745
746 PR libstdc++/71073
747 * include/debug/bitset: Add #pragma GCC system_header.
748 * include/debug/deque: Likewise.
749 * include/debug/list: Likewise.
750 * include/debug/map: Likewise.
751 * include/debug/set: Likewise.
752 * include/debug/string: Likewise.
753 * include/debug/unordered_map: Likewise.
754 * include/debug/unordered_set: Likewise.
755 * include/debug/vector: Likewise.
756 * include/debug/functions.h: Adjust whitespace.
757
068b220e
JW
7582016-05-12 Jonathan Wakely <jwakely@redhat.com>
759
760 PR libstdc++/71081
761 * testsuite/experimental/memory_resource/1.cc: Require atomics.
762
3d73ae6e
JW
7632016-05-11 Jonathan Wakely <jwakely@redhat.com>
764
765 PR libstdc++/71049
766 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
767 exception constructors with __sso_string parameters.
768
d7187f9e
JW
7692016-05-10 Jonathan Wakely <jwakely@redhat.com>
770
7f99d40a
JW
771 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
772 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
773 Test begin and end functions.
774 * testsuite/experimental/filesystem/iterators/
775 recursive_directory_iterator.cc: Likewise.
776
6fe673ad
JW
777 PR libstdc++/71038
778 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
779 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
780
77a87b2a
JW
781 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
782 Overload operator* to move from rvalues.
783
f9a39467
JW
784 PR libstdc++/71036
785 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
786 * testsuite/experimental/filesystem/operations/create_directory.cc:
787 New test.
788
6f0800d4
JW
789 PR libstdc++/71037
790 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
791 base path to exception.
792 * testsuite/experimental/filesystem/operations/canonical.cc: Test
793 paths contained in exception.
794
f10b2e1c
JW
795 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
796 using declaration.
797
d7187f9e
JW
798 PR libstdc++/71005
799 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
800 New type.
801 (directory_iterator::operator++(int)): Return proxy.
802 (recursive_directory_iterator::operator++(int)): Likewise.
803 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
804 Test post-increment.
805 * testsuite/experimental/filesystem/iterators/
806 recursive_directory_iterator.cc: Likewise.
807
7972e246
JW
8082016-05-09 Jonathan Wakely <jwakely@redhat.com>
809
810 PR libstdc++/71004
811 * testsuite/experimental/filesystem/iterators/
812 recursive_directory_iterator.cc: Fix test02 to not call member
813 functions on invalid iterator, and use VERIFY not assert.
814
fb334765
VV
8152016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
816
817 Avoid endless run-time recursion for copying single-element
818 tuples where the element type is by-value constructible
819 from any type.
820 * include/std/tuple (_NotSameTuple): New.
821 * include/std/tuple (tuple(_UElements&&...): Use it.
822 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
823
e4cce0ce
JW
8242016-05-09 Jonathan Wakely <jwakely@redhat.com>
825
826 PR libstdc++/71004
827 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
828 Initialize scalar member variables in default constructor.
829 * testsuite/experimental/filesystem/iterators/
d7187f9e 830 recursive_directory_iterator.cc: Test default construction.
e4cce0ce 831
40436d81
RO
8322016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
833
834 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
835
f5c40ce2
JW
8362016-05-05 Jonathan Wakely <jwakely@redhat.com>
837
838 * testsuite/experimental/filesystem/path/native/string.cc: Add
839 dg-require-filesystem-ts directive.
840
d9cb3e75
JW
8412016-05-04 Jonathan Wakely <jwakely@redhat.com>
842
843 PR libstdc++/70940
844 * include/experimental/memory_resource
845 (__resource_adaptor_imp::do_allocate): Do not default-construct
846 rebound allocator.
847 (__resource_adaptor_imp::do_deallocate): Likewise. Use
848 allocator_traits to get pointer type.
849 (__null_memory_resource::do_allocate): Remove unused parameters.
850 (__null_memory_resource::do_deallocate): Likewise.
851 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
852 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
853 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
854 move to ...
855 * testsuite/experimental/memory_resource/1.cc: Here.
856 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
857 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
858
f92ab29f
CG
8592016-04-29 Chris Gregory <czipperz@gmail.com>
860
861 * config/*: Remove trailing whitespace.
862 * src/*: Likewise.
863 * testsuite/tr1/*: Likewise.
864 * testsuite/util/*: Likewise.
865
272b2ce4
JW
8662016-04-28 Jonathan Wakely <jwakely@redhat.com>
867
9f9eb84e
JW
868 PR libstdc++/70766
869 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
870 __addressof.
871 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
872 Likewise.
873 * include/std/atomic (atomic<_Tp>): Likewise.
874 * include/std/shared_mutex (shared_lock): Likewise.
875 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
876 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
877 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
878 * testsuite/29_atomics/atomic/70766.cc: New test.
879 * testsuite/30_threads/shared_lock/70766.cc: New test.
880
272b2ce4
JW
881 * include/bits/hashtable_policy.h (__detail::_Insert_base,
882 __detail::_Insert): Improve comments.
883
45e20696
JW
8842016-04-27 Jonathan Wakely <jwakely@redhat.com>
885
886 PR libstdc++/70767
887 * include/std/limits: Update comments about DRs.
888 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
889 numeric_limits<const volatile _Tp>): Define unconditionally.
890
a635cdb2
JW
8912016-04-24 Jonathan Wakely <jwakely@redhat.com>
892
893 PR libstdc++/70762
894 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
895 static counter to return a different path on every call.
896
216f7526
TS
8972016-04-22 Tim Shen <timshen@google.com>
898
899 PR libstdc++/70745
900 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
901 Fix the match_not_bow and match_not_eow behavior.
902 * testsuite/28_regex/regression.cc: Add testcase.
903
a1e1ec76
JW
9042016-04-20 Jonathan Wakely <jwakely@redhat.com>
905
906 PR libstdc++/69703
907 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
908 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
909
9c476ad4
JW
9102016-04-19 Jonathan Wakely <jwakely@redhat.com>
911
29ca91f7 912 PR libstdc++/69703
a1e1ec76 913 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
29ca91f7
JW
914 Override endianness bit in mode.
915 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
916 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
917 that little_endian mode is ignored.
918 * testsuite/experimental/filesystem/path/native/string.cc: New test.
919
14905251
JW
920 PR libstdc++/70609
921 * src/filesystem/ops.cc (close_fd): New function.
922 (do_copy_file): Set permissions before copying file contents. Check
923 result of closing file descriptors. Don't copy streambuf when file
924 is empty.
925 (copy(const path&, const path&, copy_options, error_code&)): Use
926 lstat for source file when copy_symlinks is set.
927 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
928
9c476ad4
JW
929 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
930 operator~ operator&=, operator|=, operator^=): Add noexcept to
931 overloaded operators for copy_options, perms and directory_options.
932 * src/filesystem/ops.cc (make_file_type, make_file_status,
933 is_not_found_errno, file_time): Add noexcept.
934
d855ad89
ESR
9352016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
936
937 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
938
8dc1e574
JW
9392016-04-18 Jonathan Wakely <jwakely@redhat.com>
940
0cded43d
JW
941 PR libstdc++/41759
942 * include/bits/random.h: Reword static assertion messages to state
943 positive conditions.
944 * include/bits/random.tcc: Likewise.
945 * include/bits/uniform_int_dist.h: Likewise.
946 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
947 patterns.
948
90751aa7
JW
949 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
950
351a5f81
JW
951 * config/cpu/sh/atomicity.h: Fix typo in comment.
952
b05cf382
JW
953 PR libstdc++/70294
954 * include/std/thread (operator<, operator==): Move definitions to
955 namespace-scope.
956 * testsuite/30_threads/thread/id/70294.cc: New test.
957
4ed6e524
JW
958 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
959 -Wno-pedantic to dg-options.
960 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
961 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
962 to dg-options.
963 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
964 Remove extra semi-colon.
965 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
966 Always supply second argument to static_assert.
967 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
968 semi-colon.
969 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
970 dg-options.
971 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
972 * testsuite/29_atomics/atomic/60695.cc: Likewise.
973 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
974 alignof when operand is an object not a type.
975 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
976 * testsuite/decimal/make-decimal.cc: Likewise.
977 * testsuite/experimental/type_traits/value.cc: Always supply second
978 argument to static_assert.
979 * testsuite/util/testsuite_common_types.h: Use __extension__ for
980 __int128 types.
981
abb6e0a1
JW
982 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
983 internal header.
984 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
985 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
986 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
987 Likewise. Add licence and change to compile-only test.
988
6b6147dd
JW
989 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
990 unused parameter.
991 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
992
8dc1e574
JW
993 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
994 warnings.
995
80dbaf98
ESR
9962016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
997
998 * include/bits/specfun.h: Trivial comment misspelling.
999
9f285ccb
JM
10002016-04-14 Jason Merrill <jason@redhat.com>
1001
1002 Revert Jonathan's empty ABI change from yesterday.
1003
342fac95
MS
10042016-04-13 Martin Sebor <msebor@redhat.com>
1005
1006 PR c++/69517
1007 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
1008 upper bound is positive.
1009
a6297ab5
JW
10102016-04-13 Jonathan Wakely <jwakely@redhat.com>
1011
1012 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
1013 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
1014 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
1015 of functions taking empty structs by value. Add a template parameter
1016 to overloads without hints. Rename overloads with hints to
1017 _M_emplace_hint.
1018 (_Hashtable::_M_erase(true_type, const_iterator),
1019 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
1020 by reordering parameters.
1021 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
1022 _M_emplace_hint instead of _M_emplace.
1023 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
1024 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
1025 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
1026 __shared_ptr): Likewise.
1027 * include/bits/stl_algo.h (replace_if): Likewise.
1028 * include/bits/stl_pair.h (piecewise_construct_t,
1029 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
1030 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
1031 __uses_alloc0): Likewise.
1032 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
1033 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
1034 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
1035 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1036 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
1037 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
1038 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
1039
0c39f36d
ESR
10402016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
1041
1042 Document C++17/TR29124 C++ Special Math Functions.
1043 * include/bits/specfun.h: Add Doxygen markup.
1044
6da8b931
JW
10452016-04-07 Jonathan Wakely <jwakely@redhat.com>
1046
1047 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
1048
49a52ebc
EB
10492016-04-06 Eric Botcazou <ebotcazou@adacore.com>
1050
1051 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
1052 * src/Makefile.in: Regenerate.
1053
87cec93e
JW
10542016-04-05 Jonathan Wakely <jwakely@redhat.com>
1055
d2aee115
JW
1056 PR libstdc++/70554
1057 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
1058 __atomic_fetch_add for bool.
1059 * configure: Regenerate.
1060
d5ec69f3
JW
1061 * testsuite/30_threads/thread/70503.cc: Require -static to work.
1062
87cec93e
JW
1063 PR libstdc++/70503
1064 * src/c++11/thread.cc (execute_native_thread_routine,
1065 execute_native_thread_routine_compat): Give internal linkage.
1066 * testsuite/30_threads/thread/70503.cc: New test.
1067
7b3318c4
VV
10682016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
1069
1070 PR libstdc++/70437
1071 * include/bits/stl_pair.h (_ConstructiblePair,
1072 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
1073 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
1074 for same-type cases.
1075 * testsuite/20_util/pair/70437.cc: New.
1076
00e6c25a
JW
10772016-03-24 Jonathan Wakely <jwakely@redhat.com>
1078
1079 PR libstdc++/69945
1080 * config/abi/pre/gnu.ver: Add new symbol.
1081 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
1082 * testsuite/18_support/free_eh_pool.cc: New test.
1083
bfd84e6b
BE
10842016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
1085
1086 * include/Makefile.am (install-freestanding-headers): Add
1087 concept_check.h and move.h to the installed headers.
1088 * include/Makefile.in: Regenerated.
1089 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
1090 freestanding implementations.
1091 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
1092 that this macro has no effect for freestanding implementations.
1093 * doc/html/manual/using_macros.html: Likewise.
1094
86715b09
JW
10952016-02-24 Jonathan Wakely <jwakely@redhat.com>
1096
1097 PR libstdc++/69939
1098 * include/experimental/tuple (__apply_impl): Qualify get and forward.
1099
9aee022e
JW
11002016-02-23 Jonathan Wakely <jwakely@redhat.com>
1101
be9967e8
JW
1102 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
1103 * doc/html/*: Regenerate.
1104
9aee022e
JW
1105 PR libstdc++/69893
1106 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
1107 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
1108 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
1109 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
1110 trunc) [__cplusplus >= 201103L]: Import from namespace std.
1111 (fabs) [__cplusplus < 201103L]: Import from namespace std.
1112 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
1113 Likewise.
1114 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
1115 namespace before including TR1 headers.
1116 * testsuite/tr1/headers/c++200x/math.cc: New test.
1117
5f6dd593
BE
11182016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
1119
1120 PR libstdc++/69881
1121 * include/c_global/cstdarg: Undefine __need___va_list.
1122 * include/c_global/cstddef: Undefine all kinds of __need_*.
1123
244901a5
TS
11242016-02-16 Tim Shen <timshen@google.com>
1125
1126 PR libstdc++/69794
1127 * include/bits/regex_scanner.h: Add different special character
1128 sets for grep and egrep regex.
1129 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
1130 * testsuite/28_regex/regression.cc: Add new testcase.
1131
cc07da33
JW
11322016-02-08 Jonathan Wakely <jwakely@redhat.com>
1133
2158532f
JW
1134 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
1135 added 'constexpr' in previous commit.
1136 * configure: Regenerate.
1137
cc07da33
JW
1138 PR libstdc++/48891
1139 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
1140 checks for all targets except *-*-solaris2.* and ensure we find the
1141 libc math.h header not our own.
1142 * configure: Regenerate.
1143
acc04646
DV
11442016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
1145
1146 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
1147 New file. Copied over from s390-linux-gnu.
1148
dbcda3ee
JW
11492016-02-04 Jonathan Wakely <jwakely@redhat.com>
1150
3555173f
JW
1151 PR libstdc++/69626
1152 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
1153 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
1154 * config.h.in: Regenerate.
1155 * configure: Regenerate.
1156 * testsuite/21_strings/c_strings/char/69626.cc: New.
1157
15ebf379
JW
1158 * doc/html/index.html: Regenerate.
1159
dbcda3ee
JW
1160 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
1161 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
1162 * doc/html/*: Regenerate.
1163
571512d5
BE
11642016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
1165
1166 PR libstdc++/69581
1167 * include/c_compatibility/math.h: Move header guards.
1168 * include/c_compatibility/stdlib.h: Likewise.
1169
f597d5f7
JW
11702016-01-29 Jonathan Wakely <jwakely@redhat.com>
1171
1172 PR libstdc++/69506
1173 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
1174
69b0daeb
JDA
11752016-01-28 John David Anglin <danglin@gcc.gnu.org>
1176
1177 PR libstdc++/69450
1178 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
1179 isinf and isnan functions into two independent checks. Check on hpux.
1180 * config.h.in: Regenerate.
1181 * configure: Regenerate.
1182 * include/c_global/cmath (isinf(double), isnan(double)): Use
1183 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
1184 respectively.
1185
8dc781e4
JJ
11862016-01-27 Jakub Jelinek <jakub@redhat.com>
1187
1188 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
1189
bae87f7f
JW
11902016-01-27 Jonathan Wakely <jwakely@redhat.com>
1191
1192 PR libstdc++/69295
1193 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
1194 -ffp-contract=off, and -ffloat-store to disable excess precision.
1195 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
1196 -ffp-contract=off.
1197
f1d591e8
JW
11982016-01-26 Jonathan Wakely <jwakely@redhat.com>
1199
1200 PR libstdc++/69478
1201 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
1202 random_access_iterator_tag>): Check is_move_assignable when moving.
1203 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
1204 Likewise.
1205 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
1206 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
1207 * testsuite/25_algorithms/move/69478.cc: New.
1208 * testsuite/25_algorithms/move_backward/69478.cc: new.
1209
8964d2a0
AP
12102016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
1211
1212 * include/c_compatibility/stdlib.h: Include wide character related
1213 definitions only when they are available in cstdlib.
1214
2944621e
JW
12152016-01-25 Jonathan Wakely <jwakely@redhat.com>
1216
1217 PR libstdc++/69464
1218 * include/Makefile.am: Add new header.
1219 * include/Makefile.in: Regenerate.
1220 * include/bits/random.h (uniform_int_distribution): Move to
1221 bits/uniform_int_dist.h.
1222 * include/bits/random.tcc (uniform_int_distribution::operator(),
1223 uniform_int_distribution::__generate_impl): Likewise.
1224 * include/bits/uniform_int_dist.h: New header.
1225 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
1226 <bits/uniform_int_dist.h> instead of <random>.
1227 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
1228 move_iterators/1.cc: Include correct header for uninitialized_copy.
1229 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
1230 move_iterators/1.cc: Likewise.
1231 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
1232 header for vector.
1233 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
1234
3676c087
JDA
12352016-01-23 John David Anglin <danglin@gcc.gnu.org>
1236
1237 PR libstdc++/69446
1238 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
1239
02dc2419
ESR
12402016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
1241
1242 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
1243 * include/c_compatibility/math.h: Import the TR29124 functions
1244 into the global namespace.
1245 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
1246 xfail and make compile-only.
1247 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
1248 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
1249 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
1250 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
1251 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
1252 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
1253 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
1254 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
1255 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
1256 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
1257 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
1258 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
1259 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
1260 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
1261 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
1262 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
1263 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
1264 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
1265 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
1266 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
1267
350fe282
JW
12682016-01-22 Jonathan Wakely <jwakely@redhat.com>
1269
d1fb377c
JW
1270 PR libstdc++/69116
1271 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
1272 define result_type for types which can be safely used with valarrays.
1273 * testsuite/26_numerics/valarray/69116.cc: New.
1274
350fe282
JW
1275 PR libstdc++/69413
1276 * config/os/gnu-linux/os_defines.h: Define
1277 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
1278 * include/c_global/cmath (isinf, isnan): Check it.
1279 * doc/xml/manual/internals.xml: Document it.
1280 * doc/html/*: Regenerate.
1281
ab56cbed
JW
12822016-01-21 Jonathan Wakely <jwakely@redhat.com>
1283
1284 PR libstdc++/69406
1285 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
1286 * include/ext/type_traits.h: Likewise.
1287 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
1288 for presence of C headers.
1289 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
1290 dg-error line number.
1291 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
1292 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
1293 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
1294
7e10bcfa
TR
12952016-01-20 Torvald Riegel <triegel@redhat.com>
1296
1297 PR libstdc++/69310
1298 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
1299
eac437bf
JW
13002016-01-20 Jonathan Wakely <jwakely@redhat.com>
1301
3f93466a
JW
1302 PR libstdc++/60401
1303 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
1304 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
1305 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
1306 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
1307 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
1308 Add using declarations.
1309 * testsuite/26_numerics/headers/cmath/60401.cc: New.
1310
eac437bf
JW
1311 PR libstdc++/69386
1312 * include/c_global/ccomplex: Ensure C++ language linkage.
1313 * include/c_global/cmath: Likewise.
1314 * include/c_global/cstdlib: Likewise.
1315 * include/c_global/ctgmath: Likewise.
1316 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
1317
96e19ada
JW
13182016-01-19 Jonathan Wakely <jwakely@redhat.com>
1319
1320 PR libstdc++/14608
1321 PR libstdc++/60401
1322 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
1323 --enable-cheaders=c_global configs.
1324 * include/Makefile.in: Regenerate.
1325 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
1326 test and allow inclusion from C files.
1327 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
1328 (at_quick_exit, quick_exit): Add using directives.
1329 * include/c_global/cmath: Use #include_next for math.h.
1330 * include/c_global/cstdlib: Use #include_next for stdlib.h.
1331 * testsuite/26_numerics/headers/cmath/14608.cc: New.
1332 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
1333 Remove xfail for most targets.
1334 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
1335
9585381a
TR
13362016-01-18 Torvald Riegel <triegel@redhat.com>
1337
1338 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
1339 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
1340 and move after its definition.
1341 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
1342 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
1343 __GXX_WEAK__, and only provide transactional clones if
1344 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
1345 functions.
1346
f5460595
JW
13472016-01-18 Jonathan Wakely <jwakely@redhat.com>
1348
c91bcffc
JW
1349 PR libstdc++/60637
1350 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
1351
d75d9f91 1352 PR libstdc++/69243
9c5ad80e
JW
1353 * include/std/functional (_Function_base::_M_not_empty_function):
1354 Change overloads for pointers to take arguments by value.
1355 * testsuite/20_util/function/cons/57465.cc: Add tests for
1356 pointer-to-member cases.
1357
f5460595
JW
1358 PR libstdc++/69340
1359 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
1360 Use macros for exception handling and fix unused parameter warning.
1361
271366f6
JDA
13622016-01-17 John David Anglin <danglin@gcc.gnu.org>
1363
1364 PR libstdc++/68734
1365 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
1366
7a5d1d34
TR
13672016-01-17 Torvald Riegel <triegel@redhat.com>
1368
1369 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
1370
5445d5bf
L
13712016-01-16 H.J. Lu <hongjiu.lu@intel.com>
1372
1373 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
1374 __int128 symbols.
1375
3d076231
JW
13762016-01-15 Jonathan Wakely <jwakely@redhat.com>
1377
d7c1581c
JW
1378 PR libstdc++/69293
1379 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
1380 static assertion that type is constructible from the arguments.
1381 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
1382 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
1383 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
1384
3d076231
JW
1385 PR libstdc++/69294
1386 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
1387 and isnan on AIX. Quote variables.
1388 * configure: Regenerate.
1389
a04d5fc9
TR
13902016-01-15 Torvald Riegel <triegel@redhat.com>
1391
1392 * include/bits/basic_string.h (basic_string): Declare friends.
1393 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
1394 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
1395 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
1396 length_error, out_of_range, runtime_error, range_error,
1397 underflow_error, overflow_error): Declare members as transaction-safe.
1398 (logic_error, runtime_error): Declare friend functions.
1399 * libsupc++/exception (exception, bad_exception): Declare members as
1400 transaction-safe.
1401 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
1402 transaction-safe members of exceptions and helper functions.
1403 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
1404 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
1405 (CXXABI_1.3.10): New.
1406 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
1407 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
1408 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
1409 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
1410 * include/Makefile.in: Regenerate.
1411 * config.h.in: Regenerate.
1412 * configure: Regenerate.
1413 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
1414
cebeb718
SE
14152016-01-15 Steve Ellcey <sellcey@imgtec.com>
1416
1417 * include/ext/random.tcc: Use __builtin_isfinite instead of
1418 std::isfinite.
1419
3b07547d
JW
14202016-01-15 Jonathan Wakely <jwakely@redhat.com>
1421
1422 * include/bits/std_mutex.h: Fix Doxygen @file name.
1423
2be75957
ESR
14242016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
1425 Jonathan Wakely <jwakely@redhat.com>
1426 Florian Goth <CaptainSifff@gmx.de>
1427
1428 Implement TR29124 C++ special Math Functions.
1429 * include/Makefile.am: Add new headers.
1430 * include/Makefile.in: Regenerate.
1431 * include/bits/specfun.h: New.
1432 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
1433 * include/tr1/bessel_function.tcc: Ditto.
1434 * include/tr1/beta_function.tcc: Ditto.
1435 * include/tr1/cmath: Ditto.
1436 * include/tr1/ell_integral.tcc: Ditto.
1437 * include/tr1/exp_integral.tcc: Ditto.
1438 * include/tr1/gamma.tcc: Ditto.
1439 * include/tr1/hypergeometric.tcc: Ditto.
1440 * include/tr1/legendre_function.tcc: Ditto.
1441 * include/tr1/modified_bessel_func.tcc: Ditto.
1442 * include/tr1/poly_hermite.tcc: Ditto.
1443 * include/tr1/poly_laguerre.tcc: Ditto.
1444 * include/tr1/riemann_zeta.tcc: Ditto.
1445 * include/tr1/special_function_util.h: Ditto.
1446 * testsuite/ext/special_functions/conf_hyperg: New.
1447 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
1448 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
1449 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
1450 * testsuite/ext/special_functions/hyperg: New.
1451 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
1452 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
1453 * testsuite/ext/special_functions/hyperg/compile.cc: New.
1454 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
1455 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
1456 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
1457 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
1458 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
1459 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
1460 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
1461 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
1462 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
1463 * testsuite/special_functions/03_beta/check_nan.cc: New.
1464 * testsuite/special_functions/03_beta/check_value.cc: New.
1465 * testsuite/special_functions/03_beta/compile.cc: New.
1466 * testsuite/special_functions/03_beta/compile_2.cc: New.
1467 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
1468 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
1469 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
1470 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
1471 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
1472 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
1473 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
1474 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
1475 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
1476 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
1477 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
1478 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
1479 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
1480 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
1481 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
1482 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
1483 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
1484 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
1485 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
1486 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
1487 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
1488 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
1489 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
1490 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
1491 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
1492 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
1493 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
1494 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
1495 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
1496 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
1497 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
1498 * testsuite/special_functions/11_ellint_1/compile.cc: New.
1499 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
1500 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
1501 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
1502 * testsuite/special_functions/12_ellint_2/compile.cc: New.
1503 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
1504 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
1505 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
1506 * testsuite/special_functions/13_ellint_3/compile.cc: New.
1507 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
1508 * testsuite/special_functions/14_expint/check_nan.cc: New.
1509 * testsuite/special_functions/14_expint/check_value.cc: New.
1510 * testsuite/special_functions/14_expint/compile.cc: New.
1511 * testsuite/special_functions/14_expint/compile_2.cc: New.
1512 * testsuite/special_functions/15_hermite/check_nan.cc: New.
1513 * testsuite/special_functions/15_hermite/check_value.cc: New.
1514 * testsuite/special_functions/15_hermite/compile.cc: New.
1515 * testsuite/special_functions/15_hermite/compile_2.cc: New.
1516 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
1517 * testsuite/special_functions/16_laguerre/check_value.cc: New.
1518 * testsuite/special_functions/16_laguerre/compile.cc: New.
1519 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
1520 * testsuite/special_functions/17_legendre/check_nan.cc: New.
1521 * testsuite/special_functions/17_legendre/check_value.cc: New.
1522 * testsuite/special_functions/17_legendre/compile.cc: New.
1523 * testsuite/special_functions/17_legendre/compile_2.cc: New.
1524 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
1525 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
1526 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
1527 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
1528 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
1529 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
1530 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
1531 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
1532 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
1533 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
1534 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
1535 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
1536 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
1537 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
1538 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
1539 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
1540 * testsuite/util/specfun_testcase.h: New.
1541 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
1542 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
1543 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
1544 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
1545 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
1546 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
1547 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
1548
39a1d8c8
JW
15492016-01-13 Jonathan Wakely <jwakely@redhat.com>
1550
1551 PR libstdc++/48891
1552 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
1553 and isnan functions.
1554 * config.h.in: Regenerate.
1555 * configure: Regenerate.
1556 * include/c_global/cmath (isinf(double), isnan(double))
1557 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
1558 * testsuite/26_numerics/headers/cmath/48891.cc: New.
1559
e862906c
RO
15602016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1561
1562 PR libstdc++/66006
1563 * configure.host (abi_baseline_pair): Use separate baseline for
1564 Solaris 11+ and Solaris 10 with gld.
1565 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
1566 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
1567 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
1568
26b5ace7
DK
15692016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
1570
1571 PR libstdc++/68877
1572 * include/std/type_traits: Following N4511, reimplement __is_swappable
1573 and __is_nothrow_swappable. Move __is_swappable to namespace std,
1574 adjust callers. Use __is_nothrow_swappable in swap.
1575 * include/bits/move.h: Use __is_nothrow_swappable in swap.
1576 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
1577 __is_swappable related tests.
1578 * testsuite/20_util/is_swappable/value.cc: New.
1579 * testsuite/20_util/is_swappable/requirements/
1580 explicit_instantiation.cc: New.
1581 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
1582 * testsuite/25_algorithms/swap/68877.cc: New.
1583
1c3c7c41
JW
15842016-01-12 Jonathan Wakely <jwakely@redhat.com>
1585
bd285a8b
JW
1586 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
1587
1c3c7c41
JW
1588 PR libstdc++/69005
1589 PR libstdc++/69222
1590 * include/std/functional (function::_Invoke): Remove, use result_of.
1591 (function::_Callable): Replace alias template with class template
1592 and use partial specialization instead of _NotSelf alias template.
1593 (function(_Functor)): Add "not self" constraint so that _Callable is
1594 not used while type is incomplete.
1595 * testsuite/20_util/function/69222.cc: New.
1596
1517bc30
JW
15972016-01-11 Jonathan Wakely <jwakely@redhat.com>
1598
1599 PR libstdc++/60976
1600 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
1601 Define partial specialization.
1602 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
1603 destroy members to std::allocator explicit specialization.
1604
e525d78c
JW
16052016-01-08 Jonathan Wakely <jwakely@redhat.com>
1606
8babc12b
JW
1607 * testsuite/26_numerics/headers/cmath/
1608 c99_classification_macros_c++.cc: Rename to ...
1609 * testsuite/26_numerics/headers/cmath/
1610 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
1611 * testsuite/26_numerics/headers/cmath/
1612 c99_classification_macros_c++0x.cc: Rename to ...
1613 * testsuite/26_numerics/headers/cmath/
1614 c99_classification_macros_c++11.cc: Here.
1615
32a8c97f 1616 PR libstdc++/69190
e525d78c
JW
1617 * include/bits/uses_allocator.h: Add missing include.
1618
f885fa89
JW
16192016-01-07 Jonathan Wakely <jwakely@redhat.com>
1620
1621 PR libstdc++/69105
1622 PR libstdc++/69106
1623 PR libstdc++/69114
1624 * include/bits/stl_iterator.h (back_insert_iterator,
1625 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
1626 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
1627 * include/std/future (__future::base::_State_baseV2::__setter):
1628 Likewise.
1629 * include/std/scoped_allocator (__outermost): Likewise.
1630 * testsuite/20_util/scoped_allocator/69114.cc: New.
1631 * testsuite/20_util/uses_allocator/69114.cc: New.
1632 * testsuite/30_threads/promise/69106.cc: New.
1633
0c3e5dd1
JW
16342016-01-06 Jonathan Wakely <jwakely@redhat.com>
1635
373a75fb
JW
1636 PR libstdc++/69092
1637 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
1638 Remove _GLIBCXX_NOEXCEPT.
1639 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
1640
0c3e5dd1
JW
1641 * include/Makefile.am: Adjust.
1642 * include/Makefile.in: Regenerate.
1643 * include/bits/mutex.h: Rename to bits/std_mutex.h.
1644 * include/std/condition_variable: Adjust include.
1645 * include/std/mutex: Likewise.
1646
818ab71a 16472016-01-04 Jakub Jelinek <jakub@redhat.com>
5624e564
JJ
1648
1649 Update copyright years.
b4df5e92 1650\f
818ab71a 1651Copyright (C) 2016 Free Software Foundation, Inc.
b4df5e92
JW
1652
1653Copying and distribution of this file, with or without modification,
1654are permitted in any medium without royalty provided the copyright
1655notice and this notice are preserved.