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