PR sanitizer/81923
[official-gcc.git] / libstdc++-v3 / ChangeLog
blobed1003a5fc49248c689ffd754a74e0bec6001ca0
1 2017-08-31  Jonathan Wakely  <jwakely@redhat.com>
3         PR c++/82039
4         * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
5         Adjust null pointer constant to avoid warning.
7 2017-08-24  François Dumont  <fdumont@gcc.gnu.org>
9         * include/bits/stl_list.h
10         [!_GLIBCXX_INLINE_VERSION](_List_base<>::_S_distance): Remove.
11         (_List_impl(_Node_alloc_type&&, _List_impl&&)): New.
12         (_List_base(_Node_alloc_type&&, _List_base&&)): New, use latter.
13         [!_GLIBCXX_INLINE_VERSION](_List_base(_Node_alloc_type&&,_List_base&&)):
14         Remove.
15         (_List_base(_Node_alloc_type&&)): New.
16         [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_distance): Remove.
17         [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_node_count): Remove.
18         (list<>::_M_node_count): New.
19         (list<>::size()): Adapt to call latter.
20         (list<>::_S_distance(const_iterator, const_iterator)): New.
21         (list<>::splice(iterator, list&, const_iterator, const_iterator)):
22         Adapt to call latter.
23         (list(list&&, const allocator_type&, true_type)): New.
24         (list(list&&, const allocator_type&, false_type)): New.
25         (list(list&&, const allocator_type&)): Adapt to call latters.
27 2017-08-21  Jonathan Wakely  <jwakely@redhat.com>
29         PR libstdc++/81912
30         * include/bits/stl_iterator_base_types.h (__iterator_category): Add
31         constexpr for C++11 and later.
32         * testsuite/24_iterators/container_access.cc: Add target selector.
33         * testsuite/24_iterators/range_access.cc: Fix clause number in
34         comment.
35         * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
36         * testsuite/24_iterators/range_access_cpp17.cc: New.
38 2017-08-21  Richard Biener  <rguenther@suse.de>
40         * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Run all
41         tests with -flto as well if supported.
43 2017-08-20  Martin Sebor  <msebor@redhat.com>
45         PR c/81854
46         * src/c++98/compatibility.cc (_GLIBCXX_3_4_SYMVER): Declare alias
47         target as a C++ function with no prototype.
48         (_GLIBCXX_3_4_5_SYMVER): Ditto.
50 2017-08-20  John David Anglin  <danglin@gcc.gnu.org>
52         PR testsuite/81056
53         * testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__.
55 2017-08-18  Jonathan Wakely  <jwakely@redhat.com>
57         * include/bits/hashtable_policy.h (_ReuseOrAllocNode): Remove
58         __value_alloc_type and __value_alloc_traits typedefs.
59         (_ReuseOrAllocNode::operator()): Call construct and destroy on the
60         node allocator.
61         (_Hashtable_alloc): Simplify __value_alloc_traits typedef.
62         (_Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&&...)): Call
63         construct on the node allocator.
64         (_Hashtable_alloc<_NodeAlloc>::_M_deallocate_node(__node_type*)): Call
65         destroy on the node allocator.
67         PR libstdc++/81891
68         * include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
69         size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
70         const _ExtractKey&, const allocator_type&)): Let destructor do clean
71         up if an exception is thrown.
72         * testsuite/23_containers/unordered_map/cons/81891.cc: New.
74 2017-08-11  Jonathan Wakely  <jwakely@redhat.com>
76         PR libstdc++/81808
77         * testsuite/27_io/basic_fstream/53984.cc: Adjust test for targets
78         that allow opening a directory as a FILE and reading from it.
80 2017-08-09  Jonathan Wakely  <jwakely@redhat.com>
82         * include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP):
83         Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use
84         __is_identifier to set it.
86 2017-08-09  Katsuhiko Nishimra  <ktns.87@gmail.com>
88         * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
89         __is_identifier instead of __has_builtin.
91 2017-08-09  Jonathan Wakely  <jwakely@redhat.com>
93         PR libstdc++/79820
94         PR libstdc++/81751
95         * config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)):
96         Call fflush on the stream instead of calling sync() while _M_cfile is
97         null. Restore original value of errno.
98         * testsuite/ext/stdio_filebuf/char/79820.cc: New.
99         * testsuite/ext/stdio_filebuf/char/81751.cc: New.
101 2017-07-31  Marek Polacek  <polacek@redhat.com>
103         PR libstdc++/81599
104         * include/bits/stl_stack.h: Fix typo.
106 2017-07-26  Jonathan Wakely  <jwakely@redhat.com>
108         * testsuite/27_io/basic_fstream/53984.cc: Fix test.
110 2017-07-26  Paolo Carlini  <paolo.carlini@oracle.com>
112         * testsuite/27_io/basic_fstream/53984.cc: Fix typo in dg-require
113         directive.
115 2017-07-25  Jonathan Wakely  <jwakely@redhat.com>
117         PR libstdc++/53984
118         * include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment.
119         * include/bits/istream.tcc (basic_istream::sentry): Handle exceptions
120         during construction.
121         * include/std/istream: Adjust comments for formatted input functions
122         and unformatted input functions.
123         * testsuite/27_io/basic_fstream/53984.cc: New.
124         * testsuite/27_io/basic_istream/sentry/char/53984.cc: New.
126         * include/bits/ios_base.h (ios_base::io_state, ios_base::open_mode)
127         (ios_base::seek_dir): Remove for C++17.
128         * include/std/streambuf (basic_streambuf::stossc): Remove for C++17.
129         Add deprecated attribute for C++11 and C++14.
130         * testsuite/27_io/types/1.cc: Don't run for C++17 and later.
131         * testsuite/27_io/types/4.cc: New.
133 2017-07-23  Michael Collison  <michael.collison@arm.com>
135         Add optimized implementation of mersenne twister for aarch64
136         * config/cpu/aarch64/opt/ext/opt_random.h: New file.
137         (__arch64_recursion): New function.
138         (__aarch64_lsr_128): New function.
139         (__aarch64_lsl_128): New function.
140         (operator==): New function.
141         (simd_fast_mersenne_twister_engine): Implement
142         method _M_gen_rand.
143         * config/cpu/aarch64/opt/bits/opt_random.h: New file.
144         * include/ext/random: (simd_fast_mersenne_twister_engine):
145         add _M_state private array.
147 2017-07-23  François Dumont  <fdumont@gcc.gnu.org>
149         PR libstdc++/81064
150         * include/bits/algorithmfwd.h: Reorganize versioned namespace.
151         * include/bits/basic_string.h: Likewise.
152         * include/bits/c++config: Likewise.
153         * include/bits/deque.tcc: Likewise.
154         * include/bits/forward_list.h: Likewise.
155         * include/bits/forward_list.tcc: Likewise.
156         * include/bits/hashtable_policy.h: Likewise.
157         * include/bits/list.tcc: Likewise.
158         * include/bits/move.h: Likewise.
159         * include/bits/quoted_string.h: Likewise.
160         * include/bits/random.h: Likewise.
161         * include/bits/random.tcc: Likewise.
162         * include/bits/regex.h: Likewise.
163         * include/bits/regex.tcc: Likewise.
164         * include/bits/regex_automaton.h: Likewise.
165         * include/bits/regex_automaton.tcc: Likewise.
166         * include/bits/regex_compiler.h: Likewise.
167         * include/bits/regex_compiler.tcc: Likewise.
168         * include/bits/regex_constants.h: Likewise.
169         * include/bits/regex_error.h: Likewise.
170         * include/bits/regex_executor.h: Likewise.
171         * include/bits/regex_executor.tcc: Likewise.
172         * include/bits/regex_scanner.h: Likewise.
173         * include/bits/regex_scanner.tcc: Likewise.
174         * include/bits/specfun.h: Likewise.
175         * include/bits/stl_algo.h: Likewise.
176         * include/bits/stl_algobase.h: Likewise.
177         * include/bits/stl_bvector.h: Likewise.
178         * include/bits/stl_deque.h: Likewise.
179         * include/bits/stl_iterator.h: Likewise.
180         * include/bits/stl_iterator_base_funcs.h: Likewise.
181         * include/bits/stl_list.h: Likewise.
182         * include/bits/stl_map.h: Likewise.
183         * include/bits/stl_multimap.h: Likewise.
184         * include/bits/stl_multiset.h: Likewise.
185         * include/bits/stl_relops.h: Likewise.
186         * include/bits/stl_set.h: Likewise.
187         * include/bits/stl_vector.h: Likewise.
188         * include/bits/uniform_int_dist.h: Likewise.
189         * include/bits/unordered_map.h: Likewise.
190         * include/bits/unordered_set.h: Likewise.
191         * include/bits/vector.tcc: Likewise.
192         * include/c_global/cmath: Likewise.
193         * include/c_std/cmath: Likewise.
194         * include/decimal/decimal: Likewise.
195         * include/decimal/decimal.h: Likewise.
196         * include/experimental/algorithm: Likewise.
197         * include/experimental/any: Likewise.
198         * include/experimental/array: Likewise.
199         * include/experimental/bits/erase_if.h: Likewise.
200         * include/experimental/bits/fs_dir.h: Likewise.
201         * include/experimental/bits/fs_fwd.h: Likewise.
202         * include/experimental/bits/fs_ops.h: Likewise.
203         * include/experimental/bits/fs_path.h: Likewise.
204         * include/experimental/bits/lfts_config.h: Likewise.
205         * include/experimental/bits/shared_ptr.h: Likewise.
206         * include/experimental/bits/string_view.tcc: Likewise.
207         * include/experimental/chrono: Likewise.
208         * include/experimental/deque: Likewise.
209         * include/experimental/filesystem: Likewise.
210         * include/experimental/forward_list: Likewise.
211         * include/experimental/functional: Likewise.
212         * include/experimental/iterator: Likewise.
213         * include/experimental/list: Likewise.
214         * include/experimental/map: Likewise.
215         * include/experimental/memory: Likewise.
216         * include/experimental/memory_resource: Likewise.
217         * include/experimental/numeric: Likewise.
218         * include/experimental/optional: Likewise.
219         * include/experimental/propagate_const: Likewise.
220         * include/experimental/random: Likewise.
221         * include/experimental/ratio: Likewise.
222         * include/experimental/regex: Likewise.
223         * include/experimental/set: Likewise.
224         * include/experimental/source_location: Likewise.
225         * include/experimental/string: Likewise.
226         * include/experimental/string_view: Likewise.
227         * include/experimental/system_error: Likewise.
228         * include/experimental/tuple: Likewise.
229         * include/experimental/type_traits: Likewise.
230         * include/experimental/unordered_map: Likewise.
231         * include/experimental/unordered_set: Likewise.
232         * include/experimental/utility: Likewise.
233         * include/experimental/vector: Likewise.
234         * include/ext/bitmap_allocator.h: Likewise.
235         * include/ext/codecvt_specializations.h: Likewise.
236         * include/ext/rope: Likewise.
237         * include/ext/typelist.h: Likewise.
238         * include/std/chrono: Likewise.
239         * include/std/complex: Likewise.
240         * include/std/functional: Likewise.
241         * include/std/numeric: Likewise.
242         * include/std/string_view: Likewise.
243         * include/std/thread: Likewise.
244         * include/std/variant: Likewise.
245         * include/tr1/array: Likewise.
246         * include/tr1/bessel_function.tcc: Likewise.
247         * include/tr1/beta_function.tcc: Likewise.
248         * include/tr1/cmath: Likewise.
249         * include/tr1/complex: Likewise.
250         * include/tr1/ell_integral.tcc: Likewise.
251         * include/tr1/exp_integral.tcc: Likewise.
252         * include/tr1/functional: Likewise.
253         * include/tr1/functional_hash.h: Likewise.
254         * include/tr1/gamma.tcc: Likewise.
255         * include/tr1/hashtable.h: Likewise.
256         * include/tr1/hashtable_policy.h: Likewise.
257         * include/tr1/hypergeometric.tcc: Likewise.
258         * include/tr1/legendre_function.tcc: Likewise.
259         * include/tr1/modified_bessel_func.tcc: Likewise.
260         * include/tr1/poly_hermite.tcc: Likewise.
261         * include/tr1/poly_laguerre.tcc: Likewise.
262         * include/tr1/random.h: Likewise.
263         * include/tr1/random.tcc: Likewise.
264         * include/tr1/regex: Likewise.
265         * include/tr1/riemann_zeta.tcc: Likewise.
266         * include/tr1/shared_ptr.h: Likewise.
267         * include/tr1/special_function_util.h: Likewise.
268         * include/tr1/tuple: Likewise.
269         * include/tr1/type_traits: Likewise.
270         * include/tr1/unordered_map.h: Likewise.
271         * include/tr1/unordered_set.h: Likewise.
272         * include/tr1/utility: Likewise.
273         * include/tr2/bool_set: Likewise.
274         * include/tr2/bool_set.tcc: Likewise.
275         * include/tr2/dynamic_bitset: Likewise.
276         * include/tr2/dynamic_bitset.tcc: Likewise.
277         * include/tr2/ratio: Likewise.
278         * include/tr2/type_traits: Likewise.
279         * src/c++11/chrono.cc: Likewise.
280         * src/c++11/compatibility-c++0x.cc: Likewise.
281         * src/c++11/compatibility-chrono.cc: Likewise.
282         * src/c++11/cxx11-shim_facets.cc: Likewise.
283         * src/c++11/hashtable_c++0x.cc: Likewise.
284         * src/c++11/placeholders.cc: Likewise.
285         * src/c++11/thread.cc: Likewise.
286         * src/c++98/bitmap_allocator.cc: Likewise.
287         * src/c++98/hashtable_tr1.cc: Likewise.
288         * src/c++98/list.cc: Likewise.
289         * src/shared/hashtable-aux.cc: Likewise.
290         * testsuite/20_util/duration/literals/range.cc: Adapt line number.
291         * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
292         * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
293         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
294         * testsuite/20_util/forward/c_neg.cc: Likewise.
295         * testsuite/20_util/forward/f_neg.cc: Likewise.
296         * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
297         * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
298         * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
299         * python/libstdcxx/v6/printers.py: Adapt.
301 2017-07-20  Jonathan Wakely  <jwakely@redhat.com>
303         * config/allocator/malloc_allocator_base.h [__SANITIZE_ADDRESS__]
304         (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
305         * config/allocator/new_allocator_base.h [__SANITIZE_ADDRESS__]
306         (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
307         * doc/xml/manual/using.xml (_GLIBCXX_SANITIZE_VECTOR): Document macro.
308         * include/bits/stl_vector.h [_GLIBCXX_SANITIZE_VECTOR]
309         (_Vector_impl::_Asan, _Vector_impl::_Asan::_Reinit)
310         (_Vector_impl::_Asan::_Grow, _GLIBCXX_ASAN_ANNOTATE_REINIT)
311         (_GLIBCXX_ASAN_ANNOTATE_GROW, _GLIBCXX_ASAN_ANNOTATE_GREW)
312         (_GLIBCXX_ASAN_ANNOTATE_SHRINK, _GLIBCXX_ASAN_ANNOTATE_BEFORE_DEALLOC):
313         Define annotation helper types and macros.
314         (vector::~vector, vector::push_back, vector::pop_back)
315         (vector::_M_erase_at_end): Add annotations.
316         * include/bits/vector.tcc (vector::reserve, vector::emplace_back)
317         (vector::insert, vector::_M_erase, vector::operator=)
318         (vector::_M_fill_assign, vector::_M_assign_aux)
319         (vector::_M_insert_rval, vector::_M_emplace_aux)
320         (vector::_M_insert_aux, vector::_M_realloc_insert)
321         (vector::_M_fill_insert, vector::_M_default_append)
322         (vector::_M_shrink_to_fit, vector::_M_range_insert): Annotate.
324 2017-07-19  Jonathan Wakely  <jwakely@redhat.com>
326         PR libstdc++/81476
327         * include/bits/vector.tcc (vector::_M_range_insert<_InputIterator>):
328         Only insert elements one-by-one when inserting at the end.
329         * testsuite/performance/23_containers/insert/81476.cc: New.
331 2017-07-19  Volker Reichelt  <v.reichelt@netcologne.de>
333         * libsupc++/new (bad_array_new_length): Remove redundant
334         semicolon after in-class member function definition.
335         * include/bits/locale_facets.h (ctype_byname, num_put): Likewise.
336         * include/bits/locale_facets_nonio.h (time_put_byname): Likewise.
337         * include/bits/random.h (mersenne_twister_engine): Likewise.
338         * include/tr1/random.h (mersenne_twister): Likewise
339         * include/ext/random (simd_fast_mersenne_twister_engine): Likewise.
340         * include/ext/rope (char_producer, _Rope_char_consumer,
341         _Rope_self_destruct_ptr, _Rope_const_iterator, _Rope_iterator):
342         Likewise.
343         * include/ext/ropeimpl.h (_Rope_flatten_char_consumer,
344         _Rope_insert_char_consumer): Likewise.
346 2017-07-19  Jonathan Wakely  <jwakely@redhat.com>
348         * include/bits/fstream.tcc (basic_filebuf::xsgetn)
349         (basic_filebuf::xsputn, basic_filebuf::seekoff): Fix indentation.
351         * testsuite/util/testsuite_iterators.h: Fix indentation.
353         * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: Add dg-require.
355 2017-07-18  Jonathan Wakely  <jwakely@redhat.com>
357         PR libstdc++/81395
358         * include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer
359         pointers for write mode after reading.
360         * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New.
362 2017-07-18  François Dumont  <fdumont@gcc.gnu.org>
364         * include/bits/stl_list.h
365         (struct _List_node_header): New.
366         (_List_impl()): Fix noexcept qualification.
367         (_List_impl(_List_impl&&)): New, default.
368         (_List_base()): Default.
369         (_List_base(_List_base&&)): Default.
370         (_List_base::_M_move_nodes): Adapt to use
371         _List_node_header._M_move_nodes.
372         (_List_base::_M_init): Likewise.
373         (list<>()): Default.
374         (list<>(list&&)): Default.
375         (list<>::_M_move_assign(list&&, true_type)): Use _M_move_nodes.
376         (__distance(_List_const_iterator<>, _List_const_iterator<>,
377         input_iterator_tag)): Adapt.
378         * testsuite/23_containers/list/allocator/default_init.cc: New.
380 2017-07-15  Jonathan Wakely  <jwakely@redhat.com>
382         * include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter
383         as per P0739R0.
384         * testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments.
385         * testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction
386         with std::adopt_lock_t.
387         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check
388         feature-test macro.
390 2017-07-14  Jason Merrill  <jason@redhat.com>
391             Jonathan Wakely  <jwakely@redhat.com>
393         * include/std/variant (variant::variant(_Tp&&)): Constrain to remove
394         the constructor for empty variants from the candidate functions
395         during class template argument deduction.
396         * testsuite/20_util/variant/deduction.cc: New.
398 2017-07-11  Jonathan Wakely  <jwakely@redhat.com>
400         * doc/xml/faq.xml: Update several old entries. Improve
401         cross-references.
402         * doc/xml/manual/intro.xml: Add anchors to each DR.
403         * doc/html/*: Regenerate.
405 2017-07-10  Jonathan Wakely  <jwakely@redhat.com>
407         * testsuite/abi/pr42230.cc: Add header for std::free.
409         PR libstdc++/81381
410         * include/bits/sstream.tcc (basic_stringbuf::overflow)
411         (basic_stringbuf::basic_stringbuf(const __string_type&, ios::mode))
412         (basic_stringbuf::str()): Construct new strings with an allocator.
413         * testsuite/27_io/basic_stringbuf/cons/81381.cc: New.
415         PR libstdc++/81338
416         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
417         Declare basic_stringbuf to be a friend.
418         * include/bits/sstream.tcc (basic_stringbuf::overflow)
419         [_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
420         * include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
421         length to buffer length.
422         * testsuite/27_io/basic_stringstream/assign/81338.cc: New.
424 2017-07-06  Jonathan Wakely  <jwakely@redhat.com>
426         * testsuite/20_util/specialized_algorithms/memory_management_tools/
427         1.cc: Free memory.
428         * testsuite/22_locale/locale/cons/5.cc: Remove redundant restoration
429         of original environment and free memory.
431         * testsuite/abi/pr42230.cc: Free memory.
432         * testsuite/util/testsuite_abi.cc (demangle): Return std::string
433         instead of pointer that might need freeing.
434         * testsuite/util/testsuite_abi.h (demangle): Likewise.
435         * testsuite/util/testsuite_hooks.cc (verify_demangle): Free memory.
437         * include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add
438         deleted overload to prevent dangling references to rvalues.
439         * include/experimental/memory_resource
440         (polymorphic_allocator::construct): Do not call __use_alloc with
441         rvalue arguments.
443 2017-06-27  Tim Shen  <timshen@google.com>
445         PR libstdc++/80187
446         * include/std/variant (variant::variant, variant::~variant,
447         variant::operator=): Implement triviality forwarding for four
448         special member functions.
449         * testsuite/20_util/variant/compile.cc: Tests.
451 2017-06-27  Jonathan Wakely  <jwakely@redhat.com>
453         PR libstdc++/81221
454         * testsuite/25_algorithms/sample/81221.cc: Disable except for
455         check-parallel.
457         PR libstdc++/81221
458         * include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not
459         std.
460         * testsuite/25_algorithms/sample/81221.cc: New.
462 2017-06-22  Jonathan Wakely  <jwakely@redhat.com>
464         PR libstdc++/81173
465         * include/bits/stl_bvector.h (vector<bool>::_M_initialize_value):
466         Do not pass null pointer to memset.
468 2017-06-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
470         PR libstdc++/80675
471         PR libstdc++/80940
472         * include/std/istream:
473         (__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
474         (__do_is_convertible_to_basic_istream_impl): Likewise.
475         (__is_convertible_to_basic_istream_impl): Likewise.
476         (__is_convertible_to_basic_istream): Use the new base.
477         (__rvalue_istream_type): New.
478         (operator>>(_Istream&&, _Tp&&)): Use the new helper alias
479         for the SFINAE check, convert to the helper alias type before
480         doing the actual extraction.
481         * include/std/ostream:
482         (__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
483         (__do_is_convertible_to_basic_ostream_impl): Likewise.
484         (__is_convertible_to_basic_ostream_impl): Likewise.
485         (__is_convertible_to_basic_ostream): Use the new base.
486         (__rvalue_ostream_type): New.
487         (operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
488         for the SFINAE check, convert to the helper alias type before
489         doing the actual insertion.
490         * testsuite/27_io/rvalue_streams-2.cc: Add new tests.
492 2017-06-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
494         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
496 2017-06-21  Jonathan Wakely  <jwakely@redhat.com>
498         PR libstdc++/81092
499         * configure: Regenerate.
501 2017-06-20  Uros Bizjak  <ubizjak@gmail.com>
503         * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
505 2017-06-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
507         * testsuite/20_util/variant/index_type.cc: Allow for all ilp32 and
508         lp64 targets.
510 2017-06-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
512         * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
513         * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
514         * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
515         * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
516         * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
517         * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
518         Likewise.
519         * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
520         * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
521         Likewise.
523 2017-06-18  H.J. Lu  <hongjiu.lu@intel.com>
525         PR libstdc++/81092
526         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
528 2017-06-18  Andreas Schwab  <schwab@linux-m68k.org>
530         PR libstdc++/81092
531         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
533 2017-06-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
535         * testsuite: Remove dg-skip-if, dg-xfail-if, dg-xfail-run-if
536         default args.
538 2017-06-17  Jonathan Wakely  <jwakely@redhat.com>
540         PR libstdc++/80893
541         * testsuite/23_containers/vector/bool/80893.cc: Add { target c++11 }.
543 2017-06-16  Jonathan Wakely  <jwakely@redhat.com>
545         * include/bits/shared_ptr.h (get_deleter): Add overload matching
546         standard signature.
547         * include/bits/shared_ptr_base.h (__shared_ptr): Declare new
548         get_deleter overload as a friend.
549         * testsuite/20_util/shared_ptr/misc/get_deleter.cc: New.
551 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
553         PR libstdc++/81092
554         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
555         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
556         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
558 2017-06-16  Jonathan Wakely  <jwakely@redhat.com>
560         * include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
561         * testsuite/22_locale/conversions/buffer/2.cc: New.
563         PR libstdc++/81092
564         * acinclude.m4: Bump libtool_VERSION.
565         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
566         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
567         * config/abi/pre/gnu.ver: Add wstring constructor symbols to
568         GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol
569         to new GLIBCXX_3.4.25 version.
570         * doc/xml/manual/abi.xml: Document new versions.
571         * doc/html/*: Regenerate.
572         * testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
573         constructors to ensure required symbols are exported.
574         * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
575         * testsuite/util/testsuite_abi.cc: Add new version.
577         * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
578         return statement.
579         * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
580         Return void.
581         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
582         Likewise.
583         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
584         missing return statements.
585         * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
586         Likewise.
587         * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
588         Return void.
589         * testsuite/special_functions/14_expint/pr68397.cc: Likewise.
591 2017-06-16  François Dumont  <fdumont@gcc.gnu.org>
593         * include/bits/stl_bvector.h
594         (__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)):
595         Change signature.
596         (std::fill(_Bit_iterator, _Bit_iterator, bool)): Adapt.
597         (_Bvector_impl_data): New.
598         (_Bvector_impl): Inherits from latter.
599         (_Bvector_impl(_Bit_alloc_type&&)): Delete.
600         (_Bvector_impl(_Bvector_impl&&)): New, default.
601         (_Bvector_base()): Default.
602         (_Bvector_base(_Bvector_base&&)): Default.
603         (_Bvector_base::_M_move_data(_Bvector_base&&)): New.
604         (vector(vector&&, const allocator_type&)): Use latter.
605         (vector<bool>::operator=(vector&&)): Likewise.
606         (vector<bool>::vector()): Default.
607         (vector<bool>::vector(vector&&)): Default.
608         (vector<bool>::assign(_InputIterator, _InputIterator)): Use
609         _M_assign_aux.
610         (vector<bool>::assign(initializer_list<bool>)): Likewise.
611         (vector<bool>::_M_initialize_value(bool)): New.
612         (vector<bool>(size_type, const bool&, const allocator_type&)): Use
613         latter.
614         (vector<bool>::_M_initialize_dispatch(_Integer, _Integer, __true_type)):
615         Likewise.
616         (vector<bool>::_M_fill_assign(size_t, bool)): Likewise.
618 2017-06-15  François Dumont  <fdumont@gcc.gnu.org>
620         * src/c++98/tree.cc  [!_GLIBCXX_INLINE_VERSION]
621         (_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete.
623 2017-06-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
625         * testsuite: Add dg-require-effective-target pthread to -pthread
626         tests.
627         Remove explicit target lists from dg-do and dg-options.
629         * testsuite/30_threads/async/forced_unwind.cc: Remove explit
630         target list from dg-options.
631         * testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise.
633         * 30_threads/shared_mutex/cons/1.cc: Likewise.
634         Pass -pthread for all targets.
635         * 30_threads/shared_mutex/try_lock/1.cc: Likewise.
636         * 30_threads/shared_mutex/try_lock/2.cc: Likewise.
637         * 30_threads/shared_mutex/unlock/1.cc: Likewise.
639         * testsuite/30_threads/this_thread/57060.cc: Require c++11 via
640         dg-require-effective-target.
642 2017-06-14  Jonathan Wakely  <jwakely@redhat.com>
644         * doc/xml/manual/test.xml: Correct instructions on running tests.
645         * testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to
646         pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
647         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
648         Likewise.
649         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise.
650         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
651         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
652         exceptions_failbit.cc: Likewise.
653         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
654         exceptions_failbit.cc: Likewise.
655         * testsuite/27_io/basic_istream/extractors_other/char/
656         exceptions_null.cc: Likewise.
657         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
658         exceptions_null.cc: Likewise.
659         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
660         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
661         * testsuite/27_io/basic_ostream/inserters_other/char/
662         exceptions_null.cc: Likewise.
663         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
664         exceptions_null.cc: Likewise.
665         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
667 2017-06-12  Pedro Alves  <palves@redhat.com>
669         * doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
670         char_traits status.
671         * doc/html/*: Regenerate.
673         * include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
674         not already defined.
675         (__cpp_lib_constexpr_char_traits): Uncomment.
676         (__constant_string_p, __constant_char_array_p): New.
677         (std::char_traits<char>, std::char_traits<wchar_t>): Add
678         _GLIBCXX17_CONSTEXPR on compare, length and find and use
679         __constant_string_p, __constant_char_array_p and
680         __builtin_constant_p to defer to __gnu_cxx::char_traits at compile
681         time.
683         * testsuite/21_strings/char_traits/requirements/
684         constexpr_functions_c++17.cc: Uncomment
685         __cpp_lib_constexpr_char_traits tests.  Uncomment
686         test_compare<char>, test_length<char>, test_find<char>,
687         test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
688         static_assert tests.
690 2017-06-12  François Dumont  <fdumont@gcc.gnu.org>
692         * include/bits/stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator
693         default init.
694         * testsuite/util/testsuite_allocator.h
695         (__gnu_test::default_init_allocator<>) New.
696         * testsuite/23_containers/set/allocator/default_init.cc: New.
697         * testsuite/23_containers/map/allocator/default_init.cc: New.
699 2017-06-12  Jonathan Wakely  <jwakely@redhat.com>
701         PR libstdc++/55917
702         * src/c++11/thread.cc (execute_native_thread_routine): Remove
703         try-block so that exceptions propagate out of the thread and terminate
704         is called by the exception-handling runtime.
705         (execute_native_thread_routine_compat): Likewise.
706         * testsuite/30_threads/thread/cons/terminate.cc: New.
708 2017-06-09  Jonathan Wakely  <jwakely@redhat.com>
710         * doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
711         * include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
712         (LWG 2802).
713         * include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
714         (_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
715         * testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
717         * include/bits/forward_list.h (forward_list): Add deduction guide.
718         * include/bits/stl_deque.h (deque): Likewise.
719         * include/bits/stl_list.h (list): Likewise.
720         * include/bits/stl_vector.h (vector): Likewise.
721         * testsuite/23_containers/deque/cons/deduction.cc: New.
722         * testsuite/23_containers/forward_list/cons/deduction.cc: New.
723         * testsuite/23_containers/list/cons/deduction.cc: New.
724         * testsuite/23_containers/vector/cons/deduction.cc: New.
726 2017-06-08  Jonathan Wakely  <jwakely@redhat.com>
728         PR libstdc++/81017
729         * include/bits/std_function.h (function::function(function&&))
730         (function::operator=(funtion&&)): Add noexcept.
731         * testsuite/20_util/function/assign/move.cc: Check for noexcept.
732         * testsuite/20_util/function/cons/move.cc: Likewise.
734 2017-06-07  Jonathan Wakely  <jwakely@redhat.com>
736         * include/bits/regex.h (basic_regex): Add deduction guide from P0433.
737         * testsuite/28_regex/basic_regex/ctors/deduction.cc: New.
739         PR libstdc++/81002
740         * include/bits/regex.h (basic_regex): Adjust call to __compile_nfa
741         so iterator type is deduced.
742         * include/bits/regex_compiler.h (__compile_nfa): Reorder template
743         parameters to allow iterator type to be deduced.
744         * testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
746         * include/bits/alloc_traits.h (__is_allocator, _RequireAllocator):
747         New trait and alias for detecting Allocator-like types.
748         * include/bits/basic_string.h (basic_string): Add deduction guide
749         from P0433.
750         * include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): Add template
751         parameter with default template argument that causes substitution
752         failures for types that cannot be allocators.
753         * testsuite/21_strings/basic_string/cons/char/deduction.cc: New.
754         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: New.
756 2017-06-02  Jonathan Wakely  <jwakely@redhat.com>
758         PR libstdc++/80939
759         * include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
760         (__erased_hash): Remove constexpr specifier and qualify calls to
761         __ref_cast.
762         (__erased_dtor): Remove constexpr specifier and use _Destroy.
764 2017-06-05  Jonathan Wakely  <jwakely@redhat.com>
766         * include/bits/stl_iterator_base_funcs.h
767         (__advance<_RandomAccessIterator, _Distance>): Optimize for next/prev
768         cases where incrementing or decrementing a single step.
770         * include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
771         (__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
772         specifiers as per LWG 2873 and LWG 2942.
773         * testsuite/20_util/owner_less/noexcept.cc: New.
774         * testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
775         noexcept guarantees.
776         * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
778 2017-06-03  Andreas Schwab  <schwab@linux-m68k.org>
780         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
782 2017-06-03  Eric Botcazou  <ebotcazou@adacore.com>
784         * src/filesystem/dir.cc (fs::_Dir::advance): Use std::exchange.
786 2017-06-02  Jonathan Wakely  <jwakely@redhat.com>
788         PR libstdc++/80624
789         * doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
790         * include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
791         Transform eof value to U+FFFD.
792         * testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
793         * testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
794         * testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.
796         * libsupc++/Makefile.am: Remove custom targets for files that need to
797         be compiled as C++11 or C++14.
798         * libsupc++/Makefile.in: Regenerate.
799         * libsupc++/del_ops.cc: Use pragma to disable -Wsized-deallocation
800         warnings.
801         * libsupc++/del_opvs.cc: Likewise.
803 2017-06-02  Richard Biener  <rguenther@suse.de>
804         Markus Eisenmann  <meisenmann.lba@fh-salzburg.ac.at>
806         PR libstdc++/80721
807         * libsupc++/eh_alloc.cc (pool::free): Keep list properly
808         sorted and add missing freelist item merging cases.
810 2017-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
812         (GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
813         Remove *-solaris* section.
814         * configure: Regenerate.
816 2017-05-31  Jonathan Wakely  <jwakely@redhat.com>
818         PR libstdc++/80893
819         * include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
820         null pointer dereference when size is zero.
821         * testsuite/23_containers/vector/bool/80893.cc: New.
822         * testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
823         Add non-explicit constructor from nullptr.
824         (PointerBase::derived() const): Add const-qualified overload.
826 2017-05-20  Tim Shen  <timshen@google.com>
828         PR libstdc++/80737
829         * include/std/variant(variant::variant): SFINAE on is_same first.
830         * testsuite/20_util/variant/any.cc: test case.
832 2017-05-24  Jonathan Wakely  <jwakely@redhat.com>
834         * src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__
835         instead of fixed number of bits.
837 2017-05-24  Andreas Schwab  <schwab@suse.de>
839         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
840         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
842 2017-05-23  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
843             Jonathan Wakely  <jwakely@redhat.com>
845         PR libstdc++/67578
846         * acinclude.m4: Bump libtool_VERSION.
847         * config/abi/pre/gnu.ver: Create GLIBCXX_3.4.24 with new symbol.
848         * config.h.in: Regenerate.
849         * configure: Regenerate.
850         * configure.ac: Add test for <linux/random.h>.
851         * doc/xml/manual/abi.xml: Document new library version.
852         * include/bits/random.h (random_device::entropy)
853         [_GLIBCXX_USE_RANDOM_TR1]: Add call to new _M_getentropy member.
854         (random_device::_M_getentropy): Declare.
855         * src/c++11/random.cc (random_device::_M_getentropy): Define.
856         * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.24 to known
857         versions, and make it the latest version.
859 2017-05-23  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
861         PR libstdc++/67214
862         * include/bits/locale_facets.tcc (num_get::_M_extract_int): Add
863         explicit conversion to avoid signed overflow.
865 2017-05-19  Jonathan Wakely  <jwakely@redhat.com>
867         PR libstdc++/80796
868         * include/bits/stl_algo.h (search): Add new overload for C++17.
869         * testsuite/25_algorithms/search/searcher.cc: New.
871 2017-05-18  Jonathan Wakely  <jwakely@redhat.com>
873         PR libstdc++/80478
874         * include/std/functional (_Mem_fn_traits_base): Add specializations
875         for noexcept member function types.
876         * testsuite/20_util/function_objects/mem_fn/80478.cc: New test.
878 2017-05-18  Jonathan Wakely  <jwakely@redhat.com>
880         * doc/xml/manual/policy_data_structures.xml: Fix typo.
881         * doc/xml/manual/test_policy_data_structures.xml: Likewise.
882         * doc/html/*: Regenerate.
884         * doc/xml/manual/abi.xml: Document latest library versions.
885         * doc/xml/manual/build_hacking.xml: Document requirement to update
886         abi.xml when bumping library versions.
887         * doc/html/*: Regenerate.
889 2017-05-17  Jonathan Wakely  <jwakely@redhat.com>
891         * include/bits/refwrap.h: Fix Doxygen warning.
892         * include/bits/specfun.h: Likewise.
893         * include/bits/std_function.h: Likewise.
894         * include/bits/stl_algo.h (set_union, set_intersection)
895         (set_difference, set_symmetric_difference): Add Doxygen @param tags
896         for output iterator parameters.
897         * include/bits/stl_iterator.h (inserter): Add Doxygen @param tag for
898         iterator parameter.
899         * include/std/mutex (try_lock, lock): Change Mutex to Lockable in
900         Doxygen comments.
902 2017-05-17  Ville Voutilainen  <ville.voutilainen@gmail.com>
904         Implement new C++ intrinsics __is_assignable and __is_constructible.
905         * include/std/type_traits (__do_is_static_castable_impl): Remove.
906         (__is_static_castable_impl, __is_static_castable_safe): Likewise.
907         (__is_static_castable, __do_is_direct_constructible_impl): Likewise.
908         (__is_direct_constructible_impl): Likewise.
909         (__is_direct_constructible_new_safe): Likewise.
910         (__is_base_to_derived_ref, __is_lvalue_to_rvalue_ref): Likewise.
911         (__is_direct_constructible_ref_cast): Likewise.
912         (__is_direct_constructible_new, __is_direct_constructible): Likewise.
913         (__do_is_nary_constructible_impl): Likewise.
914         (__is_nary_constructible_impl, __is_nary_constructible): Likewise.
915         (__is_constructible_impl): Likewise.
916         (is_constructible): Call the intrinsic.
917         (__is_assignable_helper): Remove.
918         (is_assignable): Call the intrinsic.
919         (is_trivially_constructible): Likewise.
920         (__is_trivially_copy_constructible_impl): New.
921         (is_trivially_copy_constructible): Use it.
922         (__is_trivially_move_constructible_impl): New.
923         (is_trivially_move_constructible): Use it.
924         (is_trivially_assignable): Call the intrinsic.
925         (__is_trivially_copy_assignable_impl): New.
926         (is_trivially_copy_assignable): Use it.
927         (__is_trivially_move_assignable_impl): New.
928         (is_trivially_move_assignable): Use it.
929         (testsuite/20_util/declval/requirements/1_neg.cc): Adjust.
930         (testsuite/20_util/is_trivially_copy_assignable/value.cc):
931         Add test for void.
932         (testsuite/20_util/is_trivially_copy_constructible/value.cc): Likewise.
933         (testsuite/20_util/is_trivially_move_assignable/value.cc): Likewise.
934         (testsuite/20_util/is_trivially_move_constructible/value.cc): Likewise.
935         (testsuite/20_util/make_signed/requirements/typedefs_neg.cc): Adjust.
936         (testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc):
937         Likewise.
939 2017-05-16  Jonathan Wakely  <jwakely@redhat.com>
941         * testsuite/experimental/source_location/1.cc: Change expected result
942         for source_location::current() used in default member initializer.
944         * doc/xml/manual/status_cxx2017.xml: Update status table.
945         * doc/html/*: Regenerate.
946         * include/Makefile.am: Add new header.
947         * include/Makefile.in: Regenerate.
948         * include/experimental/source_location: New header implementing N4519.
949         * testsuite/experimental/source_location/1.cc: New test.
951         PR libstdc++/80285
952         * include/bits/shared_ptr_base.h [!__cpp_rtti] (type_info): Declare
953         outside versioned namespace.
955         * configure: Regenerate.
957 2017-05-16  Marc Glisse  <marc.glisse@inria.fr>
959         * include/std/optional (_Optional_base::_M_get): Check precondition.
960         * testsuite/20_util/optional/cons/value_neg.cc: Update line numbers.
962 2017-05-16  Jonathan Wakely  <jwakely@redhat.com>
964         * doc/xml/manual/appendix_contributing.xml: Link to test docs and
965         note higher DejaGnu version requirement.
966         * doc/html/*: Regenerate.
968         * doc/xml/manual/appendix_contributing.xml: Link to the list of bad
969         identifiers.
970         * doc/html/*: Regenerate.
972 2017-05-15  Jonathan Wakely  <jwakely@redhat.com>
974         PR libstdc++/80761
975         * include/bits/node_handle.h (_Node_insert_return): Reorder members.
976         (tuple_size, tuple_element): Remove partial specializations.
977         * include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
978         const_iterator for std::set.
979         * testsuite/23_containers/map/modifiers/extract.cc: New.
980         * testsuite/23_containers/set/modifiers/extract.cc: New.
981         * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
982         * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
984 2017-05-12  Jonathan Wakely  <jwakely@redhat.com>
986         PR libstdc++/78939
987         * include/std/utility (tuple_size<cv T>): Only define partial
988         specializations when tuple_size<T>::value is valid.
989         * testsuite/20_util/tuple/78939.cc: New.
990         * testsuite/20_util/tuple/cv_tuple_size_neg.cc: New.
992 2017-05-11  François Dumont  <fdumont@gcc.gnu.org>
994         * include/bits/stl_tree.h [_GLIBCXX_INLINE_VERSION]
995         (_Rb_tree_impl<>): Remove _Is_pod_comparator
996         template parameter.
998         * include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
999         (__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
1000         (__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
1001         Remove.
1002         (__gnu_debug::_Error_formatter::_M_format_word): Remove.
1003         (__gnu_debug::_Error_formatter::_M_print_word): Remove.
1004         (__gnu_debug::_Error_formatter::_M_print_string): Remove.
1005         (__gnu_debug::_Error_formatter::_M_get_max_length): Remove.
1006         * src/c++11/debug.cc: Adapt.
1007         * config/abi/pre/gnu-versioned-namespace.ver: Adapt.
1009 2017-05-11  Jonathan Wakely  <jwakely@redhat.com>
1011         * doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
1012         * doc/xml/manual/mt_allocator.xml: Likewise.
1013         * doc/html/*: Regenerate.
1015         PR libstdc++/80285
1016         * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Define
1017         function to get unique fake std::type_info reference.
1018         (_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Compare to
1019         _S_ti() fake reference.
1020         (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Share
1021         single implementation with or without RTTI enable.
1022         [!__cpp_rtti]: Pass fake reference to _M_get_deleter.
1023         * testsuite/20_util/shared_ptr/creation/alloc.cc: Change expected
1024         allocation and deallocation counts.
1025         * testsuite/20_util/shared_ptr/creation/single_allocation.cc: New.
1026         * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
1027         New.
1029 2017-05-10  François Dumont  <fdumont@gcc.gnu.org>
1031         Bump version namespace.
1032         * config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
1033         from __7 to __8. Bump GLIBCXX_7.0 to GLIBCXX_8.0.
1034         * acinclude.m4 (libtool_VERSION): Bump to 8:0:0.
1035         * include/bits/c++config: Adapt.
1036         * include/bits/regex.h: Adapt.
1037         * include/experimental/bits/fs_fwd.h: Adapt.
1038         * include/experimental/bits/lfts_config.h: Adapt.
1039         * include/std/variant: Adapt.
1040         * python/libstdcxx/v6/printers.py: Adapt.
1041         * testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
1043         * include/bits/stl_algobase.h (std::__iter_swap<false>): Remove
1044         _GLIBCXX_MOVE usage.
1046 2017-05-09  Jason Merrill  <jason@redhat.com>
1048         * testsuite/24_iterators/container_access.cc (test03): Make il3 static.
1050 2017-05-08  Jonathan Wakely  <jwakely@redhat.com>
1052         * include/std/optional: Use a separate static_assert per condition.
1053         * testsuite/20_util/optional/cons/value_neg.cc: Update dg-error line
1054         numbers.
1056         * doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
1057         * doc/html/*: Regenerate.
1059 2017-05-02  Hugo Beauzée-Luyssen <hugo@beauzee.fr>
1061         PR libstdc++/69506
1062         * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
1064 2017-04-29  François Dumont  <fdumont@gcc.gnu.org>
1066         * testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
1067         by a note-test.
1069 2017-04-28  Jonathan Wakely  <jwakely@redhat.com>
1071         PR libstdc++/80553
1072         * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
1073         assertions to ensure type is destructible.
1074         (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
1075         * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
1076         Move to stl_construct.h.
1077         * testsuite/20_util/specialized_algorithms/memory_management_tools/
1078         destroy_neg.cc: New test.
1079         * testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
1081         * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
1082         superfluous "" in dg-error.
1084 2017-04-28  Tom de Vries  <tom@codesourcery.com>
1086         * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
1087         superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
1089 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
1091         * include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
1092         (PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
1093         * testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
1094         Likewise.
1096 2017-04-26  Jonathan Wakely  <jwakely@redhat.com>
1098         * testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
1099         comment. Ensure first test works because allocator type propagates and
1100         not because is_always_equal is true.
1101         * testsuite/23_containers/vector/52591.cc: Likewise. Restore original
1102         testcase that instantiates the move-assignment operator.
1104 2017-04-24  Jonathan Wakely  <jwakely@redhat.com>
1106         PR libstdc++/80506
1107         * include/bits/random.tcc (gamma_distribution::operator()): Fix magic
1108         number used in loop condition.
1110         PR libstdc++/80504
1111         * include/bits/refwrap.h (ref, cref): Qualify calls.
1112         * testsuite/20_util/reference_wrapper/80504.cc: New test.
1114         PR libstdc++/80493
1115         * include/experimental/optional (optional::swap): Fix exception
1116         specification.
1118 2017-04-21  Jonathan Wakely  <jwakely@redhat.com>
1120         PR libstdc++/80316
1121         * include/std/future (_State_baseV2::_Setter::operator()): Remove
1122         _S_check calls that are done after the pointer to the shared state is
1123         already dereferenced.
1124         (_State_baseV2::_Setter<_Res, void>): Define specialization for void
1125         as partial specialization so it can be defined within the definition
1126         of _State_baseV2.
1127         (_State_baseV2::__setter): Call _S_check.
1128         (_State_baseV2::__setter(promise<void>*)): Add overload for use by
1129         promise<void>::set_value and promise<void>::set_value_at_thread_exit.
1130         (promise<T>, promise<T&>, promise<void>): Make _State a friend.
1131         (_State_baseV2::_Setter<void, void>): Remove explicit specialization.
1132         (promise<void>::set_value, promise<void>::set_value_at_thread_exit):
1133         Use new __setter overload.
1134         * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
1135         * testsuite/30_threads/promise/members/set_exception.cc: Test
1136         promise<T&> and promise<void> specializations.
1137         * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
1138         Test for no_state error condition.
1139         * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
1141         * include/backward/auto_ptr.h: Ignore deprecated warnings from use
1142         of auto_ptr.
1143         * include/bits/shared_ptr.h: Likewise.
1144         * include/bits/shared_ptr_base.h: Likewise.
1145         * include/bits/unique_ptr.h: Likewise.
1146         * libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
1147         dg-error lineno.
1148         * libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
1149         * libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
1150         Likewise.
1151         * libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
1152         Likewise.
1154 2017-04-20  Edward Smith-Rowland  <3dw4rd@verizon.net>
1156         PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
1157         * include/tr1/exp_integral.tcc: Increase iteration limits.
1158         * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
1159         pr68397.cc: New test.
1160         * testsuite/special_functions/14_expint/pr68397.cc: New test.
1162 2017-04-20  Jonathan Wakely  <jwakely@redhat.com>
1164         PR libstdc++/79862
1165         * include/std/atomic [!_GLIBCXX_USE_C99_STDINT_TR1] (atomic_int8_t)
1166         (atomic_uint8_t, atomic_int16_t, atomic_uint16_t, atomic_int32_t,
1167         (atomic_uint32_t, atomic_int64_t, atomic_uint64_t)
1168         (atomic_int_least8_t, atomic_uint_least8_t, atomic_int_least16_t)
1169         (atomic_uint_least16_t, atomic_int_least32_t, atomic_uint_least32_t)
1170         (atomic_int_least64_t, atomic_uint_least64_t, atomic_int_fast8_t)
1171         (atomic_uint_fast8_t, atomic_int_fast16_t, atomic_uint_fast16_t)
1172         (atomic_int_fast32_t, atomic_uint_fast32_t, atomic_int_fast64_t)
1173         (atomic_uint_fast64_t, atomic_intmax_t, atomic_uintmax_t): Don't
1174         define.
1176 2017-04-19  Jonathan Wakely  <jwakely@redhat.com>
1178         * doc/xml/manual/abi.xml: Rephrase one of the references to the
1179         Itanium C++ ABI.
1180         * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
1181         * doc/html/*: Regenerate.
1183         * libsupc++/new: Update comment on #endif directive.
1185         PR libstdc++/80448
1186         * include/experimental/bits/fs_dir.h (directory_iterator)
1187         (recursive_directory_iterator): Remove noexcept from defaulted
1188         constructors.
1190         PR libstdc++/80446
1191         * include/std/type_traits (is_aggregate): Change __has_builtin checks.
1192         * libsupc++/new (launder): Likewise.
1194 2017-04-18  Jonathan Wakely  <jwakely@redhat.com>
1196         * include/std/functional (default_searcher, __boyer_moore_array_base)
1197         (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
1198         (boyer_moore_horspool_searcher): Remove redundant namespace
1199         qualification.
1200         (default_searcher::operator()): Construct return value early and
1201         advance second member in-place.
1202         (boyer_moore_horspool_searcher::operator()): Increment random access
1203         iterator directly instead of using std::next.
1204         (boyer_moore_searcher::operator()): Fix return value.
1205         * testsuite/20_util/function_objects/searchers.cc: Check both parts
1206         of return values.
1208 2017-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
1210         * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
1211         * doc/xml/manual/abi.xml. Ditto (thrice).
1213 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
1215         * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
1216         * doc/html/*: Regenerate.
1218         * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
1219         that no longer fail.
1221         * include/bits/ios_base.h: Correct comment.
1222         * testsuite/util/testsuite_hooks.h: Likewise.
1224         * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1225         * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
1226         directories for debug, parallel and profile headers.
1227         * doc/html/*: Regenerate.
1229         * include/bits/char_traits.h (__gnu_cxx::char_traits): Add
1230         _GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
1231         (std::char_traits<char>, std::char_traits<wchar_t>): Add
1232         _GLIBCXX17_CONSTEXPR on assign.
1233         (std::char_traits<char16_t>, std::char_traits<char32_t>): Add
1234         _GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
1235         * testsuite/21_strings/char_traits/requirements/
1236         constexpr_functions_c++17.cc: New test.
1238 2017-04-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
1240         PR libstdc++/79141
1241         * include/bits/stl_pair.h (__nonesuch_no_braces): New.
1242         (operator=(typename conditional<
1243         __and_<is_copy_assignable<_T1>,
1244         is_copy_assignable<_T2>>::value,
1245         const pair&, const __nonesuch&>::type)): Change __nonesuch
1246         to __nonesuch_no_braces.
1247         (operator=(typename conditional<
1248         __not_<__and_<is_copy_assignable<_T1>,
1249         is_copy_assignable<_T2>>>::value,
1250         const pair&, const __nonesuch&>::type)): Likewise.
1251         (operator=(typename conditional<
1252         __and_<is_move_assignable<_T1>,
1253         is_move_assignable<_T2>>::value,
1254         pair&&, __nonesuch&&>::type)): Likewise.
1255         * testsuite/20_util/pair/79141.cc: New.
1257 2017-04-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
1259         Implement std::is_aggregate.
1260         * include/std/type_traits (is_aggregate, is_aggregate_v): New.
1261         * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
1262         New.
1263         * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
1264         * testsuite/20_util/is_aggregate/value.cc: Likewise.
1266 2017-03-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
1268         Adjust optional's pretty printer for LWG 2900.
1269         * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
1270         Look at the nested payload in case of non-experimental optional.
1272 2017-03-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
1274         Implement LWG 2900, The copy and move constructors
1275         of optional are not constexpr.
1276         * include/std/optional (_Optional_payload): New.
1277         (_Optional_base): Remove the bool parameter.
1278         (_Optional_base<_Tp, false>): Remove.
1279         (_Optional_base()): Adjust.
1280         (_Optional_base(nullopt_t)): Likewise.
1281         (_Optional_base(in_place_t, _Args&&...)): Likewise.
1282         (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
1283         Likewise.
1284         (_Optional_base(const _Optional_base&)): Likewise.
1285         (_Optional_base(_Optional_base&&)): Likewise.
1286         (operator=(const _Optional_base&)): Likewise.
1287         (operator=(_Optional_base&&)): Likewise.
1288         (~_Optional_base()): Remove.
1289         (_M_is_engaged()): Adjust.
1290         (_M_get()): Likewise.
1291         (_M_construct(_Args&&...)): Likewise.
1292         (_M_destruct()): Likewise.
1293         (_M_reset()): Likewise.
1294         (_Optional_base::_Empty_byte): Remove.
1295         (_Optional_base::_M_empty): Remove.
1296         (_Optional_base::_M_payload): Adjust.
1297         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1298         * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
1300 2017-03-28  Jonathan Wakely  <jwakely@redhat.com>
1302         PR libstdc++/80137
1303         * include/bits/random.tcc (generate_canonical): Use std::nextafter
1304         or numeric_limits::epsilon() to reduce out-of-range values.
1305         * testsuite/26_numerics/random/uniform_real_distribution/operators/
1306         64351.cc: Verify complexity requirement is met.
1308         * doc/xml/manual/abi.xml: Add xml:id anchor.
1309         * doc/xml/manual/using.xml (manual.intro.using.macros): Document
1310         _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
1311         (concurrency.io.structure): Add markup.
1312         * doc/html/*: Regenerate.
1314         PR libstdc++/80229
1315         * include/bits/shared_ptr_base.h
1316         (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
1317         non-const and then use remove_cv to get unqualified type.
1318         * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
1319         cast away constness on object created const.
1320         * testsuite/20_util/shared_ptr/cons/80229.cc: New test.
1322 2017-03-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
1324         PR libstdc++/80183
1325         * include/bits/stl_tree.h:
1326         (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
1328 2017-03-23  Jonathan Wakely  <jwakely@redhat.com>
1330         * testsuite/23_containers/array/tuple_interface/
1331         tuple_element_debug_neg.cc: Adjust dg-error.
1332         * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
1333         define a valid strict weak ordering.
1334         * testsuite/23_containers/priority_queue/67085.cc: Disable test for
1335         Debug Mode, due to debug checks making extra copies of predicate.
1336         * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
1337         Likewise.
1339         * doc/xml/faq.xml: Add link.
1340         * doc/xml/manual/backwards_compatibility.xml: Remove outdated
1341         information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
1342         * doc/xml/manual/io.xml: Update broken link.
1343         * doc/html/*: Regenerate.
1345 2017-03-23  Daniel Kruegler  <daniel.kruegler@gmail.com>
1347         Implement LWG 2686, Why is std::hash specialized for error_code,
1348         but not error_condition?
1349         * include/std/system_error (hash<error_condition>): Define for C++17.
1350         * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
1351         Instantiate test for error_condition.
1352         * testsuite/20_util/hash/requirements/explicit_instantiation.cc
1353         (hash<error_condition>): Instantiate hash<error_condition>.
1355         * include/bits/c++config (_GLIBCXX17_INLINE): Define.
1356         * include/bits/regex_constants.h (All std::regex_constants constants):
1357         Add _GLIBCXX17_INLINE as per P0607R0.
1358         * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
1359         Likewise.
1360         * include/bits/stl_pair.h (piecewise_construct): Likewise.
1361         * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
1362         (__is_uses_allocator_constructible_v)
1363         (__is_nothrow_uses_allocator_constructible_v): Likewise.
1364         * include/std/chrono (treat_as_floating_point_v): Likewise.
1365         * include/std/functional (is_bind_expression_v, is_placeholder_v):
1366         Likewise.
1367         * include/std/optional (nullopt): Likewise.
1368         * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
1369         ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
1370         * include/std/system_error (is_error_code_enum_v)
1371         (is_error_condition_enum_v): Likewise.
1372         * include/std/tuple (tuple_size_v, ignore): Likewise.
1373         (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
1374         constexpr as per LWG 2933.
1375         * include/std/type_traits (All variable templates): Add
1376         _GLIBCXX17_INLINE as per P0607R0.
1377         * include/std/variant (variant_size_v, variant_npos, __index_of_v)
1378         (__tuple_count_v, __exactly_once): Likewise.
1379         * testsuite/18_support/headers/new/synopsis.cc
1380         (hardware_destructive_interference_size)
1381         (hardware_constructive_interference_size): Likewise for commented-out
1382         variables.
1383         * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
1384         test function for constexpr std::ignore (LWG 2773).
1385         * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
1386         test for LWG 2933.
1388 2017-03-22  Jonathan Wakely  <jwakely@redhat.com>
1390         * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
1391         guides for C++17.
1392         * include/bits/std_function.h (function): Likewise.
1393         * include/bits/stl_pair.h (pair): Likewise.
1394         * include/debug/array (__gnu_debug::array): Likewise.
1395         * include/std/array (array): Likewise.
1396         * include/std/functional (make_default_searcher)
1397         (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
1398         Remove generator functions.
1399         * include/std/tuple (tuple): Add deduction guides.
1400         * include/std/valarray (valarray): Likewise.
1401         * testsuite/20_util/function_objects/searchers.cc: Adjust to use
1402         class template argument deduction instead of generator functions.
1403         * testsuite/20_util/function/cons/deduction.cc: New test.
1404         * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
1405         * testsuite/20_util/optional/cons/deduction.cc: ... here.
1406         * testsuite/20_util/pair/cons/deduction.cc: New test.
1407         * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
1408         * testsuite/20_util/tuple/cons/deduction.cc: New test.
1409         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
1410         * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
1411         * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
1412         * testsuite/23_containers/array/cons/deduction.cc: New test.
1413         * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
1414         * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
1415         Adjust dg-error.
1416         * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
1417         * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
1418         Likewise.
1419         * testsuite/26_numerics/valarray/deduction.cc: New test.
1420         * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
1421         * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
1422         * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
1424 2017-03-20  François Dumont  <fdumont@gcc.gnu.org>
1426         * include/bits/stl_deque.h (deque): Access allocator value_type only if
1427         concept checks are enabled.
1428         * include/bits/stl_stack.h (stack): Likewise.
1429         * include/bits/stl_vector.h (vector): Likewise.
1430         * include/bits/stl_list.h (list): Likewise and check
1431         _SGIAssignableConcept only in C++03.
1432         * include/bits/stl_map.h (map): Likewise.
1433         * include/bits/stl_set.h (set): Likewise.
1434         * include/bits/stl_multimap.h (multimap): Likewise.
1435         * include/bits/stl_multiset.h (multiset): Likewise.
1436         * include/bits/stl_queue.h (queue, priority_queue): Likewise.
1438 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
1440         * doc/xml/manual/appendix_contributing.xml: Convert link to
1441         ansi.org to https.
1442         Update link to the C++ standard at ansi.org.
1444         * doc/xml/faq.xml: Remove information redundant with the above;
1445         instead add a reference.
1447 2017-03-17  Jonathan Wakely  <jwakely@redhat.com>
1449         * src/c++11/codecvt.cc (range): Add non-type template parameter and
1450         define oerloaded operators for reading and writing code units.
1451         (range<Elem, false>): Define partial specialization for accessing
1452         wide characters in potentially unaligned byte ranges.
1453         (ucs2_span(const char16_t*, const char16_t*, ...))
1454         (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
1455         to range<const char16_t, false> in order to avoid unaligned reads.
1456         (__codecvt_utf16_base<char16_t>::do_out)
1457         (__codecvt_utf16_base<char32_t>::do_out)
1458         (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
1459         unaligned data to avoid unaligned writes.
1460         (__codecvt_utf16_base<char16_t>::do_in)
1461         (__codecvt_utf16_base<char32_t>::do_in)
1462         (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
1463         error if there are unprocessable trailing bytes.
1464         (__codecvt_utf16_base<char16_t>::do_length)
1465         (__codecvt_utf16_base<char32_t>::do_length)
1466         (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
1467         range<const char16_t, false> to span functions.
1468         * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
1470 2017-03-16  Jonathan Wakely  <jwakely@redhat.com>
1472         PR libstdc++/79980
1473         * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
1475         PR libstdc++/80041
1476         * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
1477         (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
1478         char16_t to work with UTF-16 instead of UTF-8.
1479         * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
1481         * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
1482         (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
1483         (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
1484         (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
1485         (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
1486         (__codecvt_utf8_utf16_base<char32_t>)
1487         (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
1488         do_max_length() return values.
1489         * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
1490         * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
1491         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
1493         PR libstdc++/79980
1494         * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
1495         error path.
1496         * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
1497         for manipulating codecvt_mode values.
1498         (read_utf16_bom): Compare input to BOM constants instead of integral
1499         constants that depend on endianness.  Take mode parameter by
1500         reference and adjust it, to distinguish between no BOM present and
1501         UTF-16BE BOM present.
1502         (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
1503         (surrogates): New enumeration type.
1504         (utf16_in, utf16_out): Add surrogates parameter to choose between
1505         UTF-16 and UCS2 behaviour.
1506         (utf16_span, ucs2_span): Use std::min not std::max.
1507         (ucs2_out): Use std::min not std::max.  Disallow surrogate pairs.
1508         (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
1509         * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
1510         * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
1512         PR libstdc++/79511
1513         * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
1514         as a surrogate pair.
1515         (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
1516         for internal representation.
1517         (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
1518         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
1520         PR libstdc++/80064
1521         * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
1522         (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
1523         invalid instantiations using function types for _Compare argument.
1524         * testsuite/25_algorithms/make_heap/80064.cc: New test.
1526         PR libstdc++/67440
1527         * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
1528         for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
1530 2017-03-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
1532         Implement LWG 2857, {variant,optional,any}::emplace should
1533         return the constructed value.
1534         * include/std/any (emplace(_Args&&...)): Change the return type and
1535         return a reference to the constructed value.
1536         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1537         * include/std/optional (emplace(_Args&&...)): Likewise.
1538         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1539         * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
1540         (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
1541         (emplace<_Np>(_Args&&...)): Likewise.
1542         (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
1543         * testsuite/20_util/any/assign/emplace.cc: Add tests for
1544         checking the return value of emplace.
1545         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1546         * testsuite/20_util/optional/assignment/6.cc: Add tests for
1547         checking the return value of emplace.
1548         * testsuite/20_util/variant/run.cc: Likewise.
1550 2017-03-15  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
1552         PR libstdc++/62045
1553         * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
1554         (is_heap): Remove.
1555         (push_heap): Remove the wrong checking using is_heap.
1556         (make_heap): Remove the assertion using is_heap.
1557         * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
1558         (modify): Ditto.
1559         (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
1560         calling make_heap.
1562 2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
1564         PR libstdc++/62045
1565         * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
1566         New test.
1567         * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
1568         error in comment.
1570 2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
1572         * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
1573         comment.
1574         * config.h.in: Regenerate.
1575         * configure: Regenerate.
1576         * doc/Makefile.in: Regenerate.
1578 2017-03-14  Jonathan Wakely  <jwakely@redhat.com>
1580         PR libstdc++/79162
1581         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1582         (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
1583         with a constrained template.
1584         [!_GLIBCXX_USE_CXX11_ABI]
1585         (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
1586         * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
1587         * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
1589 2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
1591         PR libstdc++/80034
1592         * include/bits/list.tcc (merge(list&&)): Use const for the size_t
1593         in the catch-block.
1594         (merge(list&&, _StrictWeakOrdering)): Likewise.
1595         * testsuite/23_containers/list/operations/80034.cc: New.
1597 2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
1599         Implement LWG 2806, Base class of bad_optional_access.
1600         * include/std/optional (bad_optional_access):
1601         Derive from std::exception.
1602         (bad_optional_access::bad_optional_access): Adjust.
1603         (bad_optional_access::what): New.
1604         (__throw_bad_optional_access(const char*)):
1605         Remove the parameter and adjust calls.
1606         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1607         * testsuite/20_util/optional/typedefs.cc: Likewise.
1609 2017-03-12  Ville Voutilainen  <ville.voutilainen@gmail.com>
1611         Implement LWG 2934, optional<const T> doesn't compare with T.
1612         * include/std/optional
1613         (operator==(const optional<_Tp>&, const optional<_Tp>&)):
1614         Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
1615         (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
1616         Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
1617         (operator<(const optional<_Tp>&, const optional<_Tp>&)):
1618         Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
1619         (operator>(const optional<_Tp>&, const optional<_Tp>&)):
1620         Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
1621         (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
1622         Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
1623         (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
1624         Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
1625         (operator==(const optional<_Tp>&, const _Tp&)):
1626         Turn into operator==(const optional<_Tp>&, const _Up&).
1627         (operator==(const _Tp&, const optional<_Tp>&)):
1628         Turn into operator==(const _Up&, const optional<_Tp>&).
1629         (operator!=(const optional<_Tp>&, const _Tp&)):
1630         Turn into operator!=(const optional<_Tp>&, const _Up&).
1631         (operator!=(const _Tp&, const optional<_Tp>&)):
1632         Turn into operator!=(const _Up&, const optional<_Tp>&).
1633         (operator<(const optional<_Tp>&, const _Tp&)):
1634         Turn into operator<(const optional<_Tp>&, const _Up&).
1635         (operator<(const _Tp&, const optional<_Tp>&)):
1636         Turn into operator<(const _Up&, const optional<_Tp>&).
1637         (operator>(const optional<_Tp>&, const _Tp&)):
1638         Turn into operator>(const optional<_Tp>&, const _Up&).
1639         (operator>(const _Tp&, const optional<_Tp>&)):
1640         Turn into operator>(const _Up&, const optional<_Tp>&).
1641         (operator<=(const optional<_Tp>&, const _Tp&)):
1642         Turn into operator<=(const optional<_Tp>&, const _Up&).
1643         (operator<=(const _Tp&, const optional<_Tp>&)):
1644         Turn into operator<=(const _Up&, const optional<_Tp>&).
1645         (operator>=(const optional<_Tp>&, const _Tp&)):
1646         Turn into operator>=(const optional<_Tp>&, const _Up&).
1647         (operator>=(const _Tp&, const optional<_Tp>&)):
1648         Turn into operator>=(const _Up&, const optional<_Tp>&).
1649         * testsuite/20_util/optional/relops/7.cc: New.
1651 2017-03-10  Jonathan Wakely  <jwakely@redhat.com>
1653         * testsuite/17_intro/names.cc: Undefine macros that clash with
1654         identifiers in AIX system headers.
1656         * include/bits/invoke.h (__invoke): Use __invoke_result instead of
1657         result_of, and __is_nothrow_invocable instead of
1658         __is_nothrow_callable.
1659         * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
1660         instead of __is_callable.
1661         * include/std/functional (invoke): use invoke_result_t instead of
1662         result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
1663         (_Not_fn): Use __invoke_result instead of result_of.
1664         * include/std/type_traits (__result_of_memobj, __result_of_memfun):
1665         Remove partial specializations for reference_wrapper types.
1666         (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
1667         (__invoke_result): Define replacement for result_of and then use it to
1668         define result_of.
1669         (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
1670         with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
1671         respectively.
1672         (invoke_result, invoke_result_t): Define for C++17.
1673         (is_callable, is_nothrow_callable): Replace with is_invocable,
1674         is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
1675         (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
1676         is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
1677         * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
1678         instead of is_nothrow_callable_v.
1679         * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1680         main function.
1681         * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
1682         instead of is_callable.
1683         * testsuite/20_util/is_callable/*: Rename directory and adjust tests
1684         to use new traits.
1685         * testsuite/20_util/is_nothrow_callable/*: Likewise.
1686         * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
1687         is_callable.
1688         * testsuite/20_util/variant/hash.cc: Likewise.
1690 2017-03-10  George Lander  <george.lander@arm.com>
1692         * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
1693         _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
1694         * configure: Regenerate.
1696 2017-03-09  Jonathan Wakely  <jwakely@redhat.com>
1698         * include/std/functional (_Not_fn): Define macro to simplify
1699         repetitive function definitions.
1701         * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
1702         * include/c_global/cstddef (std::byte): Define for C++17.
1703         * testsuite/18_support/byte/global_neg.cc: New test.
1704         * testsuite/18_support/byte/ops.cc: New test.
1705         * testsuite/18_support/byte/requirements.cc: New test.
1707 2017-03-05  Jonathan Wakely  <jwakely@redhat.com>
1709         * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
1710         * doc/html/*: Regenerate.
1711         * include/std/mutex (scoped_lock): Implement new C++17 template.
1712         * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
1713         * testsuite/30_threads/scoped_lock/requirements/
1714         explicit_instantiation.cc: New test.
1715         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
1717 2017-03-02  Gerald Pfeifer  <gerald@pfeifer.com>
1718             François Dumont  <frs.dumont@gmail.com>
1719             Jonathan Wakely  <jwakely@redhat.com>
1721         * doc/xml/manual/debug_mode.xml: Update and simplify note
1722         on link- and run-time coexistence.
1724 2017-03-02  Jonathan Wakely  <jwakely@redhat.com>
1726         * testsuite/17_intro/headers/names.cc: Rename to ...
1727         * testsuite/17_intro/names.cc: ... here.
1729         PR libstdc++/79789
1730         * include/bits/hashtable_policy.h (__clp2): Use reserved names for
1731         parameters and local variables.
1732         * include/bits/ios_base.h (make_error_code, make_error_condition):
1733         Likewise.
1734         * include/bits/list.tcc (list::sort): Likewise.
1735         * include/bits/mask_array.h (mask_array): Likewise.
1736         * include/bits/regex.h (regex_token_iterator): Likewise.
1737         * include/bits/slice_array.h (slice_array): Likewise.
1738         * include/bits/stl_algo.h (__sample): Likewise.
1739         * include/std/memory (undeclare_no_pointers): Likewise.
1740         * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
1741         Likewise.
1742         * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
1743         * testsuite/17_intro/headers/names.cc: New test.
1745         PR libstdc++/79798
1746         * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
1747         result_of that loses top-level cv-qualifiers.
1748         * testsuite/20_util/bind/79798.cc: New test.
1750 2017-03-01  Gerald Pfeifer  <gerald@pfeifer.com>
1752         * doc/xml/manual/documentation_hacking.xml: Tweak link to
1753         doxygen.org.
1755 2017-02-23  Jonathan Wakely  <jwakely@redhat.com>
1757         * include/experimental/iterator: Include <iterator>.
1758         * testsuite/experimental/iterator/requirements.cc: Check for contents
1759         of <iterator>.
1761 2017-02-19  Dinka Ranns  <dinka.ranns@googlemail.com>
1763         C++17 GB50 resolution
1764         * include/std/chrono (duration::operator++()): Add
1765         _GLIBCXX17_CONSTEXPR.
1766         (duration::operator++(int)): Likewise.
1767         (duration::operator--()): Likewise.
1768         (duration::operator--(int)): Likewise.
1769         (duration::operator+=(const duration&)): Likewise.
1770         (duration::operator-=(const duration&)): Likewise.
1771         (duration::operator*=(const rep&)): Likewise.
1772         (duration::operator/=(const rep&)): Likewise.
1773         (duration::operator%=(const rep&)): Likewise.
1774         (duration::operator%=(const duration&)): Likewise.
1775         (time_point::operator+=(const duration&)): Likewise.
1776         (time_point::operator-=(const duration&)): Likewise.
1777         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
1778         * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
1779         * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
1781 2017-02-19  Gerald Pfeifer  <gerald@pfeifer.com>
1783         * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
1785 2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
1787         * doc/xml/manual/io.xml: Update link to groups.google.com.
1788         Tweak link description.
1790 2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
1792         * doc/xml/manual/profile_mode.xml: Fix link.
1794 2017-02-16  Gerald Pfeifer  <gerald@pfeifer.com>
1796         * doc/xml/manual/policy_data_structures.xml: Simplify and
1797         standardize references to boost.org.
1798         * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
1799         * doc/xml/manual/shared_ptr.xml: Ditto.
1801 2017-02-16  Jonathan Wakely  <jwakely@redhat.com>
1803         PR libstdc++/60936
1804         * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
1805         written to buffer, not length remaining in buffer.
1807 2017-02-15  Tim Shen  <timshen@google.com>
1809         PR libstdc++/78723
1810         * include/std/variant (operator<(), operator>(), operator<=(),
1811         operator>=(), operator==(), operator!=()): Implement P0393R3.
1812         * testsuite/20_util/variant/compile.cc: Adjust tests.
1813         * testsuite/20_util/variant/run.cc: Adjust tests.
1815 2017-02-15  Tim Shen  <timshen@google.com>
1817         PR libstdc++/79513
1818         * include/std/variant (visit()): Forward variant types to the return
1819         type detection code.
1820         * testsuite/20_util/variant/compile.cc: Add test cases.
1822 2017-02-13  H.J. Lu  <hongjiu.lu@intel.com>
1824         PR libstdc++/79348
1825         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
1827 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
1829         PR libstdc++/79348
1830         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1831         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1832         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
1833         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1834         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
1835         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
1836         * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
1837         * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
1838         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1840 2017-02-13  Jonathan Wakely  <jwakely@redhat.com>
1842         PR libstdc++/79486
1843         * include/std/future (__future_base::_Task_state::_M_run)
1844         (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
1845         result_of expressions.
1846         * testsuite/30_threads/packaged_task/79486.cc: New.
1848 2017-02-11  Jonathan Wakely  <jwakely@redhat.com>
1850         PR libstdc++/79467
1851         * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
1852         (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
1853         __is_callable check.
1854         * testsuite/20_util/shared_ptr/cons/79467.cc: New.
1856         * include/bits/atomic_base.h: Re-indent.
1858 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
1860         * doc/xml/manual/profile_mode.xml: Update a paper reference.
1862 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
1864         * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
1866 2017-02-08  Jonathan Wakely  <jwakely@redhat.com>
1868         * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
1869         name.
1870         * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
1871         broken links to texts that are no longer online.
1872         * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
1873         LCPC 2006 paper.
1874         * doc/xml/manual/using.xml: Update links to memory model information.
1875         * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
1876         Standard-Library Exception Safety".
1877         * doc/html/*: Regenerate.
1879 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
1881         * doc/xml/manual/profile_mode.xml: Unbreak link to
1882         "Optimizing Sorting with Machine Learning Algorithms".
1884 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
1886         * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
1888 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
1890         * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
1891         Migration Guide".
1893 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
1895         * doc/html/ext/lwg-active.html: Remove.
1896         * doc/html/ext/lwg-closed.html: Ditto.
1897         * doc/html/ext/lwg-defects.html: Ditto.
1899         * doc/Makefile.am (xml_extradir): Remove.
1900         (xml_extra): Ditto.
1901         (stamp-html-docbook-lwg): Remove recipe...
1902         (stamp-html-docbook-data): ...and its use here.
1903         * doc/Makefile.in: Regenerate.
1905         * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
1906         the relationship to the upstream working group.
1907         Replace a local link to ../ext/lwg-active.html by the upstream one.
1908         Replace all reference to ../ext/lwg-defects.html by a new entity
1909         &DR; which refers to the upstream address.
1911 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
1913         * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
1915 2017-02-06  Jonathan Wakely  <jwakely@redhat.com>
1917         PR libstdc++/79323
1918         * testsuite/20_util/duration/literals/range.cc: Prune extra output
1919         at -O0.
1921 2017-02-06  Gerald Pfeifer  <gerald@pfeifer.com>
1923         * doc/xml/manual/documentation_hacking.xml: Update URL of the
1924         DocBook Element Reference.  Use that term as link description
1925         instead of "online".
1926         epubcheck has moved to GitHub.
1927         Remove obsolete link to DocBook Publishing Tools.
1929 2017-02-03  Jonathan Wakely  <jwakely@redhat.com>
1931         PR libstdc++/66145
1932         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
1933         so new ios::failure can be caught even when old ABI is the default.
1934         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
1935         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
1936         exceptions_failbit.cc: Likewise.
1937         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
1938         exceptions_failbit.cc: Likewise.
1939         * testsuite/27_io/basic_istream/extractors_other/char/
1940         exceptions_null.cc: Likewise.
1941         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
1942         exceptions_null.cc: Likewise.
1943         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
1944         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
1945         * testsuite/27_io/basic_ostream/inserters_other/char/
1946         exceptions_null.cc: Likewise.
1947         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
1948         exceptions_null.cc: Likewise.
1949         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
1951         PR libstdc++/60936
1952         * src/c++11/Makefile.am: Add new files.
1953         * src/c++11/Makefile.in: Regenerate.
1954         * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
1955         (operator<<, operator>>, getline): Move explicit instantiations to ...
1956         * src/c++11/cow-string-io-inst.cc: ... new file.
1957         * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
1958         (operator<<, operator>>, getline): Move explicit instantiations to ...
1959         * src/c++11/cow-wstring-io-inst.cc: ... new file.
1960         * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
1961         (__throw_future_error, __throw_bad_function_call):
1962         (__throw_regex_error): Move functions for C++11 exceptions to the
1963         files that define the exception types.
1964         * src/c++11/functional.cc (__throw_bad_function_call): Move here.
1965         * src/c++11/future.cc (__throw_future_error): Likewise.
1966         * src/c++11/ios.cc (__throw_ios_failure): Likewise.
1967         * src/c++11/regex.cc (__throw_regex_error): Likewise.
1968         * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
1969         representation directly instead of calling __int_to_char.
1970         * src/c++11/sso_string.cc (__sso_string): New file for definition
1971         of __sso_string type.
1972         * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
1973         explicit instantiations of narrow string I/O functions.
1974         * src/c++11/system_error.cc (__throw_system_error): Move here.
1975         (__sso_string): Move to new file.
1976         * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
1977         explicit instantiations of wide string I/O functions.
1978         * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
1979         (operator>>, getline): Remove explicit instantiations from here.
1981 2017-02-02  H.J. Lu  <hongjiu.lu@intel.com>
1983         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
1985 2017-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1987         * configure.host: Separate Solaris/SPARC and x86 baselines.
1988         * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
1989         * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
1990         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
1991         * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
1992         ... here.
1993         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
1994         * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
1995         * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
1996         * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
1997         * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
1998         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
1999         * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
2000         ... here.
2001         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
2002         * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
2003         * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
2005         * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
2006         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
2007         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
2008         * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
2009         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
2010         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
2012 2017-02-01  Jonathan Wakely  <jwakely@redhat.com>
2014         PR libstdc++/78346
2015         * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
2016         not its referent.
2017         (_Iter_comp_to_iter): Likewise.
2018         * testsuite/25_algorithms/search/78346.cc: New test.
2020         PR libstdc++/79254
2021         * config/abi/pre/gnu.ver: Remove recently added symbols.
2022         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2023         (basic_string::_M_copy_assign): Remove.
2024         (basic_string::operator=(const basic_string&)): Don't dispatch to
2025         _M_copy_assign. If source object is small just deallocate, otherwise
2026         perform new allocation before making any changes.
2027         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
2028         (basic_string::_M_copy_assign(const basic_string&, true_type)):
2029         Remove.
2030         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2031         Test cases where the allocators are equal or the string is small.
2032         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2033         Likewise.
2035 2017-01-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
2037         Implement LWG 2825, LWG 2756 breaks class template argument
2038         deduction for optional.
2039         * include/std/optional: Add a deduction guide.
2040         * testsuite/20_util/optional/cons/deduction_guide.cc: New.
2042 2017-01-27  Jonathan Wakely  <jwakely@redhat.com>
2044         PR libstdc++/79254
2045         * config/abi/pre/gnu.ver: Add new symbols.
2046         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2047         (basic_string::_M_copy_assign): New overloaded functions to perform
2048         copy assignment.
2049         (basic_string::operator=(const basic_string&)): Dispatch to
2050         _M_copy_assign.
2051         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
2052         (basic_string::_M_copy_assign(const basic_string&, true_type)):
2053         Define, performing rollback on exception.
2054         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2055         Test exception-safety guarantee.
2056         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2057         Likewise.
2058         * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
2059         std::swap visible.
2061 2017-01-26  Jonathan Wakely  <jwakely@redhat.com>
2063         PR libstdc++/70607
2064         * include/tr1/complex (conj): Remove using-declaration and restore
2065         overloads, reverting previous change.
2067         * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
2068         mode.
2069         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
2070         Mark as unsupported in C++98 mode.
2071         * testsuite/23_containers/queue/requirements/constructible.cc:
2072         Likewise.
2073         * testsuite/23_containers/stack/requirements/constructible.cc:
2074         Likewise.
2075         * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
2077         PR libstdc++/79243
2078         * include/bits/c++config (literals::string_view_literals::__7): Add.
2079         Only declare versioned namespaces for the relevant C++ dialects.
2080         * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
2081         Add versioning macros.
2082         * include/experimental/bits/lfts_config.h:
2083         (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
2084         * include/experimental/string_view (fundamentals_v2::__detail):
2085         Add versioning macros.
2086         (fundamentals_v2::__detail::__identity): Remove.
2087         (fundamentals_v2::__detail::__idt): Use common_type instead of
2088         __detail::__identity.
2089         * include/std/string_view (__detail::__identity, __detail::__idt):
2090         Likewise.
2091         (literals::string_view_literals): Fix nesting of versioning macros.
2093         PR libstdc++/79190
2094         * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
2095         [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
2096         && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
2097         Retrieve original pointer value allocated by malloc.
2098         * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
2099         && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
2100         && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
2101         Define, adjusting pointer value allocated by malloc and storing for
2102         retrieval by operator delete.
2104 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
2106         * libsupc++/eh_atomics.h: Update copyright years.
2107         * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
2109 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
2111         PR libstdc++/61791
2112         PR libstdc++/70607
2113         * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
2114         (proj(T), conj(T)): Change return types per DR 1522.
2115         * include/tr1/complex (conj): Remove overloads and use std::conj.
2116         * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
2117         * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
2118         * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
2119         real(T) and imag(T). Allow testing for C++11 too.
2121 2017-01-24  Jonathan Wakely  <jwakely@redhat.com>
2123         PR libstdc++/79206
2124         * include/experimental/string_view (operator==): Check sizes first.
2125         * include/std/string_view (operator==): Likewise.
2127 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
2129         * testsuite/experimental/array/make_array.cc: Restore <functional>
2130         inclusion.
2132 2017-01-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2134         * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
2136 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
2138         PR libstdc++/79195
2139         * include/experimental/array (__make_array_elem): New class template
2140         and partial specialization.
2141         (__is_reference_wrapper): Move into __make_array_elem specialization.
2142         (make_array): Use __make_array_elem to determine element type and move
2143         static assertion into specialization. Qualify std::forward call.
2144         (to_array): Add exception specifiation.
2145         * testsuite/experimental/array/make_array.cc: Test argument types
2146         without a common type.
2147         * testsuite/experimental/array/neg.cc: Adjust expected error message.
2149 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
2151         * doc/xml/manual/debug.xml: code.google.com uses https now.
2153 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
2155         * doc/xml/manual/test.xml: Fix link into gccint online manual.
2157 2017-01-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
2159         Make poisoned hashes SFINAE away the call operator of the hash.
2160         * include/bits/functional_hash.h
2161         (__poison_hash::__enable_hash_call): New.
2162         * include/std/optional (__optional_hash_call_base): New.
2163         (hash<optional<_Tp>>): Derive from the new base,
2164         move the hash function into that base.
2165         * include/std/variant (__variant_hash_call_base_impl): New.
2166         (__variant_hash_call_base): Likewise.
2167         (hash<variant<_Types...>>): Derive from the new base,
2168         move the hash function into that base.
2169         * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
2170         * testsuite/20_util/variant/hash.cc: Likewise.
2172 2017-01-20  Joe Seymour  <joe.s@somniumtech.com>
2174         * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
2175         * configure: Regenerate.
2177 2017-01-20  Jonathan Wakely  <jwakely@redhat.com>
2179         PR libstdc++/69240
2180         * include/bits/random.h (uniform_real_distribution::param_type)
2181         (normal_distribution::param_type, lognormal_distribution::param_type)
2182         (gamma_distribution::param_type, chi_squared_distribution::param_type)
2183         (cauchy_distribution::param_type, fisher_f_distribution::param_type)
2184         (student_t_distribution::param_type)
2185         (bernoulli_distribution::param_type, binomial_distribution::param_type)
2186         (geometric_distribution::param_type)
2187         (negative_binomial_distribution::param_type)
2188         (poisson_distribution::param_type)
2189         (exponential_distribution::param_type)
2190         (weibull_distribution::param_type)
2191         (extreme_value_distribution::param_type)
2192         (discrete_distribution::param_type)
2193         (piecewise_constant_distribution::param_type)
2194         (piecewise_linear_distribution::param_type): Define operator!=.
2195         * include/bits/uniform_int_dist.h
2196         (uniform_int_distribution::param_type): Likewise.
2197         * include/ext/random (beta_distribution::param_type)
2198         (rice_distribution::param_type, nakagami_distribution::param_type)
2199         (pareto_distribution::param_type, k_distribution::param_type)
2200         (arcsine_distribution::param_type, hoyt_distribution::param_type)
2201         (triangular_distribution::param_type)
2202         (von_mises_distribution::param_type)
2203         (hypergeometric_distribution::param_type)
2204         (logistic_distribution::param_type)
2205         (uniform_on_sphere_distribution::param_type)
2206         (uniform_inside_sphere_distribution::param_type): Likewise.
2207         * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
2208         Test construction with param_type.
2209         * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
2210         Likewise.
2211         * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
2212         Likewise.
2213         * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
2214         Likewise.
2215         * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
2216         Likewise.
2217         * testsuite/26_numerics/random/extreme_value_distribution/cons/
2218         parms.cc: Likewise.
2219         * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
2220         Likewise.
2221         * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
2222         Likewise.
2223         * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
2224         Likewise.
2225         * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
2226         Likewise.
2227         * testsuite/26_numerics/random/negative_binomial_distribution/cons/
2228         parms.cc: Likewise.
2229         * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
2230         Likewise.
2231         * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
2232         Likewise.
2233         * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
2234         Likewise.
2235         * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
2236         Likewise.
2237         * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
2238         Likewise.
2239         * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
2240         Likewise.
2241         * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
2242         * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
2243         * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
2244         * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
2245         Likewise.
2246         * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
2247         * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
2248         * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
2249         * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
2250         * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
2251         * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
2252         * testsuite/ext/random/triangular_distribution/cons/parms.cc:
2253         Likewise.
2254         * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
2255         parms.cc: Likewise.
2256         * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
2258         PR libstdc++/72792
2259         * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
2260         (__allocator_traits_base::__size_type): Remove.
2261         (allocator_traits::_Ptr): New class template to detect const and void
2262         pointer types without instantiating pointer_traits::rebind
2263         unnecessarily.
2264         (allocator_traits::_Diff): Likewise for detecting difference_type.
2265         (allocator_traits::_Size): New class template to detect size_type
2266         without instantiating make_unsigned unnecessarily.
2267         * include/bits/ptr_traits.h (pointer_traits::element_type): Use
2268         __detected_or_t instead of __detected_or_t_.
2269         * include/std/type_traits (__detected_or_t_): Remove.
2270         * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
2272         PR libstdc++/72792
2273         PR libstdc++/72793
2274         * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
2275         Replace with class template using void_t.
2276         (__alloc_rebind): Define in terms of
2277         __allocator_traits_base::__rebind.
2278         (allocator_traits): Remove unconditional static_assert for
2279         rebind_alloc.
2280         * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
2281         (pointer_traits::__rebind): Replace with class template using void_t.
2282         (pointer_traits::rebind): Define in terms of __rebind.
2283         (pointer_traits): Remove unconditional static_assert for rebind.
2284         * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
2285         * testsuite/20_util/pointer_traits/rebind.cc: New test.
2287         PR libstdc++/69321
2288         * include/experimental/any (__any_caster): Avoid instantiating
2289         manager function for types that can't be stored in any.
2290         * include/std/any (__any_caster): Likewise.
2291         * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
2292         * testsuite/experimental/any/misc/any_cast.cc: Likewise.
2294         PR libstdc++/64903
2295         * include/bits/stl_algo.h (is_partitioned): Use increment instead of
2296         std::advance.
2298 2017-01-19  Jonathan Wakely  <jwakely@redhat.com>
2300         PR libstdc++/79156
2301         * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
2302         Fix return type.
2303         (__enable_shared_from_this): Declare __shared_ptr as a friend.
2304         * testsuite/ext/shared_ptr/1.cc: New test.
2306         PR libstdc++/64903
2307         * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
2308         point.
2309         * testsuite/25_algorithms/is_partitioned/2.cc: New test.
2311         * doc/xml/manual/abi.xml: Fix typo.
2312         * doc/html/manual/abi.html: Likewise.
2314         PR libstdc++/67085
2315         * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
2316         converting constructors from _Iter_less_iter.
2317         (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
2318         _Iter_comp_iter.
2319         (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
2320         (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
2321         * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
2322         (__make_heap, __sort_heap): Change _Compare parameters to references.
2323         (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
2324         (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
2325         functions as lvalues.
2326         (is_heap): Call __is_heap_until directly to avoid copying __comp.
2327         * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
2328         count copies during construction with empty sequence.
2330         PR libstdc++/67085
2331         * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
2332         (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
2333         * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
2334         number of copies.
2335         * testsuite/25_algorithms/make_heap/movable.cc: New test.
2337         PR libstdc++/67085
2338         * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
2339         (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
2340         _GLIBCXX_MOVE when passing comparison function to other functions.
2341         (is_heap_until, is_heap): Use std::move when passing comparison
2342         function.
2343         * testsuite/23_containers/priority_queue/67085.cc: New test.
2345         PR libstdc++/78905
2346         * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
2347         macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
2348         Document that the deprecated _GLIBCXX_VERSION macro was removed for
2349         the 4.0.0 release.
2350         * doc/html/*: Regenerate.
2351         * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
2352         * include/Makefile.in: Regenerate.
2353         * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
2354         * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
2355         dg-error.
2357 2017-01-18  Jonathan Wakely  <jwakely@redhat.com>
2359         PR libstdc++/69301
2360         * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
2361         aligned buffer instead of default-initialized variable.
2362         * testsuite/29_atomics/atomic/69301.cc: New test.
2363         * include/experimental/memory (observer_ptr::release): Use reserved
2364         name.
2365         * include/ext/pointer.h (_Pointer_adapter::operator++(int))
2366         (_Pointer_adapter::operator--(int)): Likewise.
2368         PR libstdc++/68925
2369         * include/experimental/random (randint): Use temporary instead of
2370         thread_local static.
2372 2017-01-17  Joshua Conner  <joshconner@google.com>
2374         * crossconfig.m4: Add fuchsia OS.
2375         * configure: Regenerate.
2377 2017-01-17  Jonathan Wakely  <jwakely@redhat.com>
2379         PR libstdc++/69699
2380         * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
2381         __GLIBCXX__ macro is not useful. Remove redundant date information
2382         and link to the GCC release timeline.
2383         (abi.versioning.active): Move partial sentence into the previous
2384         paragraph.
2385         * doc/html/*: Regenerate.
2387         PR libstdc++/79114
2388         * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
2389         of remove_reference.
2390         * testsuite/18_support/nested_exception/79114.cc: New test.
2392 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
2394         PR other/79046
2395         * configure.ac: Add GCC_BASE_VER.
2396         * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
2397         get version from BASE-VER file.
2398         * po/Makefile.in: Regenerated.
2399         * libsupc++/Makefile.in: Regenerated.
2400         * testsuite/Makefile.in: Regenerated.
2401         * src/Makefile.in: Regenerated.
2402         * configure: Regenerated.
2403         * Makefile.in: Regenerated.
2404         * include/Makefile.in: Regenerated.
2405         * doc/Makefile.in: Regenerated.
2406         * python/Makefile.in: Regenerated.
2407         * src/c++11/Makefile.in: Regenerated.
2408         * src/c++98/Makefile.in: Regenerated.
2409         * src/filesystem/Makefile.in: Regenerated.
2411 2017-01-16  Jonathan Wakely  <jwakely@redhat.com>
2413         PR libstdc++/66145
2414         * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
2415         exceptions.
2416         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
2417         for test, so new ios::failure can be caught.
2418         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2419         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
2420         exceptions_failbit.cc: Likewise.
2421         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2422         exceptions_failbit.cc: Likewise.
2423         * testsuite/27_io/basic_istream/extractors_other/char/
2424         exceptions_null.cc: Likewise.
2425         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
2426         exceptions_null.cc: Likewise.
2427         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2428         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2429         * testsuite/27_io/basic_ostream/inserters_other/char/
2430         exceptions_null.cc: Likewise.
2431         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2432         exceptions_null.cc: Likewise.
2433         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2435         PR libstdc++/78702
2436         * include/bits/locale_classes.h (locale::facet::__shim): Change from
2437         private to protected.
2438         * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
2439         make locale::facet::__shim accessible.
2441 2017-01-16  Ville Voutilainen  <ville.voutilainen@gmail.com>
2443         PR libstdc++/78389
2444         * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
2445         (merge(list&&, _StrictWeakOrdering)): Likewise.
2446         * testsuite/23_containers/list/operations/78389.cc: Add
2447         better test for the sizes.
2449 2017-01-14  Jonathan Wakely  <jwakely@redhat.com>
2451         * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
2452         Skip test when -D_GLIBCXX_PROFILE mode is included in options.
2453         * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
2454         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
2455         Likewise.
2456         * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
2457         * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
2458         * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
2459         * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
2460         * testsuite/23_containers/unordered_map/modifiers/extract.cc:
2461         Likewise.
2462         * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
2463         Likewise.
2464         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
2465         Likewise.
2466         * testsuite/23_containers/unordered_set/modifiers/extract.cc:
2467         Likewise.
2468         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2469         Likewise.
2470         * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
2471         * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
2472         * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
2473         * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
2474         * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
2475         * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
2476         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
2477         * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
2478         * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
2479         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
2480         * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
2481         * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2482         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
2484 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
2486         PR libstdc++/65411
2487         * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
2488         retry fclose on EINTR.
2490         * include/profile/base.h: Remove unused header that leads to header
2491         cycle in C++17 mode.
2493         PR libstdc++/79075
2494         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
2495         Make _If_sv private.
2496         [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
2497         basic_string_view arguments.
2499         PR libstdc++/79075
2500         * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
2501         redundant option from cxxflags.
2502         (check_effective_target_cxx11-abi): Define.
2503         * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
2504         effective target.
2505         * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
2506         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2507         Likewise.
2508         * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
2509         Likewise.
2510         * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
2511         * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
2512         Likewise.
2513         * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
2514         Likewise.
2515         * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
2516         * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
2517         Likewise.
2518         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2519         Likewise.
2520         * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
2521         Likewise.
2522         * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
2523         Likewise.
2524         * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
2525         Likewise.
2526         * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
2527         Likewise.
2528         * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
2529         Likewise.
2530         * testsuite/23_containers/list/61347.cc: Likewise.
2531         * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
2532         * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
2534 2017-01-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
2536         PR libstdc++/78389
2537         * include/bits/list.tcc (merge(list&&)):
2538         Adjust list sizes if the comparator throws.
2539         (merge(list&&, _StrictWeakOrdering)): Likewise.
2540         (sort()): Splice elements back from the scratch buffers
2541         if the comparator throws.
2542         (sort(_StrictWeakOrdering)): Likewise.
2543         * testsuite/23_containers/list/operations/78389.cc: New.
2545 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
2547         * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
2548         XFAIL for C++17 until node reinsertion supports fancy pointers.
2550         PR libstdc++/78361
2551         * testsuite/20_util/add_pointer/value.cc: Test forming function
2552         pointers.
2554 2017-01-13  Michael Brune  <lucdanton@free.fr>
2556         PR libstdc++/78361
2557         * include/std/type_traits (__is_referenceable): Handle noexcept
2558         function types.
2560 2017-01-12  Jonathan Wakely  <jwakely@redhat.com>
2562         PR libstdc++/77528
2563         * include/bits/stl_queue.h (queue, priority_queue): Remove default
2564         member-initializers and define default constructors as templates with
2565         constraints.
2566         * include/bits/stl_stack.h (stack): Likewise.
2567         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
2568         New.
2569         * testsuite/23_containers/priority_queue/requirements/
2570         explicit_instantiation/1.cc: Test more instantiations.
2571         * testsuite/23_containers/priority_queue/requirements/
2572         explicit_instantiation/1_c++98.cc: Likewise.
2573         * testsuite/23_containers/queue/requirements/constructible.cc: New.
2574         * testsuite/23_containers/stack/requirements/constructible.cc: New.
2576         PR libstdc++/66284
2577         * doc/xml/manual/intro.xml: Document LWG 2781 change.
2578         * doc/html/*: Regenerate.
2579         * include/std/functional (_Function_base::_Ref_manager): Remove.
2580         (_Function_handler): Remove partial specializations for
2581         reference_wrapper.
2582         (function::target): Remove special case for const qualification.
2583         * testsuite/20_util/function/6.cc: Adjust tests for target type.
2584         * testsuite/20_util/function/7.cc: Likewise.
2585         * testsuite/20_util/function/8.cc: Likewise.
2587 2017-01-11  Jonathan Wakely  <jwakely@redhat.com>
2589         PR libstdc++/78134
2590         * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
2591         (map::equal_range): Fix return type of heterogeneous overloads.
2592         * include/bits/stl_multimap.h (multimap::lower_bound)
2593         (multimap::upper_bound, multimap::equal_range): Likewise.
2594         * include/bits/stl_multiset.h (multiset::lower_bound)
2595         (multiset::upper_bound, multiset::equal_range): Likewise.
2596         * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
2597         (set::equal_range): Likewise.
2598         * testsuite/23_containers/map/operations/2.cc
2599         * testsuite/23_containers/multimap/operations/2.cc
2600         * testsuite/23_containers/multiset/operations/2.cc
2601         * testsuite/23_containers/set/operations/2.cc
2603         PR libstdc++/78273
2604         * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
2605         the heterogeneous comparison can only find one match.
2606         * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
2607         * testsuite/23_containers/map/operations/2.cc: Test count works with
2608         comparison function that just partitions rather than sorting.
2609         * testsuite/23_containers/set/operations/2.cc: Likewise.
2611 2017-01-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
2613         Reduce the size of variant, it doesn't need an index of
2614         type size_t internally.
2615         * include/std/variant (parse_numbers.h): New include.
2616         (__select_index): New.
2617         (_Variant_storage<false, _Types...>::_M_reset_impl): Use
2618         _index_type for comparison with variant_npos.
2619         (_Variant_storage<false, _Types...>::__index_type): New.
2620         (_Variant_storage<false, _Types...>::_M_index): Change the
2621         type from size_t to __index_type.
2622         (_Variant_storage<true, _Types...>::__index_type): New.
2623         (_Variant_storage<true, _Types...>::_M_index): Change the
2624         type from size_t to __index_type.
2625         (_Variant_base::_M_valid): Use _Storage::__index_type
2626         for comparison with variant_npos.
2627         (variant::index): Use _Base::_Storage::__index_type
2628         for comparison with variant_npos.
2629         * testsuite/20_util/variant/index_type.cc: New.
2631 2017-01-10  Jonathan Wakely  <jwakely@redhat.com>
2633         * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
2634         effective target selector to prevent running in C++17 mode.
2636         PR libstdc++/77528
2637         * include/bits/stl_queue.h (queue::c): Add default member initializer.
2638         (queue::queue()): Add constructor and define as defaulted.
2639         (queue::queue(_Sequence&&)): Remove default argument.
2640         (priority_queue::c, priority_queue::comp): Add default member
2641         initializers.
2642         (priority_queue::priority_queue()): Add constructor and define as
2643         defaulted.
2644         (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
2645         Remove default argument for first parameter.
2646         * include/bits/stl_stack.h (stack::c): Add default member initializer.
2647         (stack::stack()): Add constructor and define as defaulted.
2648         (stack::stack(const _Sequence&)): Remove default argument.
2649         * testsuite/23_containers/priority_queue/requirements/
2650         explicit_instantiation/1.cc: Test explicit instantiation with
2651         non-DefaultConstructible sequence.
2652         * testsuite/23_containers/priority_queue/77528.cc: New test.
2653         * testsuite/23_containers/priority_queue/requirements/
2654         explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
2655         * testsuite/23_containers/queue/77528.cc: New test.
2656         * testsuite/23_containers/queue/requirements/explicit_instantiation/
2657         1.cc: Test explicit instantiation with non-DefaultConstructible
2658         sequence.
2659         * testsuite/23_containers/queue/requirements/explicit_instantiation/
2660         1_c++0x.cc: Replace with 1_c++98.cc.
2661         * testsuite/23_containers/stack/77528.cc: New test.
2662         * testsuite/23_containers/stack/requirements/explicit_instantiation/
2663         1.cc: Test explicit instantiation with non-DefaultConstructible
2664         sequence.
2665         * testsuite/23_containers/stack/requirements/explicit_instantiation/
2666         1_c++0x.cc: Replace with 1_c++98.cc.
2668 2017-01-10  Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
2670         * include/bits/locale_facets_nonio.tcc
2671         (time_get::_M_extract_via_format): Avoid compilation errors with
2672         non-standard struct tm.
2674 2017-01-10  François Dumont  <fdumont@gcc.gnu.org>
2675             Jonathan Wakely  <jwakely@redhat.com>
2677         * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
2678         (is_specialization, strip_versioned_namespace): New helpers functions
2679         to work with symbols in the versioned namespace.
2680         (Printer.add_version): Add second name using versioned namespace.
2681         (add_one_template_type_printer, add_one_type_printer): Add second
2682         type printers using versioned namespace.
2683         (register_type_printers): Add template type printer for basic_string.
2684         (build_libstdcxx_dictionary): Remove dead code.
2685         * python/libstdcxx/v6/xmethods.py: Make all matchers look for
2686         versioned namespace.
2687         * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
2688         results.
2689         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
2691 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
2693         PR libstdc++/79017
2694         * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
2695         functions separately on darwin and if they're missing define
2696         _GLIBCXX_NO_C99_ROUNDING_FUNCS.
2697         * config.h.in: Regenerate.
2698         * configure: Regenerate.
2699         * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
2700         (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
2702         * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
2703         to detect correct thread_local destructors.
2704         * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
2705         Define.
2707 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
2708             Aditya Kumar  <hiraditya@msn.com>
2710         PR libstdc++/66414
2711         * include/bits/basic_string.tcc
2712         (basic_string::find(const CharT*, size_type, size_type)): Optimize.
2714 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
2716         * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
2717         * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
2719         * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
2720         Include <cassert> header.
2722         PR libstdc++/78968
2723         * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
2724         * configure: Regenerate.
2726 2017-01-06  Barrett Adair  <barrettellisadair@gmail.com>
2727             Jonathan Wakely  <jwakely@redhat.com>
2729         * include/std/variant (variant, swap): Replace __and_ usage with fold
2730         expressions.
2732 2017-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2734         PR go/78978
2735         * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
2736         * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
2737         GLIBCXX_CHECK_ASSEMBLER_HWCAP.
2738         * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
2739         HWCAP_FLAGS.
2740         * aclocal.m4: Regenerate.
2741         * configure: Regenerate.
2742         * Makefile.in, doc/Makefile.in, include/Makefile.in,
2743         libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
2744         src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
2745         src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
2747 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
2749         * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
2751         PR libstdc++/78991
2752         * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
2753         (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
2754         (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
2755         move function objects.
2756         (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
2757         (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
2758         * testsuite/25_algorithms/sort/78991.cc: New test.
2760 2017-01-05  Jonathan Wakely  <jwakely@redhat.com>
2762         * include/bits/std_function.h (function::_Signature_type): Remove.
2763         (function::function(_Functor)): Adjust.
2765 2017-01-05  Tim Shen  <timshen@google.com>
2767         PR libstdc++/78996
2768         * include/std/variant (__gen_vtable_impl): rename __unused to
2769         __dimensions to avoid naming conflict.
2771 2017-01-04  Jonathan Wakely  <jwakely@redhat.com>
2773         PR libstdc++/78968
2774         * config.h.in: Regenerate.
2775         * configure: Likewise.
2776         * configure.ac: Check for __cxa_thread_atexit.
2777         * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
2778         Don't define __cxa_thread_atexit if libc provides it.
2780 2017-01-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
2782         Implement 2801, Default-constructibility of unique_ptr.
2783         * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
2784         (unique_ptr::_DeleterConstraint): Likewise.
2785         (unique_ptr()): Constrain.
2786         (unique_ptr(pointer)): Likewise.
2787         (unique_ptr(nullptr_t)): Likewise.
2788         (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
2789         (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
2790         (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
2791         (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
2792         * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
2793         * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
2794         * testsuite/20_util/unique_ptr/cons/default.cc: New.
2795         * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
2797 2017-01-04  Pauli Nieminen  <suokkos@gmail.com>
2798             Jonathan Wakely  <jwakely@redhat.com>
2800         PR libstdc++/64735
2801         * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
2802         * config.h.in: Regenerate.
2803         * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
2804         (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
2805         exports for exception_ptr, nested_exception, and future conditional.
2806         [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
2807         exports for exception_ptr, nested_exception, and future conditional.
2808         * configure: Regenerate.
2809         * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
2810         * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
2811         * libsupc++/eh_atomics.h: New file for internal use only.
2812         (__eh_atomic_inc, __eh_atomic_dec): New.
2813         * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
2814         (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
2815         (rethrow_exception): Use eh_atomics.h reference counting helpers.
2816         * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
2817         * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
2818         * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
2819         * libsupc++/exception_ptr.h: Likewise.
2820         * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
2821         * libsupc++/nested_exception.cc: Remove check for
2822         ATOMIC_INT_LOCK_FREE.
2823         * libsupc++/nested_exception.h: Likewise.
2824         * src/c++11/future.cc: Likewise.
2825         * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
2826         * testsuite/18_support/nested_exception/*: Likewise.
2827         * testsuite/30_threads/async/*: Likewise.
2828         * testsuite/30_threads/future/*: Likewise.
2829         * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
2830         * testsuite/30_threads/packaged_task/*: Likewise.
2831         * testsuite/30_threads/promise/*: Likewise.
2832         * testsuite/30_threads/shared_future/*: Likewise.
2834 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
2836         * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
2837         defaults to https; adjust reference.
2839 2017-01-03  Jonathan Wakely  <jwakely@redhat.com>
2841         PR libstdc++/78956
2842         * include/std/thread (thread(const thread&&)): Add deleted
2843         constructor.
2844         * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
2846         * doc/xml/manual/spine.xml: Update copyright years.
2847         * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
2848         * doc/xml/manual/test.xml: Likewise.
2849         * doc/html/*: Regenerate.
2851 2017-01-01  Gerald Pfeifer  <gerald@pfeifer.com>
2853         * doc/xml/faq.xml: Update address of C++ ABI link.
2854         * doc/xml/manual/abi.xml: Ditto.
2856 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
2858         Update copyright years.
2860 Copyright (C) 2017 Free Software Foundation, Inc.
2862 Copying and distribution of this file, with or without modification,
2863 are permitted in any medium without royalty provided the copyright
2864 notice and this notice are preserved.