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