PR debug/81307
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob732d802b3b987acad8e880c5595558b9bf132cdc
1 2017-11-27  Stephan Bergmann  <sbergman@redhat.com>
3         * include/std/string_view (basic_string_view::find_first_of): Add
4         missing noexcept.
6         * include/bits/unordered_map.h (unordered_map): Fix deduction guide.
7         * include/debug/unordered_map (unordered_map): Likewise.
9 2017-11-23  Jonathan Wakely  <jwakely@redhat.com>
11         * libsupc++/new (launder): Add nodiscard attribute.
12         * testsuite/18_support/launder/nodiscard.cc: New test.
14         * include/bits/fs_path.h (path::empty): Add nodiscard attribute.
15         * include/bits/range_access.h (empty): Likewise.
16         * include/std/string_view (basic_string_view::empty): Likewise.
17         * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc: New
18         test.
19         * testsuite/24_iterators/range_access_cpp17_neg.cc: New test.
20         * testsuite/27_io/filesystem/path/query/empty_neg.cc: New test.
22         PR libstdc++/83134
23         * include/std/type_traits (__not_): Explicitly convert to bool.
24         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
25         * testsuite/20_util/logical_traits/83134.cc: New test.
26         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
27         dg-error.
28         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
29         Likewise.
31 2017-11-22  Jonathan Wakely  <jwakely@redhat.com>
33         PR go/83102
34         * include/bits/stl_tree.h (_Rb_tree): Relax invocable checks for
35         comparison object pre-C++17.
37 2017-11-21  Jonathan Wakely  <jwakely@redhat.com>
39         PR libstdc++/48101
40         * include/bits/allocator.h (allocator<const _Tp>)
41         (allocator<volatile _Tp>, allocator<const volatile _Tp>): Add partial
42         specializations.
43         * include/bits/forward_list.h (forward_list): Add static assertions.
44         * include/bits/hashtable.h (__cache_default): Use
45         __is_nothrow_invocable instead of __is_noexcept_hash.
46         (_Hashtable): Add static assertions.
47         * include/bits/hashtable_policy.h (__is_noexcept_hash): Remove.
48         * include/bits/stl_deque.h (deque): Add static assertions.
49         * include/bits/stl_function.h (_Identity<const _Tp>): Add partial
50         specialization.
51         * include/bits/stl_list.h (list): Add static assertions.
52         * include/bits/stl_map.h (map): Likewise.
53         * include/bits/stl_multimap.h (multimap): Likewise.
54         * include/bits/stl_multiset.h (multiset): Likewise.
55         * include/bits/stl_set.h (set): Likewise.
56         * include/bits/stl_tree.h (_Rb_tree): Likewise.
57         * include/bits/stl_vector.h (vector): Likewise.
58         * include/bits/unordered_map.h (unordered_map, unordered_multimap):
59         Use typename instead of class in template-parameter-list and remove
60         spaces.
61         * include/bits/unordered_set.h (unordered_set, unordered_multiset):
62         Likewise.
63         * testsuite/23_containers/deque/48101-2_neg.cc: New test.
64         * testsuite/23_containers/deque/48101_neg.cc: New test.
65         * testsuite/23_containers/forward_list/48101-2_neg.cc: New test.
66         * testsuite/23_containers/forward_list/48101_neg.cc: New test.
67         * testsuite/23_containers/list/48101-2_neg.cc: New test.
68         * testsuite/23_containers/list/48101_neg.cc: New test.
69         * testsuite/23_containers/map/48101-2_neg.cc: New test.
70         * testsuite/23_containers/map/48101_neg.cc: New test.
71         * testsuite/23_containers/map/operations/31440.cc: Fix comparison
72         object to have const-qualified call operator.
73         * testsuite/23_containers/multimap/48101-2_neg.cc: New test.
74         * testsuite/23_containers/multimap/48101_neg.cc: New test.
75         * testsuite/23_containers/multiset/48101-2_neg.cc: New test.
76         * testsuite/23_containers/multiset/48101_neg.cc: New test.
77         * testsuite/23_containers/set/48101-2_neg.cc: New test.
78         * testsuite/23_containers/set/48101_neg.cc: New test.
79         * testsuite/23_containers/unordered_map/48101-2_neg.cc: New test.
80         * testsuite/23_containers/unordered_map/48101_neg.cc: New test.
81         * testsuite/23_containers/unordered_multimap/48101-2_neg.cc: New test.
82         * testsuite/23_containers/unordered_multimap/48101_neg.cc: New test.
83         * testsuite/23_containers/unordered_multiset/48101-2_neg.cc: New test.
84         * testsuite/23_containers/unordered_multiset/48101_neg.cc: New test.
85         * testsuite/23_containers/unordered_set/48101-2_neg.cc: New test.
86         * testsuite/23_containers/unordered_set/48101_neg.cc: New test.
87         * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
88         dg-error line number.
89         * testsuite/23_containers/vector/48101-2_neg.cc: New test.
90         * testsuite/23_containers/vector/48101_neg.cc: New test.
92 2017-11-21  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
94         * doc/xml/manual/using.xml (manual.intro.using.macros): Move
95         variablelist element at the end of its list.
97 2017-11-21  Sebastian Huber  <sebastian.huber@embedded-brains.de>
99         * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Add rtems*.
100         (GLIBCXX_ENABLE_FILESYSTEM_TS): Likewise.
101         * configure: Regenerate.
103 2017-11-20  François Dumont  <fdumont@gcc.gnu.org>
105         * include/bits/streambuf_iterator.h (istreambuf_iterator<>): Declare
106         std::advance for istreambuf_iterator of char types to be friend.
107         (std::advance(istreambuf_iterator&, _Distance)): New overload.
108         * include/std/streambuf (basic_streambuf<>): Declare std::advance for
109         istreambuf_iterator of char types to be friend.
110         * testsuite/22_locale/money_get/get/char/9.cc: Have
111         istreambuf_iterator created on the fly when calling money_get<>::get.
112         * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
113         * testsuite/24_iterators/istreambuf_iterator/debug/1_neg.cc: New.
114         * testsuite/24_iterators/istreambuf_iterator/debug/2_neg.cc: New.
115         * testsuite/25_algorithms/advance/istreambuf_iterators/char/1.cc: New.
116         * testsuite/25_algorithms/advance/istreambuf_iterators/char/1_neg.cc:
117         New.
118         * testsuite/25_algorithms/advance/istreambuf_iterators/char/2.cc: New.
119         * testsuite/25_algorithms/advance/istreambuf_iterators/char/2_neg.cc:
120         New.
121         * testsuite/25_algorithms/advance/istreambuf_iterators/char/3_neg.cc:
122         New.
123         * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1.cc:
124         New.
125         * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1_neg.cc:
126         New.
127         * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2.cc:
128         New.
129         * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2_neg.cc:
130         New.
131         * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/3_neg.cc:
132         New.
133         * testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc: Leverage
134         on std::advance overload.
135         * testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
136         Likewise.
138 2017-11-20  Jonathan Wakely  <jwakely@redhat.com>
140         * testsuite/special_functions/18_riemann_zeta/check_value.cc: Fix
141         duplicate dg-options directive.
142         * testsuite/tr1/5_numerical_facilities/special_functions/
143         20_riemann_zeta/check_value_neg.cc: Likewise.
145 2017-11-20  Ville Voutilainen  <ville.voutilainen@gmail.com>
147         Implement LWG 2353
148         * include/bits/stl_iterator_base_funcs.h (next):
149         Use InputIterator instead of ForwardIterator.
150         * testsuite/24_iterators/operations/lwg2353.cc: New.
151         * testsuite/24_iterators/operations/next_neg.cc: Remove.
153 2017-11-18  Edward Smith-Rowland  <3dw4rd@verizon.net>
155         PR libstdc++/pr66689 - comp_ellint_3 and ellint_3 return garbage values
156         * include/tr1/ell_integral.tcc: Correct the nu sign convention
157         in ellint_3 and comp_ellint_3.
158         * testsuite/tr1/5_numerical_facilities/special_functions/
159         06_comp_ellint_3/check_value.cc: Regen with correct values.
160         * testsuite/tr1/5_numerical_facilities/special_functions/
161         14_ellint_3/check_value.cc: Ditto.
162         * testsuite/special_functions/06_comp_ellint_3/check_value.cc: Ditto.
163         * testsuite/special_functions/13_ellint_3/check_value.cc: Ditto.
164         * testsuite/tr1/5_numerical_facilities/special_functions/
165         01_assoc_laguerre/check_value.cc: Regen.
166         * testsuite/tr1/5_numerical_facilities/special_functions/
167         02_assoc_legendre/check_value.cc: Regen.
168         * testsuite/tr1/5_numerical_facilities/special_functions/
169         03_beta/check_value.cc: Regen.
170         * testsuite/tr1/5_numerical_facilities/special_functions/
171         04_comp_ellint_1/check_value.cc: Regen.
172         * testsuite/tr1/5_numerical_facilities/special_functions/
173         05_comp_ellint_2/check_value.cc: Regen.
174         * testsuite/tr1/5_numerical_facilities/special_functions/
175         07_conf_hyperg/check_value.cc: Regen.
176         * testsuite/tr1/5_numerical_facilities/special_functions/
177         08_cyl_bessel_i/check_value.cc: Regen.
178         * testsuite/tr1/5_numerical_facilities/special_functions/
179         09_cyl_bessel_j/check_value.cc: Regen.
180         * testsuite/tr1/5_numerical_facilities/special_functions/
181         10_cyl_bessel_k/check_value.cc: Regen.
182         * testsuite/tr1/5_numerical_facilities/special_functions/
183         11_cyl_neumann/check_value.cc: Regen.
184         * testsuite/tr1/5_numerical_facilities/special_functions/
185         12_ellint_1/check_value.cc: Regen.
186         * testsuite/tr1/5_numerical_facilities/special_functions/
187         13_ellint_2/check_value.cc: Regen.
188         * testsuite/tr1/5_numerical_facilities/special_functions/
189         15_expint/check_value_neg.cc: Regen.
190         * testsuite/tr1/5_numerical_facilities/special_functions/
191         16_hermite/check_value.cc: Regen.
192         * testsuite/tr1/5_numerical_facilities/special_functions/
193         17_hyperg/check_value.cc: Regen.
194         * testsuite/tr1/5_numerical_facilities/special_functions/
195         18_laguerre/check_value.cc: Regen.
196         * testsuite/tr1/5_numerical_facilities/special_functions/
197         19_legendre/check_value.cc: Regen.
198         * testsuite/tr1/5_numerical_facilities/special_functions/
199         20_riemann_zeta/check_value_neg.cc: Regen.
200         * testsuite/tr1/5_numerical_facilities/special_functions/
201         21_sph_bessel/check_value.cc: Regen.
202         * testsuite/tr1/5_numerical_facilities/special_functions/
203         22_sph_legendre/check_value.cc: Regen.
204         * testsuite/tr1/5_numerical_facilities/special_functions/
205         23_sph_neumann/check_value.cc: Regen.
206         * testsuite/ext/special_functions/conf_hyperg/check_value.cc: Regen.
207         * testsuite/ext/special_functions/hyperg/check_value.cc: Regen.
208         * testsuite/special_functions/01_assoc_laguerre/check_value.cc: Regen.
209         * testsuite/special_functions/02_assoc_legendre/check_value.cc: Regen.
210         * testsuite/special_functions/03_beta/check_value.cc: Regen.
211         * testsuite/special_functions/04_comp_ellint_1/check_value.cc: Regen.
212         * testsuite/special_functions/05_comp_ellint_2/check_value.cc: Regen.
213         * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: Regen.
214         * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: Regen.
215         * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: Regen.
216         * testsuite/special_functions/10_cyl_neumann/check_value.cc: Regen.
217         * testsuite/special_functions/11_ellint_1/check_value.cc: Regen.
218         * testsuite/special_functions/12_ellint_2/check_value.cc: Regen.
219         * testsuite/special_functions/14_expint/check_value.cc: Regen.
220         * testsuite/special_functions/15_hermite/check_value.cc: Regen.
221         * testsuite/special_functions/16_laguerre/check_value.cc: Regen.
222         * testsuite/special_functions/17_legendre/check_value.cc: Regen.
223         * testsuite/special_functions/18_riemann_zeta/check_value.cc: Regen.
224         * testsuite/special_functions/19_sph_bessel/check_value.cc: Regen.
225         * testsuite/special_functions/20_sph_legendre/check_value.cc: Regen.
226         * testsuite/special_functions/21_sph_neumann/check_value.cc: Regen.
227         * testsuite/tr1/5_numerical_facilities/special_functions/
228         06_comp_ellint_3/pr66689.cc: New.
229         * testsuite/tr1/5_numerical_facilities/special_functions/
230         14_ellint_3/pr66689.cc: New.
231         * testsuite/special_functions/06_comp_ellint_3/pr66689.cc: New.
232         * testsuite/special_functions/13_ellint_3/pr66689.cc: New.
234 2017-11-18  Edward Smith-Rowland  <3dw4rd@verizon.net>
235         Expose Airy functions as an extenaion.
236         * include/bits/specfun.h: Expose airy_ai and airy_bi.
237         * include/tr1/modified_bessel_func.tcc: Treat NaN and inf arg, return.
238         * testsuite/ext/special_functions/airy_ai/check_nan.cc: New.
239         * testsuite/ext/special_functions/airy_ai/check_value.cc: New.
240         * testsuite/ext/special_functions/airy_ai/compile.cc: New.
241         * testsuite/ext/special_functions/airy_bi/check_nan.cc: New.
242         * testsuite/ext/special_functions/airy_bi/check_value.cc: New.
243         * testsuite/ext/special_functions/airy_bi/compile.cc: New.
245 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
247         * acinclude.m4: Add cet.m4.
248         * configure.ac: Set CET_FLAGS. Update EXTRA_CFLAGS,
249         EXTRA_CXX_FLAGS.
250         * libsupc++/Makefile.am: Use Add EXTRA_CFLAGS.
251         * Makefile.in: Regenerate.
252         * configure: Likewise.
253         * doc/Makefile.in: Likewise.
254         * include/Makefile.in: Likewise.
255         * libsupc++/Makefile.in: Likewise.
256         * po/Makefile.in: Likewise.
257         * python/Makefile.in: Likewise.
258         * src/Makefile.in: Likewise.
259         * src/c++11/Makefile.in: Likewise.
260         * src/c++98/Makefile.in: Likewise.
261         * src/filesystem/Makefile.in: Likewise.
262         * testsuite/Makefile.in: Likewise.
264 2017-11-17  Jonathan Wakely  <jwakely@redhat.com>
266         PR libstdc++/83025
267         * include/std/fstream (basic_filebuf::_If_path): Move to
268         namespace-scope and rename to _If_fs_path.
269         (basic_filebuf::open): Use new name.
270         (basic_ifstream(_Path, ios::openmode))
271         (basic_ifstream::open(_Path, ios::openmode))
272         (basic_ofstream(_Path, ios::openmode))
273         (basic_ofstream::open(_Path, ios::openmode))
274         (basic_fstream(_Path, ios::openmode))
275         (basic_fstream::open(_Path, ios::openmode)): Use _If_fs_path.
276         * testsuite/27_io/basic_filebuf/open/char/path.cc: Test with filename
277         as non-const char*.
278         * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
279         * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
280         * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
281         * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
282         * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
283         * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
286 2017-11-17  Marc Glisse  <marc.glisse@inria.fr>
288         * include/bits/vector.tcc (vector::_M_realloc_insert): Cache old
289         values before the allocation.
291 2017-11-16  Jonathan Wakely  <jwakely@redhat.com>
293         * include/std/future (shared_future): Add noexcept to copy constructor
294         and copy-assignment operator (LWG 2799).
296 2017-11-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
298         Fix gcd breakage.
299         * include/std/numeric (gcd): Use remove_cv_t, not remove_cv.
301 2017-11-15  Jonathan Wakely  <jwakely@redhat.com>
303         * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Leave
304         error_code unset.
305         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
306         Check for past-the-end before dereferencing.
307         * testsuite/experimental/filesystem/iterators/
308         recursive_directory_iterator.cc: Likewise.
310         * include/bits/range_access.h (size, empty, data): Add conditional
311         noexcept to generic overloads.
313 2017-11-14  Ville Voutilainen  <ville.voutilainen@gmail.com>
315         Implement LWG 2733 and LWG 2759
316         * include/experimental/numeric (gcd): Reject cv-qualified bool.
317         (lcm): Likewise.
318         * include/std/numeric (gcd): Likewise.
319         (lcm): Likewise.
320         * testsuite/26_numerics/gcd/gcd_neg.cc: Add tests and adjust.
321         * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
323 2017-11-14  Jonathan Wakely  <jwakely@redhat.com>
325         * include/bits/locale_conv.h (wbuffer_convert::_M_conv_get): Fix typo.
326         * testsuite/22_locale/conversions/buffer/3.cc: New test.
328 2017-11-10  Jonathan Wakely  <jwakely@redhat.com>
330         * testsuite/util/testsuite_tr1.h (ThrowMoveConsClass): Use noexcept.
332         PR libstdc++/82917
333         * include/std/fstream (basic_ifstream::open, basic_ofstream::open)
334         (basic_fstream::open): Fix missing return.
336 2017-11-07  Jonathan Wakely  <jwakely@redhat.com>
338         * src/filesystem/ops-common.h (make_file_type) [S_ISSOCK]: Only use
339         S_ISSOCK when defined.
341 2017-11-06  François Dumont  <fdumont@gcc.gnu.org>
343         * testsuite/libstdc++-prettyprinters/tr1.cc:  Compile with -O0.
345 2017-11-06  Martin Liska  <mliska@suse.cz>
347         * testsuite/27_io/basic_fstream/cons/char/path.cc (main):
348           Return a value for functions with non-void return type,
349           or change type to void, or add -Wno-return-type for test.
350         * testsuite/27_io/basic_ifstream/cons/char/path.cc (main):
351         Likewise.
352         * testsuite/27_io/basic_ofstream/open/char/path.cc (main):
353         Likewise.
355 2017-11-06  Paolo Carlini  <paolo.carlini@oracle.com>
357         * testsuite/20_util/optional/cons/deduction.cc: Avoid -Wreturn-type
358         warnings.
359         * testsuite/20_util/pair/cons/deduction.cc: Likewise.
360         * testsuite/20_util/pair/traits.cc: Likewise.
361         * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
362         * testsuite/20_util/variant/compile.cc: Likewise.
363         * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
364         * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
365         Likewise.
367 2017-11-05  Gerald Pfeifer  <gerald@pfeifer.com>
369         * doc/xml/manual/abi.xml: Move docs.oracle.com references to https.
371 2017-11-03  Jonathan Wakely  <jwakely@redhat.com>
373         * include/std/type_traits (endian): Define new enumeration type.
374         * testsuite/20_util/endian/1.cc: New test.
376         * include/bits/node_handle.h (_Node_insert_return::get): Remove, as
377         per P0508R0.
379 2017-11-01  François Dumont  <fdumont@gcc.gnu.org>
381         * python/libstdcxx/v6/printers.py (StdExpAnyPrinter.__init__): Strip
382         typename versioned namespace before the substitution.
383         (StdExpOptionalPrinter.__init__): Likewise.
384         (StdVariantPrinter.__init__): Likewise.
385         (Printer.add_version): Inject versioned namespace after std or
386         __gnu_cxx.
387         (build_libstdcxx_dictionary): Adapt add_version usages, always pass
388         namespace first and symbol second.
390 2017-11-01  Jonathan Wakely  <jwakely@redhat.com>
392         PR libstdc++/82777
393         * src/filesystem/std-path.cc (path::lexically_normal): Remove dot-dot
394         elements correctly.
395         * testsuite/27_io/filesystem/path/generation/normal.cc: Add testcase.
396         * testsuite/util/testsuite_fs.h (compare_paths): Improve exception
397         text.
399 2017-10-30  Jonathan Wakely  <jwakely@redhat.com>
401         * include/Makefile.am (stamp-bits-sup): Do not create broken symlink
402         to stamp-bits.
403         * include/Makefile.in: Regenerate.
405         * include/std/fstream (basic_ifstream, basic_ofstream, basic_fstream):
406         Remove outdated comments about calling c_str() to create a file stream
407         from a std::string.
408         (basic_ofstream::basic_ofstream, basic_ofstream::open): Remove
409         redundant ios_mode::trunc bits from default arguments and comments.
411         * doc/xml/faq.xml: Adjust "What is libstdc++?" answer slightly.
413         * include/bits/hashtable_policy.h: Include <tuple>.
414         * include/std/unordered_map: Only include <bits/stl_pair.h> instead
415         of <utility> and <tuple>.
416         * include/std/unordered_set: Likewise.
418 2017-10-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
420         Implement LWG 2485
421         * include/debug/array (get(const array<_Tp, _Nm>&&)): New.
422         * include/std/array (get(const array<_Tp, _Nm>&&)): Likewise.
423         * include/std/tuple (get(const tuple<_Elements...>&&)): Likewise.
424         (get(const tuple<_Types...>&&)): Likewise.
425         * include/std/utility
426         (__pair_get::__const_move_get(const std::pair<_Tp1, _Tp2>&&)):
427         Likewise.
428         (get(const std::pair<_Tp1, _Tp2>&&)): Likewise.
429         (get(const pair<_Tp, _Up>&&)): Likewise.
430         (get(const pair<_Up, _Tp>&&)): Likewise.
431         * testsuite/20_util/pair/astuple/get.cc: Add tests for
432         new overloads.
433         * testsuite/20_util/pair/astuple/get_by_type.cc: Likewise.
434         * testsuite/20_util/tuple/element_access/get2.cc: Likewise.
435         * testsuite/20_util/tuple/element_access/get2_by_type.cc: Likewise.
436         * testsuite/23_containers/array/tuple_interface/get.cc: Likewise.
437         * testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc:
438         Adjust.
439         * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
440         Likewise.
442 2017-10-27  Jonathan Wakely  <jwakely@redhat.com>
444         * include/bits/node_handle.h (_Node_insert_return::get): Avoid
445         use of std::tie and std::get.
447         * include/Makefile.am: Put headers in alphabetical order.
448         * include/Makefile.in: Regenerate.
450         * include/bits/fs_dir.h (directory_iterator): Remove noexcept from
451         constructors and increment member (LWG 3013).
452         (recursive_directory_iterator): Likewise.
453         * include/bits/fs_ops.h (copy, copy_file, create_directories)
454         (is_empty, remove_all): Remove noexcept (LWG 3013 and LWG 3014).
455         * src/filesystem/std-dir.cc (directory_iterator::increment)
456         (recursive_directory_iterator::increment): Remove noexcept.
457         * src/filesystem/std-ops.cc (copy, copy_file, create_directories)
458         (is_empty, remove_all): Remove noexcept
460         * include/bits/fs_dir.h (file_status): Make default constructor
461         non-explicit (LWG 2787).
462         * testsuite/27_io/filesystem/file_status/1.cc: New test.
463         * testsuite/experimental/filesystem/file_status/1.cc: New test.
465         * include/std/fstream (basic_filebuf::_If_path): New SFINAE helper.
466         (basic_filebuf::open<Path>(const Path&, const ios_base::openmode&))
467         (basic_ifstream<Path>(const Path&, const ios_base::openmode&))
468         (basic_ifstream::open<Path>(const Path&, const ios_base::openmode&))
469         (basic_ofstream<Path>(const Path&, const ios_base::openmode&))
470         (basic_ofstream::open<Path>(const Path&, const ios_base::openmode&))
471         (basic_fstream<Path>(const Path&, const ios_base::openmode&))
472         (basic_fstream::open<Path>(const Path&, const ios_base::openmode&)):
473         New constructors and member functions.
474         * testsuite/27_io/basic_filebuf/open/char/path.cc: New test.
475         * testsuite/27_io/basic_fstream/cons/char/path.cc: New test.
476         * testsuite/27_io/basic_fstream/open/char/path.cc: New test.
477         * testsuite/27_io/basic_ifstream/cons/char/path.cc: New test.
478         * testsuite/27_io/basic_ifstream/open/char/path.cc: New test.
479         * testsuite/27_io/basic_ofstream/cons/char/path.cc: New test.
480         * testsuite/27_io/basic_ofstream/open/char/path.cc: New test.
482         * include/bits/fs_path.h (path::format): Define new enumeration type.
483         (path(string_type&&), path<Source>(const Source&))
484         (path<InputIterator>(InputIterator, InputIterator))
485         (path<Source>(const Source&, const locale&))
486         (path<InputIterator>(InputIterator, InputIterator, const locale&)):
487         Add format parameter.
488         * testsuite/27_io/filesystem/path/construct/format.cc: New test.
490         * include/bits/stl_algo.h (__find_if_not_n, generate_n): Cast to void
491         to ensure overloaded comma not used.
492         * include/bits/stl_algobase.h (__fill_n_a, equal): Likewise.
493         * include/bits/stl_uninitialized.h (__uninitialized_fill_n)
494         (__uninitialized_fill_n_a, __uninitialized_default_n_1)
495         (__uninitialized_default_n_a, __uninitialized_copy_n)
496         (__uninitialized_copy_n_pair): Likewise
497         * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
498         Use test iterator wrappers with overloaded comma operator.
499         * testsuite/25_algorithms/fill_n/1.cc: Likewise.
500         * testsuite/25_algorithms/generate_n/1.cc: New test.
501         * testsuite/25_algorithms/stable_partition/1.cc: New test.
502         * testsuite/util/testsuite_iterators.h (operator,): Add deleted
503         non-member comma operator with iterator wrappers as right operand.
505 2017-10-26  Ville Voutilainen  <ville.voutilainen@gmail.com>
507         Deduction guides for associative containers, debug mode deduction
508         guide fixes.
509         * include/bits/stl_iterator.h (__iter_key_t)
510         (__iter_val_t, __iter_to_alloc_t): New.
511         * include/bits/stl_map.h: Add deduction guides.
512         * include/bits/stl_multimap.h: Likewise.
513         * include/bits/stl_multiset.h: Likewise.
514         * include/bits/stl_set.h: Likewise.
515         * include/bits/unordered_map.h: Likewise.
516         * include/bits/unordered_set.h: Likewise.
517         * include/debug/deque: Likewise.
518         * include/debug/forward_list: Likewise.
519         * include/debug/list: Likewise.
520         * include/debug/map.h: Likewise.
521         * include/debug/multimap.h: Likewise.
522         * include/debug/multiset.h: Likewise.
523         * include/debug/set.h: Likewise.
524         * include/debug/unordered_map: Likewise.
525         * include/debug/unordered_set: Likewise.
526         * include/debug/vector: Likewise.
527         * testsuite/23_containers/map/cons/deduction.cc: New.
528         * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
529         * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
530         * testsuite/23_containers/set/cons/deduction.cc: Likewise.
531         * testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
532         * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
533         Likewise.
534         * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
535         Likewise.
536         * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
538 2017-10-25  Jonathan Wakely  <jwakely@redhat.com>
540         * doc/xml/manual/status_cxx2017.xml: Update C++17 status, and
541         information on feature-test macros.
542         * doc/html/*: Regenerate.
544         PR libstdc++/82716
545         * include/std/array (tuple_size, tuple_element): Change class-key
546         from class to struct, to avoid annoying Clang warnings.
548         PR libstdc++/79283
549         * src/filesystem/ops.cc (read_symlink): Handle st_size being zero.
550         * src/filesystem/std-ops.cc (read_symlink): Likewise.
551         (do_copy_file) [!NEED_DO_COPY_FILE]: Avoid multiple definitions.
553         * src/filesystem/std-path.cc (path::lexically_normal): Add missing
554         step to algorithm, for removing dot-dot elements after root-directory.
555         * testsuite/27_io/filesystem/operations/canonical.cc: Use
556         compare_paths for more exhaustive checks.
557         * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
558         * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
559         * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
560         * testsuite/27_io/filesystem/path/concat/strings.cc: Fix comment.
561         * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
562         * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
563         Likewise.
564         * testsuite/27_io/filesystem/path/generation/normal.cc: Use
565         compare_paths for more exhaustive checks. Add extra testcases.
566         * testsuite/27_io/filesystem/path/generation/proximate.cc: Use
567         compare_paths for more exhaustive checks.
568         * testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
569         * testsuite/27_io/filesystem/path/generic/generic_string.cc: Remove
570         unused header.
571         * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: Fix
572         comment.
573         * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: Use
574         compare_paths for more exhaustive checks.
575         * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
576         Likewise.
577         * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
578         Likewise.
579         * testsuite/util/testsuite_fs.h (compare_paths): Also compare native
580         strings.
582         PR libstdc++/82706
583         * testsuite/27_io/filesystem/operations/permissions.cc: Fix test.
585 2017-10-24  François Dumont  <fdumont@gcc.gnu.org>
587         * testsuite/lib/libstdc++.exp (check_v3_target_normal_mode): Add
588         c++config.h include.
589         (check_v3_target_normal_namespace): New.
590         * testsuite/lib/dg-options.exp (dg-require-normal-namespace): New.
591         * testsuite/18_support/headers/limits/synopsis.cc: Add latter.
592         * testsuite/20_util/from_chars/requirements.cc: Likewise.
593         * testsuite/20_util/headers/functional/synopsis.cc: Likewise.
594         * testsuite/20_util/headers/memory/synopsis.cc: Likewise.
595         * testsuite/20_util/headers/utility/synopsis.cc: Likewise.
596         * testsuite/20_util/to_chars/requirements.cc: Likewise.
597         * testsuite/21_strings/headers/string/synopsis.cc: Likewise.
598         * testsuite/22_locale/headers/locale/synopsis.cc: Likewise.
599         * testsuite/23_containers/headers/bitset/synopsis.cc: Likewise.
600         * testsuite/23_containers/headers/deque/synopsis.cc: Likewise.
601         * testsuite/23_containers/headers/forward_list/synopsis.cc: Likewise.
602         * testsuite/23_containers/headers/list/synopsis.cc: Likewise.
603         * testsuite/23_containers/headers/map/synopsis.cc: Likewise.
604         * testsuite/23_containers/headers/queue/synopsis.cc: Likewise.
605         * testsuite/23_containers/headers/set/synopsis.cc: Likewise.
606         * testsuite/23_containers/headers/stack/synopsis.cc: Likewise.
607         * testsuite/23_containers/headers/vector/synopsis.cc: Likewise.
608         * testsuite/23_containers/map/modifiers/erase/abi_tag.cc: Likewise.
609         * testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc: Likewise.
610         * testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc: Likewise.
611         * testsuite/23_containers/set/modifiers/erase/abi_tag.cc: Likewise.
612         * testsuite/24_iterators/headers/iterator/synopsis.cc: Likewise.
613         * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: Likewise.
614         * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: Likewise.
615         * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Likewise.
616         * testsuite/26_numerics/complex/abi_tag.cc: Likewise.
617         * testsuite/26_numerics/headers/complex/synopsis.cc: Likewise.
618         * testsuite/26_numerics/headers/valarray/synopsis.cc: Likewise.
619         * testsuite/27_io/headers/fstream/synopsis.cc: Likewise.
620         * testsuite/27_io/headers/ios/synopsis.cc: Likewise.
621         * testsuite/27_io/headers/istream/synopsis.cc: Likewise.
622         * testsuite/27_io/headers/ostream/synopsis.cc: Likewise.
623         * testsuite/27_io/headers/sstream/synopsis.cc: Likewise.
624         * testsuite/27_io/headers/streambuf/synopsis.cc: Likewise.
626 2017-10-24  Jonathan Wakely  <jwakely@redhat.com>
628         * config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Ignore
629         -Wattribute-alias warnings.
630         * src/c++11/istream-inst.cc: Likewise.
631         * src/c++11/locale-inst.cc: Likewise.
632         * src/c++11/ostream-inst.cc: Likewise.
633         * src/c++11/wlocale-inst.cc: Likewise.
634         * src/c++98/hash-long-double-tr1-aux.cc: Likewise.
636         * include/bits/string_view.tcc (find_first_of, find_last_of)
637         (find_first_not_of, find_last_not_of): Add noexcept.
638         * include/std/string_view (basic_string_view(const _CharT*))
639         (basic_string_view(const _CharT*, size_type))
640         (front, back, remove_prefix, remove_suffix, find, rfind)
641         (find_first_of, find_first_not_of): Add noexcept.
642         (at(size_type), _S_compare(size_type, size_type)): Replace conditional
643         expressions with if statements.
644         (copy(_CharT*, size_type, size_type), substr(size_type, size_type)):
645         Use _M_check for length checks.
646         (compare(basic_string_view)): Reformat.
647         (_M_check(size_type, const char)): Add noexcept(false).
648         (_M_limit(size_type, size_type)): Use noexcept not _GLIBCXX_NOEXCEPT.
650         PR libstdc++/82685
651         * include/experimental/string_view (operator""sv): Add noexcept.
652         * include/std/string_view (operator""sv): Likewise.
654 2017-10-23  Jonathan Wakely  <jwakely@redhat.com>
656         * include/Makefile.am: Add new headers for C++17 filesystem library.
657         * include/Makefile.in: Regenerate.
658         * include/bits/fs_dir.h: New header, based on Filesystem TS code in
659         include/experimental/bits directory.
660         * include/bits/fs_fwd.h: Likewise.
661         * include/bits/fs_ops.h: Likewise.
662         * include/bits/fs_path.h: Likewise.
663         * include/experimental/bits/fs_dir.h: Rename Doxygen group.
664         * include/experimental/bits/fs_fwd.h: Likewise.
665         * include/experimental/bits/fs_ops.h: Likewise.
666         * include/experimental/bits/fs_path.h: Likewise.
667         * include/experimental/filesystem (filesystem_error::_M_gen_what):
668         Remove inline definition.
669         * include/precompiled/stdc++.h: Add <filesystem> to precompiled
670         header.
671         * include/std/filesystem: New header.
672         * python/libstdcxx/v6/printers.py: Enable printer for std::filesystem
673         paths.
674         * src/filesystem/Makefile.am: Add new files. Compile as C++17.
675         * src/filesystem/Makefile.in: Regenerate.
676         * src/filesystem/cow-dir.cc: Update comment.
677         * src/filesystem/cow-ops.cc: Likewise.
678         * src/filesystem/cow-path.cc: Likewise.
679         * src/filesystem/cow-std-dir.cc: New file.
680         * src/filesystem/cow-std-ops.cc: New file.
681         * src/filesystem/cow-std-path.cc: New file.
682         * src/filesystem/dir-common.h (_Dir_base, get_file_type): New header
683         for common code.
684         * src/filesystem/dir.cc (_Dir): Derive from _Dir_base.
685         (open_dir): Move to _Dir_base constructor.
686         (get_file_type): Move to dir-common.h.
687         (recurse): Move to _Dir_base::should_recurse.
688         * src/filesystem/ops-common.h: New header for common code.
689         * src/filesystem/ops.cc (is_set, make_file_type, make_file_status)
690         (is_not_found_errno, file_time, do_copy_file): Move to ops-common.h.
691         * src/filesystem/path.cc (filesystem_error::_M_gen_what): Define.
692         * src/filesystem/std-dir.cc: New file, based on Filesystem TS code.
693         * src/filesystem/std-ops.cc: Likewise.
694         * src/filesystem/std-dir.cc: Likewise.
695         * testsuite/27_io/filesystem/iterators/directory_iterator.cc: New
696         test.
697         * testsuite/27_io/filesystem/iterators/pop.cc: New test.
698         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
699         New test.
700         * testsuite/27_io/filesystem/operations/absolute.cc: New test.
701         * testsuite/27_io/filesystem/operations/canonical.cc: New test.
702         * testsuite/27_io/filesystem/operations/copy.cc: New test.
703         * testsuite/27_io/filesystem/operations/copy_file.cc: New test.
704         * testsuite/27_io/filesystem/operations/create_directories.cc: New
705         test.
706         * testsuite/27_io/filesystem/operations/create_directory.cc: New test.
707         * testsuite/27_io/filesystem/operations/create_symlink.cc: New test.
708         * testsuite/27_io/filesystem/operations/current_path.cc: New test.
709         * testsuite/27_io/filesystem/operations/equivalent.cc: New test.
710         * testsuite/27_io/filesystem/operations/exists.cc: New test.
711         * testsuite/27_io/filesystem/operations/file_size.cc: New test.
712         * testsuite/27_io/filesystem/operations/is_empty.cc: New test.
713         * testsuite/27_io/filesystem/operations/last_write_time.cc: New test.
714         * testsuite/27_io/filesystem/operations/permissions.cc: New test.
715         * testsuite/27_io/filesystem/operations/proximate.cc: New test.
716         * testsuite/27_io/filesystem/operations/read_symlink.cc: New test.
717         * testsuite/27_io/filesystem/operations/relative.cc: New test.
718         * testsuite/27_io/filesystem/operations/remove_all.cc: New test.
719         * testsuite/27_io/filesystem/operations/space.cc: New test.
720         * testsuite/27_io/filesystem/operations/status.cc: New test.
721         * testsuite/27_io/filesystem/operations/symlink_status.cc: New test.
722         * testsuite/27_io/filesystem/operations/temp_directory_path.cc: New
723         test.
724         * testsuite/27_io/filesystem/operations/weakly_canonical.cc: New test.
725         * testsuite/27_io/filesystem/path/append/path.cc: New test.
726         * testsuite/27_io/filesystem/path/assign/assign.cc: New test.
727         * testsuite/27_io/filesystem/path/assign/copy.cc: New test.
728         * testsuite/27_io/filesystem/path/compare/compare.cc: New test.
729         * testsuite/27_io/filesystem/path/compare/path.cc: New test.
730         * testsuite/27_io/filesystem/path/compare/strings.cc: New test.
731         * testsuite/27_io/filesystem/path/concat/path.cc: New test.
732         * testsuite/27_io/filesystem/path/concat/strings.cc: New test.
733         * testsuite/27_io/filesystem/path/construct/copy.cc: New test.
734         * testsuite/27_io/filesystem/path/construct/default.cc: New test.
735         * testsuite/27_io/filesystem/path/construct/locale.cc: New test.
736         * testsuite/27_io/filesystem/path/construct/range.cc: New test.
737         * testsuite/27_io/filesystem/path/construct/string_view.cc: New test.
738         * testsuite/27_io/filesystem/path/decompose/extension.cc: New test.
739         * testsuite/27_io/filesystem/path/decompose/filename.cc: New test.
740         * testsuite/27_io/filesystem/path/decompose/parent_path.cc: New test.
741         * testsuite/27_io/filesystem/path/decompose/relative_path.cc: New
742         test.
743         * testsuite/27_io/filesystem/path/decompose/root_directory.cc: New
744         test.
745         * testsuite/27_io/filesystem/path/decompose/root_name.cc: New test.
746         * testsuite/27_io/filesystem/path/decompose/root_path.cc: New test.
747         * testsuite/27_io/filesystem/path/decompose/stem.cc: New test.
748         * testsuite/27_io/filesystem/path/generation/normal.cc: New test.
749         * testsuite/27_io/filesystem/path/generation/proximate.cc: New test.
750         * testsuite/27_io/filesystem/path/generation/relative.cc: New test.
751         * testsuite/27_io/filesystem/path/generic/generic_string.cc: New test.
752         * testsuite/27_io/filesystem/path/itr/traversal.cc: New test.
753         * testsuite/27_io/filesystem/path/modifiers/clear.cc: New test.
754         * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: New
755         test.
756         * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: New
757         test.
758         * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: New
759         test.
760         * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc: New
761         test.
762         * testsuite/27_io/filesystem/path/modifiers/swap.cc: New test.
763         * testsuite/27_io/filesystem/path/native/string.cc: New test.
764         * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: New test.
765         * testsuite/27_io/filesystem/path/query/empty.cc: New test.
766         * testsuite/27_io/filesystem/path/query/has_extension.cc: New test.
767         * testsuite/27_io/filesystem/path/query/has_filename.cc: New test.
768         * testsuite/27_io/filesystem/path/query/has_parent_path.cc: New test.
769         * testsuite/27_io/filesystem/path/query/has_relative_path.cc: New
770         test.
771         * testsuite/27_io/filesystem/path/query/has_root_directory.cc: New
772         test.
773         * testsuite/27_io/filesystem/path/query/has_root_name.cc: New test.
774         * testsuite/27_io/filesystem/path/query/has_root_path.cc: New test.
775         * testsuite/27_io/filesystem/path/query/has_stem.cc: New test.
776         * testsuite/27_io/filesystem/path/query/is_relative.cc: New test.
777         * testsuite/experimental/filesystem/path/construct/string_view.cc:
778         Define USE_FILESYSTEM_TS.
779         * testsuite/util/testsuite_fs.h: Allow use with C++17 paths as well
780         as Filesystem TS.
782         PR libstdc++/82644
783         * doc/xml/manual/intro.xml: Include new section.
784         * doc/xml/manual/status_cxxis29124.xml: New section on IS 29124
785         status.
786         * include/bits/specfun.h [__STRICT_ANSI__] (hyperg, hypergf, hypergl)
787         (conf_hyperg, conf_hypergf, conf_hypergl): Don't declare.
788         * include/c_compatibility/math.h: Import special functions into
789         global namespace for C++17.
790         * testsuite/26_numerics/headers/cmath/82644.cc: New test.
791         * testsuite/26_numerics/headers/cmath/functions_global_c++17.cc: New
792         test.
794 2017-10-21  Jonathan Wakely  <jwakely@redhat.com>
796         * testsuite/experimental/filesystem/path/itr/traversal.cc: Do not
797         increment past-the-end iterators.
799 2017-10-20  Jonathan Wakely  <jwakely@redhat.com>
801         * include/std/chrono (__cpp_lib_chrono): Update macro value to
802         indicate support for P0505R0.
803         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Check
804         for updated macro.
806         * include/c_global/cstddef: Define __cpp_lib_byte feature-test macro.
807         * testsuite/18_support/byte/requirements.cc: Check macro.
809 2017-10-19  Jonathan Wakely  <jwakely@redhat.com>
811         * testsuite/experimental/filesystem/iterators/
812         recursive_directory_iterator.cc: Ensure that error_code arguments are
813         cleared when required.
814         * testsuite/experimental/filesystem/operations/create_directory.cc:
815         Remove redundant check.
816         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
817         Ensure that error_code argument is cleared when required.
819         * include/experimental/bits/fs_path.h (path::iterator++(int))
820         (path::iterator--(int)): Fix for paths with only one component.
821         * testsuite/experimental/filesystem/path/itr/traversal.cc: Test
822         post-increment and post-decrement.
824         * doc/xml/manual/status_cxx2017.xml: Update references to C++17
825         section numbers.
827         * testsuite/decimal/conversion-to-integral.cc: Use predefined macro
828         instead of non-standard glibc one.
830 2017-10-16  François Dumont  <fdumont@gcc.gnu.org>
832         PR libstdc++/82558
833         * include/bits/stl_bvector.h (fill): Add iterator offset check.
834         * testsuite/23_containers/vector/bool/82558.cc: New.
836 2017-10-13  Jonathan Wakely  <jwakely@redhat.com>
838         PR libstdc++/82522
839         * doc/xml/manual/intro.xml: Document LWG 2354 changes.
840         * include/bits/stl_map.h (map::insert(value_type&&))
841         (map::insert(const_iterator, value_type&&)): Add overload for rvalues.
842         * include/bits/stl_multimap.h (multimap::insert(value_type&&))
843         (multimap::insert(const_iterator, value_type&&)): Likewise.
844         * include/bits/unordered_map.h (unordered_map::insert(value_type&&))
845         (unordered_map::insert(const_iterator, value_type&&))
846         (unordered_multimap::insert(value_type&&))
847         (unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
848         * testsuite/23_containers/map/modifiers/insert/dr2354.cc: New test.
849         * testsuite/23_containers/multimap/modifiers/insert/dr2354.cc: New
850         test.
851         * testsuite/23_containers/unordered_map/insert/dr2354.cc: New test.
852         * testsuite/23_containers/unordered_multimap/insert/dr2354.cc: New
853         test.
855         PR libstdc++/82481
856         * include/std/mutex (call_once): Suppress clang-tidy warnings about
857         dangling references.
859 2017-10-10  Jonathan Wakely  <jwakely@redhat.com>
861         * include/bits/streambuf_iterator.h (istreambuf_iterator::equal):
862         Update comment about NAD issue.
864         PR libstdc++/59087
865         PR libstdc++/82417
866         * include/c_compatibility/complex.h [!C++98 && __STRICT_ANSI__]: Do
867         not include C library's <complex.h>.
868         * testsuite/26_numerics/complex/c99.cc: Depend on __STRICT_ANSI__.
869         * testsuite/26_numerics/headers/complex.h/std_c++11.h: New test.
870         * testsuite/26_numerics/headers/complex.h/std_gnu++11.h: New test.
871         * testsuite/26_numerics/headers/complex.h/std_c++98.h: New test.
873 2017-10-05  Jonathan Wakely  <jwakely@redhat.com>
875         * testsuite/20_util/to_chars/1.cc: Add dg-require-string-conversions.
877 2017-10-04  Petr Ovtchenkov  <ptr@void-ptr.info>
878             François Dumont  <fdumont@gcc.gnu.org>
880         * include/bits/streambuf_iterator.h
881         (istreambuf_iterator<>::operator*()): Do not capture iterator state
882         in Debug assertion.
883         (istreambuf_iterator<>::operator++()): Likewise and remove _M_sbuf check.
884         (istreambuf_iterator<>::operator++(int)): Likewise.
885         (istreambuf_iterator<>::_M_get()): Remove _M_c assignment.
886         (istreambuf_iterator<>::_S_is_eof()): New.
887         (istreambuf_iterator<>::_M_at_eof()): Adapt, use latter.
888         (find(istreambuf_iterator<>, istreambuf_iterator<>, _CharT)):
889         Return an iterator with _M_c set to eof to capture streambuf state
890         on evaluation.
891         (testsuite/24_iterators/istreambuf_iterator/2.cc): Add checks.
893 2017-10-03  Jakub Jelinek  <jakub@redhat.com>
895         * include/std/charconv (__unsigned_least_t): Fix number of closing >s for
896         !_GLIBCXX_USE_INT128.
898 2017-10-02  Jonathan Wakely  <jwakely@redhat.com>
900         * include/Makefile.am: Add new <charconv> header.
901         * include/Makefile.in: Regenerate.
902         * include/precompiled/stdc++.h: Include <charconv>.
903         * include/std/charconv: New file.
904         (to_chars_result, to_chars, from_chars_result, from_chars): Define.
905         * testsuite/20_util/from_chars/1.cc: New test.
906         * testsuite/20_util/from_chars/1_neg.cc: New test.
907         * testsuite/20_util/from_chars/2.cc: New test.
908         * testsuite/20_util/from_chars/requirements.cc: New test.
909         * testsuite/20_util/to_chars/1.cc: New test.
910         * testsuite/20_util/to_chars/1_neg.cc: New test.
911         * testsuite/20_util/to_chars/2.cc: New test.
912         * testsuite/20_util/to_chars/requirements.cc: New test.
914 2017-09-27  François Dumont  <fdumont@gcc.gnu.org>
916         * testsuite/22_locale/money_get/get/char/22131.cc: Make test less
917         istreambuf_iterator implementation dependent.
918         * testsuite/22_locale/money_get/get/wchar_t/22131.cc: Likewise.
920 2017-09-25  Uros Bizjak  <ubizjak@gmail.com>
922         PR c/81854
923         * src/c++98/complex_io.cc (_GLIBCXX_LDBL_COMPAT): Declare alias
924         target as a C++ function with no prototype.
926 2017-09-21  Jonathan Wakely  <jwakely@redhat.com>
928         * testsuite/25_algorithms/clamp/1.cc: Fix order of arguments and
929         expected results when using predicate defining reverse order.
930         * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
932 2017-09-20  Jonathan Wakely  <jwakely@redhat.com>
934         PR libstdc++/79162
935         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
936         (basic_string::_If_sv): Remove from the overload set when the
937         argument is derived from basic_string.
939         PR libstdc++/79162
940         * include/bits/basic_string.h (basic_string::_If_sv): Remove from the
941         overload set when the argument is derived from basic_string.
942         * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: New
943         test.
944         * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
945         New test.
947         * testsuite/24_iterators/range_access_cpp17.cc: Fix order of dg-do
948         and dg-options directives. Fix invalid test.
950         PR libstdc++/81469
951         * libsupc++/exception (uncaught_exception): Deprecate for C++17.
952         * testsuite/18_support/exception_ptr/62258.cc: Add -Wno-deprecated.
953         * testsuite/18_support/uncaught_exception/14026.cc: Likewise.
955         * include/bits/c++config (_GLIBCXX17_DEPRECATED): Define.
956         * include/bits/functional_hash.h (__hash_base::result_type)
957         (__hash_base::argument_type): Add _GLIBCXX17_DEPRECATED.
958         * include/std/optional (hash<optional<T>>::result_type)
959         (hash<optional<T>>::argument_type): Add deprecated attribute.
960         (__is_fast_hash<hash<optional<T>>>): Add partial specialization.
961         * include/std/variant (hash<variant<Types...>>::result_type)
962         (hash<variant<Types...>>::argument_type): Add deprecated attribute.
963         (__is_fast_hash<hash<variant<Types...>>>): Add partial specialization.
965         * libsupc++/exception_ptr.h (copy_exception): Remove deprecated
966         non-standard function.
968         PR libstdc++/82262
969         * include/std/optional (__optional_hash_call_base): Add template
970         parameter for remove_const_t<_Tp> and use it consistently.
971         * testsuite/20_util/optional/hash.cc: Test optional<const T>.
973 2017-09-19  Jonathan Wakely  <jwakely@redhat.com>
975         PR libstdc++/71500
976         * include/bits/regex_executor.tcc
977         (_Backref_matcher<BidIt, regex_traits<C>>::_M_apply): Use
978         std::__equal4 instead of C++14 4-iterator overloads of std::equal.
979         * include/bits/stl_algobase.h (__equal4): New functions implementing
980         4-iterator overloads of std::equal for use in C++11.
981         (equal(It1, It1, It2, It2), equal(It1, It1, It2, It2, BinaryPred)):
982         Move function bodies to new __equal4 functions.
983         * testsuite/28_regex/simple_c++11.cc: New.
985         PR libstdc++/82254
986         * include/std/type_traits (__is_invocable): Add partial specialization
987         for INVOKE<void> case and remove is_void<R> check from partial
988         specialization for INVOKE<R> case.
989         (__is_nt_invocable_impl): New helper for is_nothrow_invocable_r.
990         (is_nothrow_invocable_r): Use __is_nt_invocable_impl.
991         * testsuite/20_util/is_nothrow_invocable/value.cc: Add tests for
992         conversions that can throw or fail to convert. Use static assert
993         strings to explain negative results.
994         * testsuite/20_util/is_nothrow_invocable/value_ext.cc: Use
995         is_nothrow_constructible in is_nt_invocable_conv.
997 2017-09-18  Jonathan Wakely  <jwakely@redhat.com>
999         PR libstdc++/81468
1000         * testsuite/20_util/duration/cons/dr1177.cc: Fix incorrect test and
1001         improve static assertion messages.
1003         * include/std/utility (_Itup_cat, _Make_integer_sequence): Remove.
1004         (_Build_index_tuple, make_integer_sequence): Use built-in to generate
1005         pack expansion.
1007         PR libstdc++/71187
1008         * include/std/type_traits (__declval): New function to deduce return
1009         type of declval.
1010         (__declval_protector::_delegate): Remove.
1011         (declval): Use __declval instead of add_rvalue_reference and
1012         __declval_protector::__delegate.
1013         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1014         lineno.
1015         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
1016         Likewise.
1017         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1018         Likewise.
1020 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
1022         * testsuite/libstdc++-prettyprinters/cxx17.cc: Use -std=c++17 or
1023         -std=gnu++17 instead of -std=c++1z or -std=gnu++1z.  Use c++17 instead
1024         of c++1z and c++17_only instead of c++1z_only.  Adjust expected
1025         diagnostics and comments refering to 1z to 17.
1026         * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
1027         * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
1028         * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
1029         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
1030         * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
1031         Likewise.
1032         * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
1033         * testsuite/18_support/launder/1.cc (test02): Likewise.
1034         * testsuite/18_support/launder/requirements_neg.cc: Likewise.
1035         * testsuite/18_support/launder/requirements.cc: Likewise.
1036         * testsuite/18_support/byte/requirements.cc: Likewise.
1037         * testsuite/18_support/byte/ops.cc: Likewise.
1038         * testsuite/18_support/byte/global_neg.cc: Likewise.
1039         * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
1040         Likewise.
1041         * testsuite/27_io/types/4.cc: Likewise.
1042         * testsuite/25_algorithms/sample/81221.cc: Likewise.
1043         * testsuite/25_algorithms/sample/1.cc: Likewise.
1044         * testsuite/25_algorithms/sample/2.cc: Likewise.
1045         * testsuite/25_algorithms/search/searcher.cc: Likewise.
1046         * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
1047         * testsuite/experimental/filesystem/path/construct/string_view.cc:
1048         Likewise.
1049         * testsuite/24_iterators/range_access_cpp17.cc: Likewise.
1050         * testsuite/24_iterators/container_access.cc: Likewise.
1051         * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
1052         * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1053         * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1054         * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1055         * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1056         * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1057         * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1058         * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1059         * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1060         * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
1061         * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
1062         * testsuite/20_util/shared_ptr/cons/array.cc: Likewise.
1063         * testsuite/20_util/shared_ptr/observers/array.cc (struct A): Likewise.
1064         * testsuite/20_util/pair/cons/deduction.cc: Likewise.
1065         * testsuite/20_util/variant/deduction.cc: Likewise.
1066         * testsuite/20_util/tuple/78939.cc: Likewise.
1067         * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
1068         * testsuite/20_util/void_t/1.cc: Likewise.
1069         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Likewise.
1070         * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
1071         * testsuite/20_util/addressof/requirements/constexpr.cc: Likewise.
1072         * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
1073         * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
1074         Likewise.
1075         * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
1076         Likewise.
1077         * testsuite/20_util/has_unique_object_representations/value.cc:
1078         Likewise.
1079         * testsuite/20_util/time_point/arithmetic/constexpr.cc: Likewise.
1080         * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
1081         * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
1082         * testsuite/20_util/function/cons/deduction.cc: Likewise.
1083         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1084         Likewise.
1085         * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
1086         * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
1087         Likewise.
1088         * testsuite/20_util/is_aggregate/value.cc: Likewise.
1089         * testsuite/26_numerics/lcm/1.cc: Likewise.
1090         * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
1091         * testsuite/26_numerics/gcd/1.cc: Likewise.
1092         * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
1093         * testsuite/26_numerics/valarray/deduction.cc: Likewise.
1094         * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Likewise.
1095         * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
1096         * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
1097         Likewise.
1098         * testsuite/23_containers/array/cons/deduction.cc: Likewise.
1099         * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
1100         * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
1101         Likewise.
1102         * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
1103         * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
1104         Likewise.
1105         * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
1106         Likewise.
1107         * testsuite/23_containers/list/cons/deduction.cc: Likewise.
1108         * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
1109         Likewise.
1110         * testsuite/23_containers/forward_list/cons/deduction.cc: Likewise.
1111         * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Likewise.
1112         * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
1113         Likewise.
1114         * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
1115         * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
1116         Likewise.
1117         * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
1118         * testsuite/21_strings/basic_string/cons/char/deduction.cc: Likewise.
1119         * testsuite/21_strings/basic_string/cons/char/79162.cc: Likewise.
1120         * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
1121         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1122         Likewise.
1123         * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: Likewise.
1124         * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
1125         Likewise.
1126         * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
1127         Likewise.
1128         * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
1129         Likewise.
1130         * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
1131         Likewise.
1132         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
1133         Likewise.
1134         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
1135         Likewise.
1137 2017-09-13  Jonathan Wakely  <jwakely@redhat.com>
1139         PR libstdc++/81468
1140         * include/std/chrono (__enable_if_is_duration)
1141         (__disable_if_is_duration): New alias templates to simplify SFINAE.
1142         (duration_cast, floor, ceil): Use __enable_if_is_duration.
1143         (duration::__is_float, duration::__is_harmonic): New alias templates
1144         to simplify SFINAE.
1145         (duration::duration(const _Rep2&)): Use _Require, __is_float and
1146         __is_harmonic.
1147         (duration::duration(const duration<_Rep2, _Period2>&)): Likewise.
1148         (__common_rep_type): Remove, replace with ...
1149         (__common_rep_t): New alias template.
1150         (operator*, operator/, operator%): Use __common_rep_t and
1151         __disable_if_is_duration.
1152         (time_point::time_point(const time_point<clock, _Dur2>&)): Add missing
1153         constraint from LWG DR 1177.
1154         * testsuite/20_util/duration/cons/dr1177.cc: New.
1155         * testsuite/20_util/duration/literals/range.cc: Update dg-error line.
1156         * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1157         * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1158         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1159         * testsuite/20_util/time_point/cons/81468.cc: New.
1161         * doc/doxygen/mainpage.html: Fix broken URLs.
1163         PR libstdc++/81835
1164         * doc/xml/manual/extensions.xml: Replace unstable URL.
1165         * doc/html/manual/ext_demangling.html: Regenerate.
1166         * libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL.
1168         * include/bits/allocated_ptr.h (__allocated_ptr::get): Use
1169         __to_address.
1170         (__allocated_ptr::_S_raw_ptr): Remove.
1171         * include/bits/forward_list.h (_Fwd_list_base::_M_get_node): Use
1172         __to_address.
1173         * include/bits/hashtable_policy.h (_Hashtable_alloc): Likewise.
1174         * include/bits/ptr_traits.h (__to_address): Define new function
1175         template.
1176         * include/bits/shared_ptr_base.h (__shared_ptr): Use __to_address.
1177         (__shared_ptr::_S_raw_ptr): Remove.
1178         * include/bits/stl_vector.h [__cplusplus >= 201103L]
1179         (vector::_M_data_ptr): Use __to_address.
1180         [__cplusplus < 201103L] (vector::_M_data_ptr): Don't dereference
1181         possibly invalid pointers.
1182         * include/ext/alloc_traits.h (__alloc_traits::construct)
1183         (__alloc_traits::destroy): Use __to_address.
1185 2017-09-12  Jonathan Wakely  <jwakely@redhat.com>
1187         PR libstdc++/79433
1188         * include/Makefile.am: Remove <bits/c++14_warning.h>.
1189         * include/Makefile.in: Regenerate.
1190         * include/bits/c++14_warning.h: Remove.
1191         * include/experimental/algorithm: Do not include <c++14_warning.h>.
1192         * include/experimental/any: Likewise.
1193         * include/experimental/array: Likewise.
1194         * include/experimental/bits/erase_if.h: Likewise.
1195         * include/experimental/bits/lfts_config.h: Likewise.
1196         * include/experimental/bits/shared_ptr.h: Likewise.
1197         * include/experimental/bits/string_view.tcc: Likewise.
1198         * include/experimental/chrono: Likewise.
1199         * include/experimental/deque: Likewise.
1200         * include/experimental/filesystem: Do not include <c++0x_warning.h>.
1201         * include/experimental/forward_list: Do not include <c++14_warning.h>.
1202         * include/experimental/functional: Likewise.
1203         * include/experimental/iterator: Likewise.
1204         * include/experimental/list: Likewise.
1205         * include/experimental/map: Likewise.
1206         * include/experimental/memory: Likewise.
1207         * include/experimental/numeric: Likewise.
1208         * include/experimental/optional: Likewise.
1209         * include/experimental/propagate_const: Likewise.
1210         * include/experimental/ratio: Likewise.
1211         * include/experimental/regex: Likewise.
1212         * include/experimental/set: Likewise.
1213         * include/experimental/string: Likewise.
1214         * include/experimental/string_view: Likewise.
1215         * include/experimental/system_error: Likewise.
1216         * include/experimental/tuple: Likewise.
1217         * include/experimental/type_traits: Likewise.
1218         * include/experimental/unordered_map: Likewise.
1219         * include/experimental/unordered_set: Likewise.
1220         * include/experimental/vector: Likewise.
1221         * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error
1222         line number.
1223         * testsuite/experimental/array/neg.cc: Likewise.
1224         * testsuite/experimental/propagate_const/assignment/move_neg.cc:
1225         Likewise.
1226         * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
1227         * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
1228         * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
1229         * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
1230         * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
1232         PR libstdc++/79433
1233         * doc/xml/manual/status_cxx2017.xml: Update feature-test macros.
1234         * doc/html/*: Regenerate.
1235         * include/Makefile.am: Remove <bits/c++17_warning.h>.
1236         * include/Makefile.in: Regenerate.
1237         * include/bits/c++17_warning.h: Remove.
1238         * include/bits/string_view.tcc: Do not include <bits/c++17_warning.h>
1239         for pre-C++17 modes.
1240         * include/std/any: Likewise.
1241         (__cpp_lib_any): Define.
1242         * include/std/mutex (__cpp_lib_scoped_lock): Adjust value as per new
1243         SD-6 draft.
1244         * include/std/numeric (__cpp_lib_gcd_lcm): Define as per new SD-6
1245         draft.
1246         * include/std/optional: Do not include <bits/c++17_warning.h>.
1247         (__cpp_lib_optional): Define.
1248         * include/std/shared_mutex: Do not include <bits/c++14_warning.h>.
1249         * include/std/string_view: Do not include <bits/c++17_warning.h>.
1250         (__cpp_lib_string_view): Define.
1251         * include/std/variant: Do not include <bits/c++17_warning.h>.
1252         (__cpp_lib_variant): Define.
1253         * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error line
1254         numbers.
1255         * testsuite/26_numerics/gcd/1.cc: Test for __cpp_lib_gcd_lcm.
1256         * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
1257         numbers.
1258         * testsuite/26_numerics/lcm/1.cc: Test for __cpp_lib_gcd_lcm.
1259         * testsuite/26_numerics/lcm/lcm_neg.cc: Adjust dg-error line
1260         numbers.
1261         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Adjust
1262         expected value of __cpp_lib_scoped_lock.
1264         PR libstdc++/70483
1265         * include/experimental/bits/string_view.tcc (basic_string_view::find)
1266         (basic_string_view::rfind, basic_string_view::find_first_of)
1267         (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1268         (basic_string_view::find_last_not_of): Add constexpr specifier.
1269         * include/experimental/string_view (basic_string_view::remove_prefix)
1270         (basic_string_view::remove_suffix, basic_string_view::swap)
1271         (basic_string_view::compare, basic_string_view::find)
1272         (basic_string_view::rfind, basic_string_view::find_first_of)
1273         (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1274         (basic_string_view::find_last_not_of, operator==, operator!=)
1275         (operator<, operator>, operator<=, operator>=): Likewise.
1276         * testsuite/experimental/string_view/operations/compare/char/70483.cc:
1277         New.
1279 2017-09-11  Jonathan Wakely  <jwakely@redhat.com>
1281         PR libstdc++/70483
1282         * include/bits/string_view.tcc (basic_string_view::find)
1283         (basic_string_view::rfind, basic_string_view::find_first_of)
1284         (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1285         (basic_string_view::find_last_not_of): Add constexpr specifier.
1286         * include/std/string_view (basic_string_view::operator=)
1287         (basic_string_view::rbegin, basic_string_view::rend)
1288         (basic_string_view::crbegin, basic_string_view::crend)
1289         (basic_string_view::remove_prefix, basic_string_view::remove_suffix)
1290         (basic_string_view::swap, basic_string_view::compare)
1291         (basic_string_view::find, basic_string_view::rfind)
1292         (basic_string_view::find_first_of, basic_string_view::find_last_of)
1293         (basic_string_view::find_first_not_of)
1294         (basic_string_view::find_last_not_of, basic_string_view::_M_check)
1295         (basic_string_view::_M_limit, operator==, operator!=, operator<)
1296         (operator>, operator<=, operator>=): Likewise.
1297         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
1298         char/1.cc: Repeat tests in constexpr context.
1299         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
1300         wchar_t/1.cc: Likewise.
1301         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
1302         char/1.cc: Likewise.
1303         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
1304         wchar_t/1.cc: Likewise.
1305         * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1306         Likewise.
1307         * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1308         Likewise.
1309         * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1310         Likewise.
1311         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1312         Likewise.
1313         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1314         Likewise.
1315         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1316         Likewise.
1317         * testsuite/21_strings/basic_string_view/operators/char/2.cc:
1318         Likewise.
1319         * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1320         Likewise.
1321         * testsuite/21_strings/basic_string_view/range_access/char/1.cc: Test
1322         cbegin, cend, rbegin, rend, crbegin and crend.
1323         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1324         Likewise.
1325         * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1326         Remove trailing whitespace.
1327         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
1328         1.cc: Likewise.
1329         * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
1330         New.
1331         * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
1332         New.
1333         * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
1334         New.
1335         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
1336         2.cc: New.
1338 2017-09-11  Tim Shen  <timshen@google.com>
1340         PR libstdc++/71500
1341         * include/bits/regex_executor.tcc: Support icase in regex_traits<...>
1342         for back reference matches.
1343         * testsuite/28_regex/regression.cc: Test case.
1345 2017-09-11  Jonathan Wakely  <jwakely@redhat.com>
1347         * testsuite/21_strings/basic_string/lwg2946.cc: Adjust for
1348         compatibility with old COW std::string.
1350 2017-09-09  Gerald Pfeifer  <gerald@pfeifer.com>
1352         * doc/xml/manual/allocator.xml: Adjust link for Hoard.
1353         * doc/html/manual/memory.html: Regenerate.
1355 2017-09-04  Daniel Kruegler  <daniel.kruegler@gmail.com>
1357         PR libstdc++/79162
1358         Implement LWG 2946, LWG 2758's resolution missed further corrections
1359         * include/bits/basic_string.h (basic_string::compare): Add missing
1360         required noexcept specifications.
1361         (basic_string): Introduce internal _S_to_string_view and __sv_wrapper
1362         for implicit string_view conversion.
1363         (basic_string::basic_string): Fix explicit string_view conversion by
1364         implicit conversion using _S_to_string_view and __sv_wrapper.
1365         (basic_string): Introduce internal basic_string(__sv_wrapper, Alloc)
1366         constructor.
1367         (basic_string): Fix operator=(T) template by operator=(const T&)
1368         template for uncopyable types (PR 79162).
1369         (basic_string::operator+=, basic_string::append, basic_string::assign)
1370         (basic_string::insert, basic_string::replace, basic_string::find)
1371         (basic_string::rfind, basic_string::find_first_of)
1372         (basic_string::find_last_of, basic_string::find_first_not_of)
1373         (basic_string::find_last_not_of, basic_string::compare): Replace
1374         __sv_type argument by template const T& (LWG 2946) and correct
1375         documentation describing __sv_type argument.
1376         (basic_string::find, basic_string::rfind, basic_string::find_first_of)
1377         (basic_string::find_last_of, basic_string::find_first_not_of)
1378         (basic_string::find_last_not_of, basic_string::compare): Replace
1379         unconditional noexcept specification by conditional noexcept
1380         specification to partially balance the removal of noexcept by LWG 2946.
1381         * testsuite/21_strings/basic_string/79162.cc: New.
1382         * testsuite/21_strings/basic_string/lwg2946.cc: New.
1384 2017-08-31  Jonathan Wakely  <jwakely@redhat.com>
1386         PR c++/82039
1387         * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
1388         Adjust null pointer constant to avoid warning.
1390 2017-08-24  François Dumont  <fdumont@gcc.gnu.org>
1392         * include/bits/stl_list.h
1393         [!_GLIBCXX_INLINE_VERSION](_List_base<>::_S_distance): Remove.
1394         (_List_impl(_Node_alloc_type&&, _List_impl&&)): New.
1395         (_List_base(_Node_alloc_type&&, _List_base&&)): New, use latter.
1396         [!_GLIBCXX_INLINE_VERSION](_List_base(_Node_alloc_type&&,_List_base&&)):
1397         Remove.
1398         (_List_base(_Node_alloc_type&&)): New.
1399         [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_distance): Remove.
1400         [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_node_count): Remove.
1401         (list<>::_M_node_count): New.
1402         (list<>::size()): Adapt to call latter.
1403         (list<>::_S_distance(const_iterator, const_iterator)): New.
1404         (list<>::splice(iterator, list&, const_iterator, const_iterator)):
1405         Adapt to call latter.
1406         (list(list&&, const allocator_type&, true_type)): New.
1407         (list(list&&, const allocator_type&, false_type)): New.
1408         (list(list&&, const allocator_type&)): Adapt to call latters.
1410 2017-08-21  Jonathan Wakely  <jwakely@redhat.com>
1412         PR libstdc++/81912
1413         * include/bits/stl_iterator_base_types.h (__iterator_category): Add
1414         constexpr for C++11 and later.
1415         * testsuite/24_iterators/container_access.cc: Add target selector.
1416         * testsuite/24_iterators/range_access.cc: Fix clause number in
1417         comment.
1418         * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
1419         * testsuite/24_iterators/range_access_cpp17.cc: New.
1421 2017-08-21  Richard Biener  <rguenther@suse.de>
1423         * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Run all
1424         tests with -flto as well if supported.
1426 2017-08-20  Martin Sebor  <msebor@redhat.com>
1428         PR c/81854
1429         * src/c++98/compatibility.cc (_GLIBCXX_3_4_SYMVER): Declare alias
1430         target as a C++ function with no prototype.
1431         (_GLIBCXX_3_4_5_SYMVER): Ditto.
1433 2017-08-20  John David Anglin  <danglin@gcc.gnu.org>
1435         PR testsuite/81056
1436         * testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__.
1438 2017-08-18  Jonathan Wakely  <jwakely@redhat.com>
1440         * include/bits/hashtable_policy.h (_ReuseOrAllocNode): Remove
1441         __value_alloc_type and __value_alloc_traits typedefs.
1442         (_ReuseOrAllocNode::operator()): Call construct and destroy on the
1443         node allocator.
1444         (_Hashtable_alloc): Simplify __value_alloc_traits typedef.
1445         (_Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&&...)): Call
1446         construct on the node allocator.
1447         (_Hashtable_alloc<_NodeAlloc>::_M_deallocate_node(__node_type*)): Call
1448         destroy on the node allocator.
1450         PR libstdc++/81891
1451         * include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
1452         size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
1453         const _ExtractKey&, const allocator_type&)): Let destructor do clean
1454         up if an exception is thrown.
1455         * testsuite/23_containers/unordered_map/cons/81891.cc: New.
1457 2017-08-11  Jonathan Wakely  <jwakely@redhat.com>
1459         PR libstdc++/81808
1460         * testsuite/27_io/basic_fstream/53984.cc: Adjust test for targets
1461         that allow opening a directory as a FILE and reading from it.
1463 2017-08-09  Jonathan Wakely  <jwakely@redhat.com>
1465         * include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP):
1466         Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use
1467         __is_identifier to set it.
1469 2017-08-09  Katsuhiko Nishimra  <ktns.87@gmail.com>
1471         * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
1472         __is_identifier instead of __has_builtin.
1474 2017-08-09  Jonathan Wakely  <jwakely@redhat.com>
1476         PR libstdc++/79820
1477         PR libstdc++/81751
1478         * config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)):
1479         Call fflush on the stream instead of calling sync() while _M_cfile is
1480         null. Restore original value of errno.
1481         * testsuite/ext/stdio_filebuf/char/79820.cc: New.
1482         * testsuite/ext/stdio_filebuf/char/81751.cc: New.
1484 2017-07-31  Marek Polacek  <polacek@redhat.com>
1486         PR libstdc++/81599
1487         * include/bits/stl_stack.h: Fix typo.
1489 2017-07-26  Jonathan Wakely  <jwakely@redhat.com>
1491         * testsuite/27_io/basic_fstream/53984.cc: Fix test.
1493 2017-07-26  Paolo Carlini  <paolo.carlini@oracle.com>
1495         * testsuite/27_io/basic_fstream/53984.cc: Fix typo in dg-require
1496         directive.
1498 2017-07-25  Jonathan Wakely  <jwakely@redhat.com>
1500         PR libstdc++/53984
1501         * include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment.
1502         * include/bits/istream.tcc (basic_istream::sentry): Handle exceptions
1503         during construction.
1504         * include/std/istream: Adjust comments for formatted input functions
1505         and unformatted input functions.
1506         * testsuite/27_io/basic_fstream/53984.cc: New.
1507         * testsuite/27_io/basic_istream/sentry/char/53984.cc: New.
1509         * include/bits/ios_base.h (ios_base::io_state, ios_base::open_mode)
1510         (ios_base::seek_dir): Remove for C++17.
1511         * include/std/streambuf (basic_streambuf::stossc): Remove for C++17.
1512         Add deprecated attribute for C++11 and C++14.
1513         * testsuite/27_io/types/1.cc: Don't run for C++17 and later.
1514         * testsuite/27_io/types/4.cc: New.
1516 2017-07-23  Michael Collison  <michael.collison@arm.com>
1518         Add optimized implementation of mersenne twister for aarch64
1519         * config/cpu/aarch64/opt/ext/opt_random.h: New file.
1520         (__arch64_recursion): New function.
1521         (__aarch64_lsr_128): New function.
1522         (__aarch64_lsl_128): New function.
1523         (operator==): New function.
1524         (simd_fast_mersenne_twister_engine): Implement
1525         method _M_gen_rand.
1526         * config/cpu/aarch64/opt/bits/opt_random.h: New file.
1527         * include/ext/random: (simd_fast_mersenne_twister_engine):
1528         add _M_state private array.
1530 2017-07-23  François Dumont  <fdumont@gcc.gnu.org>
1532         PR libstdc++/81064
1533         * include/bits/algorithmfwd.h: Reorganize versioned namespace.
1534         * include/bits/basic_string.h: Likewise.
1535         * include/bits/c++config: Likewise.
1536         * include/bits/deque.tcc: Likewise.
1537         * include/bits/forward_list.h: Likewise.
1538         * include/bits/forward_list.tcc: Likewise.
1539         * include/bits/hashtable_policy.h: Likewise.
1540         * include/bits/list.tcc: Likewise.
1541         * include/bits/move.h: Likewise.
1542         * include/bits/quoted_string.h: Likewise.
1543         * include/bits/random.h: Likewise.
1544         * include/bits/random.tcc: Likewise.
1545         * include/bits/regex.h: Likewise.
1546         * include/bits/regex.tcc: Likewise.
1547         * include/bits/regex_automaton.h: Likewise.
1548         * include/bits/regex_automaton.tcc: Likewise.
1549         * include/bits/regex_compiler.h: Likewise.
1550         * include/bits/regex_compiler.tcc: Likewise.
1551         * include/bits/regex_constants.h: Likewise.
1552         * include/bits/regex_error.h: Likewise.
1553         * include/bits/regex_executor.h: Likewise.
1554         * include/bits/regex_executor.tcc: Likewise.
1555         * include/bits/regex_scanner.h: Likewise.
1556         * include/bits/regex_scanner.tcc: Likewise.
1557         * include/bits/specfun.h: Likewise.
1558         * include/bits/stl_algo.h: Likewise.
1559         * include/bits/stl_algobase.h: Likewise.
1560         * include/bits/stl_bvector.h: Likewise.
1561         * include/bits/stl_deque.h: Likewise.
1562         * include/bits/stl_iterator.h: Likewise.
1563         * include/bits/stl_iterator_base_funcs.h: Likewise.
1564         * include/bits/stl_list.h: Likewise.
1565         * include/bits/stl_map.h: Likewise.
1566         * include/bits/stl_multimap.h: Likewise.
1567         * include/bits/stl_multiset.h: Likewise.
1568         * include/bits/stl_relops.h: Likewise.
1569         * include/bits/stl_set.h: Likewise.
1570         * include/bits/stl_vector.h: Likewise.
1571         * include/bits/uniform_int_dist.h: Likewise.
1572         * include/bits/unordered_map.h: Likewise.
1573         * include/bits/unordered_set.h: Likewise.
1574         * include/bits/vector.tcc: Likewise.
1575         * include/c_global/cmath: Likewise.
1576         * include/c_std/cmath: Likewise.
1577         * include/decimal/decimal: Likewise.
1578         * include/decimal/decimal.h: Likewise.
1579         * include/experimental/algorithm: Likewise.
1580         * include/experimental/any: Likewise.
1581         * include/experimental/array: Likewise.
1582         * include/experimental/bits/erase_if.h: Likewise.
1583         * include/experimental/bits/fs_dir.h: Likewise.
1584         * include/experimental/bits/fs_fwd.h: Likewise.
1585         * include/experimental/bits/fs_ops.h: Likewise.
1586         * include/experimental/bits/fs_path.h: Likewise.
1587         * include/experimental/bits/lfts_config.h: Likewise.
1588         * include/experimental/bits/shared_ptr.h: Likewise.
1589         * include/experimental/bits/string_view.tcc: Likewise.
1590         * include/experimental/chrono: Likewise.
1591         * include/experimental/deque: Likewise.
1592         * include/experimental/filesystem: Likewise.
1593         * include/experimental/forward_list: Likewise.
1594         * include/experimental/functional: Likewise.
1595         * include/experimental/iterator: Likewise.
1596         * include/experimental/list: Likewise.
1597         * include/experimental/map: Likewise.
1598         * include/experimental/memory: Likewise.
1599         * include/experimental/memory_resource: Likewise.
1600         * include/experimental/numeric: Likewise.
1601         * include/experimental/optional: Likewise.
1602         * include/experimental/propagate_const: Likewise.
1603         * include/experimental/random: Likewise.
1604         * include/experimental/ratio: Likewise.
1605         * include/experimental/regex: Likewise.
1606         * include/experimental/set: Likewise.
1607         * include/experimental/source_location: Likewise.
1608         * include/experimental/string: Likewise.
1609         * include/experimental/string_view: Likewise.
1610         * include/experimental/system_error: Likewise.
1611         * include/experimental/tuple: Likewise.
1612         * include/experimental/type_traits: Likewise.
1613         * include/experimental/unordered_map: Likewise.
1614         * include/experimental/unordered_set: Likewise.
1615         * include/experimental/utility: Likewise.
1616         * include/experimental/vector: Likewise.
1617         * include/ext/bitmap_allocator.h: Likewise.
1618         * include/ext/codecvt_specializations.h: Likewise.
1619         * include/ext/rope: Likewise.
1620         * include/ext/typelist.h: Likewise.
1621         * include/std/chrono: Likewise.
1622         * include/std/complex: Likewise.
1623         * include/std/functional: Likewise.
1624         * include/std/numeric: Likewise.
1625         * include/std/string_view: Likewise.
1626         * include/std/thread: Likewise.
1627         * include/std/variant: Likewise.
1628         * include/tr1/array: Likewise.
1629         * include/tr1/bessel_function.tcc: Likewise.
1630         * include/tr1/beta_function.tcc: Likewise.
1631         * include/tr1/cmath: Likewise.
1632         * include/tr1/complex: Likewise.
1633         * include/tr1/ell_integral.tcc: Likewise.
1634         * include/tr1/exp_integral.tcc: Likewise.
1635         * include/tr1/functional: Likewise.
1636         * include/tr1/functional_hash.h: Likewise.
1637         * include/tr1/gamma.tcc: Likewise.
1638         * include/tr1/hashtable.h: Likewise.
1639         * include/tr1/hashtable_policy.h: Likewise.
1640         * include/tr1/hypergeometric.tcc: Likewise.
1641         * include/tr1/legendre_function.tcc: Likewise.
1642         * include/tr1/modified_bessel_func.tcc: Likewise.
1643         * include/tr1/poly_hermite.tcc: Likewise.
1644         * include/tr1/poly_laguerre.tcc: Likewise.
1645         * include/tr1/random.h: Likewise.
1646         * include/tr1/random.tcc: Likewise.
1647         * include/tr1/regex: Likewise.
1648         * include/tr1/riemann_zeta.tcc: Likewise.
1649         * include/tr1/shared_ptr.h: Likewise.
1650         * include/tr1/special_function_util.h: Likewise.
1651         * include/tr1/tuple: Likewise.
1652         * include/tr1/type_traits: Likewise.
1653         * include/tr1/unordered_map.h: Likewise.
1654         * include/tr1/unordered_set.h: Likewise.
1655         * include/tr1/utility: Likewise.
1656         * include/tr2/bool_set: Likewise.
1657         * include/tr2/bool_set.tcc: Likewise.
1658         * include/tr2/dynamic_bitset: Likewise.
1659         * include/tr2/dynamic_bitset.tcc: Likewise.
1660         * include/tr2/ratio: Likewise.
1661         * include/tr2/type_traits: Likewise.
1662         * src/c++11/chrono.cc: Likewise.
1663         * src/c++11/compatibility-c++0x.cc: Likewise.
1664         * src/c++11/compatibility-chrono.cc: Likewise.
1665         * src/c++11/cxx11-shim_facets.cc: Likewise.
1666         * src/c++11/hashtable_c++0x.cc: Likewise.
1667         * src/c++11/placeholders.cc: Likewise.
1668         * src/c++11/thread.cc: Likewise.
1669         * src/c++98/bitmap_allocator.cc: Likewise.
1670         * src/c++98/hashtable_tr1.cc: Likewise.
1671         * src/c++98/list.cc: Likewise.
1672         * src/shared/hashtable-aux.cc: Likewise.
1673         * testsuite/20_util/duration/literals/range.cc: Adapt line number.
1674         * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1675         * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1676         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1677         * testsuite/20_util/forward/c_neg.cc: Likewise.
1678         * testsuite/20_util/forward/f_neg.cc: Likewise.
1679         * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
1680         * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
1681         * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
1682         * python/libstdcxx/v6/printers.py: Adapt.
1684 2017-07-20  Jonathan Wakely  <jwakely@redhat.com>
1686         * config/allocator/malloc_allocator_base.h [__SANITIZE_ADDRESS__]
1687         (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
1688         * config/allocator/new_allocator_base.h [__SANITIZE_ADDRESS__]
1689         (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
1690         * doc/xml/manual/using.xml (_GLIBCXX_SANITIZE_VECTOR): Document macro.
1691         * include/bits/stl_vector.h [_GLIBCXX_SANITIZE_VECTOR]
1692         (_Vector_impl::_Asan, _Vector_impl::_Asan::_Reinit)
1693         (_Vector_impl::_Asan::_Grow, _GLIBCXX_ASAN_ANNOTATE_REINIT)
1694         (_GLIBCXX_ASAN_ANNOTATE_GROW, _GLIBCXX_ASAN_ANNOTATE_GREW)
1695         (_GLIBCXX_ASAN_ANNOTATE_SHRINK, _GLIBCXX_ASAN_ANNOTATE_BEFORE_DEALLOC):
1696         Define annotation helper types and macros.
1697         (vector::~vector, vector::push_back, vector::pop_back)
1698         (vector::_M_erase_at_end): Add annotations.
1699         * include/bits/vector.tcc (vector::reserve, vector::emplace_back)
1700         (vector::insert, vector::_M_erase, vector::operator=)
1701         (vector::_M_fill_assign, vector::_M_assign_aux)
1702         (vector::_M_insert_rval, vector::_M_emplace_aux)
1703         (vector::_M_insert_aux, vector::_M_realloc_insert)
1704         (vector::_M_fill_insert, vector::_M_default_append)
1705         (vector::_M_shrink_to_fit, vector::_M_range_insert): Annotate.
1707 2017-07-19  Jonathan Wakely  <jwakely@redhat.com>
1709         PR libstdc++/81476
1710         * include/bits/vector.tcc (vector::_M_range_insert<_InputIterator>):
1711         Only insert elements one-by-one when inserting at the end.
1712         * testsuite/performance/23_containers/insert/81476.cc: New.
1714 2017-07-19  Volker Reichelt  <v.reichelt@netcologne.de>
1716         * libsupc++/new (bad_array_new_length): Remove redundant
1717         semicolon after in-class member function definition.
1718         * include/bits/locale_facets.h (ctype_byname, num_put): Likewise.
1719         * include/bits/locale_facets_nonio.h (time_put_byname): Likewise.
1720         * include/bits/random.h (mersenne_twister_engine): Likewise.
1721         * include/tr1/random.h (mersenne_twister): Likewise
1722         * include/ext/random (simd_fast_mersenne_twister_engine): Likewise.
1723         * include/ext/rope (char_producer, _Rope_char_consumer,
1724         _Rope_self_destruct_ptr, _Rope_const_iterator, _Rope_iterator):
1725         Likewise.
1726         * include/ext/ropeimpl.h (_Rope_flatten_char_consumer,
1727         _Rope_insert_char_consumer): Likewise.
1729 2017-07-19  Jonathan Wakely  <jwakely@redhat.com>
1731         * include/bits/fstream.tcc (basic_filebuf::xsgetn)
1732         (basic_filebuf::xsputn, basic_filebuf::seekoff): Fix indentation.
1734         * testsuite/util/testsuite_iterators.h: Fix indentation.
1736         * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: Add dg-require.
1738 2017-07-18  Jonathan Wakely  <jwakely@redhat.com>
1740         PR libstdc++/81395
1741         * include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer
1742         pointers for write mode after reading.
1743         * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New.
1745 2017-07-18  François Dumont  <fdumont@gcc.gnu.org>
1747         * include/bits/stl_list.h
1748         (struct _List_node_header): New.
1749         (_List_impl()): Fix noexcept qualification.
1750         (_List_impl(_List_impl&&)): New, default.
1751         (_List_base()): Default.
1752         (_List_base(_List_base&&)): Default.
1753         (_List_base::_M_move_nodes): Adapt to use
1754         _List_node_header._M_move_nodes.
1755         (_List_base::_M_init): Likewise.
1756         (list<>()): Default.
1757         (list<>(list&&)): Default.
1758         (list<>::_M_move_assign(list&&, true_type)): Use _M_move_nodes.
1759         (__distance(_List_const_iterator<>, _List_const_iterator<>,
1760         input_iterator_tag)): Adapt.
1761         * testsuite/23_containers/list/allocator/default_init.cc: New.
1763 2017-07-15  Jonathan Wakely  <jwakely@redhat.com>
1765         * include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter
1766         as per P0739R0.
1767         * testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments.
1768         * testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction
1769         with std::adopt_lock_t.
1770         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check
1771         feature-test macro.
1773 2017-07-14  Jason Merrill  <jason@redhat.com>
1774             Jonathan Wakely  <jwakely@redhat.com>
1776         * include/std/variant (variant::variant(_Tp&&)): Constrain to remove
1777         the constructor for empty variants from the candidate functions
1778         during class template argument deduction.
1779         * testsuite/20_util/variant/deduction.cc: New.
1781 2017-07-11  Jonathan Wakely  <jwakely@redhat.com>
1783         * doc/xml/faq.xml: Update several old entries. Improve
1784         cross-references.
1785         * doc/xml/manual/intro.xml: Add anchors to each DR.
1786         * doc/html/*: Regenerate.
1788 2017-07-10  Jonathan Wakely  <jwakely@redhat.com>
1790         * testsuite/abi/pr42230.cc: Add header for std::free.
1792         PR libstdc++/81381
1793         * include/bits/sstream.tcc (basic_stringbuf::overflow)
1794         (basic_stringbuf::basic_stringbuf(const __string_type&, ios::mode))
1795         (basic_stringbuf::str()): Construct new strings with an allocator.
1796         * testsuite/27_io/basic_stringbuf/cons/81381.cc: New.
1798         PR libstdc++/81338
1799         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
1800         Declare basic_stringbuf to be a friend.
1801         * include/bits/sstream.tcc (basic_stringbuf::overflow)
1802         [_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
1803         * include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
1804         length to buffer length.
1805         * testsuite/27_io/basic_stringstream/assign/81338.cc: New.
1807 2017-07-06  Jonathan Wakely  <jwakely@redhat.com>
1809         * testsuite/20_util/specialized_algorithms/memory_management_tools/
1810         1.cc: Free memory.
1811         * testsuite/22_locale/locale/cons/5.cc: Remove redundant restoration
1812         of original environment and free memory.
1814         * testsuite/abi/pr42230.cc: Free memory.
1815         * testsuite/util/testsuite_abi.cc (demangle): Return std::string
1816         instead of pointer that might need freeing.
1817         * testsuite/util/testsuite_abi.h (demangle): Likewise.
1818         * testsuite/util/testsuite_hooks.cc (verify_demangle): Free memory.
1820         * include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add
1821         deleted overload to prevent dangling references to rvalues.
1822         * include/experimental/memory_resource
1823         (polymorphic_allocator::construct): Do not call __use_alloc with
1824         rvalue arguments.
1826 2017-06-27  Tim Shen  <timshen@google.com>
1828         PR libstdc++/80187
1829         * include/std/variant (variant::variant, variant::~variant,
1830         variant::operator=): Implement triviality forwarding for four
1831         special member functions.
1832         * testsuite/20_util/variant/compile.cc: Tests.
1834 2017-06-27  Jonathan Wakely  <jwakely@redhat.com>
1836         PR libstdc++/81221
1837         * testsuite/25_algorithms/sample/81221.cc: Disable except for
1838         check-parallel.
1840         PR libstdc++/81221
1841         * include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not
1842         std.
1843         * testsuite/25_algorithms/sample/81221.cc: New.
1845 2017-06-22  Jonathan Wakely  <jwakely@redhat.com>
1847         PR libstdc++/81173
1848         * include/bits/stl_bvector.h (vector<bool>::_M_initialize_value):
1849         Do not pass null pointer to memset.
1851 2017-06-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
1853         PR libstdc++/80675
1854         PR libstdc++/80940
1855         * include/std/istream:
1856         (__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
1857         (__do_is_convertible_to_basic_istream_impl): Likewise.
1858         (__is_convertible_to_basic_istream_impl): Likewise.
1859         (__is_convertible_to_basic_istream): Use the new base.
1860         (__rvalue_istream_type): New.
1861         (operator>>(_Istream&&, _Tp&&)): Use the new helper alias
1862         for the SFINAE check, convert to the helper alias type before
1863         doing the actual extraction.
1864         * include/std/ostream:
1865         (__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
1866         (__do_is_convertible_to_basic_ostream_impl): Likewise.
1867         (__is_convertible_to_basic_ostream_impl): Likewise.
1868         (__is_convertible_to_basic_ostream): Use the new base.
1869         (__rvalue_ostream_type): New.
1870         (operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
1871         for the SFINAE check, convert to the helper alias type before
1872         doing the actual insertion.
1873         * testsuite/27_io/rvalue_streams-2.cc: Add new tests.
1875 2017-06-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1877         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1879 2017-06-21  Jonathan Wakely  <jwakely@redhat.com>
1881         PR libstdc++/81092
1882         * configure: Regenerate.
1884 2017-06-20  Uros Bizjak  <ubizjak@gmail.com>
1886         * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1888 2017-06-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1890         * testsuite/20_util/variant/index_type.cc: Allow for all ilp32 and
1891         lp64 targets.
1893 2017-06-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1895         * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
1896         * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
1897         * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
1898         * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
1899         * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
1900         * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
1901         Likewise.
1902         * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
1903         * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
1904         Likewise.
1906 2017-06-18  H.J. Lu  <hongjiu.lu@intel.com>
1908         PR libstdc++/81092
1909         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
1911 2017-06-18  Andreas Schwab  <schwab@linux-m68k.org>
1913         PR libstdc++/81092
1914         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1916 2017-06-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1918         * testsuite: Remove dg-skip-if, dg-xfail-if, dg-xfail-run-if
1919         default args.
1921 2017-06-17  Jonathan Wakely  <jwakely@redhat.com>
1923         PR libstdc++/80893
1924         * testsuite/23_containers/vector/bool/80893.cc: Add { target c++11 }.
1926 2017-06-16  Jonathan Wakely  <jwakely@redhat.com>
1928         * include/bits/shared_ptr.h (get_deleter): Add overload matching
1929         standard signature.
1930         * include/bits/shared_ptr_base.h (__shared_ptr): Declare new
1931         get_deleter overload as a friend.
1932         * testsuite/20_util/shared_ptr/misc/get_deleter.cc: New.
1934 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
1936         PR libstdc++/81092
1937         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1938         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
1939         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
1941 2017-06-16  Jonathan Wakely  <jwakely@redhat.com>
1943         * include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
1944         * testsuite/22_locale/conversions/buffer/2.cc: New.
1946         PR libstdc++/81092
1947         * acinclude.m4: Bump libtool_VERSION.
1948         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1949         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1950         * config/abi/pre/gnu.ver: Add wstring constructor symbols to
1951         GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol
1952         to new GLIBCXX_3.4.25 version.
1953         * doc/xml/manual/abi.xml: Document new versions.
1954         * doc/html/*: Regenerate.
1955         * testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
1956         constructors to ensure required symbols are exported.
1957         * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
1958         * testsuite/util/testsuite_abi.cc: Add new version.
1960         * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
1961         return statement.
1962         * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1963         Return void.
1964         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1965         Likewise.
1966         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
1967         missing return statements.
1968         * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
1969         Likewise.
1970         * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
1971         Return void.
1972         * testsuite/special_functions/14_expint/pr68397.cc: Likewise.
1974 2017-06-16  François Dumont  <fdumont@gcc.gnu.org>
1976         * include/bits/stl_bvector.h
1977         (__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)):
1978         Change signature.
1979         (std::fill(_Bit_iterator, _Bit_iterator, bool)): Adapt.
1980         (_Bvector_impl_data): New.
1981         (_Bvector_impl): Inherits from latter.
1982         (_Bvector_impl(_Bit_alloc_type&&)): Delete.
1983         (_Bvector_impl(_Bvector_impl&&)): New, default.
1984         (_Bvector_base()): Default.
1985         (_Bvector_base(_Bvector_base&&)): Default.
1986         (_Bvector_base::_M_move_data(_Bvector_base&&)): New.
1987         (vector(vector&&, const allocator_type&)): Use latter.
1988         (vector<bool>::operator=(vector&&)): Likewise.
1989         (vector<bool>::vector()): Default.
1990         (vector<bool>::vector(vector&&)): Default.
1991         (vector<bool>::assign(_InputIterator, _InputIterator)): Use
1992         _M_assign_aux.
1993         (vector<bool>::assign(initializer_list<bool>)): Likewise.
1994         (vector<bool>::_M_initialize_value(bool)): New.
1995         (vector<bool>(size_type, const bool&, const allocator_type&)): Use
1996         latter.
1997         (vector<bool>::_M_initialize_dispatch(_Integer, _Integer, __true_type)):
1998         Likewise.
1999         (vector<bool>::_M_fill_assign(size_t, bool)): Likewise.
2001 2017-06-15  François Dumont  <fdumont@gcc.gnu.org>
2003         * src/c++98/tree.cc  [!_GLIBCXX_INLINE_VERSION]
2004         (_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete.
2006 2017-06-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2008         * testsuite: Add dg-require-effective-target pthread to -pthread
2009         tests.
2010         Remove explicit target lists from dg-do and dg-options.
2012         * testsuite/30_threads/async/forced_unwind.cc: Remove explit
2013         target list from dg-options.
2014         * testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise.
2016         * 30_threads/shared_mutex/cons/1.cc: Likewise.
2017         Pass -pthread for all targets.
2018         * 30_threads/shared_mutex/try_lock/1.cc: Likewise.
2019         * 30_threads/shared_mutex/try_lock/2.cc: Likewise.
2020         * 30_threads/shared_mutex/unlock/1.cc: Likewise.
2022         * testsuite/30_threads/this_thread/57060.cc: Require c++11 via
2023         dg-require-effective-target.
2025 2017-06-14  Jonathan Wakely  <jwakely@redhat.com>
2027         * doc/xml/manual/test.xml: Correct instructions on running tests.
2028         * testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to
2029         pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
2030         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
2031         Likewise.
2032         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise.
2033         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2034         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
2035         exceptions_failbit.cc: Likewise.
2036         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2037         exceptions_failbit.cc: Likewise.
2038         * testsuite/27_io/basic_istream/extractors_other/char/
2039         exceptions_null.cc: Likewise.
2040         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
2041         exceptions_null.cc: Likewise.
2042         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2043         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2044         * testsuite/27_io/basic_ostream/inserters_other/char/
2045         exceptions_null.cc: Likewise.
2046         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2047         exceptions_null.cc: Likewise.
2048         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2050 2017-06-12  Pedro Alves  <palves@redhat.com>
2052         * doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
2053         char_traits status.
2054         * doc/html/*: Regenerate.
2056         * include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
2057         not already defined.
2058         (__cpp_lib_constexpr_char_traits): Uncomment.
2059         (__constant_string_p, __constant_char_array_p): New.
2060         (std::char_traits<char>, std::char_traits<wchar_t>): Add
2061         _GLIBCXX17_CONSTEXPR on compare, length and find and use
2062         __constant_string_p, __constant_char_array_p and
2063         __builtin_constant_p to defer to __gnu_cxx::char_traits at compile
2064         time.
2066         * testsuite/21_strings/char_traits/requirements/
2067         constexpr_functions_c++17.cc: Uncomment
2068         __cpp_lib_constexpr_char_traits tests.  Uncomment
2069         test_compare<char>, test_length<char>, test_find<char>,
2070         test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
2071         static_assert tests.
2073 2017-06-12  François Dumont  <fdumont@gcc.gnu.org>
2075         * include/bits/stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator
2076         default init.
2077         * testsuite/util/testsuite_allocator.h
2078         (__gnu_test::default_init_allocator<>) New.
2079         * testsuite/23_containers/set/allocator/default_init.cc: New.
2080         * testsuite/23_containers/map/allocator/default_init.cc: New.
2082 2017-06-12  Jonathan Wakely  <jwakely@redhat.com>
2084         PR libstdc++/55917
2085         * src/c++11/thread.cc (execute_native_thread_routine): Remove
2086         try-block so that exceptions propagate out of the thread and terminate
2087         is called by the exception-handling runtime.
2088         (execute_native_thread_routine_compat): Likewise.
2089         * testsuite/30_threads/thread/cons/terminate.cc: New.
2091 2017-06-09  Jonathan Wakely  <jwakely@redhat.com>
2093         * doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
2094         * include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
2095         (LWG 2802).
2096         * include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
2097         (_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
2098         * testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
2100         * include/bits/forward_list.h (forward_list): Add deduction guide.
2101         * include/bits/stl_deque.h (deque): Likewise.
2102         * include/bits/stl_list.h (list): Likewise.
2103         * include/bits/stl_vector.h (vector): Likewise.
2104         * testsuite/23_containers/deque/cons/deduction.cc: New.
2105         * testsuite/23_containers/forward_list/cons/deduction.cc: New.
2106         * testsuite/23_containers/list/cons/deduction.cc: New.
2107         * testsuite/23_containers/vector/cons/deduction.cc: New.
2109 2017-06-08  Jonathan Wakely  <jwakely@redhat.com>
2111         PR libstdc++/81017
2112         * include/bits/std_function.h (function::function(function&&))
2113         (function::operator=(funtion&&)): Add noexcept.
2114         * testsuite/20_util/function/assign/move.cc: Check for noexcept.
2115         * testsuite/20_util/function/cons/move.cc: Likewise.
2117 2017-06-07  Jonathan Wakely  <jwakely@redhat.com>
2119         * include/bits/regex.h (basic_regex): Add deduction guide from P0433.
2120         * testsuite/28_regex/basic_regex/ctors/deduction.cc: New.
2122         PR libstdc++/81002
2123         * include/bits/regex.h (basic_regex): Adjust call to __compile_nfa
2124         so iterator type is deduced.
2125         * include/bits/regex_compiler.h (__compile_nfa): Reorder template
2126         parameters to allow iterator type to be deduced.
2127         * testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
2129         * include/bits/alloc_traits.h (__is_allocator, _RequireAllocator):
2130         New trait and alias for detecting Allocator-like types.
2131         * include/bits/basic_string.h (basic_string): Add deduction guide
2132         from P0433.
2133         * include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): Add template
2134         parameter with default template argument that causes substitution
2135         failures for types that cannot be allocators.
2136         * testsuite/21_strings/basic_string/cons/char/deduction.cc: New.
2137         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: New.
2139 2017-06-02  Jonathan Wakely  <jwakely@redhat.com>
2141         PR libstdc++/80939
2142         * include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
2143         (__erased_hash): Remove constexpr specifier and qualify calls to
2144         __ref_cast.
2145         (__erased_dtor): Remove constexpr specifier and use _Destroy.
2147 2017-06-05  Jonathan Wakely  <jwakely@redhat.com>
2149         * include/bits/stl_iterator_base_funcs.h
2150         (__advance<_RandomAccessIterator, _Distance>): Optimize for next/prev
2151         cases where incrementing or decrementing a single step.
2153         * include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
2154         (__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
2155         specifiers as per LWG 2873 and LWG 2942.
2156         * testsuite/20_util/owner_less/noexcept.cc: New.
2157         * testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
2158         noexcept guarantees.
2159         * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
2161 2017-06-03  Andreas Schwab  <schwab@linux-m68k.org>
2163         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
2165 2017-06-03  Eric Botcazou  <ebotcazou@adacore.com>
2167         * src/filesystem/dir.cc (fs::_Dir::advance): Use std::exchange.
2169 2017-06-02  Jonathan Wakely  <jwakely@redhat.com>
2171         PR libstdc++/80624
2172         * doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
2173         * include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
2174         Transform eof value to U+FFFD.
2175         * testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
2176         * testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
2177         * testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.
2179         * libsupc++/Makefile.am: Remove custom targets for files that need to
2180         be compiled as C++11 or C++14.
2181         * libsupc++/Makefile.in: Regenerate.
2182         * libsupc++/del_ops.cc: Use pragma to disable -Wsized-deallocation
2183         warnings.
2184         * libsupc++/del_opvs.cc: Likewise.
2186 2017-06-02  Richard Biener  <rguenther@suse.de>
2187         Markus Eisenmann  <meisenmann.lba@fh-salzburg.ac.at>
2189         PR libstdc++/80721
2190         * libsupc++/eh_alloc.cc (pool::free): Keep list properly
2191         sorted and add missing freelist item merging cases.
2193 2017-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2195         (GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
2196         Remove *-solaris* section.
2197         * configure: Regenerate.
2199 2017-05-31  Jonathan Wakely  <jwakely@redhat.com>
2201         PR libstdc++/80893
2202         * include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
2203         null pointer dereference when size is zero.
2204         * testsuite/23_containers/vector/bool/80893.cc: New.
2205         * testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
2206         Add non-explicit constructor from nullptr.
2207         (PointerBase::derived() const): Add const-qualified overload.
2209 2017-05-20  Tim Shen  <timshen@google.com>
2211         PR libstdc++/80737
2212         * include/std/variant(variant::variant): SFINAE on is_same first.
2213         * testsuite/20_util/variant/any.cc: test case.
2215 2017-05-24  Jonathan Wakely  <jwakely@redhat.com>
2217         * src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__
2218         instead of fixed number of bits.
2220 2017-05-24  Andreas Schwab  <schwab@suse.de>
2222         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2223         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
2225 2017-05-23  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
2226             Jonathan Wakely  <jwakely@redhat.com>
2228         PR libstdc++/67578
2229         * acinclude.m4: Bump libtool_VERSION.
2230         * config/abi/pre/gnu.ver: Create GLIBCXX_3.4.24 with new symbol.
2231         * config.h.in: Regenerate.
2232         * configure: Regenerate.
2233         * configure.ac: Add test for <linux/random.h>.
2234         * doc/xml/manual/abi.xml: Document new library version.
2235         * include/bits/random.h (random_device::entropy)
2236         [_GLIBCXX_USE_RANDOM_TR1]: Add call to new _M_getentropy member.
2237         (random_device::_M_getentropy): Declare.
2238         * src/c++11/random.cc (random_device::_M_getentropy): Define.
2239         * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.24 to known
2240         versions, and make it the latest version.
2242 2017-05-23  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
2244         PR libstdc++/67214
2245         * include/bits/locale_facets.tcc (num_get::_M_extract_int): Add
2246         explicit conversion to avoid signed overflow.
2248 2017-05-19  Jonathan Wakely  <jwakely@redhat.com>
2250         PR libstdc++/80796
2251         * include/bits/stl_algo.h (search): Add new overload for C++17.
2252         * testsuite/25_algorithms/search/searcher.cc: New.
2254 2017-05-18  Jonathan Wakely  <jwakely@redhat.com>
2256         PR libstdc++/80478
2257         * include/std/functional (_Mem_fn_traits_base): Add specializations
2258         for noexcept member function types.
2259         * testsuite/20_util/function_objects/mem_fn/80478.cc: New test.
2261 2017-05-18  Jonathan Wakely  <jwakely@redhat.com>
2263         * doc/xml/manual/policy_data_structures.xml: Fix typo.
2264         * doc/xml/manual/test_policy_data_structures.xml: Likewise.
2265         * doc/html/*: Regenerate.
2267         * doc/xml/manual/abi.xml: Document latest library versions.
2268         * doc/xml/manual/build_hacking.xml: Document requirement to update
2269         abi.xml when bumping library versions.
2270         * doc/html/*: Regenerate.
2272 2017-05-17  Jonathan Wakely  <jwakely@redhat.com>
2274         * include/bits/refwrap.h: Fix Doxygen warning.
2275         * include/bits/specfun.h: Likewise.
2276         * include/bits/std_function.h: Likewise.
2277         * include/bits/stl_algo.h (set_union, set_intersection)
2278         (set_difference, set_symmetric_difference): Add Doxygen @param tags
2279         for output iterator parameters.
2280         * include/bits/stl_iterator.h (inserter): Add Doxygen @param tag for
2281         iterator parameter.
2282         * include/std/mutex (try_lock, lock): Change Mutex to Lockable in
2283         Doxygen comments.
2285 2017-05-17  Ville Voutilainen  <ville.voutilainen@gmail.com>
2287         Implement new C++ intrinsics __is_assignable and __is_constructible.
2288         * include/std/type_traits (__do_is_static_castable_impl): Remove.
2289         (__is_static_castable_impl, __is_static_castable_safe): Likewise.
2290         (__is_static_castable, __do_is_direct_constructible_impl): Likewise.
2291         (__is_direct_constructible_impl): Likewise.
2292         (__is_direct_constructible_new_safe): Likewise.
2293         (__is_base_to_derived_ref, __is_lvalue_to_rvalue_ref): Likewise.
2294         (__is_direct_constructible_ref_cast): Likewise.
2295         (__is_direct_constructible_new, __is_direct_constructible): Likewise.
2296         (__do_is_nary_constructible_impl): Likewise.
2297         (__is_nary_constructible_impl, __is_nary_constructible): Likewise.
2298         (__is_constructible_impl): Likewise.
2299         (is_constructible): Call the intrinsic.
2300         (__is_assignable_helper): Remove.
2301         (is_assignable): Call the intrinsic.
2302         (is_trivially_constructible): Likewise.
2303         (__is_trivially_copy_constructible_impl): New.
2304         (is_trivially_copy_constructible): Use it.
2305         (__is_trivially_move_constructible_impl): New.
2306         (is_trivially_move_constructible): Use it.
2307         (is_trivially_assignable): Call the intrinsic.
2308         (__is_trivially_copy_assignable_impl): New.
2309         (is_trivially_copy_assignable): Use it.
2310         (__is_trivially_move_assignable_impl): New.
2311         (is_trivially_move_assignable): Use it.
2312         (testsuite/20_util/declval/requirements/1_neg.cc): Adjust.
2313         (testsuite/20_util/is_trivially_copy_assignable/value.cc):
2314         Add test for void.
2315         (testsuite/20_util/is_trivially_copy_constructible/value.cc): Likewise.
2316         (testsuite/20_util/is_trivially_move_assignable/value.cc): Likewise.
2317         (testsuite/20_util/is_trivially_move_constructible/value.cc): Likewise.
2318         (testsuite/20_util/make_signed/requirements/typedefs_neg.cc): Adjust.
2319         (testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc):
2320         Likewise.
2322 2017-05-16  Jonathan Wakely  <jwakely@redhat.com>
2324         * testsuite/experimental/source_location/1.cc: Change expected result
2325         for source_location::current() used in default member initializer.
2327         * doc/xml/manual/status_cxx2017.xml: Update status table.
2328         * doc/html/*: Regenerate.
2329         * include/Makefile.am: Add new header.
2330         * include/Makefile.in: Regenerate.
2331         * include/experimental/source_location: New header implementing N4519.
2332         * testsuite/experimental/source_location/1.cc: New test.
2334         PR libstdc++/80285
2335         * include/bits/shared_ptr_base.h [!__cpp_rtti] (type_info): Declare
2336         outside versioned namespace.
2338         * configure: Regenerate.
2340 2017-05-16  Marc Glisse  <marc.glisse@inria.fr>
2342         * include/std/optional (_Optional_base::_M_get): Check precondition.
2343         * testsuite/20_util/optional/cons/value_neg.cc: Update line numbers.
2345 2017-05-16  Jonathan Wakely  <jwakely@redhat.com>
2347         * doc/xml/manual/appendix_contributing.xml: Link to test docs and
2348         note higher DejaGnu version requirement.
2349         * doc/html/*: Regenerate.
2351         * doc/xml/manual/appendix_contributing.xml: Link to the list of bad
2352         identifiers.
2353         * doc/html/*: Regenerate.
2355 2017-05-15  Jonathan Wakely  <jwakely@redhat.com>
2357         PR libstdc++/80761
2358         * include/bits/node_handle.h (_Node_insert_return): Reorder members.
2359         (tuple_size, tuple_element): Remove partial specializations.
2360         * include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
2361         const_iterator for std::set.
2362         * testsuite/23_containers/map/modifiers/extract.cc: New.
2363         * testsuite/23_containers/set/modifiers/extract.cc: New.
2364         * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
2365         * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
2367 2017-05-12  Jonathan Wakely  <jwakely@redhat.com>
2369         PR libstdc++/78939
2370         * include/std/utility (tuple_size<cv T>): Only define partial
2371         specializations when tuple_size<T>::value is valid.
2372         * testsuite/20_util/tuple/78939.cc: New.
2373         * testsuite/20_util/tuple/cv_tuple_size_neg.cc: New.
2375 2017-05-11  François Dumont  <fdumont@gcc.gnu.org>
2377         * include/bits/stl_tree.h [_GLIBCXX_INLINE_VERSION]
2378         (_Rb_tree_impl<>): Remove _Is_pod_comparator
2379         template parameter.
2381         * include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
2382         (__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
2383         (__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
2384         Remove.
2385         (__gnu_debug::_Error_formatter::_M_format_word): Remove.
2386         (__gnu_debug::_Error_formatter::_M_print_word): Remove.
2387         (__gnu_debug::_Error_formatter::_M_print_string): Remove.
2388         (__gnu_debug::_Error_formatter::_M_get_max_length): Remove.
2389         * src/c++11/debug.cc: Adapt.
2390         * config/abi/pre/gnu-versioned-namespace.ver: Adapt.
2392 2017-05-11  Jonathan Wakely  <jwakely@redhat.com>
2394         * doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
2395         * doc/xml/manual/mt_allocator.xml: Likewise.
2396         * doc/html/*: Regenerate.
2398         PR libstdc++/80285
2399         * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Define
2400         function to get unique fake std::type_info reference.
2401         (_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Compare to
2402         _S_ti() fake reference.
2403         (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Share
2404         single implementation with or without RTTI enable.
2405         [!__cpp_rtti]: Pass fake reference to _M_get_deleter.
2406         * testsuite/20_util/shared_ptr/creation/alloc.cc: Change expected
2407         allocation and deallocation counts.
2408         * testsuite/20_util/shared_ptr/creation/single_allocation.cc: New.
2409         * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
2410         New.
2412 2017-05-10  François Dumont  <fdumont@gcc.gnu.org>
2414         Bump version namespace.
2415         * config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
2416         from __7 to __8. Bump GLIBCXX_7.0 to GLIBCXX_8.0.
2417         * acinclude.m4 (libtool_VERSION): Bump to 8:0:0.
2418         * include/bits/c++config: Adapt.
2419         * include/bits/regex.h: Adapt.
2420         * include/experimental/bits/fs_fwd.h: Adapt.
2421         * include/experimental/bits/lfts_config.h: Adapt.
2422         * include/std/variant: Adapt.
2423         * python/libstdcxx/v6/printers.py: Adapt.
2424         * testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
2426         * include/bits/stl_algobase.h (std::__iter_swap<false>): Remove
2427         _GLIBCXX_MOVE usage.
2429 2017-05-09  Jason Merrill  <jason@redhat.com>
2431         * testsuite/24_iterators/container_access.cc (test03): Make il3 static.
2433 2017-05-08  Jonathan Wakely  <jwakely@redhat.com>
2435         * include/std/optional: Use a separate static_assert per condition.
2436         * testsuite/20_util/optional/cons/value_neg.cc: Update dg-error line
2437         numbers.
2439         * doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
2440         * doc/html/*: Regenerate.
2442 2017-05-02  Hugo Beauzée-Luyssen <hugo@beauzee.fr>
2444         PR libstdc++/69506
2445         * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
2447 2017-04-29  François Dumont  <fdumont@gcc.gnu.org>
2449         * testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
2450         by a note-test.
2452 2017-04-28  Jonathan Wakely  <jwakely@redhat.com>
2454         PR libstdc++/80553
2455         * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
2456         assertions to ensure type is destructible.
2457         (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
2458         * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
2459         Move to stl_construct.h.
2460         * testsuite/20_util/specialized_algorithms/memory_management_tools/
2461         destroy_neg.cc: New test.
2462         * testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
2464         * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
2465         superfluous "" in dg-error.
2467 2017-04-28  Tom de Vries  <tom@codesourcery.com>
2469         * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
2470         superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
2472 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
2474         * include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
2475         (PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
2476         * testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
2477         Likewise.
2479 2017-04-26  Jonathan Wakely  <jwakely@redhat.com>
2481         * testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
2482         comment. Ensure first test works because allocator type propagates and
2483         not because is_always_equal is true.
2484         * testsuite/23_containers/vector/52591.cc: Likewise. Restore original
2485         testcase that instantiates the move-assignment operator.
2487 2017-04-24  Jonathan Wakely  <jwakely@redhat.com>
2489         PR libstdc++/80506
2490         * include/bits/random.tcc (gamma_distribution::operator()): Fix magic
2491         number used in loop condition.
2493         PR libstdc++/80504
2494         * include/bits/refwrap.h (ref, cref): Qualify calls.
2495         * testsuite/20_util/reference_wrapper/80504.cc: New test.
2497         PR libstdc++/80493
2498         * include/experimental/optional (optional::swap): Fix exception
2499         specification.
2501 2017-04-21  Jonathan Wakely  <jwakely@redhat.com>
2503         PR libstdc++/80316
2504         * include/std/future (_State_baseV2::_Setter::operator()): Remove
2505         _S_check calls that are done after the pointer to the shared state is
2506         already dereferenced.
2507         (_State_baseV2::_Setter<_Res, void>): Define specialization for void
2508         as partial specialization so it can be defined within the definition
2509         of _State_baseV2.
2510         (_State_baseV2::__setter): Call _S_check.
2511         (_State_baseV2::__setter(promise<void>*)): Add overload for use by
2512         promise<void>::set_value and promise<void>::set_value_at_thread_exit.
2513         (promise<T>, promise<T&>, promise<void>): Make _State a friend.
2514         (_State_baseV2::_Setter<void, void>): Remove explicit specialization.
2515         (promise<void>::set_value, promise<void>::set_value_at_thread_exit):
2516         Use new __setter overload.
2517         * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
2518         * testsuite/30_threads/promise/members/set_exception.cc: Test
2519         promise<T&> and promise<void> specializations.
2520         * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
2521         Test for no_state error condition.
2522         * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
2524         * include/backward/auto_ptr.h: Ignore deprecated warnings from use
2525         of auto_ptr.
2526         * include/bits/shared_ptr.h: Likewise.
2527         * include/bits/shared_ptr_base.h: Likewise.
2528         * include/bits/unique_ptr.h: Likewise.
2529         * libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
2530         dg-error lineno.
2531         * libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
2532         * libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
2533         Likewise.
2534         * libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
2535         Likewise.
2537 2017-04-20  Edward Smith-Rowland  <3dw4rd@verizon.net>
2539         PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
2540         * include/tr1/exp_integral.tcc: Increase iteration limits.
2541         * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
2542         pr68397.cc: New test.
2543         * testsuite/special_functions/14_expint/pr68397.cc: New test.
2545 2017-04-20  Jonathan Wakely  <jwakely@redhat.com>
2547         PR libstdc++/79862
2548         * include/std/atomic [!_GLIBCXX_USE_C99_STDINT_TR1] (atomic_int8_t)
2549         (atomic_uint8_t, atomic_int16_t, atomic_uint16_t, atomic_int32_t,
2550         (atomic_uint32_t, atomic_int64_t, atomic_uint64_t)
2551         (atomic_int_least8_t, atomic_uint_least8_t, atomic_int_least16_t)
2552         (atomic_uint_least16_t, atomic_int_least32_t, atomic_uint_least32_t)
2553         (atomic_int_least64_t, atomic_uint_least64_t, atomic_int_fast8_t)
2554         (atomic_uint_fast8_t, atomic_int_fast16_t, atomic_uint_fast16_t)
2555         (atomic_int_fast32_t, atomic_uint_fast32_t, atomic_int_fast64_t)
2556         (atomic_uint_fast64_t, atomic_intmax_t, atomic_uintmax_t): Don't
2557         define.
2559 2017-04-19  Jonathan Wakely  <jwakely@redhat.com>
2561         * doc/xml/manual/abi.xml: Rephrase one of the references to the
2562         Itanium C++ ABI.
2563         * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
2564         * doc/html/*: Regenerate.
2566         * libsupc++/new: Update comment on #endif directive.
2568         PR libstdc++/80448
2569         * include/experimental/bits/fs_dir.h (directory_iterator)
2570         (recursive_directory_iterator): Remove noexcept from defaulted
2571         constructors.
2573         PR libstdc++/80446
2574         * include/std/type_traits (is_aggregate): Change __has_builtin checks.
2575         * libsupc++/new (launder): Likewise.
2577 2017-04-18  Jonathan Wakely  <jwakely@redhat.com>
2579         * include/std/functional (default_searcher, __boyer_moore_array_base)
2580         (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
2581         (boyer_moore_horspool_searcher): Remove redundant namespace
2582         qualification.
2583         (default_searcher::operator()): Construct return value early and
2584         advance second member in-place.
2585         (boyer_moore_horspool_searcher::operator()): Increment random access
2586         iterator directly instead of using std::next.
2587         (boyer_moore_searcher::operator()): Fix return value.
2588         * testsuite/20_util/function_objects/searchers.cc: Check both parts
2589         of return values.
2591 2017-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
2593         * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
2594         * doc/xml/manual/abi.xml. Ditto (thrice).
2596 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
2598         * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
2599         * doc/html/*: Regenerate.
2601         * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
2602         that no longer fail.
2604         * include/bits/ios_base.h: Correct comment.
2605         * testsuite/util/testsuite_hooks.h: Likewise.
2607         * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
2608         * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
2609         directories for debug, parallel and profile headers.
2610         * doc/html/*: Regenerate.
2612         * include/bits/char_traits.h (__gnu_cxx::char_traits): Add
2613         _GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
2614         (std::char_traits<char>, std::char_traits<wchar_t>): Add
2615         _GLIBCXX17_CONSTEXPR on assign.
2616         (std::char_traits<char16_t>, std::char_traits<char32_t>): Add
2617         _GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
2618         * testsuite/21_strings/char_traits/requirements/
2619         constexpr_functions_c++17.cc: New test.
2621 2017-04-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
2623         PR libstdc++/79141
2624         * include/bits/stl_pair.h (__nonesuch_no_braces): New.
2625         (operator=(typename conditional<
2626         __and_<is_copy_assignable<_T1>,
2627         is_copy_assignable<_T2>>::value,
2628         const pair&, const __nonesuch&>::type)): Change __nonesuch
2629         to __nonesuch_no_braces.
2630         (operator=(typename conditional<
2631         __not_<__and_<is_copy_assignable<_T1>,
2632         is_copy_assignable<_T2>>>::value,
2633         const pair&, const __nonesuch&>::type)): Likewise.
2634         (operator=(typename conditional<
2635         __and_<is_move_assignable<_T1>,
2636         is_move_assignable<_T2>>::value,
2637         pair&&, __nonesuch&&>::type)): Likewise.
2638         * testsuite/20_util/pair/79141.cc: New.
2640 2017-04-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
2642         Implement std::is_aggregate.
2643         * include/std/type_traits (is_aggregate, is_aggregate_v): New.
2644         * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
2645         New.
2646         * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
2647         * testsuite/20_util/is_aggregate/value.cc: Likewise.
2649 2017-03-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
2651         Adjust optional's pretty printer for LWG 2900.
2652         * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
2653         Look at the nested payload in case of non-experimental optional.
2655 2017-03-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
2657         Implement LWG 2900, The copy and move constructors
2658         of optional are not constexpr.
2659         * include/std/optional (_Optional_payload): New.
2660         (_Optional_base): Remove the bool parameter.
2661         (_Optional_base<_Tp, false>): Remove.
2662         (_Optional_base()): Adjust.
2663         (_Optional_base(nullopt_t)): Likewise.
2664         (_Optional_base(in_place_t, _Args&&...)): Likewise.
2665         (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
2666         Likewise.
2667         (_Optional_base(const _Optional_base&)): Likewise.
2668         (_Optional_base(_Optional_base&&)): Likewise.
2669         (operator=(const _Optional_base&)): Likewise.
2670         (operator=(_Optional_base&&)): Likewise.
2671         (~_Optional_base()): Remove.
2672         (_M_is_engaged()): Adjust.
2673         (_M_get()): Likewise.
2674         (_M_construct(_Args&&...)): Likewise.
2675         (_M_destruct()): Likewise.
2676         (_M_reset()): Likewise.
2677         (_Optional_base::_Empty_byte): Remove.
2678         (_Optional_base::_M_empty): Remove.
2679         (_Optional_base::_M_payload): Adjust.
2680         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
2681         * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
2683 2017-03-28  Jonathan Wakely  <jwakely@redhat.com>
2685         PR libstdc++/80137
2686         * include/bits/random.tcc (generate_canonical): Use std::nextafter
2687         or numeric_limits::epsilon() to reduce out-of-range values.
2688         * testsuite/26_numerics/random/uniform_real_distribution/operators/
2689         64351.cc: Verify complexity requirement is met.
2691         * doc/xml/manual/abi.xml: Add xml:id anchor.
2692         * doc/xml/manual/using.xml (manual.intro.using.macros): Document
2693         _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
2694         (concurrency.io.structure): Add markup.
2695         * doc/html/*: Regenerate.
2697         PR libstdc++/80229
2698         * include/bits/shared_ptr_base.h
2699         (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
2700         non-const and then use remove_cv to get unqualified type.
2701         * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
2702         cast away constness on object created const.
2703         * testsuite/20_util/shared_ptr/cons/80229.cc: New test.
2705 2017-03-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
2707         PR libstdc++/80183
2708         * include/bits/stl_tree.h:
2709         (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
2711 2017-03-23  Jonathan Wakely  <jwakely@redhat.com>
2713         * testsuite/23_containers/array/tuple_interface/
2714         tuple_element_debug_neg.cc: Adjust dg-error.
2715         * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
2716         define a valid strict weak ordering.
2717         * testsuite/23_containers/priority_queue/67085.cc: Disable test for
2718         Debug Mode, due to debug checks making extra copies of predicate.
2719         * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
2720         Likewise.
2722         * doc/xml/faq.xml: Add link.
2723         * doc/xml/manual/backwards_compatibility.xml: Remove outdated
2724         information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
2725         * doc/xml/manual/io.xml: Update broken link.
2726         * doc/html/*: Regenerate.
2728 2017-03-23  Daniel Kruegler  <daniel.kruegler@gmail.com>
2730         Implement LWG 2686, Why is std::hash specialized for error_code,
2731         but not error_condition?
2732         * include/std/system_error (hash<error_condition>): Define for C++17.
2733         * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
2734         Instantiate test for error_condition.
2735         * testsuite/20_util/hash/requirements/explicit_instantiation.cc
2736         (hash<error_condition>): Instantiate hash<error_condition>.
2738         * include/bits/c++config (_GLIBCXX17_INLINE): Define.
2739         * include/bits/regex_constants.h (All std::regex_constants constants):
2740         Add _GLIBCXX17_INLINE as per P0607R0.
2741         * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
2742         Likewise.
2743         * include/bits/stl_pair.h (piecewise_construct): Likewise.
2744         * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
2745         (__is_uses_allocator_constructible_v)
2746         (__is_nothrow_uses_allocator_constructible_v): Likewise.
2747         * include/std/chrono (treat_as_floating_point_v): Likewise.
2748         * include/std/functional (is_bind_expression_v, is_placeholder_v):
2749         Likewise.
2750         * include/std/optional (nullopt): Likewise.
2751         * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
2752         ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
2753         * include/std/system_error (is_error_code_enum_v)
2754         (is_error_condition_enum_v): Likewise.
2755         * include/std/tuple (tuple_size_v, ignore): Likewise.
2756         (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
2757         constexpr as per LWG 2933.
2758         * include/std/type_traits (All variable templates): Add
2759         _GLIBCXX17_INLINE as per P0607R0.
2760         * include/std/variant (variant_size_v, variant_npos, __index_of_v)
2761         (__tuple_count_v, __exactly_once): Likewise.
2762         * testsuite/18_support/headers/new/synopsis.cc
2763         (hardware_destructive_interference_size)
2764         (hardware_constructive_interference_size): Likewise for commented-out
2765         variables.
2766         * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
2767         test function for constexpr std::ignore (LWG 2773).
2768         * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
2769         test for LWG 2933.
2771 2017-03-22  Jonathan Wakely  <jwakely@redhat.com>
2773         * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
2774         guides for C++17.
2775         * include/bits/std_function.h (function): Likewise.
2776         * include/bits/stl_pair.h (pair): Likewise.
2777         * include/debug/array (__gnu_debug::array): Likewise.
2778         * include/std/array (array): Likewise.
2779         * include/std/functional (make_default_searcher)
2780         (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
2781         Remove generator functions.
2782         * include/std/tuple (tuple): Add deduction guides.
2783         * include/std/valarray (valarray): Likewise.
2784         * testsuite/20_util/function_objects/searchers.cc: Adjust to use
2785         class template argument deduction instead of generator functions.
2786         * testsuite/20_util/function/cons/deduction.cc: New test.
2787         * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
2788         * testsuite/20_util/optional/cons/deduction.cc: ... here.
2789         * testsuite/20_util/pair/cons/deduction.cc: New test.
2790         * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
2791         * testsuite/20_util/tuple/cons/deduction.cc: New test.
2792         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
2793         * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
2794         * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
2795         * testsuite/23_containers/array/cons/deduction.cc: New test.
2796         * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
2797         * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
2798         Adjust dg-error.
2799         * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
2800         * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2801         Likewise.
2802         * testsuite/26_numerics/valarray/deduction.cc: New test.
2803         * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
2804         * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
2805         * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
2807 2017-03-20  François Dumont  <fdumont@gcc.gnu.org>
2809         * include/bits/stl_deque.h (deque): Access allocator value_type only if
2810         concept checks are enabled.
2811         * include/bits/stl_stack.h (stack): Likewise.
2812         * include/bits/stl_vector.h (vector): Likewise.
2813         * include/bits/stl_list.h (list): Likewise and check
2814         _SGIAssignableConcept only in C++03.
2815         * include/bits/stl_map.h (map): Likewise.
2816         * include/bits/stl_set.h (set): Likewise.
2817         * include/bits/stl_multimap.h (multimap): Likewise.
2818         * include/bits/stl_multiset.h (multiset): Likewise.
2819         * include/bits/stl_queue.h (queue, priority_queue): Likewise.
2821 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
2823         * doc/xml/manual/appendix_contributing.xml: Convert link to
2824         ansi.org to https.
2825         Update link to the C++ standard at ansi.org.
2827         * doc/xml/faq.xml: Remove information redundant with the above;
2828         instead add a reference.
2830 2017-03-17  Jonathan Wakely  <jwakely@redhat.com>
2832         * src/c++11/codecvt.cc (range): Add non-type template parameter and
2833         define oerloaded operators for reading and writing code units.
2834         (range<Elem, false>): Define partial specialization for accessing
2835         wide characters in potentially unaligned byte ranges.
2836         (ucs2_span(const char16_t*, const char16_t*, ...))
2837         (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
2838         to range<const char16_t, false> in order to avoid unaligned reads.
2839         (__codecvt_utf16_base<char16_t>::do_out)
2840         (__codecvt_utf16_base<char32_t>::do_out)
2841         (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
2842         unaligned data to avoid unaligned writes.
2843         (__codecvt_utf16_base<char16_t>::do_in)
2844         (__codecvt_utf16_base<char32_t>::do_in)
2845         (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
2846         error if there are unprocessable trailing bytes.
2847         (__codecvt_utf16_base<char16_t>::do_length)
2848         (__codecvt_utf16_base<char32_t>::do_length)
2849         (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
2850         range<const char16_t, false> to span functions.
2851         * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
2853 2017-03-16  Jonathan Wakely  <jwakely@redhat.com>
2855         PR libstdc++/79980
2856         * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
2858         PR libstdc++/80041
2859         * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
2860         (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
2861         char16_t to work with UTF-16 instead of UTF-8.
2862         * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
2864         * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
2865         (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
2866         (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
2867         (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
2868         (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
2869         (__codecvt_utf8_utf16_base<char32_t>)
2870         (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
2871         do_max_length() return values.
2872         * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
2873         * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
2874         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
2876         PR libstdc++/79980
2877         * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
2878         error path.
2879         * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
2880         for manipulating codecvt_mode values.
2881         (read_utf16_bom): Compare input to BOM constants instead of integral
2882         constants that depend on endianness.  Take mode parameter by
2883         reference and adjust it, to distinguish between no BOM present and
2884         UTF-16BE BOM present.
2885         (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
2886         (surrogates): New enumeration type.
2887         (utf16_in, utf16_out): Add surrogates parameter to choose between
2888         UTF-16 and UCS2 behaviour.
2889         (utf16_span, ucs2_span): Use std::min not std::max.
2890         (ucs2_out): Use std::min not std::max.  Disallow surrogate pairs.
2891         (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
2892         * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
2893         * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
2895         PR libstdc++/79511
2896         * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
2897         as a surrogate pair.
2898         (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
2899         for internal representation.
2900         (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
2901         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
2903         PR libstdc++/80064
2904         * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
2905         (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
2906         invalid instantiations using function types for _Compare argument.
2907         * testsuite/25_algorithms/make_heap/80064.cc: New test.
2909         PR libstdc++/67440
2910         * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
2911         for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
2913 2017-03-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
2915         Implement LWG 2857, {variant,optional,any}::emplace should
2916         return the constructed value.
2917         * include/std/any (emplace(_Args&&...)): Change the return type and
2918         return a reference to the constructed value.
2919         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2920         * include/std/optional (emplace(_Args&&...)): Likewise.
2921         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2922         * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
2923         (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
2924         (emplace<_Np>(_Args&&...)): Likewise.
2925         (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
2926         * testsuite/20_util/any/assign/emplace.cc: Add tests for
2927         checking the return value of emplace.
2928         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2929         * testsuite/20_util/optional/assignment/6.cc: Add tests for
2930         checking the return value of emplace.
2931         * testsuite/20_util/variant/run.cc: Likewise.
2933 2017-03-15  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
2935         PR libstdc++/62045
2936         * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
2937         (is_heap): Remove.
2938         (push_heap): Remove the wrong checking using is_heap.
2939         (make_heap): Remove the assertion using is_heap.
2940         * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
2941         (modify): Ditto.
2942         (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
2943         calling make_heap.
2945 2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
2947         PR libstdc++/62045
2948         * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
2949         New test.
2950         * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
2951         error in comment.
2953 2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
2955         * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
2956         comment.
2957         * config.h.in: Regenerate.
2958         * configure: Regenerate.
2959         * doc/Makefile.in: Regenerate.
2961 2017-03-14  Jonathan Wakely  <jwakely@redhat.com>
2963         PR libstdc++/79162
2964         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2965         (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
2966         with a constrained template.
2967         [!_GLIBCXX_USE_CXX11_ABI]
2968         (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
2969         * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
2970         * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
2972 2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
2974         PR libstdc++/80034
2975         * include/bits/list.tcc (merge(list&&)): Use const for the size_t
2976         in the catch-block.
2977         (merge(list&&, _StrictWeakOrdering)): Likewise.
2978         * testsuite/23_containers/list/operations/80034.cc: New.
2980 2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
2982         Implement LWG 2806, Base class of bad_optional_access.
2983         * include/std/optional (bad_optional_access):
2984         Derive from std::exception.
2985         (bad_optional_access::bad_optional_access): Adjust.
2986         (bad_optional_access::what): New.
2987         (__throw_bad_optional_access(const char*)):
2988         Remove the parameter and adjust calls.
2989         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
2990         * testsuite/20_util/optional/typedefs.cc: Likewise.
2992 2017-03-12  Ville Voutilainen  <ville.voutilainen@gmail.com>
2994         Implement LWG 2934, optional<const T> doesn't compare with T.
2995         * include/std/optional
2996         (operator==(const optional<_Tp>&, const optional<_Tp>&)):
2997         Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
2998         (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2999         Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
3000         (operator<(const optional<_Tp>&, const optional<_Tp>&)):
3001         Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
3002         (operator>(const optional<_Tp>&, const optional<_Tp>&)):
3003         Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
3004         (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
3005         Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
3006         (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
3007         Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
3008         (operator==(const optional<_Tp>&, const _Tp&)):
3009         Turn into operator==(const optional<_Tp>&, const _Up&).
3010         (operator==(const _Tp&, const optional<_Tp>&)):
3011         Turn into operator==(const _Up&, const optional<_Tp>&).
3012         (operator!=(const optional<_Tp>&, const _Tp&)):
3013         Turn into operator!=(const optional<_Tp>&, const _Up&).
3014         (operator!=(const _Tp&, const optional<_Tp>&)):
3015         Turn into operator!=(const _Up&, const optional<_Tp>&).
3016         (operator<(const optional<_Tp>&, const _Tp&)):
3017         Turn into operator<(const optional<_Tp>&, const _Up&).
3018         (operator<(const _Tp&, const optional<_Tp>&)):
3019         Turn into operator<(const _Up&, const optional<_Tp>&).
3020         (operator>(const optional<_Tp>&, const _Tp&)):
3021         Turn into operator>(const optional<_Tp>&, const _Up&).
3022         (operator>(const _Tp&, const optional<_Tp>&)):
3023         Turn into operator>(const _Up&, const optional<_Tp>&).
3024         (operator<=(const optional<_Tp>&, const _Tp&)):
3025         Turn into operator<=(const optional<_Tp>&, const _Up&).
3026         (operator<=(const _Tp&, const optional<_Tp>&)):
3027         Turn into operator<=(const _Up&, const optional<_Tp>&).
3028         (operator>=(const optional<_Tp>&, const _Tp&)):
3029         Turn into operator>=(const optional<_Tp>&, const _Up&).
3030         (operator>=(const _Tp&, const optional<_Tp>&)):
3031         Turn into operator>=(const _Up&, const optional<_Tp>&).
3032         * testsuite/20_util/optional/relops/7.cc: New.
3034 2017-03-10  Jonathan Wakely  <jwakely@redhat.com>
3036         * testsuite/17_intro/names.cc: Undefine macros that clash with
3037         identifiers in AIX system headers.
3039         * include/bits/invoke.h (__invoke): Use __invoke_result instead of
3040         result_of, and __is_nothrow_invocable instead of
3041         __is_nothrow_callable.
3042         * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
3043         instead of __is_callable.
3044         * include/std/functional (invoke): use invoke_result_t instead of
3045         result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
3046         (_Not_fn): Use __invoke_result instead of result_of.
3047         * include/std/type_traits (__result_of_memobj, __result_of_memfun):
3048         Remove partial specializations for reference_wrapper types.
3049         (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
3050         (__invoke_result): Define replacement for result_of and then use it to
3051         define result_of.
3052         (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
3053         with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
3054         respectively.
3055         (invoke_result, invoke_result_t): Define for C++17.
3056         (is_callable, is_nothrow_callable): Replace with is_invocable,
3057         is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
3058         (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
3059         is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
3060         * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
3061         instead of is_nothrow_callable_v.
3062         * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
3063         main function.
3064         * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
3065         instead of is_callable.
3066         * testsuite/20_util/is_callable/*: Rename directory and adjust tests
3067         to use new traits.
3068         * testsuite/20_util/is_nothrow_callable/*: Likewise.
3069         * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
3070         is_callable.
3071         * testsuite/20_util/variant/hash.cc: Likewise.
3073 2017-03-10  George Lander  <george.lander@arm.com>
3075         * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
3076         _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
3077         * configure: Regenerate.
3079 2017-03-09  Jonathan Wakely  <jwakely@redhat.com>
3081         * include/std/functional (_Not_fn): Define macro to simplify
3082         repetitive function definitions.
3084         * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
3085         * include/c_global/cstddef (std::byte): Define for C++17.
3086         * testsuite/18_support/byte/global_neg.cc: New test.
3087         * testsuite/18_support/byte/ops.cc: New test.
3088         * testsuite/18_support/byte/requirements.cc: New test.
3090 2017-03-05  Jonathan Wakely  <jwakely@redhat.com>
3092         * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
3093         * doc/html/*: Regenerate.
3094         * include/std/mutex (scoped_lock): Implement new C++17 template.
3095         * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
3096         * testsuite/30_threads/scoped_lock/requirements/
3097         explicit_instantiation.cc: New test.
3098         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
3100 2017-03-02  Gerald Pfeifer  <gerald@pfeifer.com>
3101             François Dumont  <frs.dumont@gmail.com>
3102             Jonathan Wakely  <jwakely@redhat.com>
3104         * doc/xml/manual/debug_mode.xml: Update and simplify note
3105         on link- and run-time coexistence.
3107 2017-03-02  Jonathan Wakely  <jwakely@redhat.com>
3109         * testsuite/17_intro/headers/names.cc: Rename to ...
3110         * testsuite/17_intro/names.cc: ... here.
3112         PR libstdc++/79789
3113         * include/bits/hashtable_policy.h (__clp2): Use reserved names for
3114         parameters and local variables.
3115         * include/bits/ios_base.h (make_error_code, make_error_condition):
3116         Likewise.
3117         * include/bits/list.tcc (list::sort): Likewise.
3118         * include/bits/mask_array.h (mask_array): Likewise.
3119         * include/bits/regex.h (regex_token_iterator): Likewise.
3120         * include/bits/slice_array.h (slice_array): Likewise.
3121         * include/bits/stl_algo.h (__sample): Likewise.
3122         * include/std/memory (undeclare_no_pointers): Likewise.
3123         * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
3124         Likewise.
3125         * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
3126         * testsuite/17_intro/headers/names.cc: New test.
3128         PR libstdc++/79798
3129         * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
3130         result_of that loses top-level cv-qualifiers.
3131         * testsuite/20_util/bind/79798.cc: New test.
3133 2017-03-01  Gerald Pfeifer  <gerald@pfeifer.com>
3135         * doc/xml/manual/documentation_hacking.xml: Tweak link to
3136         doxygen.org.
3138 2017-02-23  Jonathan Wakely  <jwakely@redhat.com>
3140         * include/experimental/iterator: Include <iterator>.
3141         * testsuite/experimental/iterator/requirements.cc: Check for contents
3142         of <iterator>.
3144 2017-02-19  Dinka Ranns  <dinka.ranns@googlemail.com>
3146         C++17 GB50 resolution
3147         * include/std/chrono (duration::operator++()): Add
3148         _GLIBCXX17_CONSTEXPR.
3149         (duration::operator++(int)): Likewise.
3150         (duration::operator--()): Likewise.
3151         (duration::operator--(int)): Likewise.
3152         (duration::operator+=(const duration&)): Likewise.
3153         (duration::operator-=(const duration&)): Likewise.
3154         (duration::operator*=(const rep&)): Likewise.
3155         (duration::operator/=(const rep&)): Likewise.
3156         (duration::operator%=(const rep&)): Likewise.
3157         (duration::operator%=(const duration&)): Likewise.
3158         (time_point::operator+=(const duration&)): Likewise.
3159         (time_point::operator-=(const duration&)): Likewise.
3160         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
3161         * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
3162         * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
3164 2017-02-19  Gerald Pfeifer  <gerald@pfeifer.com>
3166         * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
3168 2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
3170         * doc/xml/manual/io.xml: Update link to groups.google.com.
3171         Tweak link description.
3173 2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
3175         * doc/xml/manual/profile_mode.xml: Fix link.
3177 2017-02-16  Gerald Pfeifer  <gerald@pfeifer.com>
3179         * doc/xml/manual/policy_data_structures.xml: Simplify and
3180         standardize references to boost.org.
3181         * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
3182         * doc/xml/manual/shared_ptr.xml: Ditto.
3184 2017-02-16  Jonathan Wakely  <jwakely@redhat.com>
3186         PR libstdc++/60936
3187         * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
3188         written to buffer, not length remaining in buffer.
3190 2017-02-15  Tim Shen  <timshen@google.com>
3192         PR libstdc++/78723
3193         * include/std/variant (operator<(), operator>(), operator<=(),
3194         operator>=(), operator==(), operator!=()): Implement P0393R3.
3195         * testsuite/20_util/variant/compile.cc: Adjust tests.
3196         * testsuite/20_util/variant/run.cc: Adjust tests.
3198 2017-02-15  Tim Shen  <timshen@google.com>
3200         PR libstdc++/79513
3201         * include/std/variant (visit()): Forward variant types to the return
3202         type detection code.
3203         * testsuite/20_util/variant/compile.cc: Add test cases.
3205 2017-02-13  H.J. Lu  <hongjiu.lu@intel.com>
3207         PR libstdc++/79348
3208         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
3210 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
3212         PR libstdc++/79348
3213         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3214         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
3215         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
3216         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
3217         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
3218         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
3219         * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
3220         * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
3221         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
3223 2017-02-13  Jonathan Wakely  <jwakely@redhat.com>
3225         PR libstdc++/79486
3226         * include/std/future (__future_base::_Task_state::_M_run)
3227         (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
3228         result_of expressions.
3229         * testsuite/30_threads/packaged_task/79486.cc: New.
3231 2017-02-11  Jonathan Wakely  <jwakely@redhat.com>
3233         PR libstdc++/79467
3234         * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
3235         (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
3236         __is_callable check.
3237         * testsuite/20_util/shared_ptr/cons/79467.cc: New.
3239         * include/bits/atomic_base.h: Re-indent.
3241 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
3243         * doc/xml/manual/profile_mode.xml: Update a paper reference.
3245 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
3247         * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
3249 2017-02-08  Jonathan Wakely  <jwakely@redhat.com>
3251         * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
3252         name.
3253         * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
3254         broken links to texts that are no longer online.
3255         * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
3256         LCPC 2006 paper.
3257         * doc/xml/manual/using.xml: Update links to memory model information.
3258         * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
3259         Standard-Library Exception Safety".
3260         * doc/html/*: Regenerate.
3262 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
3264         * doc/xml/manual/profile_mode.xml: Unbreak link to
3265         "Optimizing Sorting with Machine Learning Algorithms".
3267 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
3269         * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
3271 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
3273         * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
3274         Migration Guide".
3276 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
3278         * doc/html/ext/lwg-active.html: Remove.
3279         * doc/html/ext/lwg-closed.html: Ditto.
3280         * doc/html/ext/lwg-defects.html: Ditto.
3282         * doc/Makefile.am (xml_extradir): Remove.
3283         (xml_extra): Ditto.
3284         (stamp-html-docbook-lwg): Remove recipe...
3285         (stamp-html-docbook-data): ...and its use here.
3286         * doc/Makefile.in: Regenerate.
3288         * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
3289         the relationship to the upstream working group.
3290         Replace a local link to ../ext/lwg-active.html by the upstream one.
3291         Replace all reference to ../ext/lwg-defects.html by a new entity
3292         &DR; which refers to the upstream address.
3294 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
3296         * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
3298 2017-02-06  Jonathan Wakely  <jwakely@redhat.com>
3300         PR libstdc++/79323
3301         * testsuite/20_util/duration/literals/range.cc: Prune extra output
3302         at -O0.
3304 2017-02-06  Gerald Pfeifer  <gerald@pfeifer.com>
3306         * doc/xml/manual/documentation_hacking.xml: Update URL of the
3307         DocBook Element Reference.  Use that term as link description
3308         instead of "online".
3309         epubcheck has moved to GitHub.
3310         Remove obsolete link to DocBook Publishing Tools.
3312 2017-02-03  Jonathan Wakely  <jwakely@redhat.com>
3314         PR libstdc++/66145
3315         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
3316         so new ios::failure can be caught even when old ABI is the default.
3317         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
3318         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
3319         exceptions_failbit.cc: Likewise.
3320         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
3321         exceptions_failbit.cc: Likewise.
3322         * testsuite/27_io/basic_istream/extractors_other/char/
3323         exceptions_null.cc: Likewise.
3324         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
3325         exceptions_null.cc: Likewise.
3326         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
3327         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
3328         * testsuite/27_io/basic_ostream/inserters_other/char/
3329         exceptions_null.cc: Likewise.
3330         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
3331         exceptions_null.cc: Likewise.
3332         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
3334         PR libstdc++/60936
3335         * src/c++11/Makefile.am: Add new files.
3336         * src/c++11/Makefile.in: Regenerate.
3337         * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
3338         (operator<<, operator>>, getline): Move explicit instantiations to ...
3339         * src/c++11/cow-string-io-inst.cc: ... new file.
3340         * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
3341         (operator<<, operator>>, getline): Move explicit instantiations to ...
3342         * src/c++11/cow-wstring-io-inst.cc: ... new file.
3343         * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
3344         (__throw_future_error, __throw_bad_function_call):
3345         (__throw_regex_error): Move functions for C++11 exceptions to the
3346         files that define the exception types.
3347         * src/c++11/functional.cc (__throw_bad_function_call): Move here.
3348         * src/c++11/future.cc (__throw_future_error): Likewise.
3349         * src/c++11/ios.cc (__throw_ios_failure): Likewise.
3350         * src/c++11/regex.cc (__throw_regex_error): Likewise.
3351         * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
3352         representation directly instead of calling __int_to_char.
3353         * src/c++11/sso_string.cc (__sso_string): New file for definition
3354         of __sso_string type.
3355         * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
3356         explicit instantiations of narrow string I/O functions.
3357         * src/c++11/system_error.cc (__throw_system_error): Move here.
3358         (__sso_string): Move to new file.
3359         * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
3360         explicit instantiations of wide string I/O functions.
3361         * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
3362         (operator>>, getline): Remove explicit instantiations from here.
3364 2017-02-02  H.J. Lu  <hongjiu.lu@intel.com>
3366         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
3368 2017-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3370         * configure.host: Separate Solaris/SPARC and x86 baselines.
3371         * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
3372         * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
3373         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
3374         * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
3375         ... here.
3376         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
3377         * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
3378         * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
3379         * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
3380         * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
3381         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
3382         * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
3383         ... here.
3384         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
3385         * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
3386         * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
3388         * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
3389         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
3390         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
3391         * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
3392         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
3393         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
3395 2017-02-01  Jonathan Wakely  <jwakely@redhat.com>
3397         PR libstdc++/78346
3398         * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
3399         not its referent.
3400         (_Iter_comp_to_iter): Likewise.
3401         * testsuite/25_algorithms/search/78346.cc: New test.
3403         PR libstdc++/79254
3404         * config/abi/pre/gnu.ver: Remove recently added symbols.
3405         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
3406         (basic_string::_M_copy_assign): Remove.
3407         (basic_string::operator=(const basic_string&)): Don't dispatch to
3408         _M_copy_assign. If source object is small just deallocate, otherwise
3409         perform new allocation before making any changes.
3410         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
3411         (basic_string::_M_copy_assign(const basic_string&, true_type)):
3412         Remove.
3413         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
3414         Test cases where the allocators are equal or the string is small.
3415         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
3416         Likewise.
3418 2017-01-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
3420         Implement LWG 2825, LWG 2756 breaks class template argument
3421         deduction for optional.
3422         * include/std/optional: Add a deduction guide.
3423         * testsuite/20_util/optional/cons/deduction_guide.cc: New.
3425 2017-01-27  Jonathan Wakely  <jwakely@redhat.com>
3427         PR libstdc++/79254
3428         * config/abi/pre/gnu.ver: Add new symbols.
3429         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
3430         (basic_string::_M_copy_assign): New overloaded functions to perform
3431         copy assignment.
3432         (basic_string::operator=(const basic_string&)): Dispatch to
3433         _M_copy_assign.
3434         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
3435         (basic_string::_M_copy_assign(const basic_string&, true_type)):
3436         Define, performing rollback on exception.
3437         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
3438         Test exception-safety guarantee.
3439         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
3440         Likewise.
3441         * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
3442         std::swap visible.
3444 2017-01-26  Jonathan Wakely  <jwakely@redhat.com>
3446         PR libstdc++/70607
3447         * include/tr1/complex (conj): Remove using-declaration and restore
3448         overloads, reverting previous change.
3450         * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
3451         mode.
3452         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
3453         Mark as unsupported in C++98 mode.
3454         * testsuite/23_containers/queue/requirements/constructible.cc:
3455         Likewise.
3456         * testsuite/23_containers/stack/requirements/constructible.cc:
3457         Likewise.
3458         * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
3460         PR libstdc++/79243
3461         * include/bits/c++config (literals::string_view_literals::__7): Add.
3462         Only declare versioned namespaces for the relevant C++ dialects.
3463         * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
3464         Add versioning macros.
3465         * include/experimental/bits/lfts_config.h:
3466         (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
3467         * include/experimental/string_view (fundamentals_v2::__detail):
3468         Add versioning macros.
3469         (fundamentals_v2::__detail::__identity): Remove.
3470         (fundamentals_v2::__detail::__idt): Use common_type instead of
3471         __detail::__identity.
3472         * include/std/string_view (__detail::__identity, __detail::__idt):
3473         Likewise.
3474         (literals::string_view_literals): Fix nesting of versioning macros.
3476         PR libstdc++/79190
3477         * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
3478         [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
3479         && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
3480         Retrieve original pointer value allocated by malloc.
3481         * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
3482         && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
3483         && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
3484         Define, adjusting pointer value allocated by malloc and storing for
3485         retrieval by operator delete.
3487 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
3489         * libsupc++/eh_atomics.h: Update copyright years.
3490         * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
3492 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
3494         PR libstdc++/61791
3495         PR libstdc++/70607
3496         * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
3497         (proj(T), conj(T)): Change return types per DR 1522.
3498         * include/tr1/complex (conj): Remove overloads and use std::conj.
3499         * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
3500         * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
3501         * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
3502         real(T) and imag(T). Allow testing for C++11 too.
3504 2017-01-24  Jonathan Wakely  <jwakely@redhat.com>
3506         PR libstdc++/79206
3507         * include/experimental/string_view (operator==): Check sizes first.
3508         * include/std/string_view (operator==): Likewise.
3510 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
3512         * testsuite/experimental/array/make_array.cc: Restore <functional>
3513         inclusion.
3515 2017-01-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3517         * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
3519 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
3521         PR libstdc++/79195
3522         * include/experimental/array (__make_array_elem): New class template
3523         and partial specialization.
3524         (__is_reference_wrapper): Move into __make_array_elem specialization.
3525         (make_array): Use __make_array_elem to determine element type and move
3526         static assertion into specialization. Qualify std::forward call.
3527         (to_array): Add exception specifiation.
3528         * testsuite/experimental/array/make_array.cc: Test argument types
3529         without a common type.
3530         * testsuite/experimental/array/neg.cc: Adjust expected error message.
3532 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
3534         * doc/xml/manual/debug.xml: code.google.com uses https now.
3536 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
3538         * doc/xml/manual/test.xml: Fix link into gccint online manual.
3540 2017-01-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
3542         Make poisoned hashes SFINAE away the call operator of the hash.
3543         * include/bits/functional_hash.h
3544         (__poison_hash::__enable_hash_call): New.
3545         * include/std/optional (__optional_hash_call_base): New.
3546         (hash<optional<_Tp>>): Derive from the new base,
3547         move the hash function into that base.
3548         * include/std/variant (__variant_hash_call_base_impl): New.
3549         (__variant_hash_call_base): Likewise.
3550         (hash<variant<_Types...>>): Derive from the new base,
3551         move the hash function into that base.
3552         * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
3553         * testsuite/20_util/variant/hash.cc: Likewise.
3555 2017-01-20  Joe Seymour  <joe.s@somniumtech.com>
3557         * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
3558         * configure: Regenerate.
3560 2017-01-20  Jonathan Wakely  <jwakely@redhat.com>
3562         PR libstdc++/69240
3563         * include/bits/random.h (uniform_real_distribution::param_type)
3564         (normal_distribution::param_type, lognormal_distribution::param_type)
3565         (gamma_distribution::param_type, chi_squared_distribution::param_type)
3566         (cauchy_distribution::param_type, fisher_f_distribution::param_type)
3567         (student_t_distribution::param_type)
3568         (bernoulli_distribution::param_type, binomial_distribution::param_type)
3569         (geometric_distribution::param_type)
3570         (negative_binomial_distribution::param_type)
3571         (poisson_distribution::param_type)
3572         (exponential_distribution::param_type)
3573         (weibull_distribution::param_type)
3574         (extreme_value_distribution::param_type)
3575         (discrete_distribution::param_type)
3576         (piecewise_constant_distribution::param_type)
3577         (piecewise_linear_distribution::param_type): Define operator!=.
3578         * include/bits/uniform_int_dist.h
3579         (uniform_int_distribution::param_type): Likewise.
3580         * include/ext/random (beta_distribution::param_type)
3581         (rice_distribution::param_type, nakagami_distribution::param_type)
3582         (pareto_distribution::param_type, k_distribution::param_type)
3583         (arcsine_distribution::param_type, hoyt_distribution::param_type)
3584         (triangular_distribution::param_type)
3585         (von_mises_distribution::param_type)
3586         (hypergeometric_distribution::param_type)
3587         (logistic_distribution::param_type)
3588         (uniform_on_sphere_distribution::param_type)
3589         (uniform_inside_sphere_distribution::param_type): Likewise.
3590         * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
3591         Test construction with param_type.
3592         * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
3593         Likewise.
3594         * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
3595         Likewise.
3596         * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
3597         Likewise.
3598         * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
3599         Likewise.
3600         * testsuite/26_numerics/random/extreme_value_distribution/cons/
3601         parms.cc: Likewise.
3602         * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
3603         Likewise.
3604         * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
3605         Likewise.
3606         * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
3607         Likewise.
3608         * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
3609         Likewise.
3610         * testsuite/26_numerics/random/negative_binomial_distribution/cons/
3611         parms.cc: Likewise.
3612         * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
3613         Likewise.
3614         * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
3615         Likewise.
3616         * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
3617         Likewise.
3618         * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
3619         Likewise.
3620         * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
3621         Likewise.
3622         * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
3623         Likewise.
3624         * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
3625         * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
3626         * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
3627         * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
3628         Likewise.
3629         * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
3630         * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
3631         * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
3632         * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
3633         * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
3634         * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
3635         * testsuite/ext/random/triangular_distribution/cons/parms.cc:
3636         Likewise.
3637         * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
3638         parms.cc: Likewise.
3639         * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
3641         PR libstdc++/72792
3642         * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
3643         (__allocator_traits_base::__size_type): Remove.
3644         (allocator_traits::_Ptr): New class template to detect const and void
3645         pointer types without instantiating pointer_traits::rebind
3646         unnecessarily.
3647         (allocator_traits::_Diff): Likewise for detecting difference_type.
3648         (allocator_traits::_Size): New class template to detect size_type
3649         without instantiating make_unsigned unnecessarily.
3650         * include/bits/ptr_traits.h (pointer_traits::element_type): Use
3651         __detected_or_t instead of __detected_or_t_.
3652         * include/std/type_traits (__detected_or_t_): Remove.
3653         * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
3655         PR libstdc++/72792
3656         PR libstdc++/72793
3657         * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
3658         Replace with class template using void_t.
3659         (__alloc_rebind): Define in terms of
3660         __allocator_traits_base::__rebind.
3661         (allocator_traits): Remove unconditional static_assert for
3662         rebind_alloc.
3663         * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
3664         (pointer_traits::__rebind): Replace with class template using void_t.
3665         (pointer_traits::rebind): Define in terms of __rebind.
3666         (pointer_traits): Remove unconditional static_assert for rebind.
3667         * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
3668         * testsuite/20_util/pointer_traits/rebind.cc: New test.
3670         PR libstdc++/69321
3671         * include/experimental/any (__any_caster): Avoid instantiating
3672         manager function for types that can't be stored in any.
3673         * include/std/any (__any_caster): Likewise.
3674         * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
3675         * testsuite/experimental/any/misc/any_cast.cc: Likewise.
3677         PR libstdc++/64903
3678         * include/bits/stl_algo.h (is_partitioned): Use increment instead of
3679         std::advance.
3681 2017-01-19  Jonathan Wakely  <jwakely@redhat.com>
3683         PR libstdc++/79156
3684         * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
3685         Fix return type.
3686         (__enable_shared_from_this): Declare __shared_ptr as a friend.
3687         * testsuite/ext/shared_ptr/1.cc: New test.
3689         PR libstdc++/64903
3690         * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
3691         point.
3692         * testsuite/25_algorithms/is_partitioned/2.cc: New test.
3694         * doc/xml/manual/abi.xml: Fix typo.
3695         * doc/html/manual/abi.html: Likewise.
3697         PR libstdc++/67085
3698         * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
3699         converting constructors from _Iter_less_iter.
3700         (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
3701         _Iter_comp_iter.
3702         (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
3703         (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
3704         * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
3705         (__make_heap, __sort_heap): Change _Compare parameters to references.
3706         (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
3707         (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
3708         functions as lvalues.
3709         (is_heap): Call __is_heap_until directly to avoid copying __comp.
3710         * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
3711         count copies during construction with empty sequence.
3713         PR libstdc++/67085
3714         * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
3715         (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
3716         * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
3717         number of copies.
3718         * testsuite/25_algorithms/make_heap/movable.cc: New test.
3720         PR libstdc++/67085
3721         * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
3722         (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
3723         _GLIBCXX_MOVE when passing comparison function to other functions.
3724         (is_heap_until, is_heap): Use std::move when passing comparison
3725         function.
3726         * testsuite/23_containers/priority_queue/67085.cc: New test.
3728         PR libstdc++/78905
3729         * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
3730         macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
3731         Document that the deprecated _GLIBCXX_VERSION macro was removed for
3732         the 4.0.0 release.
3733         * doc/html/*: Regenerate.
3734         * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
3735         * include/Makefile.in: Regenerate.
3736         * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
3737         * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
3738         dg-error.
3740 2017-01-18  Jonathan Wakely  <jwakely@redhat.com>
3742         PR libstdc++/69301
3743         * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
3744         aligned buffer instead of default-initialized variable.
3745         * testsuite/29_atomics/atomic/69301.cc: New test.
3746         * include/experimental/memory (observer_ptr::release): Use reserved
3747         name.
3748         * include/ext/pointer.h (_Pointer_adapter::operator++(int))
3749         (_Pointer_adapter::operator--(int)): Likewise.
3751         PR libstdc++/68925
3752         * include/experimental/random (randint): Use temporary instead of
3753         thread_local static.
3755 2017-01-17  Joshua Conner  <joshconner@google.com>
3757         * crossconfig.m4: Add fuchsia OS.
3758         * configure: Regenerate.
3760 2017-01-17  Jonathan Wakely  <jwakely@redhat.com>
3762         PR libstdc++/69699
3763         * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
3764         __GLIBCXX__ macro is not useful. Remove redundant date information
3765         and link to the GCC release timeline.
3766         (abi.versioning.active): Move partial sentence into the previous
3767         paragraph.
3768         * doc/html/*: Regenerate.
3770         PR libstdc++/79114
3771         * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
3772         of remove_reference.
3773         * testsuite/18_support/nested_exception/79114.cc: New test.
3775 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
3777         PR other/79046
3778         * configure.ac: Add GCC_BASE_VER.
3779         * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
3780         get version from BASE-VER file.
3781         * po/Makefile.in: Regenerated.
3782         * libsupc++/Makefile.in: Regenerated.
3783         * testsuite/Makefile.in: Regenerated.
3784         * src/Makefile.in: Regenerated.
3785         * configure: Regenerated.
3786         * Makefile.in: Regenerated.
3787         * include/Makefile.in: Regenerated.
3788         * doc/Makefile.in: Regenerated.
3789         * python/Makefile.in: Regenerated.
3790         * src/c++11/Makefile.in: Regenerated.
3791         * src/c++98/Makefile.in: Regenerated.
3792         * src/filesystem/Makefile.in: Regenerated.
3794 2017-01-16  Jonathan Wakely  <jwakely@redhat.com>
3796         PR libstdc++/66145
3797         * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
3798         exceptions.
3799         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
3800         for test, so new ios::failure can be caught.
3801         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
3802         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
3803         exceptions_failbit.cc: Likewise.
3804         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
3805         exceptions_failbit.cc: Likewise.
3806         * testsuite/27_io/basic_istream/extractors_other/char/
3807         exceptions_null.cc: Likewise.
3808         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
3809         exceptions_null.cc: Likewise.
3810         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
3811         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
3812         * testsuite/27_io/basic_ostream/inserters_other/char/
3813         exceptions_null.cc: Likewise.
3814         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
3815         exceptions_null.cc: Likewise.
3816         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
3818         PR libstdc++/78702
3819         * include/bits/locale_classes.h (locale::facet::__shim): Change from
3820         private to protected.
3821         * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
3822         make locale::facet::__shim accessible.
3824 2017-01-16  Ville Voutilainen  <ville.voutilainen@gmail.com>
3826         PR libstdc++/78389
3827         * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
3828         (merge(list&&, _StrictWeakOrdering)): Likewise.
3829         * testsuite/23_containers/list/operations/78389.cc: Add
3830         better test for the sizes.
3832 2017-01-14  Jonathan Wakely  <jwakely@redhat.com>
3834         * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
3835         Skip test when -D_GLIBCXX_PROFILE mode is included in options.
3836         * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
3837         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
3838         Likewise.
3839         * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
3840         * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
3841         * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
3842         * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
3843         * testsuite/23_containers/unordered_map/modifiers/extract.cc:
3844         Likewise.
3845         * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
3846         Likewise.
3847         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
3848         Likewise.
3849         * testsuite/23_containers/unordered_set/modifiers/extract.cc:
3850         Likewise.
3851         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
3852         Likewise.
3853         * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
3854         * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
3855         * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
3856         * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
3857         * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
3858         * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
3859         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
3860         * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
3861         * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
3862         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
3863         * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
3864         * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
3865         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
3867 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
3869         PR libstdc++/65411
3870         * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
3871         retry fclose on EINTR.
3873         * include/profile/base.h: Remove unused header that leads to header
3874         cycle in C++17 mode.
3876         PR libstdc++/79075
3877         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
3878         Make _If_sv private.
3879         [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
3880         basic_string_view arguments.
3882         PR libstdc++/79075
3883         * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
3884         redundant option from cxxflags.
3885         (check_effective_target_cxx11-abi): Define.
3886         * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
3887         effective target.
3888         * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
3889         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
3890         Likewise.
3891         * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
3892         Likewise.
3893         * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
3894         * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
3895         Likewise.
3896         * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
3897         Likewise.
3898         * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
3899         * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
3900         Likewise.
3901         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
3902         Likewise.
3903         * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
3904         Likewise.
3905         * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
3906         Likewise.
3907         * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
3908         Likewise.
3909         * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
3910         Likewise.
3911         * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
3912         Likewise.
3913         * testsuite/23_containers/list/61347.cc: Likewise.
3914         * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
3915         * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
3917 2017-01-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
3919         PR libstdc++/78389
3920         * include/bits/list.tcc (merge(list&&)):
3921         Adjust list sizes if the comparator throws.
3922         (merge(list&&, _StrictWeakOrdering)): Likewise.
3923         (sort()): Splice elements back from the scratch buffers
3924         if the comparator throws.
3925         (sort(_StrictWeakOrdering)): Likewise.
3926         * testsuite/23_containers/list/operations/78389.cc: New.
3928 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
3930         * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
3931         XFAIL for C++17 until node reinsertion supports fancy pointers.
3933         PR libstdc++/78361
3934         * testsuite/20_util/add_pointer/value.cc: Test forming function
3935         pointers.
3937 2017-01-13  Michael Brune  <lucdanton@free.fr>
3939         PR libstdc++/78361
3940         * include/std/type_traits (__is_referenceable): Handle noexcept
3941         function types.
3943 2017-01-12  Jonathan Wakely  <jwakely@redhat.com>
3945         PR libstdc++/77528
3946         * include/bits/stl_queue.h (queue, priority_queue): Remove default
3947         member-initializers and define default constructors as templates with
3948         constraints.
3949         * include/bits/stl_stack.h (stack): Likewise.
3950         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
3951         New.
3952         * testsuite/23_containers/priority_queue/requirements/
3953         explicit_instantiation/1.cc: Test more instantiations.
3954         * testsuite/23_containers/priority_queue/requirements/
3955         explicit_instantiation/1_c++98.cc: Likewise.
3956         * testsuite/23_containers/queue/requirements/constructible.cc: New.
3957         * testsuite/23_containers/stack/requirements/constructible.cc: New.
3959         PR libstdc++/66284
3960         * doc/xml/manual/intro.xml: Document LWG 2781 change.
3961         * doc/html/*: Regenerate.
3962         * include/std/functional (_Function_base::_Ref_manager): Remove.
3963         (_Function_handler): Remove partial specializations for
3964         reference_wrapper.
3965         (function::target): Remove special case for const qualification.
3966         * testsuite/20_util/function/6.cc: Adjust tests for target type.
3967         * testsuite/20_util/function/7.cc: Likewise.
3968         * testsuite/20_util/function/8.cc: Likewise.
3970 2017-01-11  Jonathan Wakely  <jwakely@redhat.com>
3972         PR libstdc++/78134
3973         * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
3974         (map::equal_range): Fix return type of heterogeneous overloads.
3975         * include/bits/stl_multimap.h (multimap::lower_bound)
3976         (multimap::upper_bound, multimap::equal_range): Likewise.
3977         * include/bits/stl_multiset.h (multiset::lower_bound)
3978         (multiset::upper_bound, multiset::equal_range): Likewise.
3979         * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
3980         (set::equal_range): Likewise.
3981         * testsuite/23_containers/map/operations/2.cc
3982         * testsuite/23_containers/multimap/operations/2.cc
3983         * testsuite/23_containers/multiset/operations/2.cc
3984         * testsuite/23_containers/set/operations/2.cc
3986         PR libstdc++/78273
3987         * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
3988         the heterogeneous comparison can only find one match.
3989         * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
3990         * testsuite/23_containers/map/operations/2.cc: Test count works with
3991         comparison function that just partitions rather than sorting.
3992         * testsuite/23_containers/set/operations/2.cc: Likewise.
3994 2017-01-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
3996         Reduce the size of variant, it doesn't need an index of
3997         type size_t internally.
3998         * include/std/variant (parse_numbers.h): New include.
3999         (__select_index): New.
4000         (_Variant_storage<false, _Types...>::_M_reset_impl): Use
4001         _index_type for comparison with variant_npos.
4002         (_Variant_storage<false, _Types...>::__index_type): New.
4003         (_Variant_storage<false, _Types...>::_M_index): Change the
4004         type from size_t to __index_type.
4005         (_Variant_storage<true, _Types...>::__index_type): New.
4006         (_Variant_storage<true, _Types...>::_M_index): Change the
4007         type from size_t to __index_type.
4008         (_Variant_base::_M_valid): Use _Storage::__index_type
4009         for comparison with variant_npos.
4010         (variant::index): Use _Base::_Storage::__index_type
4011         for comparison with variant_npos.
4012         * testsuite/20_util/variant/index_type.cc: New.
4014 2017-01-10  Jonathan Wakely  <jwakely@redhat.com>
4016         * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
4017         effective target selector to prevent running in C++17 mode.
4019         PR libstdc++/77528
4020         * include/bits/stl_queue.h (queue::c): Add default member initializer.
4021         (queue::queue()): Add constructor and define as defaulted.
4022         (queue::queue(_Sequence&&)): Remove default argument.
4023         (priority_queue::c, priority_queue::comp): Add default member
4024         initializers.
4025         (priority_queue::priority_queue()): Add constructor and define as
4026         defaulted.
4027         (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
4028         Remove default argument for first parameter.
4029         * include/bits/stl_stack.h (stack::c): Add default member initializer.
4030         (stack::stack()): Add constructor and define as defaulted.
4031         (stack::stack(const _Sequence&)): Remove default argument.
4032         * testsuite/23_containers/priority_queue/requirements/
4033         explicit_instantiation/1.cc: Test explicit instantiation with
4034         non-DefaultConstructible sequence.
4035         * testsuite/23_containers/priority_queue/77528.cc: New test.
4036         * testsuite/23_containers/priority_queue/requirements/
4037         explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
4038         * testsuite/23_containers/queue/77528.cc: New test.
4039         * testsuite/23_containers/queue/requirements/explicit_instantiation/
4040         1.cc: Test explicit instantiation with non-DefaultConstructible
4041         sequence.
4042         * testsuite/23_containers/queue/requirements/explicit_instantiation/
4043         1_c++0x.cc: Replace with 1_c++98.cc.
4044         * testsuite/23_containers/stack/77528.cc: New test.
4045         * testsuite/23_containers/stack/requirements/explicit_instantiation/
4046         1.cc: Test explicit instantiation with non-DefaultConstructible
4047         sequence.
4048         * testsuite/23_containers/stack/requirements/explicit_instantiation/
4049         1_c++0x.cc: Replace with 1_c++98.cc.
4051 2017-01-10  Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
4053         * include/bits/locale_facets_nonio.tcc
4054         (time_get::_M_extract_via_format): Avoid compilation errors with
4055         non-standard struct tm.
4057 2017-01-10  François Dumont  <fdumont@gcc.gnu.org>
4058             Jonathan Wakely  <jwakely@redhat.com>
4060         * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
4061         (is_specialization, strip_versioned_namespace): New helpers functions
4062         to work with symbols in the versioned namespace.
4063         (Printer.add_version): Add second name using versioned namespace.
4064         (add_one_template_type_printer, add_one_type_printer): Add second
4065         type printers using versioned namespace.
4066         (register_type_printers): Add template type printer for basic_string.
4067         (build_libstdcxx_dictionary): Remove dead code.
4068         * python/libstdcxx/v6/xmethods.py: Make all matchers look for
4069         versioned namespace.
4070         * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
4071         results.
4072         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
4074 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
4076         PR libstdc++/79017
4077         * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
4078         functions separately on darwin and if they're missing define
4079         _GLIBCXX_NO_C99_ROUNDING_FUNCS.
4080         * config.h.in: Regenerate.
4081         * configure: Regenerate.
4082         * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
4083         (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
4085         * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
4086         to detect correct thread_local destructors.
4087         * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
4088         Define.
4090 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
4091             Aditya Kumar  <hiraditya@msn.com>
4093         PR libstdc++/66414
4094         * include/bits/basic_string.tcc
4095         (basic_string::find(const CharT*, size_type, size_type)): Optimize.
4097 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
4099         * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
4100         * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
4102         * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
4103         Include <cassert> header.
4105         PR libstdc++/78968
4106         * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
4107         * configure: Regenerate.
4109 2017-01-06  Barrett Adair  <barrettellisadair@gmail.com>
4110             Jonathan Wakely  <jwakely@redhat.com>
4112         * include/std/variant (variant, swap): Replace __and_ usage with fold
4113         expressions.
4115 2017-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4117         PR go/78978
4118         * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
4119         * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
4120         GLIBCXX_CHECK_ASSEMBLER_HWCAP.
4121         * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
4122         HWCAP_FLAGS.
4123         * aclocal.m4: Regenerate.
4124         * configure: Regenerate.
4125         * Makefile.in, doc/Makefile.in, include/Makefile.in,
4126         libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
4127         src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
4128         src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
4130 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
4132         * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
4134         PR libstdc++/78991
4135         * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
4136         (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
4137         (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
4138         move function objects.
4139         (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
4140         (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
4141         * testsuite/25_algorithms/sort/78991.cc: New test.
4143 2017-01-05  Jonathan Wakely  <jwakely@redhat.com>
4145         * include/bits/std_function.h (function::_Signature_type): Remove.
4146         (function::function(_Functor)): Adjust.
4148 2017-01-05  Tim Shen  <timshen@google.com>
4150         PR libstdc++/78996
4151         * include/std/variant (__gen_vtable_impl): rename __unused to
4152         __dimensions to avoid naming conflict.
4154 2017-01-04  Jonathan Wakely  <jwakely@redhat.com>
4156         PR libstdc++/78968
4157         * config.h.in: Regenerate.
4158         * configure: Likewise.
4159         * configure.ac: Check for __cxa_thread_atexit.
4160         * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
4161         Don't define __cxa_thread_atexit if libc provides it.
4163 2017-01-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
4165         Implement 2801, Default-constructibility of unique_ptr.
4166         * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
4167         (unique_ptr::_DeleterConstraint): Likewise.
4168         (unique_ptr()): Constrain.
4169         (unique_ptr(pointer)): Likewise.
4170         (unique_ptr(nullptr_t)): Likewise.
4171         (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
4172         (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
4173         (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
4174         (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
4175         * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
4176         * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
4177         * testsuite/20_util/unique_ptr/cons/default.cc: New.
4178         * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
4180 2017-01-04  Pauli Nieminen  <suokkos@gmail.com>
4181             Jonathan Wakely  <jwakely@redhat.com>
4183         PR libstdc++/64735
4184         * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
4185         * config.h.in: Regenerate.
4186         * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
4187         (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
4188         exports for exception_ptr, nested_exception, and future conditional.
4189         [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
4190         exports for exception_ptr, nested_exception, and future conditional.
4191         * configure: Regenerate.
4192         * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
4193         * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
4194         * libsupc++/eh_atomics.h: New file for internal use only.
4195         (__eh_atomic_inc, __eh_atomic_dec): New.
4196         * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
4197         (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
4198         (rethrow_exception): Use eh_atomics.h reference counting helpers.
4199         * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
4200         * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
4201         * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
4202         * libsupc++/exception_ptr.h: Likewise.
4203         * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
4204         * libsupc++/nested_exception.cc: Remove check for
4205         ATOMIC_INT_LOCK_FREE.
4206         * libsupc++/nested_exception.h: Likewise.
4207         * src/c++11/future.cc: Likewise.
4208         * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
4209         * testsuite/18_support/nested_exception/*: Likewise.
4210         * testsuite/30_threads/async/*: Likewise.
4211         * testsuite/30_threads/future/*: Likewise.
4212         * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
4213         * testsuite/30_threads/packaged_task/*: Likewise.
4214         * testsuite/30_threads/promise/*: Likewise.
4215         * testsuite/30_threads/shared_future/*: Likewise.
4217 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
4219         * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
4220         defaults to https; adjust reference.
4222 2017-01-03  Jonathan Wakely  <jwakely@redhat.com>
4224         PR libstdc++/78956
4225         * include/std/thread (thread(const thread&&)): Add deleted
4226         constructor.
4227         * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
4229         * doc/xml/manual/spine.xml: Update copyright years.
4230         * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
4231         * doc/xml/manual/test.xml: Likewise.
4232         * doc/html/*: Regenerate.
4234 2017-01-01  Gerald Pfeifer  <gerald@pfeifer.com>
4236         * doc/xml/faq.xml: Update address of C++ ABI link.
4237         * doc/xml/manual/abi.xml: Ditto.
4239 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
4241         Update copyright years.
4243 Copyright (C) 2017 Free Software Foundation, Inc.
4245 Copying and distribution of this file, with or without modification,
4246 are permitted in any medium without royalty provided the copyright
4247 notice and this notice are preserved.