]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/ChangeLog
PR libstdc++/81468 constrain std::chrono::time_point constructor
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
CommitLineData
2af96386
JW
12017-09-13 Jonathan Wakely <jwakely@redhat.com>
2
d0dda804
JW
3 PR libstdc++/81468
4 * include/std/chrono (__enable_if_is_duration)
5 (__disable_if_is_duration): New alias templates to simplify SFINAE.
6 (duration_cast, floor, ceil): Use __enable_if_is_duration.
7 (duration::__is_float, duration::__is_harmonic): New alias templates
8 to simplify SFINAE.
9 (duration::duration(const _Rep2&)): Use _Require, __is_float and
10 __is_harmonic.
11 (duration::duration(const duration<_Rep2, _Period2>&)): Likewise.
12 (__common_rep_type): Remove, replace with ...
13 (__common_rep_t): New alias template.
14 (operator*, operator/, operator%): Use __common_rep_t and
15 __disable_if_is_duration.
16 (time_point::time_point(const time_point<clock, _Dur2>&)): Add missing
17 constraint from LWG DR 1177.
18 * testsuite/20_util/duration/cons/dr1177.cc: New.
19 * testsuite/20_util/duration/literals/range.cc: Update dg-error line.
20 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
21 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
22 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
23 * testsuite/20_util/time_point/cons/81468.cc: New.
24
c29730ec
JW
25 * doc/doxygen/mainpage.html: Fix broken URLs.
26
ff7e6f06
JW
27 PR libstdc++/81835
28 * doc/xml/manual/extensions.xml: Replace unstable URL.
29 * doc/html/manual/ext_demangling.html: Regenerate.
30 * libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL.
31
2af96386
JW
32 * include/bits/allocated_ptr.h (__allocated_ptr::get): Use
33 __to_address.
34 (__allocated_ptr::_S_raw_ptr): Remove.
35 * include/bits/forward_list.h (_Fwd_list_base::_M_get_node): Use
36 __to_address.
37 * include/bits/hashtable_policy.h (_Hashtable_alloc): Likewise.
38 * include/bits/ptr_traits.h (__to_address): Define new function
39 template.
40 * include/bits/shared_ptr_base.h (__shared_ptr): Use __to_address.
41 (__shared_ptr::_S_raw_ptr): Remove.
42 * include/bits/stl_vector.h [__cplusplus >= 201103L]
43 (vector::_M_data_ptr): Use __to_address.
44 [__cplusplus < 201103L] (vector::_M_data_ptr): Don't dereference
45 possibly invalid pointers.
46 * include/ext/alloc_traits.h (__alloc_traits::construct)
47 (__alloc_traits::destroy): Use __to_address.
48
2be7a166
JW
492017-09-12 Jonathan Wakely <jwakely@redhat.com>
50
d681026d
JW
51 PR libstdc++/79433
52 * include/Makefile.am: Remove <bits/c++14_warning.h>.
53 * include/Makefile.in: Regenerate.
54 * include/bits/c++14_warning.h: Remove.
55 * include/experimental/algorithm: Do not include <c++14_warning.h>.
56 * include/experimental/any: Likewise.
57 * include/experimental/array: Likewise.
58 * include/experimental/bits/erase_if.h: Likewise.
59 * include/experimental/bits/lfts_config.h: Likewise.
60 * include/experimental/bits/shared_ptr.h: Likewise.
61 * include/experimental/bits/string_view.tcc: Likewise.
62 * include/experimental/chrono: Likewise.
63 * include/experimental/deque: Likewise.
64 * include/experimental/filesystem: Do not include <c++0x_warning.h>.
65 * include/experimental/forward_list: Do not include <c++14_warning.h>.
66 * include/experimental/functional: Likewise.
67 * include/experimental/iterator: Likewise.
68 * include/experimental/list: Likewise.
69 * include/experimental/map: Likewise.
70 * include/experimental/memory: Likewise.
71 * include/experimental/numeric: Likewise.
72 * include/experimental/optional: Likewise.
73 * include/experimental/propagate_const: Likewise.
74 * include/experimental/ratio: Likewise.
75 * include/experimental/regex: Likewise.
76 * include/experimental/set: Likewise.
77 * include/experimental/string: Likewise.
78 * include/experimental/string_view: Likewise.
79 * include/experimental/system_error: Likewise.
80 * include/experimental/tuple: Likewise.
81 * include/experimental/type_traits: Likewise.
82 * include/experimental/unordered_map: Likewise.
83 * include/experimental/unordered_set: Likewise.
84 * include/experimental/vector: Likewise.
85 * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error
86 line number.
87 * testsuite/experimental/array/neg.cc: Likewise.
88 * testsuite/experimental/propagate_const/assignment/move_neg.cc:
89 Likewise.
90 * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
91 * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
92 * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
93 * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
94 * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
95
c6888c62
JW
96 PR libstdc++/79433
97 * doc/xml/manual/status_cxx2017.xml: Update feature-test macros.
98 * doc/html/*: Regenerate.
99 * include/Makefile.am: Remove <bits/c++17_warning.h>.
100 * include/Makefile.in: Regenerate.
101 * include/bits/c++17_warning.h: Remove.
102 * include/bits/string_view.tcc: Do not include <bits/c++17_warning.h>
103 for pre-C++17 modes.
104 * include/std/any: Likewise.
105 (__cpp_lib_any): Define.
106 * include/std/mutex (__cpp_lib_scoped_lock): Adjust value as per new
107 SD-6 draft.
108 * include/std/numeric (__cpp_lib_gcd_lcm): Define as per new SD-6
109 draft.
110 * include/std/optional: Do not include <bits/c++17_warning.h>.
111 (__cpp_lib_optional): Define.
112 * include/std/shared_mutex: Do not include <bits/c++14_warning.h>.
113 * include/std/string_view: Do not include <bits/c++17_warning.h>.
114 (__cpp_lib_string_view): Define.
115 * include/std/variant: Do not include <bits/c++17_warning.h>.
116 (__cpp_lib_variant): Define.
117 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error line
118 numbers.
119 * testsuite/26_numerics/gcd/1.cc: Test for __cpp_lib_gcd_lcm.
120 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
121 numbers.
122 * testsuite/26_numerics/lcm/1.cc: Test for __cpp_lib_gcd_lcm.
123 * testsuite/26_numerics/lcm/lcm_neg.cc: Adjust dg-error line
124 numbers.
125 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Adjust
126 expected value of __cpp_lib_scoped_lock.
127
2be7a166
JW
128 PR libstdc++/70483
129 * include/experimental/bits/string_view.tcc (basic_string_view::find)
130 (basic_string_view::rfind, basic_string_view::find_first_of)
131 (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
132 (basic_string_view::find_last_not_of): Add constexpr specifier.
133 * include/experimental/string_view (basic_string_view::remove_prefix)
134 (basic_string_view::remove_suffix, basic_string_view::swap)
135 (basic_string_view::compare, basic_string_view::find)
136 (basic_string_view::rfind, basic_string_view::find_first_of)
137 (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
138 (basic_string_view::find_last_not_of, operator==, operator!=)
139 (operator<, operator>, operator<=, operator>=): Likewise.
140 * testsuite/experimental/string_view/operations/compare/char/70483.cc:
141 New.
142
c5ae1a27
JW
1432017-09-11 Jonathan Wakely <jwakely@redhat.com>
144
145 PR libstdc++/70483
146 * include/bits/string_view.tcc (basic_string_view::find)
147 (basic_string_view::rfind, basic_string_view::find_first_of)
148 (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
149 (basic_string_view::find_last_not_of): Add constexpr specifier.
150 * include/std/string_view (basic_string_view::operator=)
151 (basic_string_view::rbegin, basic_string_view::rend)
152 (basic_string_view::crbegin, basic_string_view::crend)
153 (basic_string_view::remove_prefix, basic_string_view::remove_suffix)
154 (basic_string_view::swap, basic_string_view::compare)
155 (basic_string_view::find, basic_string_view::rfind)
156 (basic_string_view::find_first_of, basic_string_view::find_last_of)
157 (basic_string_view::find_first_not_of)
158 (basic_string_view::find_last_not_of, basic_string_view::_M_check)
159 (basic_string_view::_M_limit, operator==, operator!=, operator<)
160 (operator>, operator<=, operator>=): Likewise.
161 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
162 char/1.cc: Repeat tests in constexpr context.
163 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
164 wchar_t/1.cc: Likewise.
165 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
166 char/1.cc: Likewise.
167 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
168 wchar_t/1.cc: Likewise.
169 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
170 Likewise.
171 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
172 Likewise.
173 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
174 Likewise.
175 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
176 Likewise.
177 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
178 Likewise.
179 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
180 Likewise.
181 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
182 Likewise.
183 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
184 Likewise.
185 * testsuite/21_strings/basic_string_view/range_access/char/1.cc: Test
186 cbegin, cend, rbegin, rend, crbegin and crend.
187 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
188 Likewise.
189 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
190 Remove trailing whitespace.
191 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
192 1.cc: Likewise.
193 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
194 New.
195 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
196 New.
197 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
198 New.
199 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
200 2.cc: New.
201
3366a474
TS
2022017-09-11 Tim Shen <timshen@google.com>
203
204 PR libstdc++/71500
205 * include/bits/regex_executor.tcc: Support icase in regex_tratis<...>
206 for back reference matches.
207 * testsuite/28_regex/regression.cc: Test case.
208
47d7966a
JW
2092017-09-11 Jonathan Wakely <jwakely@redhat.com>
210
211 * testsuite/21_strings/basic_string/lwg2946.cc: Adjust for
212 compatibility with old COW std::string.
213
630e912e
GP
2142017-09-09 Gerald Pfeifer <gerald@pfeifer.com>
215
216 * doc/xml/manual/allocator.xml: Adjust link for Hoard.
217 * doc/html/manual/memory.html: Regenerate.
218
df66af3b
DK
2192017-09-04 Daniel Kruegler <daniel.kruegler@gmail.com>
220
221 PR libstdc++/79162
222 Implement LWG 2946, LWG 2758's resolution missed further corrections
223 * include/bits/basic_string.h (basic_string::compare): Add missing
224 required noexcept specifications.
225 (basic_string): Introduce internal _S_to_string_view and __sv_wrapper
226 for implicit string_view conversion.
227 (basic_string::basic_string): Fix explicit string_view conversion by
228 implicit conversion using _S_to_string_view and __sv_wrapper.
229 (basic_string): Introduce internal basic_string(__sv_wrapper, Alloc)
230 constructor.
231 (basic_string): Fix operator=(T) template by operator=(const T&)
232 template for uncopyable types (PR 79162).
233 (basic_string::operator+=, basic_string::append, basic_string::assign)
234 (basic_string::insert, basic_string::replace, basic_string::find)
235 (basic_string::rfind, basic_string::find_first_of)
236 (basic_string::find_last_of, basic_string::find_first_not_of)
237 (basic_string::find_last_not_of, basic_string::compare): Replace
238 __sv_type argument by template const T& (LWG 2946) and correct
239 documentation describing __sv_type argument.
240 (basic_string::find, basic_string::rfind, basic_string::find_first_of)
241 (basic_string::find_last_of, basic_string::find_first_not_of)
242 (basic_string::find_last_not_of, basic_string::compare): Replace
243 unconditional noexcept specification by conditional noexcept
244 specification to partially balance the removal of noexcept by LWG 2946.
245 * testsuite/21_strings/basic_string/79162.cc: New.
246 * testsuite/21_strings/basic_string/lwg2946.cc: New.
247
89c6ecfa
JW
2482017-08-31 Jonathan Wakely <jwakely@redhat.com>
249
250 PR c++/82039
251 * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
252 Adjust null pointer constant to avoid warning.
253
55500f5d
FD
2542017-08-24 François Dumont <fdumont@gcc.gnu.org>
255
256 * include/bits/stl_list.h
257 [!_GLIBCXX_INLINE_VERSION](_List_base<>::_S_distance): Remove.
258 (_List_impl(_Node_alloc_type&&, _List_impl&&)): New.
259 (_List_base(_Node_alloc_type&&, _List_base&&)): New, use latter.
260 [!_GLIBCXX_INLINE_VERSION](_List_base(_Node_alloc_type&&,_List_base&&)):
261 Remove.
262 (_List_base(_Node_alloc_type&&)): New.
263 [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_distance): Remove.
264 [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_node_count): Remove.
265 (list<>::_M_node_count): New.
266 (list<>::size()): Adapt to call latter.
267 (list<>::_S_distance(const_iterator, const_iterator)): New.
268 (list<>::splice(iterator, list&, const_iterator, const_iterator)):
269 Adapt to call latter.
270 (list(list&&, const allocator_type&, true_type)): New.
271 (list(list&&, const allocator_type&, false_type)): New.
272 (list(list&&, const allocator_type&)): Adapt to call latters.
273
2c0378f4
JW
2742017-08-21 Jonathan Wakely <jwakely@redhat.com>
275
276 PR libstdc++/81912
277 * include/bits/stl_iterator_base_types.h (__iterator_category): Add
278 constexpr for C++11 and later.
279 * testsuite/24_iterators/container_access.cc: Add target selector.
280 * testsuite/24_iterators/range_access.cc: Fix clause number in
281 comment.
282 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
283 * testsuite/24_iterators/range_access_cpp17.cc: New.
284
1ea85365
RB
2852017-08-21 Richard Biener <rguenther@suse.de>
286
287 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Run all
288 tests with -flto as well if supported.
289
be56159c
MS
2902017-08-20 Martin Sebor <msebor@redhat.com>
291
292 PR c/81854
293 * src/c++98/compatibility.cc (_GLIBCXX_3_4_SYMVER): Declare alias
294 target as a C++ function with no prototype.
295 (_GLIBCXX_3_4_5_SYMVER): Ditto.
296
ab7fc02e
JDA
2972017-08-20 John David Anglin <danglin@gcc.gnu.org>
298
299 PR testsuite/81056
1104d918 300 * testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__.
ab7fc02e 301
676c4146
JW
3022017-08-18 Jonathan Wakely <jwakely@redhat.com>
303
b74f0db1
JW
304 * include/bits/hashtable_policy.h (_ReuseOrAllocNode): Remove
305 __value_alloc_type and __value_alloc_traits typedefs.
306 (_ReuseOrAllocNode::operator()): Call construct and destroy on the
307 node allocator.
308 (_Hashtable_alloc): Simplify __value_alloc_traits typedef.
309 (_Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&&...)): Call
310 construct on the node allocator.
311 (_Hashtable_alloc<_NodeAlloc>::_M_deallocate_node(__node_type*)): Call
312 destroy on the node allocator.
313
676c4146
JW
314 PR libstdc++/81891
315 * include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
316 size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
317 const _ExtractKey&, const allocator_type&)): Let destructor do clean
318 up if an exception is thrown.
319 * testsuite/23_containers/unordered_map/cons/81891.cc: New.
320
1ea93d89
JW
3212017-08-11 Jonathan Wakely <jwakely@redhat.com>
322
323 PR libstdc++/81808
324 * testsuite/27_io/basic_fstream/53984.cc: Adjust test for targets
325 that allow opening a directory as a FILE and reading from it.
326
2d763763
JW
3272017-08-09 Jonathan Wakely <jwakely@redhat.com>
328
329 * include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP):
330 Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use
331 __is_identifier to set it.
332
2ae804bf
KN
3332017-08-09 Katsuhiko Nishimra <ktns.87@gmail.com>
334
335 * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
336 __is_identifier instead of __has_builtin.
337
04d07b61
JW
3382017-08-09 Jonathan Wakely <jwakely@redhat.com>
339
340 PR libstdc++/79820
341 PR libstdc++/81751
342 * config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)):
343 Call fflush on the stream instead of calling sync() while _M_cfile is
344 null. Restore original value of errno.
345 * testsuite/ext/stdio_filebuf/char/79820.cc: New.
346 * testsuite/ext/stdio_filebuf/char/81751.cc: New.
347
4ab033db
MP
3482017-07-31 Marek Polacek <polacek@redhat.com>
349
350 PR libstdc++/81599
351 * include/bits/stl_stack.h: Fix typo.
352
958dc0c2
JW
3532017-07-26 Jonathan Wakely <jwakely@redhat.com>
354
355 * testsuite/27_io/basic_fstream/53984.cc: Fix test.
356
3b1aa533
PC
3572017-07-26 Paolo Carlini <paolo.carlini@oracle.com>
358
359 * testsuite/27_io/basic_fstream/53984.cc: Fix typo in dg-require
360 directive.
361
a74bc411
JW
3622017-07-25 Jonathan Wakely <jwakely@redhat.com>
363
c2830789
JW
364 PR libstdc++/53984
365 * include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment.
366 * include/bits/istream.tcc (basic_istream::sentry): Handle exceptions
367 during construction.
368 * include/std/istream: Adjust comments for formatted input functions
369 and unformatted input functions.
370 * testsuite/27_io/basic_fstream/53984.cc: New.
371 * testsuite/27_io/basic_istream/sentry/char/53984.cc: New.
372
a74bc411
JW
373 * include/bits/ios_base.h (ios_base::io_state, ios_base::open_mode)
374 (ios_base::seek_dir): Remove for C++17.
375 * include/std/streambuf (basic_streambuf::stossc): Remove for C++17.
376 Add deprecated attribute for C++11 and C++14.
377 * testsuite/27_io/types/1.cc: Don't run for C++17 and later.
378 * testsuite/27_io/types/4.cc: New.
379
5bbf7664
MC
3802017-07-23 Michael Collison <michael.collison@arm.com>
381
382 Add optimized implementation of mersenne twister for aarch64
383 * config/cpu/aarch64/opt/ext/opt_random.h: New file.
384 (__arch64_recursion): New function.
385 (__aarch64_lsr_128): New function.
386 (__aarch64_lsl_128): New function.
387 (operator==): New function.
388 (simd_fast_mersenne_twister_engine): Implement
389 method _M_gen_rand.
390 * config/cpu/aarch64/opt/bits/opt_random.h: New file.
391 * include/ext/random: (simd_fast_mersenne_twister_engine):
392 add _M_state private array.
393
4a15d842
FD
3942017-07-23 François Dumont <fdumont@gcc.gnu.org>
395
396 PR libstdc++/81064
397 * include/bits/algorithmfwd.h: Reorganize versioned namespace.
398 * include/bits/basic_string.h: Likewise.
399 * include/bits/c++config: Likewise.
400 * include/bits/deque.tcc: Likewise.
401 * include/bits/forward_list.h: Likewise.
402 * include/bits/forward_list.tcc: Likewise.
403 * include/bits/hashtable_policy.h: Likewise.
404 * include/bits/list.tcc: Likewise.
405 * include/bits/move.h: Likewise.
406 * include/bits/quoted_string.h: Likewise.
407 * include/bits/random.h: Likewise.
408 * include/bits/random.tcc: Likewise.
409 * include/bits/regex.h: Likewise.
410 * include/bits/regex.tcc: Likewise.
411 * include/bits/regex_automaton.h: Likewise.
412 * include/bits/regex_automaton.tcc: Likewise.
413 * include/bits/regex_compiler.h: Likewise.
414 * include/bits/regex_compiler.tcc: Likewise.
415 * include/bits/regex_constants.h: Likewise.
416 * include/bits/regex_error.h: Likewise.
417 * include/bits/regex_executor.h: Likewise.
418 * include/bits/regex_executor.tcc: Likewise.
419 * include/bits/regex_scanner.h: Likewise.
420 * include/bits/regex_scanner.tcc: Likewise.
421 * include/bits/specfun.h: Likewise.
422 * include/bits/stl_algo.h: Likewise.
423 * include/bits/stl_algobase.h: Likewise.
424 * include/bits/stl_bvector.h: Likewise.
425 * include/bits/stl_deque.h: Likewise.
426 * include/bits/stl_iterator.h: Likewise.
427 * include/bits/stl_iterator_base_funcs.h: Likewise.
428 * include/bits/stl_list.h: Likewise.
429 * include/bits/stl_map.h: Likewise.
430 * include/bits/stl_multimap.h: Likewise.
431 * include/bits/stl_multiset.h: Likewise.
432 * include/bits/stl_relops.h: Likewise.
433 * include/bits/stl_set.h: Likewise.
434 * include/bits/stl_vector.h: Likewise.
435 * include/bits/uniform_int_dist.h: Likewise.
436 * include/bits/unordered_map.h: Likewise.
437 * include/bits/unordered_set.h: Likewise.
438 * include/bits/vector.tcc: Likewise.
439 * include/c_global/cmath: Likewise.
440 * include/c_std/cmath: Likewise.
441 * include/decimal/decimal: Likewise.
442 * include/decimal/decimal.h: Likewise.
443 * include/experimental/algorithm: Likewise.
444 * include/experimental/any: Likewise.
445 * include/experimental/array: Likewise.
446 * include/experimental/bits/erase_if.h: Likewise.
447 * include/experimental/bits/fs_dir.h: Likewise.
448 * include/experimental/bits/fs_fwd.h: Likewise.
449 * include/experimental/bits/fs_ops.h: Likewise.
450 * include/experimental/bits/fs_path.h: Likewise.
451 * include/experimental/bits/lfts_config.h: Likewise.
452 * include/experimental/bits/shared_ptr.h: Likewise.
453 * include/experimental/bits/string_view.tcc: Likewise.
454 * include/experimental/chrono: Likewise.
455 * include/experimental/deque: Likewise.
456 * include/experimental/filesystem: Likewise.
457 * include/experimental/forward_list: Likewise.
458 * include/experimental/functional: Likewise.
459 * include/experimental/iterator: Likewise.
460 * include/experimental/list: Likewise.
461 * include/experimental/map: Likewise.
462 * include/experimental/memory: Likewise.
463 * include/experimental/memory_resource: Likewise.
464 * include/experimental/numeric: Likewise.
465 * include/experimental/optional: Likewise.
466 * include/experimental/propagate_const: Likewise.
467 * include/experimental/random: Likewise.
468 * include/experimental/ratio: Likewise.
469 * include/experimental/regex: Likewise.
470 * include/experimental/set: Likewise.
471 * include/experimental/source_location: Likewise.
472 * include/experimental/string: Likewise.
473 * include/experimental/string_view: Likewise.
474 * include/experimental/system_error: Likewise.
475 * include/experimental/tuple: Likewise.
476 * include/experimental/type_traits: Likewise.
477 * include/experimental/unordered_map: Likewise.
478 * include/experimental/unordered_set: Likewise.
479 * include/experimental/utility: Likewise.
480 * include/experimental/vector: Likewise.
481 * include/ext/bitmap_allocator.h: Likewise.
482 * include/ext/codecvt_specializations.h: Likewise.
483 * include/ext/rope: Likewise.
484 * include/ext/typelist.h: Likewise.
485 * include/std/chrono: Likewise.
486 * include/std/complex: Likewise.
487 * include/std/functional: Likewise.
488 * include/std/numeric: Likewise.
489 * include/std/string_view: Likewise.
490 * include/std/thread: Likewise.
491 * include/std/variant: Likewise.
492 * include/tr1/array: Likewise.
493 * include/tr1/bessel_function.tcc: Likewise.
494 * include/tr1/beta_function.tcc: Likewise.
495 * include/tr1/cmath: Likewise.
496 * include/tr1/complex: Likewise.
497 * include/tr1/ell_integral.tcc: Likewise.
498 * include/tr1/exp_integral.tcc: Likewise.
499 * include/tr1/functional: Likewise.
500 * include/tr1/functional_hash.h: Likewise.
501 * include/tr1/gamma.tcc: Likewise.
502 * include/tr1/hashtable.h: Likewise.
503 * include/tr1/hashtable_policy.h: Likewise.
504 * include/tr1/hypergeometric.tcc: Likewise.
505 * include/tr1/legendre_function.tcc: Likewise.
506 * include/tr1/modified_bessel_func.tcc: Likewise.
507 * include/tr1/poly_hermite.tcc: Likewise.
508 * include/tr1/poly_laguerre.tcc: Likewise.
509 * include/tr1/random.h: Likewise.
510 * include/tr1/random.tcc: Likewise.
511 * include/tr1/regex: Likewise.
512 * include/tr1/riemann_zeta.tcc: Likewise.
513 * include/tr1/shared_ptr.h: Likewise.
514 * include/tr1/special_function_util.h: Likewise.
515 * include/tr1/tuple: Likewise.
516 * include/tr1/type_traits: Likewise.
517 * include/tr1/unordered_map.h: Likewise.
518 * include/tr1/unordered_set.h: Likewise.
519 * include/tr1/utility: Likewise.
520 * include/tr2/bool_set: Likewise.
521 * include/tr2/bool_set.tcc: Likewise.
522 * include/tr2/dynamic_bitset: Likewise.
523 * include/tr2/dynamic_bitset.tcc: Likewise.
524 * include/tr2/ratio: Likewise.
525 * include/tr2/type_traits: Likewise.
526 * src/c++11/chrono.cc: Likewise.
527 * src/c++11/compatibility-c++0x.cc: Likewise.
528 * src/c++11/compatibility-chrono.cc: Likewise.
529 * src/c++11/cxx11-shim_facets.cc: Likewise.
530 * src/c++11/hashtable_c++0x.cc: Likewise.
531 * src/c++11/placeholders.cc: Likewise.
532 * src/c++11/thread.cc: Likewise.
533 * src/c++98/bitmap_allocator.cc: Likewise.
534 * src/c++98/hashtable_tr1.cc: Likewise.
535 * src/c++98/list.cc: Likewise.
536 * src/shared/hashtable-aux.cc: Likewise.
537 * testsuite/20_util/duration/literals/range.cc: Adapt line number.
538 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
539 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
540 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
541 * testsuite/20_util/forward/c_neg.cc: Likewise.
542 * testsuite/20_util/forward/f_neg.cc: Likewise.
543 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
544 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
545 * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
546 * python/libstdcxx/v6/printers.py: Adapt.
547
8c7331c5
JW
5482017-07-20 Jonathan Wakely <jwakely@redhat.com>
549
550 * config/allocator/malloc_allocator_base.h [__SANITIZE_ADDRESS__]
551 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
552 * config/allocator/new_allocator_base.h [__SANITIZE_ADDRESS__]
553 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
554 * doc/xml/manual/using.xml (_GLIBCXX_SANITIZE_VECTOR): Document macro.
555 * include/bits/stl_vector.h [_GLIBCXX_SANITIZE_VECTOR]
556 (_Vector_impl::_Asan, _Vector_impl::_Asan::_Reinit)
557 (_Vector_impl::_Asan::_Grow, _GLIBCXX_ASAN_ANNOTATE_REINIT)
558 (_GLIBCXX_ASAN_ANNOTATE_GROW, _GLIBCXX_ASAN_ANNOTATE_GREW)
559 (_GLIBCXX_ASAN_ANNOTATE_SHRINK, _GLIBCXX_ASAN_ANNOTATE_BEFORE_DEALLOC):
560 Define annotation helper types and macros.
561 (vector::~vector, vector::push_back, vector::pop_back)
562 (vector::_M_erase_at_end): Add annotations.
563 * include/bits/vector.tcc (vector::reserve, vector::emplace_back)
564 (vector::insert, vector::_M_erase, vector::operator=)
565 (vector::_M_fill_assign, vector::_M_assign_aux)
566 (vector::_M_insert_rval, vector::_M_emplace_aux)
567 (vector::_M_insert_aux, vector::_M_realloc_insert)
568 (vector::_M_fill_insert, vector::_M_default_append)
569 (vector::_M_shrink_to_fit, vector::_M_range_insert): Annotate.
570
304a15ec
JW
5712017-07-19 Jonathan Wakely <jwakely@redhat.com>
572
573 PR libstdc++/81476
574 * include/bits/vector.tcc (vector::_M_range_insert<_InputIterator>):
575 Only insert elements one-by-one when inserting at the end.
576 * testsuite/performance/23_containers/insert/81476.cc: New.
577
57c51668
VR
5782017-07-19 Volker Reichelt <v.reichelt@netcologne.de>
579
580 * libsupc++/new (bad_array_new_length): Remove redundant
581 semicolon after in-class member function definition.
582 * include/bits/locale_facets.h (ctype_byname, num_put): Likewise.
583 * include/bits/locale_facets_nonio.h (time_put_byname): Likewise.
584 * include/bits/random.h (mersenne_twister_engine): Likewise.
585 * include/tr1/random.h (mersenne_twister): Likewise
586 * include/ext/random (simd_fast_mersenne_twister_engine): Likewise.
587 * include/ext/rope (char_producer, _Rope_char_consumer,
588 _Rope_self_destruct_ptr, _Rope_const_iterator, _Rope_iterator):
589 Likewise.
590 * include/ext/ropeimpl.h (_Rope_flatten_char_consumer,
591 _Rope_insert_char_consumer): Likewise.
592
1f78c47b
JW
5932017-07-19 Jonathan Wakely <jwakely@redhat.com>
594
e020783c
JW
595 * include/bits/fstream.tcc (basic_filebuf::xsgetn)
596 (basic_filebuf::xsputn, basic_filebuf::seekoff): Fix indentation.
597
4e66b02b
JW
598 * testsuite/util/testsuite_iterators.h: Fix indentation.
599
1f78c47b
JW
600 * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: Add dg-require.
601
fddcd19a
JW
6022017-07-18 Jonathan Wakely <jwakely@redhat.com>
603
604 PR libstdc++/81395
605 * include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer
606 pointers for write mode after reading.
607 * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New.
608
4f9e1f4d
FD
6092017-07-18 François Dumont <fdumont@gcc.gnu.org>
610
611 * include/bits/stl_list.h
612 (struct _List_node_header): New.
613 (_List_impl()): Fix noexcept qualification.
614 (_List_impl(_List_impl&&)): New, default.
615 (_List_base()): Default.
616 (_List_base(_List_base&&)): Default.
617 (_List_base::_M_move_nodes): Adapt to use
618 _List_node_header._M_move_nodes.
619 (_List_base::_M_init): Likewise.
620 (list<>()): Default.
621 (list<>(list&&)): Default.
622 (list<>::_M_move_assign(list&&, true_type)): Use _M_move_nodes.
623 (__distance(_List_const_iterator<>, _List_const_iterator<>,
624 input_iterator_tag)): Adapt.
625 * testsuite/23_containers/list/allocator/default_init.cc: New.
626
e12d3780
JW
6272017-07-15 Jonathan Wakely <jwakely@redhat.com>
628
629 * include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter
630 as per P0739R0.
631 * testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments.
632 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction
633 with std::adopt_lock_t.
634 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check
635 feature-test macro.
636
20316b9b
JM
6372017-07-14 Jason Merrill <jason@redhat.com>
638 Jonathan Wakely <jwakely@redhat.com>
639
640 * include/std/variant (variant::variant(_Tp&&)): Constrain to remove
641 the constructor for empty variants from the candidate functions
642 during class template argument deduction.
643 * testsuite/20_util/variant/deduction.cc: New.
644
6a28a753
JW
6452017-07-11 Jonathan Wakely <jwakely@redhat.com>
646
647 * doc/xml/faq.xml: Update several old entries. Improve
648 cross-references.
649 * doc/xml/manual/intro.xml: Add anchors to each DR.
650 * doc/html/*: Regenerate.
651
93ef155b
JW
6522017-07-10 Jonathan Wakely <jwakely@redhat.com>
653
b0e90d2a
JW
654 * testsuite/abi/pr42230.cc: Add header for std::free.
655
387c17d3
JW
656 PR libstdc++/81381
657 * include/bits/sstream.tcc (basic_stringbuf::overflow)
658 (basic_stringbuf::basic_stringbuf(const __string_type&, ios::mode))
659 (basic_stringbuf::str()): Construct new strings with an allocator.
660 * testsuite/27_io/basic_stringbuf/cons/81381.cc: New.
661
93ef155b
JW
662 PR libstdc++/81338
663 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
664 Declare basic_stringbuf to be a friend.
665 * include/bits/sstream.tcc (basic_stringbuf::overflow)
666 [_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
667 * include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
668 length to buffer length.
669 * testsuite/27_io/basic_stringstream/assign/81338.cc: New.
670
318c48e3
JW
6712017-07-06 Jonathan Wakely <jwakely@redhat.com>
672
32aaf6ef
JW
673 * testsuite/20_util/specialized_algorithms/memory_management_tools/
674 1.cc: Free memory.
675 * testsuite/22_locale/locale/cons/5.cc: Remove redundant restoration
676 of original environment and free memory.
677
4f7c2c7f
JW
678 * testsuite/abi/pr42230.cc: Free memory.
679 * testsuite/util/testsuite_abi.cc (demangle): Return std::string
680 instead of pointer that might need freeing.
681 * testsuite/util/testsuite_abi.h (demangle): Likewise.
682 * testsuite/util/testsuite_hooks.cc (verify_demangle): Free memory.
683
318c48e3
JW
684 * include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add
685 deleted overload to prevent dangling references to rvalues.
686 * include/experimental/memory_resource
687 (polymorphic_allocator::construct): Do not call __use_alloc with
688 rvalue arguments.
689
70503724
TS
6902017-06-27 Tim Shen <timshen@google.com>
691
692 PR libstdc++/80187
693 * include/std/variant (variant::variant, variant::~variant,
694 variant::operator=): Implement triviality forwarding for four
695 special member functions.
696 * testsuite/20_util/variant/compile.cc: Tests.
697
e708b94b
JW
6982017-06-27 Jonathan Wakely <jwakely@redhat.com>
699
68fe5f44
JW
700 PR libstdc++/81221
701 * testsuite/25_algorithms/sample/81221.cc: Disable except for
702 check-parallel.
703
e708b94b
JW
704 PR libstdc++/81221
705 * include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not
706 std.
707 * testsuite/25_algorithms/sample/81221.cc: New.
708
b6d03af0
JW
7092017-06-22 Jonathan Wakely <jwakely@redhat.com>
710
711 PR libstdc++/81173
712 * include/bits/stl_bvector.h (vector<bool>::_M_initialize_value):
713 Do not pass null pointer to memset.
714
5e88d2d0
VV
7152017-06-21 Ville Voutilainen <ville.voutilainen@gmail.com>
716
717 PR libstdc++/80675
718 PR libstdc++/80940
719 * include/std/istream:
720 (__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
721 (__do_is_convertible_to_basic_istream_impl): Likewise.
722 (__is_convertible_to_basic_istream_impl): Likewise.
723 (__is_convertible_to_basic_istream): Use the new base.
724 (__rvalue_istream_type): New.
725 (operator>>(_Istream&&, _Tp&&)): Use the new helper alias
726 for the SFINAE check, convert to the helper alias type before
727 doing the actual extraction.
728 * include/std/ostream:
729 (__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
730 (__do_is_convertible_to_basic_ostream_impl): Likewise.
731 (__is_convertible_to_basic_ostream_impl): Likewise.
732 (__is_convertible_to_basic_ostream): Use the new base.
733 (__rvalue_ostream_type): New.
734 (operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
735 for the SFINAE check, convert to the helper alias type before
736 doing the actual insertion.
737 * testsuite/27_io/rvalue_streams-2.cc: Add new tests.
738
6bea305b
RR
7392017-06-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
740
741 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
742
ed39d22d
JW
7432017-06-21 Jonathan Wakely <jwakely@redhat.com>
744
745 PR libstdc++/81092
746 * configure: Regenerate.
747
32639794
UB
7482017-06-20 Uros Bizjak <ubizjak@gmail.com>
749
750 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
751
67ea3f4e
RO
7522017-06-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
753
754 * testsuite/20_util/variant/index_type.cc: Allow for all ilp32 and
755 lp64 targets.
756
a06a5385
RO
7572017-06-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
758
759 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
760 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
761 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
762 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
763 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
764 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
765 Likewise.
766 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
767 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
768 Likewise.
769
82aa64e5
L
7702017-06-18 H.J. Lu <hongjiu.lu@intel.com>
771
772 PR libstdc++/81092
773 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
774
60a51885
AS
7752017-06-18 Andreas Schwab <schwab@linux-m68k.org>
776
777 PR libstdc++/81092
778 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
779
4f4b0ab8
RO
7802017-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
781
782 * testsuite: Remove dg-skip-if, dg-xfail-if, dg-xfail-run-if
783 default args.
784
14d8a912
JW
7852017-06-17 Jonathan Wakely <jwakely@redhat.com>
786
787 PR libstdc++/80893
788 * testsuite/23_containers/vector/bool/80893.cc: Add { target c++11 }.
789
78a8b676
JW
7902017-06-16 Jonathan Wakely <jwakely@redhat.com>
791
792 * include/bits/shared_ptr.h (get_deleter): Add overload matching
793 standard signature.
794 * include/bits/shared_ptr_base.h (__shared_ptr): Declare new
795 get_deleter overload as a friend.
796 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: New.
797
fb7a1633
JJ
7982017-06-16 Jakub Jelinek <jakub@redhat.com>
799
800 PR libstdc++/81092
801 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
802 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
803 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
804
6ec3c9c8
JW
8052017-06-16 Jonathan Wakely <jwakely@redhat.com>
806
bfe8a528
JW
807 * include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
808 * testsuite/22_locale/conversions/buffer/2.cc: New.
809
4317778a
JW
810 PR libstdc++/81092
811 * acinclude.m4: Bump libtool_VERSION.
812 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
813 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
814 * config/abi/pre/gnu.ver: Add wstring constructor symbols to
815 GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol
816 to new GLIBCXX_3.4.25 version.
817 * doc/xml/manual/abi.xml: Document new versions.
818 * doc/html/*: Regenerate.
819 * testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
820 constructors to ensure required symbols are exported.
821 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
822 * testsuite/util/testsuite_abi.cc: Add new version.
823
6ec3c9c8
JW
824 * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
825 return statement.
826 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
827 Return void.
828 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
829 Likewise.
830 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
831 missing return statements.
832 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
833 Likewise.
834 * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
835 Return void.
836 * testsuite/special_functions/14_expint/pr68397.cc: Likewise.
837
7d594224
FD
8382017-06-16 François Dumont <fdumont@gcc.gnu.org>
839
840 * include/bits/stl_bvector.h
841 (__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)):
842 Change signature.
843 (std::fill(_Bit_iterator, _Bit_iterator, bool)): Adapt.
844 (_Bvector_impl_data): New.
845 (_Bvector_impl): Inherits from latter.
846 (_Bvector_impl(_Bit_alloc_type&&)): Delete.
847 (_Bvector_impl(_Bvector_impl&&)): New, default.
848 (_Bvector_base()): Default.
849 (_Bvector_base(_Bvector_base&&)): Default.
850 (_Bvector_base::_M_move_data(_Bvector_base&&)): New.
851 (vector(vector&&, const allocator_type&)): Use latter.
852 (vector<bool>::operator=(vector&&)): Likewise.
853 (vector<bool>::vector()): Default.
854 (vector<bool>::vector(vector&&)): Default.
855 (vector<bool>::assign(_InputIterator, _InputIterator)): Use
856 _M_assign_aux.
857 (vector<bool>::assign(initializer_list<bool>)): Likewise.
858 (vector<bool>::_M_initialize_value(bool)): New.
859 (vector<bool>(size_type, const bool&, const allocator_type&)): Use
860 latter.
861 (vector<bool>::_M_initialize_dispatch(_Integer, _Integer, __true_type)):
862 Likewise.
863 (vector<bool>::_M_fill_assign(size_t, bool)): Likewise.
864
0356a074
FD
8652017-06-15 François Dumont <fdumont@gcc.gnu.org>
866
867 * src/c++98/tree.cc [!_GLIBCXX_INLINE_VERSION]
868 (_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete.
869
d1236680
RO
8702017-06-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
871
872 * testsuite: Add dg-require-effective-target pthread to -pthread
873 tests.
874 Remove explicit target lists from dg-do and dg-options.
875
876 * testsuite/30_threads/async/forced_unwind.cc: Remove explit
877 target list from dg-options.
878 * testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise.
879
880 * 30_threads/shared_mutex/cons/1.cc: Likewise.
881 Pass -pthread for all targets.
882 * 30_threads/shared_mutex/try_lock/1.cc: Likewise.
883 * 30_threads/shared_mutex/try_lock/2.cc: Likewise.
884 * 30_threads/shared_mutex/unlock/1.cc: Likewise.
885
886 * testsuite/30_threads/this_thread/57060.cc: Require c++11 via
887 dg-require-effective-target.
888
cdd17d6e
JW
8892017-06-14 Jonathan Wakely <jwakely@redhat.com>
890
891 * doc/xml/manual/test.xml: Correct instructions on running tests.
892 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to
893 pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
894 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
895 Likewise.
896 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise.
897 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
898 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
899 exceptions_failbit.cc: Likewise.
900 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
901 exceptions_failbit.cc: Likewise.
902 * testsuite/27_io/basic_istream/extractors_other/char/
903 exceptions_null.cc: Likewise.
904 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
905 exceptions_null.cc: Likewise.
906 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
907 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
908 * testsuite/27_io/basic_ostream/inserters_other/char/
909 exceptions_null.cc: Likewise.
910 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
911 exceptions_null.cc: Likewise.
912 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
913
b51483f4
PA
9142017-06-12 Pedro Alves <palves@redhat.com>
915
916 * doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
917 char_traits status.
918 * doc/html/*: Regenerate.
919
920 * include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
921 not already defined.
922 (__cpp_lib_constexpr_char_traits): Uncomment.
923 (__constant_string_p, __constant_char_array_p): New.
924 (std::char_traits<char>, std::char_traits<wchar_t>): Add
925 _GLIBCXX17_CONSTEXPR on compare, length and find and use
926 __constant_string_p, __constant_char_array_p and
927 __builtin_constant_p to defer to __gnu_cxx::char_traits at compile
928 time.
929
930 * testsuite/21_strings/char_traits/requirements/
931 constexpr_functions_c++17.cc: Uncomment
932 __cpp_lib_constexpr_char_traits tests. Uncomment
933 test_compare<char>, test_length<char>, test_find<char>,
934 test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
935 static_assert tests.
936
07cfc2d7
FD
9372017-06-12 François Dumont <fdumont@gcc.gnu.org>
938
939 * include/bits/stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator
940 default init.
941 * testsuite/util/testsuite_allocator.h
942 (__gnu_test::default_init_allocator<>) New.
943 * testsuite/23_containers/set/allocator/default_init.cc: New.
944 * testsuite/23_containers/map/allocator/default_init.cc: New.
945
754d67d5
JW
9462017-06-12 Jonathan Wakely <jwakely@redhat.com>
947
948 PR libstdc++/55917
949 * src/c++11/thread.cc (execute_native_thread_routine): Remove
950 try-block so that exceptions propagate out of the thread and terminate
951 is called by the exception-handling runtime.
952 (execute_native_thread_routine_compat): Likewise.
953 * testsuite/30_threads/thread/cons/terminate.cc: New.
954
225ab2b0
JW
9552017-06-09 Jonathan Wakely <jwakely@redhat.com>
956
53d01fd9
JW
957 * doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
958 * include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
959 (LWG 2802).
960 * include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
961 (_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
962 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
963
225ab2b0
JW
964 * include/bits/forward_list.h (forward_list): Add deduction guide.
965 * include/bits/stl_deque.h (deque): Likewise.
966 * include/bits/stl_list.h (list): Likewise.
967 * include/bits/stl_vector.h (vector): Likewise.
968 * testsuite/23_containers/deque/cons/deduction.cc: New.
969 * testsuite/23_containers/forward_list/cons/deduction.cc: New.
970 * testsuite/23_containers/list/cons/deduction.cc: New.
971 * testsuite/23_containers/vector/cons/deduction.cc: New.
972
853ed6bc
JW
9732017-06-08 Jonathan Wakely <jwakely@redhat.com>
974
975 PR libstdc++/81017
976 * include/bits/std_function.h (function::function(function&&))
977 (function::operator=(funtion&&)): Add noexcept.
978 * testsuite/20_util/function/assign/move.cc: Check for noexcept.
979 * testsuite/20_util/function/cons/move.cc: Likewise.
980
6d82c562
JW
9812017-06-07 Jonathan Wakely <jwakely@redhat.com>
982
bfd88d1d
JW
983 * include/bits/regex.h (basic_regex): Add deduction guide from P0433.
984 * testsuite/28_regex/basic_regex/ctors/deduction.cc: New.
985
d840779f
JW
986 PR libstdc++/81002
987 * include/bits/regex.h (basic_regex): Adjust call to __compile_nfa
988 so iterator type is deduced.
989 * include/bits/regex_compiler.h (__compile_nfa): Reorder template
990 parameters to allow iterator type to be deduced.
991 * testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
992
6d82c562
JW
993 * include/bits/alloc_traits.h (__is_allocator, _RequireAllocator):
994 New trait and alias for detecting Allocator-like types.
995 * include/bits/basic_string.h (basic_string): Add deduction guide
996 from P0433.
997 * include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): Add template
998 parameter with default template argument that causes substitution
999 failures for types that cannot be allocators.
1000 * testsuite/21_strings/basic_string/cons/char/deduction.cc: New.
1001 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: New.
1002
94895bd9
JW
10032017-06-02 Jonathan Wakely <jwakely@redhat.com>
1004
1005 PR libstdc++/80939
1006 * include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
1007 (__erased_hash): Remove constexpr specifier and qualify calls to
1008 __ref_cast.
1009 (__erased_dtor): Remove constexpr specifier and use _Destroy.
1010
d08606ce
JW
10112017-06-05 Jonathan Wakely <jwakely@redhat.com>
1012
6c241778
JW
1013 * include/bits/stl_iterator_base_funcs.h
1014 (__advance<_RandomAccessIterator, _Distance>): Optimize for next/prev
1015 cases where incrementing or decrementing a single step.
1016
d08606ce
JW
1017 * include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
1018 (__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
1019 specifiers as per LWG 2873 and LWG 2942.
1020 * testsuite/20_util/owner_less/noexcept.cc: New.
1021 * testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
1022 noexcept guarantees.
1023 * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
1024
d9850c48
AS
10252017-06-03 Andreas Schwab <schwab@linux-m68k.org>
1026
1027 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
1028
76052545
EB
10292017-06-03 Eric Botcazou <ebotcazou@adacore.com>
1030
1031 * src/filesystem/dir.cc (fs::_Dir::advance): Use std::exchange.
1032
ef3985db
JW
10332017-06-02 Jonathan Wakely <jwakely@redhat.com>
1034
4c19e432
JW
1035 PR libstdc++/80624
1036 * doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
1037 * include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
1038 Transform eof value to U+FFFD.
1039 * testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
1040 * testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
1041 * testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.
1042
ef3985db
JW
1043 * libsupc++/Makefile.am: Remove custom targets for files that need to
1044 be compiled as C++11 or C++14.
1045 * libsupc++/Makefile.in: Regenerate.
1046 * libsupc++/del_ops.cc: Use pragma to disable -Wsized-deallocation
1047 warnings.
1048 * libsupc++/del_opvs.cc: Likewise.
1049
1c26adb7
RB
10502017-06-02 Richard Biener <rguenther@suse.de>
1051 Markus Eisenmann <meisenmann.lba@fh-salzburg.ac.at>
1052
1053 PR libstdc++/80721
1054 * libsupc++/eh_alloc.cc (pool::free): Keep list properly
1055 sorted and add missing freelist item merging cases.
1056
e34fd4dc
RO
10572017-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1058
1059 (GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
1060 Remove *-solaris* section.
1061 * configure: Regenerate.
1062
046a8476
JW
10632017-05-31 Jonathan Wakely <jwakely@redhat.com>
1064
1065 PR libstdc++/80893
1066 * include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
1067 null pointer dereference when size is zero.
1068 * testsuite/23_containers/vector/bool/80893.cc: New.
1069 * testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
1070 Add non-explicit constructor from nullptr.
1071 (PointerBase::derived() const): Add const-qualified overload.
1072
a8127c0c
TS
10732017-05-20 Tim Shen <timshen@google.com>
1074
1075 PR libstdc++/80737
1076 * include/std/variant(variant::variant): SFINAE on is_same first.
1077 * testsuite/20_util/variant/any.cc: test case.
1078
b6784361
JW
10792017-05-24 Jonathan Wakely <jwakely@redhat.com>
1080
1081 * src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__
1082 instead of fixed number of bits.
1083
e1b67495
AS
10842017-05-24 Andreas Schwab <schwab@suse.de>
1085
1086 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1087 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
1088
78aa76df
XR
10892017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
1090 Jonathan Wakely <jwakely@redhat.com>
1091
1092 PR libstdc++/67578
1093 * acinclude.m4: Bump libtool_VERSION.
1094 * config/abi/pre/gnu.ver: Create GLIBCXX_3.4.24 with new symbol.
1095 * config.h.in: Regenerate.
1096 * configure: Regenerate.
1097 * configure.ac: Add test for <linux/random.h>.
1098 * doc/xml/manual/abi.xml: Document new library version.
1099 * include/bits/random.h (random_device::entropy)
1100 [_GLIBCXX_USE_RANDOM_TR1]: Add call to new _M_getentropy member.
1101 (random_device::_M_getentropy): Declare.
1102 * src/c++11/random.cc (random_device::_M_getentropy): Define.
1103 * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.24 to known
1104 versions, and make it the latest version.
1105
5383998a
XR
11062017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
1107
1108 PR libstdc++/67214
1109 * include/bits/locale_facets.tcc (num_get::_M_extract_int): Add
1110 explicit conversion to avoid signed overflow.
1111
f710ca61
JW
11122017-05-19 Jonathan Wakely <jwakely@redhat.com>
1113
1114 PR libstdc++/80796
1115 * include/bits/stl_algo.h (search): Add new overload for C++17.
1116 * testsuite/25_algorithms/search/searcher.cc: New.
1117
747217d1
JW
11182017-05-18 Jonathan Wakely <jwakely@redhat.com>
1119
1120 PR libstdc++/80478
1121 * include/std/functional (_Mem_fn_traits_base): Add specializations
1122 for noexcept member function types.
1123 * testsuite/20_util/function_objects/mem_fn/80478.cc: New test.
1124
8268fc60
JW
11252017-05-18 Jonathan Wakely <jwakely@redhat.com>
1126
8985968c
JW
1127 * doc/xml/manual/policy_data_structures.xml: Fix typo.
1128 * doc/xml/manual/test_policy_data_structures.xml: Likewise.
1129 * doc/html/*: Regenerate.
1130
8268fc60
JW
1131 * doc/xml/manual/abi.xml: Document latest library versions.
1132 * doc/xml/manual/build_hacking.xml: Document requirement to update
1133 abi.xml when bumping library versions.
1134 * doc/html/*: Regenerate.
1135
26bddba3
JW
11362017-05-17 Jonathan Wakely <jwakely@redhat.com>
1137
1138 * include/bits/refwrap.h: Fix Doxygen warning.
1139 * include/bits/specfun.h: Likewise.
1140 * include/bits/std_function.h: Likewise.
1141 * include/bits/stl_algo.h (set_union, set_intersection)
1142 (set_difference, set_symmetric_difference): Add Doxygen @param tags
1143 for output iterator parameters.
1144 * include/bits/stl_iterator.h (inserter): Add Doxygen @param tag for
1145 iterator parameter.
1146 * include/std/mutex (try_lock, lock): Change Mutex to Lockable in
1147 Doxygen comments.
1148
b42cc3ca
VV
11492017-05-17 Ville Voutilainen <ville.voutilainen@gmail.com>
1150
1151 Implement new C++ intrinsics __is_assignable and __is_constructible.
1152 * include/std/type_traits (__do_is_static_castable_impl): Remove.
1153 (__is_static_castable_impl, __is_static_castable_safe): Likewise.
1154 (__is_static_castable, __do_is_direct_constructible_impl): Likewise.
1155 (__is_direct_constructible_impl): Likewise.
1156 (__is_direct_constructible_new_safe): Likewise.
1157 (__is_base_to_derived_ref, __is_lvalue_to_rvalue_ref): Likewise.
1158 (__is_direct_constructible_ref_cast): Likewise.
1159 (__is_direct_constructible_new, __is_direct_constructible): Likewise.
1160 (__do_is_nary_constructible_impl): Likewise.
1161 (__is_nary_constructible_impl, __is_nary_constructible): Likewise.
1162 (__is_constructible_impl): Likewise.
1163 (is_constructible): Call the intrinsic.
1164 (__is_assignable_helper): Remove.
1165 (is_assignable): Call the intrinsic.
1166 (is_trivially_constructible): Likewise.
1167 (__is_trivially_copy_constructible_impl): New.
1168 (is_trivially_copy_constructible): Use it.
1169 (__is_trivially_move_constructible_impl): New.
1170 (is_trivially_move_constructible): Use it.
1171 (is_trivially_assignable): Call the intrinsic.
1172 (__is_trivially_copy_assignable_impl): New.
1173 (is_trivially_copy_assignable): Use it.
1174 (__is_trivially_move_assignable_impl): New.
1175 (is_trivially_move_assignable): Use it.
1176 (testsuite/20_util/declval/requirements/1_neg.cc): Adjust.
1177 (testsuite/20_util/is_trivially_copy_assignable/value.cc):
1178 Add test for void.
1179 (testsuite/20_util/is_trivially_copy_constructible/value.cc): Likewise.
1180 (testsuite/20_util/is_trivially_move_assignable/value.cc): Likewise.
1181 (testsuite/20_util/is_trivially_move_constructible/value.cc): Likewise.
1182 (testsuite/20_util/make_signed/requirements/typedefs_neg.cc): Adjust.
1183 (testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc):
1184 Likewise.
1185
ba1a6907
JW
11862017-05-16 Jonathan Wakely <jwakely@redhat.com>
1187
058c7854
JW
1188 * testsuite/experimental/source_location/1.cc: Change expected result
1189 for source_location::current() used in default member initializer.
1190
2673bae9
JW
1191 * doc/xml/manual/status_cxx2017.xml: Update status table.
1192 * doc/html/*: Regenerate.
1193 * include/Makefile.am: Add new header.
1194 * include/Makefile.in: Regenerate.
1195 * include/experimental/source_location: New header implementing N4519.
1196 * testsuite/experimental/source_location/1.cc: New test.
1197
42362497
JW
1198 PR libstdc++/80285
1199 * include/bits/shared_ptr_base.h [!__cpp_rtti] (type_info): Declare
1200 outside versioned namespace.
1201
ba1a6907
JW
1202 * configure: Regenerate.
1203
2c27a627
MG
12042017-05-16 Marc Glisse <marc.glisse@inria.fr>
1205
1206 * include/std/optional (_Optional_base::_M_get): Check precondition.
1207 * testsuite/20_util/optional/cons/value_neg.cc: Update line numbers.
1208
ad2b8b37
JW
12092017-05-16 Jonathan Wakely <jwakely@redhat.com>
1210
5f54ae00
JW
1211 * doc/xml/manual/appendix_contributing.xml: Link to test docs and
1212 note higher DejaGnu version requirement.
1213 * doc/html/*: Regenerate.
1214
ad2b8b37
JW
1215 * doc/xml/manual/appendix_contributing.xml: Link to the list of bad
1216 identifiers.
1217 * doc/html/*: Regenerate.
1218
85c05b5e
JW
12192017-05-15 Jonathan Wakely <jwakely@redhat.com>
1220
1221 PR libstdc++/80761
1222 * include/bits/node_handle.h (_Node_insert_return): Reorder members.
1223 (tuple_size, tuple_element): Remove partial specializations.
1224 * include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
1225 const_iterator for std::set.
1226 * testsuite/23_containers/map/modifiers/extract.cc: New.
1227 * testsuite/23_containers/set/modifiers/extract.cc: New.
1228 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
1229 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
1230
f859f912
JW
12312017-05-12 Jonathan Wakely <jwakely@redhat.com>
1232
1233 PR libstdc++/78939
1234 * include/std/utility (tuple_size<cv T>): Only define partial
1235 specializations when tuple_size<T>::value is valid.
1236 * testsuite/20_util/tuple/78939.cc: New.
1237 * testsuite/20_util/tuple/cv_tuple_size_neg.cc: New.
1238
dc4dd7f6
FD
12392017-05-11 François Dumont <fdumont@gcc.gnu.org>
1240
fee84d55
FD
1241 * include/bits/stl_tree.h [_GLIBCXX_INLINE_VERSION]
1242 (_Rb_tree_impl<>): Remove _Is_pod_comparator
1243 template parameter.
1244
dc4dd7f6
FD
1245 * include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
1246 (__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
1247 (__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
1248 Remove.
1249 (__gnu_debug::_Error_formatter::_M_format_word): Remove.
1250 (__gnu_debug::_Error_formatter::_M_print_word): Remove.
1251 (__gnu_debug::_Error_formatter::_M_print_string): Remove.
1252 (__gnu_debug::_Error_formatter::_M_get_max_length): Remove.
1253 * src/c++11/debug.cc: Adapt.
1254 * config/abi/pre/gnu-versioned-namespace.ver: Adapt.
1255
f8cba3aa
JW
12562017-05-11 Jonathan Wakely <jwakely@redhat.com>
1257
395ec8f3
JW
1258 * doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
1259 * doc/xml/manual/mt_allocator.xml: Likewise.
1260 * doc/html/*: Regenerate.
1261
f8cba3aa
JW
1262 PR libstdc++/80285
1263 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Define
1264 function to get unique fake std::type_info reference.
1265 (_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Compare to
1266 _S_ti() fake reference.
1267 (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Share
1268 single implementation with or without RTTI enable.
1269 [!__cpp_rtti]: Pass fake reference to _M_get_deleter.
1270 * testsuite/20_util/shared_ptr/creation/alloc.cc: Change expected
1271 allocation and deallocation counts.
1272 * testsuite/20_util/shared_ptr/creation/single_allocation.cc: New.
1273 * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
1274 New.
1275
e5795ce4
FD
12762017-05-10 François Dumont <fdumont@gcc.gnu.org>
1277
87c7063d
FD
1278 Bump version namespace.
1279 * config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
1280 from __7 to __8. Bump GLIBCXX_7.0 to GLIBCXX_8.0.
1281 * acinclude.m4 (libtool_VERSION): Bump to 8:0:0.
1282 * include/bits/c++config: Adapt.
1283 * include/bits/regex.h: Adapt.
1284 * include/experimental/bits/fs_fwd.h: Adapt.
1285 * include/experimental/bits/lfts_config.h: Adapt.
1286 * include/std/variant: Adapt.
1287 * python/libstdcxx/v6/printers.py: Adapt.
1288 * testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
87c7063d 1289
e5795ce4
FD
1290 * include/bits/stl_algobase.h (std::__iter_swap<false>): Remove
1291 _GLIBCXX_MOVE usage.
1292
e91c2cac
JM
12932017-05-09 Jason Merrill <jason@redhat.com>
1294
1295 * testsuite/24_iterators/container_access.cc (test03): Make il3 static.
1296
6d430cbd
JW
12972017-05-08 Jonathan Wakely <jwakely@redhat.com>
1298
9057edd3
JW
1299 * include/std/optional: Use a separate static_assert per condition.
1300 * testsuite/20_util/optional/cons/value_neg.cc: Update dg-error line
1301 numbers.
1302
6d430cbd
JW
1303 * doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
1304 * doc/html/*: Regenerate.
1305
8a20a3c7
HBL
13062017-05-02 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
1307
1308 PR libstdc++/69506
1309 * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
1310
30fc569c
FD
13112017-04-29 François Dumont <fdumont@gcc.gnu.org>
1312
1313 * testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
1314 by a note-test.
1315
38233afd
JW
13162017-04-28 Jonathan Wakely <jwakely@redhat.com>
1317
b26f45f0
JW
1318 PR libstdc++/80553
1319 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
1320 assertions to ensure type is destructible.
1321 (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
1322 * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
1323 Move to stl_construct.h.
1324 * testsuite/20_util/specialized_algorithms/memory_management_tools/
1325 destroy_neg.cc: New test.
1326 * testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
1327
38233afd
JW
1328 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
1329 superfluous "" in dg-error.
1330
f166beaf
TV
13312017-04-28 Tom de Vries <tom@codesourcery.com>
1332
1333 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
1334 superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
1335
4ca4927a
JW
13362017-04-27 Jonathan Wakely <jwakely@redhat.com>
1337
1338 * include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
1339 (PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
1340 * testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
1341 Likewise.
1342
9425300b
JW
13432017-04-26 Jonathan Wakely <jwakely@redhat.com>
1344
1345 * testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
1346 comment. Ensure first test works because allocator type propagates and
1347 not because is_always_equal is true.
1348 * testsuite/23_containers/vector/52591.cc: Likewise. Restore original
1349 testcase that instantiates the move-assignment operator.
1350
71f257f7
JW
13512017-04-24 Jonathan Wakely <jwakely@redhat.com>
1352
957221f5
JW
1353 PR libstdc++/80506
1354 * include/bits/random.tcc (gamma_distribution::operator()): Fix magic
1355 number used in loop condition.
1356
6e2e575a
JW
1357 PR libstdc++/80504
1358 * include/bits/refwrap.h (ref, cref): Qualify calls.
1359 * testsuite/20_util/reference_wrapper/80504.cc: New test.
1360
71f257f7
JW
1361 PR libstdc++/80493
1362 * include/experimental/optional (optional::swap): Fix exception
1363 specification.
1364
a2c0a194
JW
13652017-04-21 Jonathan Wakely <jwakely@redhat.com>
1366
946ecd6a
JW
1367 PR libstdc++/80316
1368 * include/std/future (_State_baseV2::_Setter::operator()): Remove
1369 _S_check calls that are done after the pointer to the shared state is
1370 already dereferenced.
1371 (_State_baseV2::_Setter<_Res, void>): Define specialization for void
1372 as partial specialization so it can be defined within the definition
1373 of _State_baseV2.
1374 (_State_baseV2::__setter): Call _S_check.
1375 (_State_baseV2::__setter(promise<void>*)): Add overload for use by
1376 promise<void>::set_value and promise<void>::set_value_at_thread_exit.
1377 (promise<T>, promise<T&>, promise<void>): Make _State a friend.
1378 (_State_baseV2::_Setter<void, void>): Remove explicit specialization.
1379 (promise<void>::set_value, promise<void>::set_value_at_thread_exit):
1380 Use new __setter overload.
1381 * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
1382 * testsuite/30_threads/promise/members/set_exception.cc: Test
1383 promise<T&> and promise<void> specializations.
1384 * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
1385 Test for no_state error condition.
1386 * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
1387
a2c0a194
JW
1388 * include/backward/auto_ptr.h: Ignore deprecated warnings from use
1389 of auto_ptr.
1390 * include/bits/shared_ptr.h: Likewise.
1391 * include/bits/shared_ptr_base.h: Likewise.
1392 * include/bits/unique_ptr.h: Likewise.
1393 * libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
1394 dg-error lineno.
1395 * libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
1396 * libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
1397 Likewise.
1398 * libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
1399 Likewise.
1400
4ba07ed4
ESR
14012017-04-20 Edward Smith-Rowland <3dw4rd@verizon.net>
1402
1403 PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
1404 * include/tr1/exp_integral.tcc: Increase iteration limits.
1405 * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
1406 pr68397.cc: New test.
1407 * testsuite/special_functions/14_expint/pr68397.cc: New test.
1408
1b36f603
JW
14092017-04-20 Jonathan Wakely <jwakely@redhat.com>
1410
1411 PR libstdc++/79862
1412 * include/std/atomic [!_GLIBCXX_USE_C99_STDINT_TR1] (atomic_int8_t)
1413 (atomic_uint8_t, atomic_int16_t, atomic_uint16_t, atomic_int32_t,
1414 (atomic_uint32_t, atomic_int64_t, atomic_uint64_t)
1415 (atomic_int_least8_t, atomic_uint_least8_t, atomic_int_least16_t)
1416 (atomic_uint_least16_t, atomic_int_least32_t, atomic_uint_least32_t)
1417 (atomic_int_least64_t, atomic_uint_least64_t, atomic_int_fast8_t)
1418 (atomic_uint_fast8_t, atomic_int_fast16_t, atomic_uint_fast16_t)
1419 (atomic_int_fast32_t, atomic_uint_fast32_t, atomic_int_fast64_t)
1420 (atomic_uint_fast64_t, atomic_intmax_t, atomic_uintmax_t): Don't
1421 define.
1422
afa56c17
JW
14232017-04-19 Jonathan Wakely <jwakely@redhat.com>
1424
db7ab54f
JW
1425 * doc/xml/manual/abi.xml: Rephrase one of the references to the
1426 Itanium C++ ABI.
1427 * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
1428 * doc/html/*: Regenerate.
1429
6a8446fa
JW
1430 * libsupc++/new: Update comment on #endif directive.
1431
6cff9199
JW
1432 PR libstdc++/80448
1433 * include/experimental/bits/fs_dir.h (directory_iterator)
1434 (recursive_directory_iterator): Remove noexcept from defaulted
1435 constructors.
1436
afa56c17
JW
1437 PR libstdc++/80446
1438 * include/std/type_traits (is_aggregate): Change __has_builtin checks.
1439 * libsupc++/new (launder): Likewise.
1440
38d68cf0
JW
14412017-04-18 Jonathan Wakely <jwakely@redhat.com>
1442
1443 * include/std/functional (default_searcher, __boyer_moore_array_base)
1444 (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
1445 (boyer_moore_horspool_searcher): Remove redundant namespace
1446 qualification.
1447 (default_searcher::operator()): Construct return value early and
1448 advance second member in-place.
1449 (boyer_moore_horspool_searcher::operator()): Increment random access
1450 iterator directly instead of using std::next.
1451 (boyer_moore_searcher::operator()): Fix return value.
1452 * testsuite/20_util/function_objects/searchers.cc: Check both parts
1453 of return values.
1454
5ee26fce
GP
14552017-04-12 Gerald Pfeifer <gerald@pfeifer.com>
1456
1457 * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
1458 * doc/xml/manual/abi.xml. Ditto (thrice).
1459
8c3b5c71
JW
14602017-04-03 Jonathan Wakely <jwakely@redhat.com>
1461
b0dfb235
JW
1462 * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
1463 * doc/html/*: Regenerate.
1464
b1e282ca
JW
1465 * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
1466 that no longer fail.
1467
59c06f4d
JW
1468 * include/bits/ios_base.h: Correct comment.
1469 * testsuite/util/testsuite_hooks.h: Likewise.
1470
9d83c64b
JW
1471 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1472 * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
1473 directories for debug, parallel and profile headers.
1474 * doc/html/*: Regenerate.
1475
8c3b5c71
JW
1476 * include/bits/char_traits.h (__gnu_cxx::char_traits): Add
1477 _GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
1478 (std::char_traits<char>, std::char_traits<wchar_t>): Add
1479 _GLIBCXX17_CONSTEXPR on assign.
1480 (std::char_traits<char16_t>, std::char_traits<char32_t>): Add
1481 _GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
1482 * testsuite/21_strings/char_traits/requirements/
1483 constexpr_functions_c++17.cc: New test.
1484
c1e2889a
VV
14852017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
1486
1487 PR libstdc++/79141
1488 * include/bits/stl_pair.h (__nonesuch_no_braces): New.
1489 (operator=(typename conditional<
1490 __and_<is_copy_assignable<_T1>,
1491 is_copy_assignable<_T2>>::value,
1492 const pair&, const __nonesuch&>::type)): Change __nonesuch
1493 to __nonesuch_no_braces.
1494 (operator=(typename conditional<
1495 __not_<__and_<is_copy_assignable<_T1>,
1496 is_copy_assignable<_T2>>>::value,
1497 const pair&, const __nonesuch&>::type)): Likewise.
1498 (operator=(typename conditional<
1499 __and_<is_move_assignable<_T1>,
1500 is_move_assignable<_T2>>::value,
1501 pair&&, __nonesuch&&>::type)): Likewise.
1502 * testsuite/20_util/pair/79141.cc: New.
1503
e2ac6765
VV
15042017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
1505
1506 Implement std::is_aggregate.
1507 * include/std/type_traits (is_aggregate, is_aggregate_v): New.
1508 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
1509 New.
1510 * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
1511 * testsuite/20_util/is_aggregate/value.cc: Likewise.
1512
0000fd8c
VV
15132017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1514
1515 Adjust optional's pretty printer for LWG 2900.
1516 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
1517 Look at the nested payload in case of non-experimental optional.
1518
250f5b6c
VV
15192017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1520
1521 Implement LWG 2900, The copy and move constructors
1522 of optional are not constexpr.
1523 * include/std/optional (_Optional_payload): New.
1524 (_Optional_base): Remove the bool parameter.
1525 (_Optional_base<_Tp, false>): Remove.
1526 (_Optional_base()): Adjust.
1527 (_Optional_base(nullopt_t)): Likewise.
1528 (_Optional_base(in_place_t, _Args&&...)): Likewise.
1529 (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
1530 Likewise.
1531 (_Optional_base(const _Optional_base&)): Likewise.
1532 (_Optional_base(_Optional_base&&)): Likewise.
1533 (operator=(const _Optional_base&)): Likewise.
1534 (operator=(_Optional_base&&)): Likewise.
1535 (~_Optional_base()): Remove.
1536 (_M_is_engaged()): Adjust.
1537 (_M_get()): Likewise.
1538 (_M_construct(_Args&&...)): Likewise.
1539 (_M_destruct()): Likewise.
1540 (_M_reset()): Likewise.
1541 (_Optional_base::_Empty_byte): Remove.
1542 (_Optional_base::_M_empty): Remove.
1543 (_Optional_base::_M_payload): Adjust.
1544 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1545 * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
1546
b1bd9158
JW
15472017-03-28 Jonathan Wakely <jwakely@redhat.com>
1548
92d85953
JW
1549 PR libstdc++/80137
1550 * include/bits/random.tcc (generate_canonical): Use std::nextafter
1551 or numeric_limits::epsilon() to reduce out-of-range values.
1552 * testsuite/26_numerics/random/uniform_real_distribution/operators/
1553 64351.cc: Verify complexity requirement is met.
1554
a138d52a
JW
1555 * doc/xml/manual/abi.xml: Add xml:id anchor.
1556 * doc/xml/manual/using.xml (manual.intro.using.macros): Document
1557 _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
1558 (concurrency.io.structure): Add markup.
1559 * doc/html/*: Regenerate.
1560
b1bd9158
JW
1561 PR libstdc++/80229
1562 * include/bits/shared_ptr_base.h
1563 (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
1564 non-const and then use remove_cv to get unqualified type.
1565 * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
1566 cast away constness on object created const.
1567 * testsuite/20_util/shared_ptr/cons/80229.cc: New test.
1568
4f28d159
MT
15692017-03-26 Markus Trippelsdorf <markus@trippelsdorf.de>
1570
1571 PR libstdc++/80183
1572 * include/bits/stl_tree.h:
1573 (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
1574
393ed575
JW
15752017-03-23 Jonathan Wakely <jwakely@redhat.com>
1576
01e3c229
JW
1577 * testsuite/23_containers/array/tuple_interface/
1578 tuple_element_debug_neg.cc: Adjust dg-error.
1579 * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
1580 define a valid strict weak ordering.
1581 * testsuite/23_containers/priority_queue/67085.cc: Disable test for
1582 Debug Mode, due to debug checks making extra copies of predicate.
1583 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
1584 Likewise.
1585
393ed575
JW
1586 * doc/xml/faq.xml: Add link.
1587 * doc/xml/manual/backwards_compatibility.xml: Remove outdated
1588 information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
1589 * doc/xml/manual/io.xml: Update broken link.
1590 * doc/html/*: Regenerate.
1591
288695f7
DK
15922017-03-23 Daniel Kruegler <daniel.kruegler@gmail.com>
1593
7f359d19
DK
1594 Implement LWG 2686, Why is std::hash specialized for error_code,
1595 but not error_condition?
1596 * include/std/system_error (hash<error_condition>): Define for C++17.
1597 * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
1598 Instantiate test for error_condition.
1599 * testsuite/20_util/hash/requirements/explicit_instantiation.cc
1600 (hash<error_condition>): Instantiate hash<error_condition>.
1601
288695f7
DK
1602 * include/bits/c++config (_GLIBCXX17_INLINE): Define.
1603 * include/bits/regex_constants.h (All std::regex_constants constants):
1604 Add _GLIBCXX17_INLINE as per P0607R0.
1605 * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
1606 Likewise.
1607 * include/bits/stl_pair.h (piecewise_construct): Likewise.
1608 * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
1609 (__is_uses_allocator_constructible_v)
1610 (__is_nothrow_uses_allocator_constructible_v): Likewise.
1611 * include/std/chrono (treat_as_floating_point_v): Likewise.
1612 * include/std/functional (is_bind_expression_v, is_placeholder_v):
1613 Likewise.
1614 * include/std/optional (nullopt): Likewise.
1615 * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
1616 ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
1617 * include/std/system_error (is_error_code_enum_v)
1618 (is_error_condition_enum_v): Likewise.
1619 * include/std/tuple (tuple_size_v, ignore): Likewise.
1620 (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
1621 constexpr as per LWG 2933.
1622 * include/std/type_traits (All variable templates): Add
1623 _GLIBCXX17_INLINE as per P0607R0.
1624 * include/std/variant (variant_size_v, variant_npos, __index_of_v)
1625 (__tuple_count_v, __exactly_once): Likewise.
1626 * testsuite/18_support/headers/new/synopsis.cc
1627 (hardware_destructive_interference_size)
1628 (hardware_constructive_interference_size): Likewise for commented-out
1629 variables.
1630 * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
1631 test function for constexpr std::ignore (LWG 2773).
1632 * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
1633 test for LWG 2933.
1634
af181c91
JW
16352017-03-22 Jonathan Wakely <jwakely@redhat.com>
1636
1637 * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
1638 guides for C++17.
1639 * include/bits/std_function.h (function): Likewise.
1640 * include/bits/stl_pair.h (pair): Likewise.
1641 * include/debug/array (__gnu_debug::array): Likewise.
1642 * include/std/array (array): Likewise.
1643 * include/std/functional (make_default_searcher)
1644 (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
1645 Remove generator functions.
1646 * include/std/tuple (tuple): Add deduction guides.
1647 * include/std/valarray (valarray): Likewise.
1648 * testsuite/20_util/function_objects/searchers.cc: Adjust to use
1649 class template argument deduction instead of generator functions.
1650 * testsuite/20_util/function/cons/deduction.cc: New test.
1651 * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
1652 * testsuite/20_util/optional/cons/deduction.cc: ... here.
1653 * testsuite/20_util/pair/cons/deduction.cc: New test.
1654 * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
1655 * testsuite/20_util/tuple/cons/deduction.cc: New test.
1656 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
1657 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
1658 * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
1659 * testsuite/23_containers/array/cons/deduction.cc: New test.
1660 * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
1661 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
1662 Adjust dg-error.
1663 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
1664 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
1665 Likewise.
1666 * testsuite/26_numerics/valarray/deduction.cc: New test.
1667 * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
1668 * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
1669 * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
1670
fe62dd04
FD
16712017-03-20 François Dumont <fdumont@gcc.gnu.org>
1672
1673 * include/bits/stl_deque.h (deque): Access allocator value_type only if
1674 concept checks are enabled.
1675 * include/bits/stl_stack.h (stack): Likewise.
1676 * include/bits/stl_vector.h (vector): Likewise.
1677 * include/bits/stl_list.h (list): Likewise and check
1678 _SGIAssignableConcept only in C++03.
1679 * include/bits/stl_map.h (map): Likewise.
1680 * include/bits/stl_set.h (set): Likewise.
1681 * include/bits/stl_multimap.h (multimap): Likewise.
1682 * include/bits/stl_multiset.h (multiset): Likewise.
1683 * include/bits/stl_queue.h (queue, priority_queue): Likewise.
1684
e76659d1
GP
16852017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
1686
1687 * doc/xml/manual/appendix_contributing.xml: Convert link to
1688 ansi.org to https.
1689 Update link to the C++ standard at ansi.org.
1690
1691 * doc/xml/faq.xml: Remove information redundant with the above;
1692 instead add a reference.
1693
d951e75d
JW
16942017-03-17 Jonathan Wakely <jwakely@redhat.com>
1695
1696 * src/c++11/codecvt.cc (range): Add non-type template parameter and
1697 define oerloaded operators for reading and writing code units.
1698 (range<Elem, false>): Define partial specialization for accessing
1699 wide characters in potentially unaligned byte ranges.
1700 (ucs2_span(const char16_t*, const char16_t*, ...))
1701 (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
1702 to range<const char16_t, false> in order to avoid unaligned reads.
1703 (__codecvt_utf16_base<char16_t>::do_out)
1704 (__codecvt_utf16_base<char32_t>::do_out)
1705 (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
1706 unaligned data to avoid unaligned writes.
1707 (__codecvt_utf16_base<char16_t>::do_in)
1708 (__codecvt_utf16_base<char32_t>::do_in)
1709 (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
1710 error if there are unprocessable trailing bytes.
1711 (__codecvt_utf16_base<char16_t>::do_length)
1712 (__codecvt_utf16_base<char32_t>::do_length)
1713 (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
1714 range<const char16_t, false> to span functions.
1715 * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
1716
7acc5349
JW
17172017-03-16 Jonathan Wakely <jwakely@redhat.com>
1718
e363c939
JW
1719 PR libstdc++/79980
1720 * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
1721
a4c687d6
JW
1722 PR libstdc++/80041
1723 * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
1724 (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
1725 char16_t to work with UTF-16 instead of UTF-8.
1726 * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
1727
516231de
JW
1728 * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
1729 (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
1730 (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
1731 (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
1732 (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
1733 (__codecvt_utf8_utf16_base<char32_t>)
1734 (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
1735 do_max_length() return values.
1736 * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
1737 * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
1738 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
1739
bcd682e1
JW
1740 PR libstdc++/79980
1741 * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
1742 error path.
1743 * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
1744 for manipulating codecvt_mode values.
1745 (read_utf16_bom): Compare input to BOM constants instead of integral
1746 constants that depend on endianness. Take mode parameter by
1747 reference and adjust it, to distinguish between no BOM present and
1748 UTF-16BE BOM present.
1749 (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
1750 (surrogates): New enumeration type.
1751 (utf16_in, utf16_out): Add surrogates parameter to choose between
1752 UTF-16 and UCS2 behaviour.
1753 (utf16_span, ucs2_span): Use std::min not std::max.
1754 (ucs2_out): Use std::min not std::max. Disallow surrogate pairs.
1755 (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
1756 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
1757 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
1758
02e12bda
JW
1759 PR libstdc++/79511
1760 * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
1761 as a surrogate pair.
1762 (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
1763 for internal representation.
1764 (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
1765 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
1766
8d85abab
JW
1767 PR libstdc++/80064
1768 * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
1769 (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
1770 invalid instantiations using function types for _Compare argument.
1771 * testsuite/25_algorithms/make_heap/80064.cc: New test.
1772
7acc5349
JW
1773 PR libstdc++/67440
1774 * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
1775 for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
1776
df990182
VV
17772017-03-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1778
1779 Implement LWG 2857, {variant,optional,any}::emplace should
1780 return the constructed value.
1781 * include/std/any (emplace(_Args&&...)): Change the return type and
1782 return a reference to the constructed value.
1783 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1784 * include/std/optional (emplace(_Args&&...)): Likewise.
1785 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1786 * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
1787 (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
1788 (emplace<_Np>(_Args&&...)): Likewise.
1789 (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
1790 * testsuite/20_util/any/assign/emplace.cc: Add tests for
1791 checking the return value of emplace.
1792 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1793 * testsuite/20_util/optional/assignment/6.cc: Add tests for
1794 checking the return value of emplace.
1795 * testsuite/20_util/variant/run.cc: Likewise.
1796
1c4df66b 17972017-03-15 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
75d359f7
JW
1798
1799 PR libstdc++/62045
1800 * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
1801 (is_heap): Remove.
1802 (push_heap): Remove the wrong checking using is_heap.
1803 (make_heap): Remove the assertion using is_heap.
1804 * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
1805 (modify): Ditto.
1806 (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
1807 calling make_heap.
1808
18092017-03-15 Jonathan Wakely <jwakely@redhat.com>
1810
1811 PR libstdc++/62045
1812 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
1813 New test.
1814 * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
1815 error in comment.
1816
64e1a55d
JW
18172017-03-15 Jonathan Wakely <jwakely@redhat.com>
1818
1819 * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
1820 comment.
1821 * config.h.in: Regenerate.
1822 * configure: Regenerate.
1823 * doc/Makefile.in: Regenerate.
1824
4f83482f
JW
18252017-03-14 Jonathan Wakely <jwakely@redhat.com>
1826
1827 PR libstdc++/79162
1828 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1829 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
1830 with a constrained template.
1831 [!_GLIBCXX_USE_CXX11_ABI]
1832 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
1833 * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
1834 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
1835
648c9894
VV
18362017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1837
1838 PR libstdc++/80034
1839 * include/bits/list.tcc (merge(list&&)): Use const for the size_t
1840 in the catch-block.
1841 (merge(list&&, _StrictWeakOrdering)): Likewise.
1842 * testsuite/23_containers/list/operations/80034.cc: New.
1843
fd231ad7
VV
18442017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1845
1846 Implement LWG 2806, Base class of bad_optional_access.
1847 * include/std/optional (bad_optional_access):
1848 Derive from std::exception.
1849 (bad_optional_access::bad_optional_access): Adjust.
1850 (bad_optional_access::what): New.
1851 (__throw_bad_optional_access(const char*)):
1852 Remove the parameter and adjust calls.
1853 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1854 * testsuite/20_util/optional/typedefs.cc: Likewise.
1855
06272afb
VV
18562017-03-12 Ville Voutilainen <ville.voutilainen@gmail.com>
1857
1858 Implement LWG 2934, optional<const T> doesn't compare with T.
1859 * include/std/optional
1860 (operator==(const optional<_Tp>&, const optional<_Tp>&)):
1861 Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
1862 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
1863 Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
1864 (operator<(const optional<_Tp>&, const optional<_Tp>&)):
1865 Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
1866 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
1867 Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
1868 (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
1869 Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
1870 (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
1871 Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
1872 (operator==(const optional<_Tp>&, const _Tp&)):
1873 Turn into operator==(const optional<_Tp>&, const _Up&).
1874 (operator==(const _Tp&, const optional<_Tp>&)):
1875 Turn into operator==(const _Up&, const optional<_Tp>&).
1876 (operator!=(const optional<_Tp>&, const _Tp&)):
1877 Turn into operator!=(const optional<_Tp>&, const _Up&).
1878 (operator!=(const _Tp&, const optional<_Tp>&)):
1879 Turn into operator!=(const _Up&, const optional<_Tp>&).
1880 (operator<(const optional<_Tp>&, const _Tp&)):
1881 Turn into operator<(const optional<_Tp>&, const _Up&).
1882 (operator<(const _Tp&, const optional<_Tp>&)):
1883 Turn into operator<(const _Up&, const optional<_Tp>&).
1884 (operator>(const optional<_Tp>&, const _Tp&)):
1885 Turn into operator>(const optional<_Tp>&, const _Up&).
1886 (operator>(const _Tp&, const optional<_Tp>&)):
1887 Turn into operator>(const _Up&, const optional<_Tp>&).
1888 (operator<=(const optional<_Tp>&, const _Tp&)):
1889 Turn into operator<=(const optional<_Tp>&, const _Up&).
1890 (operator<=(const _Tp&, const optional<_Tp>&)):
1891 Turn into operator<=(const _Up&, const optional<_Tp>&).
1892 (operator>=(const optional<_Tp>&, const _Tp&)):
1893 Turn into operator>=(const optional<_Tp>&, const _Up&).
1894 (operator>=(const _Tp&, const optional<_Tp>&)):
1895 Turn into operator>=(const _Up&, const optional<_Tp>&).
1896 * testsuite/20_util/optional/relops/7.cc: New.
1897
7dcc645c
JW
18982017-03-10 Jonathan Wakely <jwakely@redhat.com>
1899
da0ced6e
JW
1900 * testsuite/17_intro/names.cc: Undefine macros that clash with
1901 identifiers in AIX system headers.
1902
7dcc645c
JW
1903 * include/bits/invoke.h (__invoke): Use __invoke_result instead of
1904 result_of, and __is_nothrow_invocable instead of
1905 __is_nothrow_callable.
1906 * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
1907 instead of __is_callable.
1908 * include/std/functional (invoke): use invoke_result_t instead of
1909 result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
1910 (_Not_fn): Use __invoke_result instead of result_of.
1911 * include/std/type_traits (__result_of_memobj, __result_of_memfun):
1912 Remove partial specializations for reference_wrapper types.
1913 (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
1914 (__invoke_result): Define replacement for result_of and then use it to
1915 define result_of.
1916 (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
1917 with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
1918 respectively.
1919 (invoke_result, invoke_result_t): Define for C++17.
1920 (is_callable, is_nothrow_callable): Replace with is_invocable,
1921 is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
1922 (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
1923 is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
1924 * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
1925 instead of is_nothrow_callable_v.
1926 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1927 main function.
1928 * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
1929 instead of is_callable.
1930 * testsuite/20_util/is_callable/*: Rename directory and adjust tests
1931 to use new traits.
1c4df66b 1932 * testsuite/20_util/is_nothrow_callable/*: Likewise.
7dcc645c
JW
1933 * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
1934 is_callable.
1935 * testsuite/20_util/variant/hash.cc: Likewise.
1936
74106ead
GL
19372017-03-10 George Lander <george.lander@arm.com>
1938
1939 * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
1940 _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
1941 * configure: Regenerate.
1942
e0472d7e
JW
19432017-03-09 Jonathan Wakely <jwakely@redhat.com>
1944
d57409cb
JW
1945 * include/std/functional (_Not_fn): Define macro to simplify
1946 repetitive function definitions.
1947
e0472d7e
JW
1948 * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
1949 * include/c_global/cstddef (std::byte): Define for C++17.
1950 * testsuite/18_support/byte/global_neg.cc: New test.
1951 * testsuite/18_support/byte/ops.cc: New test.
1952 * testsuite/18_support/byte/requirements.cc: New test.
1953
f620e1d5
JW
19542017-03-05 Jonathan Wakely <jwakely@redhat.com>
1955
1956 * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
1957 * doc/html/*: Regenerate.
1958 * include/std/mutex (scoped_lock): Implement new C++17 template.
1959 * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
1960 * testsuite/30_threads/scoped_lock/requirements/
1961 explicit_instantiation.cc: New test.
1962 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
1963
1a5a334e
GP
19642017-03-02 Gerald Pfeifer <gerald@pfeifer.com>
1965 François Dumont <frs.dumont@gmail.com>
1966 Jonathan Wakely <jwakely@redhat.com>
1967
1968 * doc/xml/manual/debug_mode.xml: Update and simplify note
1969 on link- and run-time coexistence.
1970
5782e309
JW
19712017-03-02 Jonathan Wakely <jwakely@redhat.com>
1972
17b0b37f
JW
1973 * testsuite/17_intro/headers/names.cc: Rename to ...
1974 * testsuite/17_intro/names.cc: ... here.
1975
d34d36ef
JW
1976 PR libstdc++/79789
1977 * include/bits/hashtable_policy.h (__clp2): Use reserved names for
1978 parameters and local variables.
1979 * include/bits/ios_base.h (make_error_code, make_error_condition):
1980 Likewise.
1981 * include/bits/list.tcc (list::sort): Likewise.
1982 * include/bits/mask_array.h (mask_array): Likewise.
1983 * include/bits/regex.h (regex_token_iterator): Likewise.
1984 * include/bits/slice_array.h (slice_array): Likewise.
1985 * include/bits/stl_algo.h (__sample): Likewise.
1986 * include/std/memory (undeclare_no_pointers): Likewise.
1987 * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
1988 Likewise.
1989 * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
1990 * testsuite/17_intro/headers/names.cc: New test.
1991
5782e309
JW
1992 PR libstdc++/79798
1993 * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
1994 result_of that loses top-level cv-qualifiers.
1995 * testsuite/20_util/bind/79798.cc: New test.
1996
00133e16
GP
19972017-03-01 Gerald Pfeifer <gerald@pfeifer.com>
1998
1999 * doc/xml/manual/documentation_hacking.xml: Tweak link to
2000 doxygen.org.
2001
cb701078
JW
20022017-02-23 Jonathan Wakely <jwakely@redhat.com>
2003
2004 * include/experimental/iterator: Include <iterator>.
2005 * testsuite/experimental/iterator/requirements.cc: Check for contents
2006 of <iterator>.
2007
1dee318a
DR
20082017-02-19 Dinka Ranns <dinka.ranns@googlemail.com>
2009
2010 C++17 GB50 resolution
2011 * include/std/chrono (duration::operator++()): Add
2012 _GLIBCXX17_CONSTEXPR.
2013 (duration::operator++(int)): Likewise.
2014 (duration::operator--()): Likewise.
2015 (duration::operator--(int)): Likewise.
2016 (duration::operator+=(const duration&)): Likewise.
2017 (duration::operator-=(const duration&)): Likewise.
2018 (duration::operator*=(const rep&)): Likewise.
2019 (duration::operator/=(const rep&)): Likewise.
2020 (duration::operator%=(const rep&)): Likewise.
2021 (duration::operator%=(const duration&)): Likewise.
2022 (time_point::operator+=(const duration&)): Likewise.
2023 (time_point::operator-=(const duration&)): Likewise.
2024 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
2025 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
2026 * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
2027
ff7da2b6
GP
20282017-02-19 Gerald Pfeifer <gerald@pfeifer.com>
2029
2030 * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
2031
dc15bc7a
GP
20322017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
2033
3fad5342
GP
2034 * doc/xml/manual/io.xml: Update link to groups.google.com.
2035 Tweak link description.
2036
20372017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
fe62dd04 2038
dc15bc7a
GP
2039 * doc/xml/manual/profile_mode.xml: Fix link.
2040
60e53331
GP
20412017-02-16 Gerald Pfeifer <gerald@pfeifer.com>
2042
2043 * doc/xml/manual/policy_data_structures.xml: Simplify and
2044 standardize references to boost.org.
2045 * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
2046 * doc/xml/manual/shared_ptr.xml: Ditto.
2047
728e81e3
JW
20482017-02-16 Jonathan Wakely <jwakely@redhat.com>
2049
2050 PR libstdc++/60936
2051 * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
2052 written to buffer, not length remaining in buffer.
2053
d255829b
TS
20542017-02-15 Tim Shen <timshen@google.com>
2055
2056 PR libstdc++/78723
2057 * include/std/variant (operator<(), operator>(), operator<=(),
2058 operator>=(), operator==(), operator!=()): Implement P0393R3.
2059 * testsuite/20_util/variant/compile.cc: Adjust tests.
2060 * testsuite/20_util/variant/run.cc: Adjust tests.
2061
7d5abe42
TS
20622017-02-15 Tim Shen <timshen@google.com>
2063
2064 PR libstdc++/79513
2065 * include/std/variant (visit()): Forward variant types to the return
2066 type detection code.
2067 * testsuite/20_util/variant/compile.cc: Add test cases.
2068
30956ccc
L
20692017-02-13 H.J. Lu <hongjiu.lu@intel.com>
2070
2071 PR libstdc++/79348
2072 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
2073
2d3bc14c
JJ
20742017-02-13 Jakub Jelinek <jakub@redhat.com>
2075
2076 PR libstdc++/79348
2077 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2078 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
2079 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
2080 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
2081 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
2082 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
2083 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
2084 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
2085 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
2086
def227f1
JW
20872017-02-13 Jonathan Wakely <jwakely@redhat.com>
2088
2089 PR libstdc++/79486
2090 * include/std/future (__future_base::_Task_state::_M_run)
2091 (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
2092 result_of expressions.
2093 * testsuite/30_threads/packaged_task/79486.cc: New.
2094
fe701c77
JW
20952017-02-11 Jonathan Wakely <jwakely@redhat.com>
2096
99ebfe90
JW
2097 PR libstdc++/79467
2098 * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
2099 (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
2100 __is_callable check.
2101 * testsuite/20_util/shared_ptr/cons/79467.cc: New.
2102
fe701c77
JW
2103 * include/bits/atomic_base.h: Re-indent.
2104
fe62dd04 21052017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
42f8e766 2106
fe62dd04 2107 * doc/xml/manual/profile_mode.xml: Update a paper reference.
42f8e766 2108
a8fc7e07
GP
21092017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
2110
2111 * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
2112
96189df3
JW
21132017-02-08 Jonathan Wakely <jwakely@redhat.com>
2114
2115 * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
2116 name.
2117 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
2118 broken links to texts that are no longer online.
2119 * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
2120 LCPC 2006 paper.
2121 * doc/xml/manual/using.xml: Update links to memory model information.
2122 * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
2123 Standard-Library Exception Safety".
2124 * doc/html/*: Regenerate.
2125
a68354c8 21262017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
fe62dd04 2127
41cf3f3e
GP
2128 * doc/xml/manual/profile_mode.xml: Unbreak link to
2129 "Optimizing Sorting with Machine Learning Algorithms".
2130
21312017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
fe62dd04 2132
97355ece
GP
2133 * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
2134
21352017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
fe62dd04 2136
a68354c8
GP
2137 * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
2138 Migration Guide".
2139
ca314fbd
GP
21402017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
2141
2142 * doc/html/ext/lwg-active.html: Remove.
2143 * doc/html/ext/lwg-closed.html: Ditto.
2144 * doc/html/ext/lwg-defects.html: Ditto.
2145
2146 * doc/Makefile.am (xml_extradir): Remove.
2147 (xml_extra): Ditto.
2148 (stamp-html-docbook-lwg): Remove recipe...
2149 (stamp-html-docbook-data): ...and its use here.
2150 * doc/Makefile.in: Regenerate.
2151
2152 * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
2153 the relationship to the upstream working group.
2154 Replace a local link to ../ext/lwg-active.html by the upstream one.
2155 Replace all reference to ../ext/lwg-defects.html by a new entity
2156 &DR; which refers to the upstream address.
2157
7c18cb70
GP
21582017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
2159
2160 * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
2161
3e4fd831
JW
21622017-02-06 Jonathan Wakely <jwakely@redhat.com>
2163
2164 PR libstdc++/79323
2165 * testsuite/20_util/duration/literals/range.cc: Prune extra output
2166 at -O0.
2167
ef7df153
GP
21682017-02-06 Gerald Pfeifer <gerald@pfeifer.com>
2169
2170 * doc/xml/manual/documentation_hacking.xml: Update URL of the
2171 DocBook Element Reference. Use that term as link description
2172 instead of "online".
2173 epubcheck has moved to GitHub.
2174 Remove obsolete link to DocBook Publishing Tools.
2175
b333e8eb
JW
21762017-02-03 Jonathan Wakely <jwakely@redhat.com>
2177
10613537
JW
2178 PR libstdc++/66145
2179 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
2180 so new ios::failure can be caught even when old ABI is the default.
2181 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2182 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
2183 exceptions_failbit.cc: Likewise.
2184 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2185 exceptions_failbit.cc: Likewise.
2186 * testsuite/27_io/basic_istream/extractors_other/char/
2187 exceptions_null.cc: Likewise.
2188 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
2189 exceptions_null.cc: Likewise.
2190 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2191 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2192 * testsuite/27_io/basic_ostream/inserters_other/char/
2193 exceptions_null.cc: Likewise.
2194 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2195 exceptions_null.cc: Likewise.
2196 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2197
b333e8eb
JW
2198 PR libstdc++/60936
2199 * src/c++11/Makefile.am: Add new files.
2200 * src/c++11/Makefile.in: Regenerate.
2201 * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
2202 (operator<<, operator>>, getline): Move explicit instantiations to ...
2203 * src/c++11/cow-string-io-inst.cc: ... new file.
2204 * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
2205 (operator<<, operator>>, getline): Move explicit instantiations to ...
2206 * src/c++11/cow-wstring-io-inst.cc: ... new file.
2207 * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
2208 (__throw_future_error, __throw_bad_function_call):
2209 (__throw_regex_error): Move functions for C++11 exceptions to the
2210 files that define the exception types.
2211 * src/c++11/functional.cc (__throw_bad_function_call): Move here.
2212 * src/c++11/future.cc (__throw_future_error): Likewise.
2213 * src/c++11/ios.cc (__throw_ios_failure): Likewise.
2214 * src/c++11/regex.cc (__throw_regex_error): Likewise.
2215 * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
2216 representation directly instead of calling __int_to_char.
2217 * src/c++11/sso_string.cc (__sso_string): New file for definition
2218 of __sso_string type.
2219 * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
2220 explicit instantiations of narrow string I/O functions.
2221 * src/c++11/system_error.cc (__throw_system_error): Move here.
2222 (__sso_string): Move to new file.
2223 * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
2224 explicit instantiations of wide string I/O functions.
2225 * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
2226 (operator>>, getline): Remove explicit instantiations from here.
2227
b47507fe
L
22282017-02-02 H.J. Lu <hongjiu.lu@intel.com>
2229
2230 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
2231
f0272b99
RO
22322017-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2233
a76745e6
RO
2234 * configure.host: Separate Solaris/SPARC and x86 baselines.
2235 * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
2236 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
2237 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
2238 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
2239 ... here.
2240 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
2241 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
2242 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
2243 * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
2244 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
2245 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
2246 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
2247 ... here.
2248 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
2249 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
2250 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
2251
f0272b99
RO
2252 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
2253 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
2254 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
2255 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
2256 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
2257 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
2258
11d10beb
JW
22592017-02-01 Jonathan Wakely <jwakely@redhat.com>
2260
2cf9276b
JW
2261 PR libstdc++/78346
2262 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
2263 not its referent.
2264 (_Iter_comp_to_iter): Likewise.
2265 * testsuite/25_algorithms/search/78346.cc: New test.
2266
11d10beb
JW
2267 PR libstdc++/79254
2268 * config/abi/pre/gnu.ver: Remove recently added symbols.
2269 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2270 (basic_string::_M_copy_assign): Remove.
2271 (basic_string::operator=(const basic_string&)): Don't dispatch to
2272 _M_copy_assign. If source object is small just deallocate, otherwise
2273 perform new allocation before making any changes.
2274 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
2275 (basic_string::_M_copy_assign(const basic_string&, true_type)):
2276 Remove.
2277 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2278 Test cases where the allocators are equal or the string is small.
2279 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2280 Likewise.
2281
1dd95239
VV
22822017-01-30 Ville Voutilainen <ville.voutilainen@gmail.com>
2283
2284 Implement LWG 2825, LWG 2756 breaks class template argument
2285 deduction for optional.
2286 * include/std/optional: Add a deduction guide.
2287 * testsuite/20_util/optional/cons/deduction_guide.cc: New.
2288
a7d47f35
JW
22892017-01-27 Jonathan Wakely <jwakely@redhat.com>
2290
2291 PR libstdc++/79254
2292 * config/abi/pre/gnu.ver: Add new symbols.
2293 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2294 (basic_string::_M_copy_assign): New overloaded functions to perform
2295 copy assignment.
2296 (basic_string::operator=(const basic_string&)): Dispatch to
2297 _M_copy_assign.
2298 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
2299 (basic_string::_M_copy_assign(const basic_string&, true_type)):
2300 Define, performing rollback on exception.
2301 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2302 Test exception-safety guarantee.
2303 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2304 Likewise.
2305 * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
2306 std::swap visible.
2307
bc9efeab
JW
23082017-01-26 Jonathan Wakely <jwakely@redhat.com>
2309
c8699672
JW
2310 PR libstdc++/70607
2311 * include/tr1/complex (conj): Remove using-declaration and restore
2312 overloads, reverting previous change.
2313
881191e8
JW
2314 * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
2315 mode.
2316 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
2317 Mark as unsupported in C++98 mode.
2318 * testsuite/23_containers/queue/requirements/constructible.cc:
2319 Likewise.
2320 * testsuite/23_containers/stack/requirements/constructible.cc:
2321 Likewise.
2322 * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
2323
3e5fb20f
JW
2324 PR libstdc++/79243
2325 * include/bits/c++config (literals::string_view_literals::__7): Add.
2326 Only declare versioned namespaces for the relevant C++ dialects.
2327 * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
2328 Add versioning macros.
2329 * include/experimental/bits/lfts_config.h:
2330 (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
2331 * include/experimental/string_view (fundamentals_v2::__detail):
2332 Add versioning macros.
2333 (fundamentals_v2::__detail::__identity): Remove.
2334 (fundamentals_v2::__detail::__idt): Use common_type instead of
2335 __detail::__identity.
2336 * include/std/string_view (__detail::__identity, __detail::__idt):
2337 Likewise.
2338 (literals::string_view_literals): Fix nesting of versioning macros.
2339
bc9efeab
JW
2340 PR libstdc++/79190
2341 * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
2342 [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
2343 && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
2344 Retrieve original pointer value allocated by malloc.
2345 * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
2346 && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
2347 && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
2348 Define, adjusting pointer value allocated by malloc and storing for
2349 retrieval by operator delete.
2350
e6d55103
JJ
23512017-01-26 Jakub Jelinek <jakub@redhat.com>
2352
2353 * libsupc++/eh_atomics.h: Update copyright years.
2354 * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
2355
536c221d
JW
23562017-01-25 Jonathan Wakely <jwakely@redhat.com>
2357
2358 PR libstdc++/61791
2359 PR libstdc++/70607
2360 * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
2361 (proj(T), conj(T)): Change return types per DR 1522.
2362 * include/tr1/complex (conj): Remove overloads and use std::conj.
2363 * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
2364 * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
2365 * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
2366 real(T) and imag(T). Allow testing for C++11 too.
2367
8cb7179d
JW
23682017-01-24 Jonathan Wakely <jwakely@redhat.com>
2369
2370 PR libstdc++/79206
2371 * include/experimental/string_view (operator==): Check sizes first.
2372 * include/std/string_view (operator==): Likewise.
2373
11948d83
JW
23742017-01-23 Jonathan Wakely <jwakely@redhat.com>
2375
2376 * testsuite/experimental/array/make_array.cc: Restore <functional>
2377 inclusion.
2378
a750159e
TP
23792017-01-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
2380
2381 * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
2382
61ad58f3
JW
23832017-01-23 Jonathan Wakely <jwakely@redhat.com>
2384
2385 PR libstdc++/79195
2386 * include/experimental/array (__make_array_elem): New class template
2387 and partial specialization.
2388 (__is_reference_wrapper): Move into __make_array_elem specialization.
2389 (make_array): Use __make_array_elem to determine element type and move
2390 static assertion into specialization. Qualify std::forward call.
2391 (to_array): Add exception specifiation.
2392 * testsuite/experimental/array/make_array.cc: Test argument types
2393 without a common type.
2394 * testsuite/experimental/array/neg.cc: Adjust expected error message.
2395
630f9893
GP
23962017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
2397
cd308313
GP
2398 * doc/xml/manual/debug.xml: code.google.com uses https now.
2399
24002017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
fe62dd04 2401
630f9893
GP
2402 * doc/xml/manual/test.xml: Fix link into gccint online manual.
2403
509912a6
VV
24042017-01-21 Ville Voutilainen <ville.voutilainen@gmail.com>
2405
2406 Make poisoned hashes SFINAE away the call operator of the hash.
2407 * include/bits/functional_hash.h
2408 (__poison_hash::__enable_hash_call): New.
2409 * include/std/optional (__optional_hash_call_base): New.
2410 (hash<optional<_Tp>>): Derive from the new base,
2411 move the hash function into that base.
2412 * include/std/variant (__variant_hash_call_base_impl): New.
2413 (__variant_hash_call_base): Likewise.
2414 (hash<variant<_Types...>>): Derive from the new base,
2415 move the hash function into that base.
2416 * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
2417 * testsuite/20_util/variant/hash.cc: Likewise.
2418
f14d2c52
JS
24192017-01-20 Joe Seymour <joe.s@somniumtech.com>
2420
2421 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
2422 * configure: Regenerate.
2423
5b4ca306
JW
24242017-01-20 Jonathan Wakely <jwakely@redhat.com>
2425
12905f10
JW
2426 PR libstdc++/69240
2427 * include/bits/random.h (uniform_real_distribution::param_type)
2428 (normal_distribution::param_type, lognormal_distribution::param_type)
2429 (gamma_distribution::param_type, chi_squared_distribution::param_type)
2430 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
2431 (student_t_distribution::param_type)
2432 (bernoulli_distribution::param_type, binomial_distribution::param_type)
2433 (geometric_distribution::param_type)
2434 (negative_binomial_distribution::param_type)
2435 (poisson_distribution::param_type)
2436 (exponential_distribution::param_type)
2437 (weibull_distribution::param_type)
2438 (extreme_value_distribution::param_type)
2439 (discrete_distribution::param_type)
2440 (piecewise_constant_distribution::param_type)
2441 (piecewise_linear_distribution::param_type): Define operator!=.
2442 * include/bits/uniform_int_dist.h
2443 (uniform_int_distribution::param_type): Likewise.
2444 * include/ext/random (beta_distribution::param_type)
2445 (rice_distribution::param_type, nakagami_distribution::param_type)
2446 (pareto_distribution::param_type, k_distribution::param_type)
2447 (arcsine_distribution::param_type, hoyt_distribution::param_type)
2448 (triangular_distribution::param_type)
2449 (von_mises_distribution::param_type)
2450 (hypergeometric_distribution::param_type)
2451 (logistic_distribution::param_type)
2452 (uniform_on_sphere_distribution::param_type)
2453 (uniform_inside_sphere_distribution::param_type): Likewise.
2454 * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
2455 Test construction with param_type.
2456 * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
2457 Likewise.
2458 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
2459 Likewise.
2460 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
2461 Likewise.
2462 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
2463 Likewise.
2464 * testsuite/26_numerics/random/extreme_value_distribution/cons/
2465 parms.cc: Likewise.
2466 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
2467 Likewise.
2468 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
2469 Likewise.
2470 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
2471 Likewise.
2472 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
2473 Likewise.
2474 * testsuite/26_numerics/random/negative_binomial_distribution/cons/
2475 parms.cc: Likewise.
2476 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
2477 Likewise.
2478 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
2479 Likewise.
2480 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
2481 Likewise.
2482 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
2483 Likewise.
2484 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
2485 Likewise.
2486 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
2487 Likewise.
2488 * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
2489 * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
2490 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
2491 * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
2492 Likewise.
2493 * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
2494 * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
2495 * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
2496 * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
2497 * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
2498 * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
2499 * testsuite/ext/random/triangular_distribution/cons/parms.cc:
2500 Likewise.
2501 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
2502 parms.cc: Likewise.
2503 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
2504
4dfdda10
JW
2505 PR libstdc++/72792
2506 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
2507 (__allocator_traits_base::__size_type): Remove.
2508 (allocator_traits::_Ptr): New class template to detect const and void
2509 pointer types without instantiating pointer_traits::rebind
2510 unnecessarily.
2511 (allocator_traits::_Diff): Likewise for detecting difference_type.
2512 (allocator_traits::_Size): New class template to detect size_type
2513 without instantiating make_unsigned unnecessarily.
2514 * include/bits/ptr_traits.h (pointer_traits::element_type): Use
2515 __detected_or_t instead of __detected_or_t_.
2516 * include/std/type_traits (__detected_or_t_): Remove.
2517 * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
2518
a3a1620b
JW
2519 PR libstdc++/72792
2520 PR libstdc++/72793
2521 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
2522 Replace with class template using void_t.
2523 (__alloc_rebind): Define in terms of
2524 __allocator_traits_base::__rebind.
2525 (allocator_traits): Remove unconditional static_assert for
2526 rebind_alloc.
2527 * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
2528 (pointer_traits::__rebind): Replace with class template using void_t.
2529 (pointer_traits::rebind): Define in terms of __rebind.
2530 (pointer_traits): Remove unconditional static_assert for rebind.
2531 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
2532 * testsuite/20_util/pointer_traits/rebind.cc: New test.
2533
38a9e5a6
JW
2534 PR libstdc++/69321
2535 * include/experimental/any (__any_caster): Avoid instantiating
2536 manager function for types that can't be stored in any.
2537 * include/std/any (__any_caster): Likewise.
2538 * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
2539 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
2540
5b4ca306
JW
2541 PR libstdc++/64903
2542 * include/bits/stl_algo.h (is_partitioned): Use increment instead of
2543 std::advance.
2544
8c05647c
JW
25452017-01-19 Jonathan Wakely <jwakely@redhat.com>
2546
115ac9ff
JW
2547 PR libstdc++/79156
2548 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
2549 Fix return type.
2550 (__enable_shared_from_this): Declare __shared_ptr as a friend.
2551 * testsuite/ext/shared_ptr/1.cc: New test.
2552
c4e5baa6 2553 PR libstdc++/64903
5b4ca306 2554 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
c4e5baa6
JW
2555 point.
2556 * testsuite/25_algorithms/is_partitioned/2.cc: New test.
2557
8e416011
JW
2558 * doc/xml/manual/abi.xml: Fix typo.
2559 * doc/html/manual/abi.html: Likewise.
2560
437f43cc
JW
2561 PR libstdc++/67085
2562 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
2563 converting constructors from _Iter_less_iter.
2564 (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
2565 _Iter_comp_iter.
2566 (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
2567 (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
2568 * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
2569 (__make_heap, __sort_heap): Change _Compare parameters to references.
2570 (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
2571 (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
2572 functions as lvalues.
2573 (is_heap): Call __is_heap_until directly to avoid copying __comp.
2574 * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
2575 count copies during construction with empty sequence.
2576
9ade9945
JW
2577 PR libstdc++/67085
2578 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
2579 (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
2580 * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
2581 number of copies.
2582 * testsuite/25_algorithms/make_heap/movable.cc: New test.
2583
45b48129
JW
2584 PR libstdc++/67085
2585 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
2586 (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
2587 _GLIBCXX_MOVE when passing comparison function to other functions.
2588 (is_heap_until, is_heap): Use std::move when passing comparison
2589 function.
2590 * testsuite/23_containers/priority_queue/67085.cc: New test.
2591
8c05647c
JW
2592 PR libstdc++/78905
2593 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
2594 macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
2595 Document that the deprecated _GLIBCXX_VERSION macro was removed for
2596 the 4.0.0 release.
2597 * doc/html/*: Regenerate.
2598 * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
2599 * include/Makefile.in: Regenerate.
2600 * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
2601 * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
2602 dg-error.
2603
b08fdbb8
JW
26042017-01-18 Jonathan Wakely <jwakely@redhat.com>
2605
2ae27b70
JW
2606 PR libstdc++/69301
2607 * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
2608 aligned buffer instead of default-initialized variable.
2609 * testsuite/29_atomics/atomic/69301.cc: New test.
2610 * include/experimental/memory (observer_ptr::release): Use reserved
2611 name.
2612 * include/ext/pointer.h (_Pointer_adapter::operator++(int))
2613 (_Pointer_adapter::operator--(int)): Likewise.
2614
b08fdbb8
JW
2615 PR libstdc++/68925
2616 * include/experimental/random (randint): Use temporary instead of
2617 thread_local static.
2618
93f90f7b
JC
26192017-01-17 Joshua Conner <joshconner@google.com>
2620
2621 * crossconfig.m4: Add fuchsia OS.
fe62dd04 2622 * configure: Regenerate.
93f90f7b 2623
04c872aa
JW
26242017-01-17 Jonathan Wakely <jwakely@redhat.com>
2625
c6b8b5e4
JW
2626 PR libstdc++/69699
2627 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
8c05647c 2628 __GLIBCXX__ macro is not useful. Remove redundant date information
c6b8b5e4
JW
2629 and link to the GCC release timeline.
2630 (abi.versioning.active): Move partial sentence into the previous
2631 paragraph.
2632 * doc/html/*: Regenerate.
2633
04c872aa
JW
2634 PR libstdc++/79114
2635 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
2636 of remove_reference.
2637 * testsuite/18_support/nested_exception/79114.cc: New test.
2638
3c36aa6b
JJ
26392017-01-17 Jakub Jelinek <jakub@redhat.com>
2640
2641 PR other/79046
2642 * configure.ac: Add GCC_BASE_VER.
2643 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
2644 get version from BASE-VER file.
2645 * po/Makefile.in: Regenerated.
2646 * libsupc++/Makefile.in: Regenerated.
2647 * testsuite/Makefile.in: Regenerated.
2648 * src/Makefile.in: Regenerated.
2649 * configure: Regenerated.
2650 * Makefile.in: Regenerated.
2651 * include/Makefile.in: Regenerated.
2652 * doc/Makefile.in: Regenerated.
2653 * python/Makefile.in: Regenerated.
2654 * src/c++11/Makefile.in: Regenerated.
2655 * src/c++98/Makefile.in: Regenerated.
2656 * src/filesystem/Makefile.in: Regenerated.
2657
b497fbc1
JW
26582017-01-16 Jonathan Wakely <jwakely@redhat.com>
2659
83291b8b
JW
2660 PR libstdc++/66145
2661 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
2662 exceptions.
2663 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
2664 for test, so new ios::failure can be caught.
2665 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2666 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
2667 exceptions_failbit.cc: Likewise.
2668 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2669 exceptions_failbit.cc: Likewise.
2670 * testsuite/27_io/basic_istream/extractors_other/char/
2671 exceptions_null.cc: Likewise.
2672 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
2673 exceptions_null.cc: Likewise.
2674 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2675 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2676 * testsuite/27_io/basic_ostream/inserters_other/char/
2677 exceptions_null.cc: Likewise.
2678 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2679 exceptions_null.cc: Likewise.
2680 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2681
b497fbc1
JW
2682 PR libstdc++/78702
2683 * include/bits/locale_classes.h (locale::facet::__shim): Change from
2684 private to protected.
2685 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
2686 make locale::facet::__shim accessible.
2687
53426b63
VV
26882017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
2689
2690 PR libstdc++/78389
2691 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
2692 (merge(list&&, _StrictWeakOrdering)): Likewise.
2693 * testsuite/23_containers/list/operations/78389.cc: Add
2694 better test for the sizes.
2695
ac4664f9
JW
26962017-01-14 Jonathan Wakely <jwakely@redhat.com>
2697
2698 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
2699 Skip test when -D_GLIBCXX_PROFILE mode is included in options.
2700 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
2701 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
2702 Likewise.
2703 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
2704 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
2705 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
2706 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
2707 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
2708 Likewise.
2709 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
2710 Likewise.
2711 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
2712 Likewise.
2713 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
2714 Likewise.
2715 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2716 Likewise.
2717 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
2718 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
2719 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
2720 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
2721 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
2722 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
2723 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
2724 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
2725 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
2726 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
2727 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
2728 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2729 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
2730
90aa7330
JW
27312017-01-13 Jonathan Wakely <jwakely@redhat.com>
2732
0fdba3a8
JW
2733 PR libstdc++/65411
2734 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
2735 retry fclose on EINTR.
2736
aa1ba96b
JW
2737 * include/profile/base.h: Remove unused header that leads to header
2738 cycle in C++17 mode.
2739
92daf2de
JW
2740 PR libstdc++/79075
2741 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
2742 Make _If_sv private.
2743 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
2744 basic_string_view arguments.
2745
90aa7330
JW
2746 PR libstdc++/79075
2747 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
2748 redundant option from cxxflags.
2749 (check_effective_target_cxx11-abi): Define.
2750 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
2751 effective target.
2752 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
2753 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2754 Likewise.
2755 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
2756 Likewise.
2757 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
2758 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
2759 Likewise.
2760 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
2761 Likewise.
2762 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
2763 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
2764 Likewise.
2765 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2766 Likewise.
2767 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
2768 Likewise.
2769 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
2770 Likewise.
2771 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
2772 Likewise.
2773 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
2774 Likewise.
2775 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
2776 Likewise.
2777 * testsuite/23_containers/list/61347.cc: Likewise.
2778 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
2779 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
2780
e5dcfacf
VV
27812017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2782
2783 PR libstdc++/78389
2784 * include/bits/list.tcc (merge(list&&)):
2785 Adjust list sizes if the comparator throws.
2786 (merge(list&&, _StrictWeakOrdering)): Likewise.
2787 (sort()): Splice elements back from the scratch buffers
2788 if the comparator throws.
2789 (sort(_StrictWeakOrdering)): Likewise.
2790 * testsuite/23_containers/list/operations/78389.cc: New.
2791
c6ab9061
JW
27922017-01-13 Jonathan Wakely <jwakely@redhat.com>
2793
45cac8ba
JW
2794 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
2795 XFAIL for C++17 until node reinsertion supports fancy pointers.
2796
c6ab9061
JW
2797 PR libstdc++/78361
2798 * testsuite/20_util/add_pointer/value.cc: Test forming function
2799 pointers.
2800
28012017-01-13 Michael Brune <lucdanton@free.fr>
2802
2803 PR libstdc++/78361
2804 * include/std/type_traits (__is_referenceable): Handle noexcept
2805 function types.
2806
4704f28e
JW
28072017-01-12 Jonathan Wakely <jwakely@redhat.com>
2808
a1f009a6
JW
2809 PR libstdc++/77528
2810 * include/bits/stl_queue.h (queue, priority_queue): Remove default
2811 member-initializers and define default constructors as templates with
2812 constraints.
2813 * include/bits/stl_stack.h (stack): Likewise.
2814 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
2815 New.
2816 * testsuite/23_containers/priority_queue/requirements/
2817 explicit_instantiation/1.cc: Test more instantiations.
2818 * testsuite/23_containers/priority_queue/requirements/
2819 explicit_instantiation/1_c++98.cc: Likewise.
2820 * testsuite/23_containers/queue/requirements/constructible.cc: New.
2821 * testsuite/23_containers/stack/requirements/constructible.cc: New.
2822
4704f28e
JW
2823 PR libstdc++/66284
2824 * doc/xml/manual/intro.xml: Document LWG 2781 change.
2825 * doc/html/*: Regenerate.
2826 * include/std/functional (_Function_base::_Ref_manager): Remove.
2827 (_Function_handler): Remove partial specializations for
2828 reference_wrapper.
2829 (function::target): Remove special case for const qualification.
2830 * testsuite/20_util/function/6.cc: Adjust tests for target type.
2831 * testsuite/20_util/function/7.cc: Likewise.
2832 * testsuite/20_util/function/8.cc: Likewise.
2833
b091b8dc
JW
28342017-01-11 Jonathan Wakely <jwakely@redhat.com>
2835
b744bf4e
JW
2836 PR libstdc++/78134
2837 * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
2838 (map::equal_range): Fix return type of heterogeneous overloads.
2839 * include/bits/stl_multimap.h (multimap::lower_bound)
2840 (multimap::upper_bound, multimap::equal_range): Likewise.
2841 * include/bits/stl_multiset.h (multiset::lower_bound)
2842 (multiset::upper_bound, multiset::equal_range): Likewise.
2843 * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
2844 (set::equal_range): Likewise.
2845 * testsuite/23_containers/map/operations/2.cc
2846 * testsuite/23_containers/multimap/operations/2.cc
2847 * testsuite/23_containers/multiset/operations/2.cc
2848 * testsuite/23_containers/set/operations/2.cc
2849
b091b8dc
JW
2850 PR libstdc++/78273
2851 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
2852 the heterogeneous comparison can only find one match.
2853 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
2854 * testsuite/23_containers/map/operations/2.cc: Test count works with
2855 comparison function that just partitions rather than sorting.
2856 * testsuite/23_containers/set/operations/2.cc: Likewise.
2857
f3df0b3c
VV
28582017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
2859
2860 Reduce the size of variant, it doesn't need an index of
2861 type size_t internally.
2862 * include/std/variant (parse_numbers.h): New include.
2863 (__select_index): New.
2864 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
2865 _index_type for comparison with variant_npos.
2866 (_Variant_storage<false, _Types...>::__index_type): New.
2867 (_Variant_storage<false, _Types...>::_M_index): Change the
2868 type from size_t to __index_type.
2869 (_Variant_storage<true, _Types...>::__index_type): New.
2870 (_Variant_storage<true, _Types...>::_M_index): Change the
2871 type from size_t to __index_type.
2872 (_Variant_base::_M_valid): Use _Storage::__index_type
2873 for comparison with variant_npos.
2874 (variant::index): Use _Base::_Storage::__index_type
2875 for comparison with variant_npos.
2876 * testsuite/20_util/variant/index_type.cc: New.
2877
d2e1d4b7
JW
28782017-01-10 Jonathan Wakely <jwakely@redhat.com>
2879
904112f6
JW
2880 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
2881 effective target selector to prevent running in C++17 mode.
2882
d2e1d4b7
JW
2883 PR libstdc++/77528
2884 * include/bits/stl_queue.h (queue::c): Add default member initializer.
2885 (queue::queue()): Add constructor and define as defaulted.
2886 (queue::queue(_Sequence&&)): Remove default argument.
2887 (priority_queue::c, priority_queue::comp): Add default member
2888 initializers.
2889 (priority_queue::priority_queue()): Add constructor and define as
2890 defaulted.
2891 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
2892 Remove default argument for first parameter.
2893 * include/bits/stl_stack.h (stack::c): Add default member initializer.
2894 (stack::stack()): Add constructor and define as defaulted.
2895 (stack::stack(const _Sequence&)): Remove default argument.
2896 * testsuite/23_containers/priority_queue/requirements/
2897 explicit_instantiation/1.cc: Test explicit instantiation with
2898 non-DefaultConstructible sequence.
2899 * testsuite/23_containers/priority_queue/77528.cc: New test.
2900 * testsuite/23_containers/priority_queue/requirements/
2901 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
2902 * testsuite/23_containers/queue/77528.cc: New test.
2903 * testsuite/23_containers/queue/requirements/explicit_instantiation/
2904 1.cc: Test explicit instantiation with non-DefaultConstructible
2905 sequence.
2906 * testsuite/23_containers/queue/requirements/explicit_instantiation/
2907 1_c++0x.cc: Replace with 1_c++98.cc.
2908 * testsuite/23_containers/stack/77528.cc: New test.
2909 * testsuite/23_containers/stack/requirements/explicit_instantiation/
2910 1.cc: Test explicit instantiation with non-DefaultConstructible
2911 sequence.
2912 * testsuite/23_containers/stack/requirements/explicit_instantiation/
2913 1_c++0x.cc: Replace with 1_c++98.cc.
2914
26b67e38
FMA
29152017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
2916
2917 * include/bits/locale_facets_nonio.tcc
2918 (time_get::_M_extract_via_format): Avoid compilation errors with
2919 non-standard struct tm.
2920
f9a27859
FD
29212017-01-10 François Dumont <fdumont@gcc.gnu.org>
2922 Jonathan Wakely <jwakely@redhat.com>
2923
2924 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
2925 (is_specialization, strip_versioned_namespace): New helpers functions
2926 to work with symbols in the versioned namespace.
2927 (Printer.add_version): Add second name using versioned namespace.
2928 (add_one_template_type_printer, add_one_type_printer): Add second
2929 type printers using versioned namespace.
2930 (register_type_printers): Add template type printer for basic_string.
2931 (build_libstdcxx_dictionary): Remove dead code.
2932 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
2933 versioned namespace.
2934 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
2935 results.
2936 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
2937
dc8bc65b
JW
29382017-01-09 Jonathan Wakely <jwakely@redhat.com>
2939
a7765de8
JW
2940 PR libstdc++/79017
2941 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
2942 functions separately on darwin and if they're missing define
2943 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
2944 * config.h.in: Regenerate.
2945 * configure: Regenerate.
2946 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
2947 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
2948
dc8bc65b
JW
2949 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
2950 to detect correct thread_local destructors.
2951 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
2952 Define.
2953
cb627cdf
JW
29542017-01-09 Jonathan Wakely <jwakely@redhat.com>
2955 Aditya Kumar <hiraditya@msn.com>
2956
2957 PR libstdc++/66414
2958 * include/bits/basic_string.tcc
2959 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
2960
ea4ad78e
JW
29612017-01-06 Jonathan Wakely <jwakely@redhat.com>
2962
3330ac38
JW
2963 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
2964 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
2965
3907f9e5
JW
2966 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
2967 Include <cassert> header.
2968
ea4ad78e
JW
2969 PR libstdc++/78968
2970 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
2971 * configure: Regenerate.
2972
258ee761
BA
29732017-01-06 Barrett Adair <barrettellisadair@gmail.com>
2974 Jonathan Wakely <jwakely@redhat.com>
2975
2976 * include/std/variant (variant, swap): Replace __and_ usage with fold
2977 expressions.
2978
1ec62aa9
RO
29792017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2980
2981 PR go/78978
2982 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
2983 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
2984 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
2985 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
2986 HWCAP_FLAGS.
2987 * aclocal.m4: Regenerate.
2988 * configure: Regenerate.
2989 * Makefile.in, doc/Makefile.in, include/Makefile.in,
2990 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
2991 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
2992 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
2993
6807f086
JW
29942017-01-06 Jonathan Wakely <jwakely@redhat.com>
2995
8b790281
JW
2996 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
2997
6807f086
JW
2998 PR libstdc++/78991
2999 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
3000 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
3001 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
3002 move function objects.
3003 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
3004 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
3005 * testsuite/25_algorithms/sort/78991.cc: New test.
3006
295ce2e5
JW
30072017-01-05 Jonathan Wakely <jwakely@redhat.com>
3008
3009 * include/bits/std_function.h (function::_Signature_type): Remove.
3010 (function::function(_Functor)): Adjust.
3011
0f9cf7ff
TS
30122017-01-05 Tim Shen <timshen@google.com>
3013
3014 PR libstdc++/78996
3015 * include/std/variant (__gen_vtable_impl): rename __unused to
3016 __dimensions to avoid naming conflict.
3017
2a792efe
JW
30182017-01-04 Jonathan Wakely <jwakely@redhat.com>
3019
3020 PR libstdc++/78968
3021 * config.h.in: Regenerate.
3022 * configure: Likewise.
3023 * configure.ac: Check for __cxa_thread_atexit.
3024 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
3025 Don't define __cxa_thread_atexit if libc provides it.
3026
13086769
VV
30272017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
3028
3029 Implement 2801, Default-constructibility of unique_ptr.
3030 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
3031 (unique_ptr::_DeleterConstraint): Likewise.
3032 (unique_ptr()): Constrain.
3033 (unique_ptr(pointer)): Likewise.
3034 (unique_ptr(nullptr_t)): Likewise.
3035 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
3036 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
3037 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
3038 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
3039 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
3040 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
3041 * testsuite/20_util/unique_ptr/cons/default.cc: New.
3042 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
3043
ed3cb497
PN
30442017-01-04 Pauli Nieminen <suokkos@gmail.com>
3045 Jonathan Wakely <jwakely@redhat.com>
3046
3047 PR libstdc++/64735
3048 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
3049 * config.h.in: Regenerate.
3050 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
3051 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
3052 exports for exception_ptr, nested_exception, and future conditional.
3053 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
3054 exports for exception_ptr, nested_exception, and future conditional.
3055 * configure: Regenerate.
3056 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
3057 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
3058 * libsupc++/eh_atomics.h: New file for internal use only.
3059 (__eh_atomic_inc, __eh_atomic_dec): New.
3060 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
3061 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
3062 (rethrow_exception): Use eh_atomics.h reference counting helpers.
3063 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
3064 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
3065 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
3066 * libsupc++/exception_ptr.h: Likewise.
3067 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
3068 * libsupc++/nested_exception.cc: Remove check for
3069 ATOMIC_INT_LOCK_FREE.
3070 * libsupc++/nested_exception.h: Likewise.
3071 * src/c++11/future.cc: Likewise.
3072 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
3073 * testsuite/18_support/nested_exception/*: Likewise.
3074 * testsuite/30_threads/async/*: Likewise.
3075 * testsuite/30_threads/future/*: Likewise.
3076 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
3077 * testsuite/30_threads/packaged_task/*: Likewise.
3078 * testsuite/30_threads/promise/*: Likewise.
3079 * testsuite/30_threads/shared_future/*: Likewise.
3080
c671a0d6
GP
30812017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
3082
3083 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
3084 defaults to https; adjust reference.
3085
f61581f7
JW
30862017-01-03 Jonathan Wakely <jwakely@redhat.com>
3087
80efc507
JW
3088 PR libstdc++/78956
3089 * include/std/thread (thread(const thread&&)): Add deleted
3090 constructor.
3091 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
3092
f61581f7
JW
3093 * doc/xml/manual/spine.xml: Update copyright years.
3094 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
3095 * doc/xml/manual/test.xml: Likewise.
3096 * doc/html/*: Regenerate.
3097
337160b8
GP
30982017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
3099
3100 * doc/xml/faq.xml: Update address of C++ ABI link.
3101 * doc/xml/manual/abi.xml: Ditto.
fe62dd04 3102
cbe34bb5 31032017-01-01 Jakub Jelinek <jakub@redhat.com>
5624e564
JJ
3104
3105 Update copyright years.
b4df5e92 3106\f
cbe34bb5 3107Copyright (C) 2017 Free Software Foundation, Inc.
b4df5e92
JW
3108
3109Copying and distribution of this file, with or without modification,
3110are permitted in any medium without royalty provided the copyright
3111notice and this notice are preserved.