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