1 2017-11-29 David Malcolm <dmalcolm@redhat.com>
3 * testsuite/20_util/duration/literals/range.cc: Update expected
4 line of a static_assert failure.
6 2017-11-28 Glen Joseph Fernandes <glenjofe@gmail.com>
8 * include/bits/ptr_traits.h (to_address): Implement to_address.
9 * testsuite/20_util/to_address/1.cc: New test.
11 2017-11-27 Stephan Bergmann <sbergman@redhat.com>
13 * include/std/string_view (basic_string_view::find_first_of): Add
16 * include/bits/unordered_map.h (unordered_map): Fix deduction guide.
17 * include/debug/unordered_map (unordered_map): Likewise.
19 2017-11-23 Jonathan Wakely <jwakely@redhat.com>
21 * libsupc++/new (launder): Add nodiscard attribute.
22 * testsuite/18_support/launder/nodiscard.cc: New test.
24 * include/bits/fs_path.h (path::empty): Add nodiscard attribute.
25 * include/bits/range_access.h (empty): Likewise.
26 * include/std/string_view (basic_string_view::empty): Likewise.
27 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc: New
29 * testsuite/24_iterators/range_access_cpp17_neg.cc: New test.
30 * testsuite/27_io/filesystem/path/query/empty_neg.cc: New test.
33 * include/std/type_traits (__not_): Explicitly convert to bool.
34 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
35 * testsuite/20_util/logical_traits/83134.cc: New test.
36 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
38 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
41 2017-11-22 Jonathan Wakely <jwakely@redhat.com>
44 * include/bits/stl_tree.h (_Rb_tree): Relax invocable checks for
45 comparison object pre-C++17.
47 2017-11-21 Jonathan Wakely <jwakely@redhat.com>
50 * include/bits/allocator.h (allocator<const _Tp>)
51 (allocator<volatile _Tp>, allocator<const volatile _Tp>): Add partial
53 * include/bits/forward_list.h (forward_list): Add static assertions.
54 * include/bits/hashtable.h (__cache_default): Use
55 __is_nothrow_invocable instead of __is_noexcept_hash.
56 (_Hashtable): Add static assertions.
57 * include/bits/hashtable_policy.h (__is_noexcept_hash): Remove.
58 * include/bits/stl_deque.h (deque): Add static assertions.
59 * include/bits/stl_function.h (_Identity<const _Tp>): Add partial
61 * include/bits/stl_list.h (list): Add static assertions.
62 * include/bits/stl_map.h (map): Likewise.
63 * include/bits/stl_multimap.h (multimap): Likewise.
64 * include/bits/stl_multiset.h (multiset): Likewise.
65 * include/bits/stl_set.h (set): Likewise.
66 * include/bits/stl_tree.h (_Rb_tree): Likewise.
67 * include/bits/stl_vector.h (vector): Likewise.
68 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
69 Use typename instead of class in template-parameter-list and remove
71 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
73 * testsuite/23_containers/deque/48101-2_neg.cc: New test.
74 * testsuite/23_containers/deque/48101_neg.cc: New test.
75 * testsuite/23_containers/forward_list/48101-2_neg.cc: New test.
76 * testsuite/23_containers/forward_list/48101_neg.cc: New test.
77 * testsuite/23_containers/list/48101-2_neg.cc: New test.
78 * testsuite/23_containers/list/48101_neg.cc: New test.
79 * testsuite/23_containers/map/48101-2_neg.cc: New test.
80 * testsuite/23_containers/map/48101_neg.cc: New test.
81 * testsuite/23_containers/map/operations/31440.cc: Fix comparison
82 object to have const-qualified call operator.
83 * testsuite/23_containers/multimap/48101-2_neg.cc: New test.
84 * testsuite/23_containers/multimap/48101_neg.cc: New test.
85 * testsuite/23_containers/multiset/48101-2_neg.cc: New test.
86 * testsuite/23_containers/multiset/48101_neg.cc: New test.
87 * testsuite/23_containers/set/48101-2_neg.cc: New test.
88 * testsuite/23_containers/set/48101_neg.cc: New test.
89 * testsuite/23_containers/unordered_map/48101-2_neg.cc: New test.
90 * testsuite/23_containers/unordered_map/48101_neg.cc: New test.
91 * testsuite/23_containers/unordered_multimap/48101-2_neg.cc: New test.
92 * testsuite/23_containers/unordered_multimap/48101_neg.cc: New test.
93 * testsuite/23_containers/unordered_multiset/48101-2_neg.cc: New test.
94 * testsuite/23_containers/unordered_multiset/48101_neg.cc: New test.
95 * testsuite/23_containers/unordered_set/48101-2_neg.cc: New test.
96 * testsuite/23_containers/unordered_set/48101_neg.cc: New test.
97 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
99 * testsuite/23_containers/vector/48101-2_neg.cc: New test.
100 * testsuite/23_containers/vector/48101_neg.cc: New test.
102 2017-11-21 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
104 * doc/xml/manual/using.xml (manual.intro.using.macros): Move
105 variablelist element at the end of its list.
107 2017-11-21 Sebastian Huber <sebastian.huber@embedded-brains.de>
109 * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Add rtems*.
110 (GLIBCXX_ENABLE_FILESYSTEM_TS): Likewise.
111 * configure: Regenerate.
113 2017-11-20 François Dumont <fdumont@gcc.gnu.org>
115 * include/bits/streambuf_iterator.h (istreambuf_iterator<>): Declare
116 std::advance for istreambuf_iterator of char types to be friend.
117 (std::advance(istreambuf_iterator&, _Distance)): New overload.
118 * include/std/streambuf (basic_streambuf<>): Declare std::advance for
119 istreambuf_iterator of char types to be friend.
120 * testsuite/22_locale/money_get/get/char/9.cc: Have
121 istreambuf_iterator created on the fly when calling money_get<>::get.
122 * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
123 * testsuite/24_iterators/istreambuf_iterator/debug/1_neg.cc: New.
124 * testsuite/24_iterators/istreambuf_iterator/debug/2_neg.cc: New.
125 * testsuite/25_algorithms/advance/istreambuf_iterators/char/1.cc: New.
126 * testsuite/25_algorithms/advance/istreambuf_iterators/char/1_neg.cc:
128 * testsuite/25_algorithms/advance/istreambuf_iterators/char/2.cc: New.
129 * testsuite/25_algorithms/advance/istreambuf_iterators/char/2_neg.cc:
131 * testsuite/25_algorithms/advance/istreambuf_iterators/char/3_neg.cc:
133 * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1.cc:
135 * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1_neg.cc:
137 * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2.cc:
139 * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2_neg.cc:
141 * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/3_neg.cc:
143 * testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc: Leverage
144 on std::advance overload.
145 * testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
148 2017-11-20 Jonathan Wakely <jwakely@redhat.com>
150 * testsuite/special_functions/18_riemann_zeta/check_value.cc: Fix
151 duplicate dg-options directive.
152 * testsuite/tr1/5_numerical_facilities/special_functions/
153 20_riemann_zeta/check_value_neg.cc: Likewise.
155 2017-11-20 Ville Voutilainen <ville.voutilainen@gmail.com>
158 * include/bits/stl_iterator_base_funcs.h (next):
159 Use InputIterator instead of ForwardIterator.
160 * testsuite/24_iterators/operations/lwg2353.cc: New.
161 * testsuite/24_iterators/operations/next_neg.cc: Remove.
163 2017-11-18 Edward Smith-Rowland <3dw4rd@verizon.net>
165 PR libstdc++/pr66689 - comp_ellint_3 and ellint_3 return garbage values
166 * include/tr1/ell_integral.tcc: Correct the nu sign convention
167 in ellint_3 and comp_ellint_3.
168 * testsuite/tr1/5_numerical_facilities/special_functions/
169 06_comp_ellint_3/check_value.cc: Regen with correct values.
170 * testsuite/tr1/5_numerical_facilities/special_functions/
171 14_ellint_3/check_value.cc: Ditto.
172 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: Ditto.
173 * testsuite/special_functions/13_ellint_3/check_value.cc: Ditto.
174 * testsuite/tr1/5_numerical_facilities/special_functions/
175 01_assoc_laguerre/check_value.cc: Regen.
176 * testsuite/tr1/5_numerical_facilities/special_functions/
177 02_assoc_legendre/check_value.cc: Regen.
178 * testsuite/tr1/5_numerical_facilities/special_functions/
179 03_beta/check_value.cc: Regen.
180 * testsuite/tr1/5_numerical_facilities/special_functions/
181 04_comp_ellint_1/check_value.cc: Regen.
182 * testsuite/tr1/5_numerical_facilities/special_functions/
183 05_comp_ellint_2/check_value.cc: Regen.
184 * testsuite/tr1/5_numerical_facilities/special_functions/
185 07_conf_hyperg/check_value.cc: Regen.
186 * testsuite/tr1/5_numerical_facilities/special_functions/
187 08_cyl_bessel_i/check_value.cc: Regen.
188 * testsuite/tr1/5_numerical_facilities/special_functions/
189 09_cyl_bessel_j/check_value.cc: Regen.
190 * testsuite/tr1/5_numerical_facilities/special_functions/
191 10_cyl_bessel_k/check_value.cc: Regen.
192 * testsuite/tr1/5_numerical_facilities/special_functions/
193 11_cyl_neumann/check_value.cc: Regen.
194 * testsuite/tr1/5_numerical_facilities/special_functions/
195 12_ellint_1/check_value.cc: Regen.
196 * testsuite/tr1/5_numerical_facilities/special_functions/
197 13_ellint_2/check_value.cc: Regen.
198 * testsuite/tr1/5_numerical_facilities/special_functions/
199 15_expint/check_value_neg.cc: Regen.
200 * testsuite/tr1/5_numerical_facilities/special_functions/
201 16_hermite/check_value.cc: Regen.
202 * testsuite/tr1/5_numerical_facilities/special_functions/
203 17_hyperg/check_value.cc: Regen.
204 * testsuite/tr1/5_numerical_facilities/special_functions/
205 18_laguerre/check_value.cc: Regen.
206 * testsuite/tr1/5_numerical_facilities/special_functions/
207 19_legendre/check_value.cc: Regen.
208 * testsuite/tr1/5_numerical_facilities/special_functions/
209 20_riemann_zeta/check_value_neg.cc: Regen.
210 * testsuite/tr1/5_numerical_facilities/special_functions/
211 21_sph_bessel/check_value.cc: Regen.
212 * testsuite/tr1/5_numerical_facilities/special_functions/
213 22_sph_legendre/check_value.cc: Regen.
214 * testsuite/tr1/5_numerical_facilities/special_functions/
215 23_sph_neumann/check_value.cc: Regen.
216 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: Regen.
217 * testsuite/ext/special_functions/hyperg/check_value.cc: Regen.
218 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: Regen.
219 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Regen.
220 * testsuite/special_functions/03_beta/check_value.cc: Regen.
221 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: Regen.
222 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: Regen.
223 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: Regen.
224 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: Regen.
225 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: Regen.
226 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Regen.
227 * testsuite/special_functions/11_ellint_1/check_value.cc: Regen.
228 * testsuite/special_functions/12_ellint_2/check_value.cc: Regen.
229 * testsuite/special_functions/14_expint/check_value.cc: Regen.
230 * testsuite/special_functions/15_hermite/check_value.cc: Regen.
231 * testsuite/special_functions/16_laguerre/check_value.cc: Regen.
232 * testsuite/special_functions/17_legendre/check_value.cc: Regen.
233 * testsuite/special_functions/18_riemann_zeta/check_value.cc: Regen.
234 * testsuite/special_functions/19_sph_bessel/check_value.cc: Regen.
235 * testsuite/special_functions/20_sph_legendre/check_value.cc: Regen.
236 * testsuite/special_functions/21_sph_neumann/check_value.cc: Regen.
237 * testsuite/tr1/5_numerical_facilities/special_functions/
238 06_comp_ellint_3/pr66689.cc: New.
239 * testsuite/tr1/5_numerical_facilities/special_functions/
240 14_ellint_3/pr66689.cc: New.
241 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc: New.
242 * testsuite/special_functions/13_ellint_3/pr66689.cc: New.
244 2017-11-18 Edward Smith-Rowland <3dw4rd@verizon.net>
245 Expose Airy functions as an extenaion.
246 * include/bits/specfun.h: Expose airy_ai and airy_bi.
247 * include/tr1/modified_bessel_func.tcc: Treat NaN and inf arg, return.
248 * testsuite/ext/special_functions/airy_ai/check_nan.cc: New.
249 * testsuite/ext/special_functions/airy_ai/check_value.cc: New.
250 * testsuite/ext/special_functions/airy_ai/compile.cc: New.
251 * testsuite/ext/special_functions/airy_bi/check_nan.cc: New.
252 * testsuite/ext/special_functions/airy_bi/check_value.cc: New.
253 * testsuite/ext/special_functions/airy_bi/compile.cc: New.
255 2017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
257 * acinclude.m4: Add cet.m4.
258 * configure.ac: Set CET_FLAGS. Update EXTRA_CFLAGS,
260 * libsupc++/Makefile.am: Use Add EXTRA_CFLAGS.
261 * Makefile.in: Regenerate.
262 * configure: Likewise.
263 * doc/Makefile.in: Likewise.
264 * include/Makefile.in: Likewise.
265 * libsupc++/Makefile.in: Likewise.
266 * po/Makefile.in: Likewise.
267 * python/Makefile.in: Likewise.
268 * src/Makefile.in: Likewise.
269 * src/c++11/Makefile.in: Likewise.
270 * src/c++98/Makefile.in: Likewise.
271 * src/filesystem/Makefile.in: Likewise.
272 * testsuite/Makefile.in: Likewise.
274 2017-11-17 Jonathan Wakely <jwakely@redhat.com>
277 * include/std/fstream (basic_filebuf::_If_path): Move to
278 namespace-scope and rename to _If_fs_path.
279 (basic_filebuf::open): Use new name.
280 (basic_ifstream(_Path, ios::openmode))
281 (basic_ifstream::open(_Path, ios::openmode))
282 (basic_ofstream(_Path, ios::openmode))
283 (basic_ofstream::open(_Path, ios::openmode))
284 (basic_fstream(_Path, ios::openmode))
285 (basic_fstream::open(_Path, ios::openmode)): Use _If_fs_path.
286 * testsuite/27_io/basic_filebuf/open/char/path.cc: Test with filename
288 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
289 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
290 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
291 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
292 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
293 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
296 2017-11-17 Marc Glisse <marc.glisse@inria.fr>
298 * include/bits/vector.tcc (vector::_M_realloc_insert): Cache old
299 values before the allocation.
301 2017-11-16 Jonathan Wakely <jwakely@redhat.com>
303 * include/std/future (shared_future): Add noexcept to copy constructor
304 and copy-assignment operator (LWG 2799).
306 2017-11-15 Ville Voutilainen <ville.voutilainen@gmail.com>
309 * include/std/numeric (gcd): Use remove_cv_t, not remove_cv.
311 2017-11-15 Jonathan Wakely <jwakely@redhat.com>
313 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Leave
315 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
316 Check for past-the-end before dereferencing.
317 * testsuite/experimental/filesystem/iterators/
318 recursive_directory_iterator.cc: Likewise.
320 * include/bits/range_access.h (size, empty, data): Add conditional
321 noexcept to generic overloads.
323 2017-11-14 Ville Voutilainen <ville.voutilainen@gmail.com>
325 Implement LWG 2733 and LWG 2759
326 * include/experimental/numeric (gcd): Reject cv-qualified bool.
328 * include/std/numeric (gcd): Likewise.
330 * testsuite/26_numerics/gcd/gcd_neg.cc: Add tests and adjust.
331 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
333 2017-11-14 Jonathan Wakely <jwakely@redhat.com>
335 * include/bits/locale_conv.h (wbuffer_convert::_M_conv_get): Fix typo.
336 * testsuite/22_locale/conversions/buffer/3.cc: New test.
338 2017-11-10 Jonathan Wakely <jwakely@redhat.com>
340 * testsuite/util/testsuite_tr1.h (ThrowMoveConsClass): Use noexcept.
343 * include/std/fstream (basic_ifstream::open, basic_ofstream::open)
344 (basic_fstream::open): Fix missing return.
346 2017-11-07 Jonathan Wakely <jwakely@redhat.com>
348 * src/filesystem/ops-common.h (make_file_type) [S_ISSOCK]: Only use
349 S_ISSOCK when defined.
351 2017-11-06 François Dumont <fdumont@gcc.gnu.org>
353 * testsuite/libstdc++-prettyprinters/tr1.cc: Compile with -O0.
355 2017-11-06 Martin Liska <mliska@suse.cz>
357 * testsuite/27_io/basic_fstream/cons/char/path.cc (main):
358 Return a value for functions with non-void return type,
359 or change type to void, or add -Wno-return-type for test.
360 * testsuite/27_io/basic_ifstream/cons/char/path.cc (main):
362 * testsuite/27_io/basic_ofstream/open/char/path.cc (main):
365 2017-11-06 Paolo Carlini <paolo.carlini@oracle.com>
367 * testsuite/20_util/optional/cons/deduction.cc: Avoid -Wreturn-type
369 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
370 * testsuite/20_util/pair/traits.cc: Likewise.
371 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
372 * testsuite/20_util/variant/compile.cc: Likewise.
373 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
374 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
377 2017-11-05 Gerald Pfeifer <gerald@pfeifer.com>
379 * doc/xml/manual/abi.xml: Move docs.oracle.com references to https.
381 2017-11-03 Jonathan Wakely <jwakely@redhat.com>
383 * include/std/type_traits (endian): Define new enumeration type.
384 * testsuite/20_util/endian/1.cc: New test.
386 * include/bits/node_handle.h (_Node_insert_return::get): Remove, as
389 2017-11-01 François Dumont <fdumont@gcc.gnu.org>
391 * python/libstdcxx/v6/printers.py (StdExpAnyPrinter.__init__): Strip
392 typename versioned namespace before the substitution.
393 (StdExpOptionalPrinter.__init__): Likewise.
394 (StdVariantPrinter.__init__): Likewise.
395 (Printer.add_version): Inject versioned namespace after std or
397 (build_libstdcxx_dictionary): Adapt add_version usages, always pass
398 namespace first and symbol second.
400 2017-11-01 Jonathan Wakely <jwakely@redhat.com>
403 * src/filesystem/std-path.cc (path::lexically_normal): Remove dot-dot
405 * testsuite/27_io/filesystem/path/generation/normal.cc: Add testcase.
406 * testsuite/util/testsuite_fs.h (compare_paths): Improve exception
409 2017-10-30 Jonathan Wakely <jwakely@redhat.com>
411 * include/Makefile.am (stamp-bits-sup): Do not create broken symlink
413 * include/Makefile.in: Regenerate.
415 * include/std/fstream (basic_ifstream, basic_ofstream, basic_fstream):
416 Remove outdated comments about calling c_str() to create a file stream
418 (basic_ofstream::basic_ofstream, basic_ofstream::open): Remove
419 redundant ios_mode::trunc bits from default arguments and comments.
421 * doc/xml/faq.xml: Adjust "What is libstdc++?" answer slightly.
423 * include/bits/hashtable_policy.h: Include <tuple>.
424 * include/std/unordered_map: Only include <bits/stl_pair.h> instead
425 of <utility> and <tuple>.
426 * include/std/unordered_set: Likewise.
428 2017-10-30 Ville Voutilainen <ville.voutilainen@gmail.com>
431 * include/debug/array (get(const array<_Tp, _Nm>&&)): New.
432 * include/std/array (get(const array<_Tp, _Nm>&&)): Likewise.
433 * include/std/tuple (get(const tuple<_Elements...>&&)): Likewise.
434 (get(const tuple<_Types...>&&)): Likewise.
435 * include/std/utility
436 (__pair_get::__const_move_get(const std::pair<_Tp1, _Tp2>&&)):
438 (get(const std::pair<_Tp1, _Tp2>&&)): Likewise.
439 (get(const pair<_Tp, _Up>&&)): Likewise.
440 (get(const pair<_Up, _Tp>&&)): Likewise.
441 * testsuite/20_util/pair/astuple/get.cc: Add tests for
443 * testsuite/20_util/pair/astuple/get_by_type.cc: Likewise.
444 * testsuite/20_util/tuple/element_access/get2.cc: Likewise.
445 * testsuite/20_util/tuple/element_access/get2_by_type.cc: Likewise.
446 * testsuite/23_containers/array/tuple_interface/get.cc: Likewise.
447 * testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc:
449 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
452 2017-10-27 Jonathan Wakely <jwakely@redhat.com>
454 * include/bits/node_handle.h (_Node_insert_return::get): Avoid
455 use of std::tie and std::get.
457 * include/Makefile.am: Put headers in alphabetical order.
458 * include/Makefile.in: Regenerate.
460 * include/bits/fs_dir.h (directory_iterator): Remove noexcept from
461 constructors and increment member (LWG 3013).
462 (recursive_directory_iterator): Likewise.
463 * include/bits/fs_ops.h (copy, copy_file, create_directories)
464 (is_empty, remove_all): Remove noexcept (LWG 3013 and LWG 3014).
465 * src/filesystem/std-dir.cc (directory_iterator::increment)
466 (recursive_directory_iterator::increment): Remove noexcept.
467 * src/filesystem/std-ops.cc (copy, copy_file, create_directories)
468 (is_empty, remove_all): Remove noexcept
470 * include/bits/fs_dir.h (file_status): Make default constructor
471 non-explicit (LWG 2787).
472 * testsuite/27_io/filesystem/file_status/1.cc: New test.
473 * testsuite/experimental/filesystem/file_status/1.cc: New test.
475 * include/std/fstream (basic_filebuf::_If_path): New SFINAE helper.
476 (basic_filebuf::open<Path>(const Path&, const ios_base::openmode&))
477 (basic_ifstream<Path>(const Path&, const ios_base::openmode&))
478 (basic_ifstream::open<Path>(const Path&, const ios_base::openmode&))
479 (basic_ofstream<Path>(const Path&, const ios_base::openmode&))
480 (basic_ofstream::open<Path>(const Path&, const ios_base::openmode&))
481 (basic_fstream<Path>(const Path&, const ios_base::openmode&))
482 (basic_fstream::open<Path>(const Path&, const ios_base::openmode&)):
483 New constructors and member functions.
484 * testsuite/27_io/basic_filebuf/open/char/path.cc: New test.
485 * testsuite/27_io/basic_fstream/cons/char/path.cc: New test.
486 * testsuite/27_io/basic_fstream/open/char/path.cc: New test.
487 * testsuite/27_io/basic_ifstream/cons/char/path.cc: New test.
488 * testsuite/27_io/basic_ifstream/open/char/path.cc: New test.
489 * testsuite/27_io/basic_ofstream/cons/char/path.cc: New test.
490 * testsuite/27_io/basic_ofstream/open/char/path.cc: New test.
492 * include/bits/fs_path.h (path::format): Define new enumeration type.
493 (path(string_type&&), path<Source>(const Source&))
494 (path<InputIterator>(InputIterator, InputIterator))
495 (path<Source>(const Source&, const locale&))
496 (path<InputIterator>(InputIterator, InputIterator, const locale&)):
497 Add format parameter.
498 * testsuite/27_io/filesystem/path/construct/format.cc: New test.
500 * include/bits/stl_algo.h (__find_if_not_n, generate_n): Cast to void
501 to ensure overloaded comma not used.
502 * include/bits/stl_algobase.h (__fill_n_a, equal): Likewise.
503 * include/bits/stl_uninitialized.h (__uninitialized_fill_n)
504 (__uninitialized_fill_n_a, __uninitialized_default_n_1)
505 (__uninitialized_default_n_a, __uninitialized_copy_n)
506 (__uninitialized_copy_n_pair): Likewise
507 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
508 Use test iterator wrappers with overloaded comma operator.
509 * testsuite/25_algorithms/fill_n/1.cc: Likewise.
510 * testsuite/25_algorithms/generate_n/1.cc: New test.
511 * testsuite/25_algorithms/stable_partition/1.cc: New test.
512 * testsuite/util/testsuite_iterators.h (operator,): Add deleted
513 non-member comma operator with iterator wrappers as right operand.
515 2017-10-26 Ville Voutilainen <ville.voutilainen@gmail.com>
517 Deduction guides for associative containers, debug mode deduction
519 * include/bits/stl_iterator.h (__iter_key_t)
520 (__iter_val_t, __iter_to_alloc_t): New.
521 * include/bits/stl_map.h: Add deduction guides.
522 * include/bits/stl_multimap.h: Likewise.
523 * include/bits/stl_multiset.h: Likewise.
524 * include/bits/stl_set.h: Likewise.
525 * include/bits/unordered_map.h: Likewise.
526 * include/bits/unordered_set.h: Likewise.
527 * include/debug/deque: Likewise.
528 * include/debug/forward_list: Likewise.
529 * include/debug/list: Likewise.
530 * include/debug/map.h: Likewise.
531 * include/debug/multimap.h: Likewise.
532 * include/debug/multiset.h: Likewise.
533 * include/debug/set.h: Likewise.
534 * include/debug/unordered_map: Likewise.
535 * include/debug/unordered_set: Likewise.
536 * include/debug/vector: Likewise.
537 * testsuite/23_containers/map/cons/deduction.cc: New.
538 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
539 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
540 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
541 * testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
542 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
544 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
546 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
548 2017-10-25 Jonathan Wakely <jwakely@redhat.com>
550 * doc/xml/manual/status_cxx2017.xml: Update C++17 status, and
551 information on feature-test macros.
552 * doc/html/*: Regenerate.
555 * include/std/array (tuple_size, tuple_element): Change class-key
556 from class to struct, to avoid annoying Clang warnings.
559 * src/filesystem/ops.cc (read_symlink): Handle st_size being zero.
560 * src/filesystem/std-ops.cc (read_symlink): Likewise.
561 (do_copy_file) [!NEED_DO_COPY_FILE]: Avoid multiple definitions.
563 * src/filesystem/std-path.cc (path::lexically_normal): Add missing
564 step to algorithm, for removing dot-dot elements after root-directory.
565 * testsuite/27_io/filesystem/operations/canonical.cc: Use
566 compare_paths for more exhaustive checks.
567 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
568 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
569 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
570 * testsuite/27_io/filesystem/path/concat/strings.cc: Fix comment.
571 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
572 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
574 * testsuite/27_io/filesystem/path/generation/normal.cc: Use
575 compare_paths for more exhaustive checks. Add extra testcases.
576 * testsuite/27_io/filesystem/path/generation/proximate.cc: Use
577 compare_paths for more exhaustive checks.
578 * testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
579 * testsuite/27_io/filesystem/path/generic/generic_string.cc: Remove
581 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: Fix
583 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: Use
584 compare_paths for more exhaustive checks.
585 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
587 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
589 * testsuite/util/testsuite_fs.h (compare_paths): Also compare native
593 * testsuite/27_io/filesystem/operations/permissions.cc: Fix test.
595 2017-10-24 François Dumont <fdumont@gcc.gnu.org>
597 * testsuite/lib/libstdc++.exp (check_v3_target_normal_mode): Add
599 (check_v3_target_normal_namespace): New.
600 * testsuite/lib/dg-options.exp (dg-require-normal-namespace): New.
601 * testsuite/18_support/headers/limits/synopsis.cc: Add latter.
602 * testsuite/20_util/from_chars/requirements.cc: Likewise.
603 * testsuite/20_util/headers/functional/synopsis.cc: Likewise.
604 * testsuite/20_util/headers/memory/synopsis.cc: Likewise.
605 * testsuite/20_util/headers/utility/synopsis.cc: Likewise.
606 * testsuite/20_util/to_chars/requirements.cc: Likewise.
607 * testsuite/21_strings/headers/string/synopsis.cc: Likewise.
608 * testsuite/22_locale/headers/locale/synopsis.cc: Likewise.
609 * testsuite/23_containers/headers/bitset/synopsis.cc: Likewise.
610 * testsuite/23_containers/headers/deque/synopsis.cc: Likewise.
611 * testsuite/23_containers/headers/forward_list/synopsis.cc: Likewise.
612 * testsuite/23_containers/headers/list/synopsis.cc: Likewise.
613 * testsuite/23_containers/headers/map/synopsis.cc: Likewise.
614 * testsuite/23_containers/headers/queue/synopsis.cc: Likewise.
615 * testsuite/23_containers/headers/set/synopsis.cc: Likewise.
616 * testsuite/23_containers/headers/stack/synopsis.cc: Likewise.
617 * testsuite/23_containers/headers/vector/synopsis.cc: Likewise.
618 * testsuite/23_containers/map/modifiers/erase/abi_tag.cc: Likewise.
619 * testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc: Likewise.
620 * testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc: Likewise.
621 * testsuite/23_containers/set/modifiers/erase/abi_tag.cc: Likewise.
622 * testsuite/24_iterators/headers/iterator/synopsis.cc: Likewise.
623 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: Likewise.
624 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: Likewise.
625 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Likewise.
626 * testsuite/26_numerics/complex/abi_tag.cc: Likewise.
627 * testsuite/26_numerics/headers/complex/synopsis.cc: Likewise.
628 * testsuite/26_numerics/headers/valarray/synopsis.cc: Likewise.
629 * testsuite/27_io/headers/fstream/synopsis.cc: Likewise.
630 * testsuite/27_io/headers/ios/synopsis.cc: Likewise.
631 * testsuite/27_io/headers/istream/synopsis.cc: Likewise.
632 * testsuite/27_io/headers/ostream/synopsis.cc: Likewise.
633 * testsuite/27_io/headers/sstream/synopsis.cc: Likewise.
634 * testsuite/27_io/headers/streambuf/synopsis.cc: Likewise.
636 2017-10-24 Jonathan Wakely <jwakely@redhat.com>
638 * config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Ignore
639 -Wattribute-alias warnings.
640 * src/c++11/istream-inst.cc: Likewise.
641 * src/c++11/locale-inst.cc: Likewise.
642 * src/c++11/ostream-inst.cc: Likewise.
643 * src/c++11/wlocale-inst.cc: Likewise.
644 * src/c++98/hash-long-double-tr1-aux.cc: Likewise.
646 * include/bits/string_view.tcc (find_first_of, find_last_of)
647 (find_first_not_of, find_last_not_of): Add noexcept.
648 * include/std/string_view (basic_string_view(const _CharT*))
649 (basic_string_view(const _CharT*, size_type))
650 (front, back, remove_prefix, remove_suffix, find, rfind)
651 (find_first_of, find_first_not_of): Add noexcept.
652 (at(size_type), _S_compare(size_type, size_type)): Replace conditional
653 expressions with if statements.
654 (copy(_CharT*, size_type, size_type), substr(size_type, size_type)):
655 Use _M_check for length checks.
656 (compare(basic_string_view)): Reformat.
657 (_M_check(size_type, const char)): Add noexcept(false).
658 (_M_limit(size_type, size_type)): Use noexcept not _GLIBCXX_NOEXCEPT.
661 * include/experimental/string_view (operator""sv): Add noexcept.
662 * include/std/string_view (operator""sv): Likewise.
664 2017-10-23 Jonathan Wakely <jwakely@redhat.com>
666 * include/Makefile.am: Add new headers for C++17 filesystem library.
667 * include/Makefile.in: Regenerate.
668 * include/bits/fs_dir.h: New header, based on Filesystem TS code in
669 include/experimental/bits directory.
670 * include/bits/fs_fwd.h: Likewise.
671 * include/bits/fs_ops.h: Likewise.
672 * include/bits/fs_path.h: Likewise.
673 * include/experimental/bits/fs_dir.h: Rename Doxygen group.
674 * include/experimental/bits/fs_fwd.h: Likewise.
675 * include/experimental/bits/fs_ops.h: Likewise.
676 * include/experimental/bits/fs_path.h: Likewise.
677 * include/experimental/filesystem (filesystem_error::_M_gen_what):
678 Remove inline definition.
679 * include/precompiled/stdc++.h: Add <filesystem> to precompiled
681 * include/std/filesystem: New header.
682 * python/libstdcxx/v6/printers.py: Enable printer for std::filesystem
684 * src/filesystem/Makefile.am: Add new files. Compile as C++17.
685 * src/filesystem/Makefile.in: Regenerate.
686 * src/filesystem/cow-dir.cc: Update comment.
687 * src/filesystem/cow-ops.cc: Likewise.
688 * src/filesystem/cow-path.cc: Likewise.
689 * src/filesystem/cow-std-dir.cc: New file.
690 * src/filesystem/cow-std-ops.cc: New file.
691 * src/filesystem/cow-std-path.cc: New file.
692 * src/filesystem/dir-common.h (_Dir_base, get_file_type): New header
694 * src/filesystem/dir.cc (_Dir): Derive from _Dir_base.
695 (open_dir): Move to _Dir_base constructor.
696 (get_file_type): Move to dir-common.h.
697 (recurse): Move to _Dir_base::should_recurse.
698 * src/filesystem/ops-common.h: New header for common code.
699 * src/filesystem/ops.cc (is_set, make_file_type, make_file_status)
700 (is_not_found_errno, file_time, do_copy_file): Move to ops-common.h.
701 * src/filesystem/path.cc (filesystem_error::_M_gen_what): Define.
702 * src/filesystem/std-dir.cc: New file, based on Filesystem TS code.
703 * src/filesystem/std-ops.cc: Likewise.
704 * src/filesystem/std-dir.cc: Likewise.
705 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: New
707 * testsuite/27_io/filesystem/iterators/pop.cc: New test.
708 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
710 * testsuite/27_io/filesystem/operations/absolute.cc: New test.
711 * testsuite/27_io/filesystem/operations/canonical.cc: New test.
712 * testsuite/27_io/filesystem/operations/copy.cc: New test.
713 * testsuite/27_io/filesystem/operations/copy_file.cc: New test.
714 * testsuite/27_io/filesystem/operations/create_directories.cc: New
716 * testsuite/27_io/filesystem/operations/create_directory.cc: New test.
717 * testsuite/27_io/filesystem/operations/create_symlink.cc: New test.
718 * testsuite/27_io/filesystem/operations/current_path.cc: New test.
719 * testsuite/27_io/filesystem/operations/equivalent.cc: New test.
720 * testsuite/27_io/filesystem/operations/exists.cc: New test.
721 * testsuite/27_io/filesystem/operations/file_size.cc: New test.
722 * testsuite/27_io/filesystem/operations/is_empty.cc: New test.
723 * testsuite/27_io/filesystem/operations/last_write_time.cc: New test.
724 * testsuite/27_io/filesystem/operations/permissions.cc: New test.
725 * testsuite/27_io/filesystem/operations/proximate.cc: New test.
726 * testsuite/27_io/filesystem/operations/read_symlink.cc: New test.
727 * testsuite/27_io/filesystem/operations/relative.cc: New test.
728 * testsuite/27_io/filesystem/operations/remove_all.cc: New test.
729 * testsuite/27_io/filesystem/operations/space.cc: New test.
730 * testsuite/27_io/filesystem/operations/status.cc: New test.
731 * testsuite/27_io/filesystem/operations/symlink_status.cc: New test.
732 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: New
734 * testsuite/27_io/filesystem/operations/weakly_canonical.cc: New test.
735 * testsuite/27_io/filesystem/path/append/path.cc: New test.
736 * testsuite/27_io/filesystem/path/assign/assign.cc: New test.
737 * testsuite/27_io/filesystem/path/assign/copy.cc: New test.
738 * testsuite/27_io/filesystem/path/compare/compare.cc: New test.
739 * testsuite/27_io/filesystem/path/compare/path.cc: New test.
740 * testsuite/27_io/filesystem/path/compare/strings.cc: New test.
741 * testsuite/27_io/filesystem/path/concat/path.cc: New test.
742 * testsuite/27_io/filesystem/path/concat/strings.cc: New test.
743 * testsuite/27_io/filesystem/path/construct/copy.cc: New test.
744 * testsuite/27_io/filesystem/path/construct/default.cc: New test.
745 * testsuite/27_io/filesystem/path/construct/locale.cc: New test.
746 * testsuite/27_io/filesystem/path/construct/range.cc: New test.
747 * testsuite/27_io/filesystem/path/construct/string_view.cc: New test.
748 * testsuite/27_io/filesystem/path/decompose/extension.cc: New test.
749 * testsuite/27_io/filesystem/path/decompose/filename.cc: New test.
750 * testsuite/27_io/filesystem/path/decompose/parent_path.cc: New test.
751 * testsuite/27_io/filesystem/path/decompose/relative_path.cc: New
753 * testsuite/27_io/filesystem/path/decompose/root_directory.cc: New
755 * testsuite/27_io/filesystem/path/decompose/root_name.cc: New test.
756 * testsuite/27_io/filesystem/path/decompose/root_path.cc: New test.
757 * testsuite/27_io/filesystem/path/decompose/stem.cc: New test.
758 * testsuite/27_io/filesystem/path/generation/normal.cc: New test.
759 * testsuite/27_io/filesystem/path/generation/proximate.cc: New test.
760 * testsuite/27_io/filesystem/path/generation/relative.cc: New test.
761 * testsuite/27_io/filesystem/path/generic/generic_string.cc: New test.
762 * testsuite/27_io/filesystem/path/itr/traversal.cc: New test.
763 * testsuite/27_io/filesystem/path/modifiers/clear.cc: New test.
764 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: New
766 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: New
768 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: New
770 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc: New
772 * testsuite/27_io/filesystem/path/modifiers/swap.cc: New test.
773 * testsuite/27_io/filesystem/path/native/string.cc: New test.
774 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: New test.
775 * testsuite/27_io/filesystem/path/query/empty.cc: New test.
776 * testsuite/27_io/filesystem/path/query/has_extension.cc: New test.
777 * testsuite/27_io/filesystem/path/query/has_filename.cc: New test.
778 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: New test.
779 * testsuite/27_io/filesystem/path/query/has_relative_path.cc: New
781 * testsuite/27_io/filesystem/path/query/has_root_directory.cc: New
783 * testsuite/27_io/filesystem/path/query/has_root_name.cc: New test.
784 * testsuite/27_io/filesystem/path/query/has_root_path.cc: New test.
785 * testsuite/27_io/filesystem/path/query/has_stem.cc: New test.
786 * testsuite/27_io/filesystem/path/query/is_relative.cc: New test.
787 * testsuite/experimental/filesystem/path/construct/string_view.cc:
788 Define USE_FILESYSTEM_TS.
789 * testsuite/util/testsuite_fs.h: Allow use with C++17 paths as well
793 * doc/xml/manual/intro.xml: Include new section.
794 * doc/xml/manual/status_cxxis29124.xml: New section on IS 29124
796 * include/bits/specfun.h [__STRICT_ANSI__] (hyperg, hypergf, hypergl)
797 (conf_hyperg, conf_hypergf, conf_hypergl): Don't declare.
798 * include/c_compatibility/math.h: Import special functions into
799 global namespace for C++17.
800 * testsuite/26_numerics/headers/cmath/82644.cc: New test.
801 * testsuite/26_numerics/headers/cmath/functions_global_c++17.cc: New
804 2017-10-21 Jonathan Wakely <jwakely@redhat.com>
806 * testsuite/experimental/filesystem/path/itr/traversal.cc: Do not
807 increment past-the-end iterators.
809 2017-10-20 Jonathan Wakely <jwakely@redhat.com>
811 * include/std/chrono (__cpp_lib_chrono): Update macro value to
812 indicate support for P0505R0.
813 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Check
816 * include/c_global/cstddef: Define __cpp_lib_byte feature-test macro.
817 * testsuite/18_support/byte/requirements.cc: Check macro.
819 2017-10-19 Jonathan Wakely <jwakely@redhat.com>
821 * testsuite/experimental/filesystem/iterators/
822 recursive_directory_iterator.cc: Ensure that error_code arguments are
823 cleared when required.
824 * testsuite/experimental/filesystem/operations/create_directory.cc:
825 Remove redundant check.
826 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
827 Ensure that error_code argument is cleared when required.
829 * include/experimental/bits/fs_path.h (path::iterator++(int))
830 (path::iterator--(int)): Fix for paths with only one component.
831 * testsuite/experimental/filesystem/path/itr/traversal.cc: Test
832 post-increment and post-decrement.
834 * doc/xml/manual/status_cxx2017.xml: Update references to C++17
837 * testsuite/decimal/conversion-to-integral.cc: Use predefined macro
838 instead of non-standard glibc one.
840 2017-10-16 François Dumont <fdumont@gcc.gnu.org>
843 * include/bits/stl_bvector.h (fill): Add iterator offset check.
844 * testsuite/23_containers/vector/bool/82558.cc: New.
846 2017-10-13 Jonathan Wakely <jwakely@redhat.com>
849 * doc/xml/manual/intro.xml: Document LWG 2354 changes.
850 * include/bits/stl_map.h (map::insert(value_type&&))
851 (map::insert(const_iterator, value_type&&)): Add overload for rvalues.
852 * include/bits/stl_multimap.h (multimap::insert(value_type&&))
853 (multimap::insert(const_iterator, value_type&&)): Likewise.
854 * include/bits/unordered_map.h (unordered_map::insert(value_type&&))
855 (unordered_map::insert(const_iterator, value_type&&))
856 (unordered_multimap::insert(value_type&&))
857 (unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
858 * testsuite/23_containers/map/modifiers/insert/dr2354.cc: New test.
859 * testsuite/23_containers/multimap/modifiers/insert/dr2354.cc: New
861 * testsuite/23_containers/unordered_map/insert/dr2354.cc: New test.
862 * testsuite/23_containers/unordered_multimap/insert/dr2354.cc: New
866 * include/std/mutex (call_once): Suppress clang-tidy warnings about
869 2017-10-10 Jonathan Wakely <jwakely@redhat.com>
871 * include/bits/streambuf_iterator.h (istreambuf_iterator::equal):
872 Update comment about NAD issue.
876 * include/c_compatibility/complex.h [!C++98 && __STRICT_ANSI__]: Do
877 not include C library's <complex.h>.
878 * testsuite/26_numerics/complex/c99.cc: Depend on __STRICT_ANSI__.
879 * testsuite/26_numerics/headers/complex.h/std_c++11.h: New test.
880 * testsuite/26_numerics/headers/complex.h/std_gnu++11.h: New test.
881 * testsuite/26_numerics/headers/complex.h/std_c++98.h: New test.
883 2017-10-05 Jonathan Wakely <jwakely@redhat.com>
885 * testsuite/20_util/to_chars/1.cc: Add dg-require-string-conversions.
887 2017-10-04 Petr Ovtchenkov <ptr@void-ptr.info>
888 François Dumont <fdumont@gcc.gnu.org>
890 * include/bits/streambuf_iterator.h
891 (istreambuf_iterator<>::operator*()): Do not capture iterator state
893 (istreambuf_iterator<>::operator++()): Likewise and remove _M_sbuf check.
894 (istreambuf_iterator<>::operator++(int)): Likewise.
895 (istreambuf_iterator<>::_M_get()): Remove _M_c assignment.
896 (istreambuf_iterator<>::_S_is_eof()): New.
897 (istreambuf_iterator<>::_M_at_eof()): Adapt, use latter.
898 (find(istreambuf_iterator<>, istreambuf_iterator<>, _CharT)):
899 Return an iterator with _M_c set to eof to capture streambuf state
901 (testsuite/24_iterators/istreambuf_iterator/2.cc): Add checks.
903 2017-10-03 Jakub Jelinek <jakub@redhat.com>
905 * include/std/charconv (__unsigned_least_t): Fix number of closing >s for
906 !_GLIBCXX_USE_INT128.
908 2017-10-02 Jonathan Wakely <jwakely@redhat.com>
910 * include/Makefile.am: Add new <charconv> header.
911 * include/Makefile.in: Regenerate.
912 * include/precompiled/stdc++.h: Include <charconv>.
913 * include/std/charconv: New file.
914 (to_chars_result, to_chars, from_chars_result, from_chars): Define.
915 * testsuite/20_util/from_chars/1.cc: New test.
916 * testsuite/20_util/from_chars/1_neg.cc: New test.
917 * testsuite/20_util/from_chars/2.cc: New test.
918 * testsuite/20_util/from_chars/requirements.cc: New test.
919 * testsuite/20_util/to_chars/1.cc: New test.
920 * testsuite/20_util/to_chars/1_neg.cc: New test.
921 * testsuite/20_util/to_chars/2.cc: New test.
922 * testsuite/20_util/to_chars/requirements.cc: New test.
924 2017-09-27 François Dumont <fdumont@gcc.gnu.org>
926 * testsuite/22_locale/money_get/get/char/22131.cc: Make test less
927 istreambuf_iterator implementation dependent.
928 * testsuite/22_locale/money_get/get/wchar_t/22131.cc: Likewise.
930 2017-09-25 Uros Bizjak <ubizjak@gmail.com>
933 * src/c++98/complex_io.cc (_GLIBCXX_LDBL_COMPAT): Declare alias
934 target as a C++ function with no prototype.
936 2017-09-21 Jonathan Wakely <jwakely@redhat.com>
938 * testsuite/25_algorithms/clamp/1.cc: Fix order of arguments and
939 expected results when using predicate defining reverse order.
940 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
942 2017-09-20 Jonathan Wakely <jwakely@redhat.com>
945 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
946 (basic_string::_If_sv): Remove from the overload set when the
947 argument is derived from basic_string.
950 * include/bits/basic_string.h (basic_string::_If_sv): Remove from the
951 overload set when the argument is derived from basic_string.
952 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: New
954 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
957 * testsuite/24_iterators/range_access_cpp17.cc: Fix order of dg-do
958 and dg-options directives. Fix invalid test.
961 * libsupc++/exception (uncaught_exception): Deprecate for C++17.
962 * testsuite/18_support/exception_ptr/62258.cc: Add -Wno-deprecated.
963 * testsuite/18_support/uncaught_exception/14026.cc: Likewise.
965 * include/bits/c++config (_GLIBCXX17_DEPRECATED): Define.
966 * include/bits/functional_hash.h (__hash_base::result_type)
967 (__hash_base::argument_type): Add _GLIBCXX17_DEPRECATED.
968 * include/std/optional (hash<optional<T>>::result_type)
969 (hash<optional<T>>::argument_type): Add deprecated attribute.
970 (__is_fast_hash<hash<optional<T>>>): Add partial specialization.
971 * include/std/variant (hash<variant<Types...>>::result_type)
972 (hash<variant<Types...>>::argument_type): Add deprecated attribute.
973 (__is_fast_hash<hash<variant<Types...>>>): Add partial specialization.
975 * libsupc++/exception_ptr.h (copy_exception): Remove deprecated
976 non-standard function.
979 * include/std/optional (__optional_hash_call_base): Add template
980 parameter for remove_const_t<_Tp> and use it consistently.
981 * testsuite/20_util/optional/hash.cc: Test optional<const T>.
983 2017-09-19 Jonathan Wakely <jwakely@redhat.com>
986 * include/bits/regex_executor.tcc
987 (_Backref_matcher<BidIt, regex_traits<C>>::_M_apply): Use
988 std::__equal4 instead of C++14 4-iterator overloads of std::equal.
989 * include/bits/stl_algobase.h (__equal4): New functions implementing
990 4-iterator overloads of std::equal for use in C++11.
991 (equal(It1, It1, It2, It2), equal(It1, It1, It2, It2, BinaryPred)):
992 Move function bodies to new __equal4 functions.
993 * testsuite/28_regex/simple_c++11.cc: New.
996 * include/std/type_traits (__is_invocable): Add partial specialization
997 for INVOKE<void> case and remove is_void<R> check from partial
998 specialization for INVOKE<R> case.
999 (__is_nt_invocable_impl): New helper for is_nothrow_invocable_r.
1000 (is_nothrow_invocable_r): Use __is_nt_invocable_impl.
1001 * testsuite/20_util/is_nothrow_invocable/value.cc: Add tests for
1002 conversions that can throw or fail to convert. Use static assert
1003 strings to explain negative results.
1004 * testsuite/20_util/is_nothrow_invocable/value_ext.cc: Use
1005 is_nothrow_constructible in is_nt_invocable_conv.
1007 2017-09-18 Jonathan Wakely <jwakely@redhat.com>
1010 * testsuite/20_util/duration/cons/dr1177.cc: Fix incorrect test and
1011 improve static assertion messages.
1013 * include/std/utility (_Itup_cat, _Make_integer_sequence): Remove.
1014 (_Build_index_tuple, make_integer_sequence): Use built-in to generate
1018 * include/std/type_traits (__declval): New function to deduce return
1020 (__declval_protector::_delegate): Remove.
1021 (declval): Use __declval instead of add_rvalue_reference and
1022 __declval_protector::__delegate.
1023 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1025 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
1027 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1030 2017-09-15 Jakub Jelinek <jakub@redhat.com>
1032 * testsuite/libstdc++-prettyprinters/cxx17.cc: Use -std=c++17 or
1033 -std=gnu++17 instead of -std=c++1z or -std=gnu++1z. Use c++17 instead
1034 of c++1z and c++17_only instead of c++1z_only. Adjust expected
1035 diagnostics and comments refering to 1z to 17.
1036 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
1037 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
1038 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
1039 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
1040 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
1042 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
1043 * testsuite/18_support/launder/1.cc (test02): Likewise.
1044 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
1045 * testsuite/18_support/launder/requirements.cc: Likewise.
1046 * testsuite/18_support/byte/requirements.cc: Likewise.
1047 * testsuite/18_support/byte/ops.cc: Likewise.
1048 * testsuite/18_support/byte/global_neg.cc: Likewise.
1049 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
1051 * testsuite/27_io/types/4.cc: Likewise.
1052 * testsuite/25_algorithms/sample/81221.cc: Likewise.
1053 * testsuite/25_algorithms/sample/1.cc: Likewise.
1054 * testsuite/25_algorithms/sample/2.cc: Likewise.
1055 * testsuite/25_algorithms/search/searcher.cc: Likewise.
1056 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
1057 * testsuite/experimental/filesystem/path/construct/string_view.cc:
1059 * testsuite/24_iterators/range_access_cpp17.cc: Likewise.
1060 * testsuite/24_iterators/container_access.cc: Likewise.
1061 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
1062 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1063 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1064 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1065 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1066 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1067 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1068 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1069 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1070 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
1071 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
1072 * testsuite/20_util/shared_ptr/cons/array.cc: Likewise.
1073 * testsuite/20_util/shared_ptr/observers/array.cc (struct A): Likewise.
1074 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
1075 * testsuite/20_util/variant/deduction.cc: Likewise.
1076 * testsuite/20_util/tuple/78939.cc: Likewise.
1077 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
1078 * testsuite/20_util/void_t/1.cc: Likewise.
1079 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Likewise.
1080 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
1081 * testsuite/20_util/addressof/requirements/constexpr.cc: Likewise.
1082 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
1083 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
1085 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
1087 * testsuite/20_util/has_unique_object_representations/value.cc:
1089 * testsuite/20_util/time_point/arithmetic/constexpr.cc: Likewise.
1090 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
1091 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
1092 * testsuite/20_util/function/cons/deduction.cc: Likewise.
1093 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1095 * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
1096 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
1098 * testsuite/20_util/is_aggregate/value.cc: Likewise.
1099 * testsuite/26_numerics/lcm/1.cc: Likewise.
1100 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
1101 * testsuite/26_numerics/gcd/1.cc: Likewise.
1102 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
1103 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
1104 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Likewise.
1105 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
1106 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
1108 * testsuite/23_containers/array/cons/deduction.cc: Likewise.
1109 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
1110 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
1112 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
1113 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
1115 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
1117 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
1118 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
1120 * testsuite/23_containers/forward_list/cons/deduction.cc: Likewise.
1121 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Likewise.
1122 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
1124 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
1125 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
1127 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
1128 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Likewise.
1129 * testsuite/21_strings/basic_string/cons/char/79162.cc: Likewise.
1130 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
1131 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1133 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: Likewise.
1134 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
1136 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
1138 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
1140 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
1142 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
1144 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
1147 2017-09-13 Jonathan Wakely <jwakely@redhat.com>
1150 * include/std/chrono (__enable_if_is_duration)
1151 (__disable_if_is_duration): New alias templates to simplify SFINAE.
1152 (duration_cast, floor, ceil): Use __enable_if_is_duration.
1153 (duration::__is_float, duration::__is_harmonic): New alias templates
1155 (duration::duration(const _Rep2&)): Use _Require, __is_float and
1157 (duration::duration(const duration<_Rep2, _Period2>&)): Likewise.
1158 (__common_rep_type): Remove, replace with ...
1159 (__common_rep_t): New alias template.
1160 (operator*, operator/, operator%): Use __common_rep_t and
1161 __disable_if_is_duration.
1162 (time_point::time_point(const time_point<clock, _Dur2>&)): Add missing
1163 constraint from LWG DR 1177.
1164 * testsuite/20_util/duration/cons/dr1177.cc: New.
1165 * testsuite/20_util/duration/literals/range.cc: Update dg-error line.
1166 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1167 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1168 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1169 * testsuite/20_util/time_point/cons/81468.cc: New.
1171 * doc/doxygen/mainpage.html: Fix broken URLs.
1174 * doc/xml/manual/extensions.xml: Replace unstable URL.
1175 * doc/html/manual/ext_demangling.html: Regenerate.
1176 * libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL.
1178 * include/bits/allocated_ptr.h (__allocated_ptr::get): Use
1180 (__allocated_ptr::_S_raw_ptr): Remove.
1181 * include/bits/forward_list.h (_Fwd_list_base::_M_get_node): Use
1183 * include/bits/hashtable_policy.h (_Hashtable_alloc): Likewise.
1184 * include/bits/ptr_traits.h (__to_address): Define new function
1186 * include/bits/shared_ptr_base.h (__shared_ptr): Use __to_address.
1187 (__shared_ptr::_S_raw_ptr): Remove.
1188 * include/bits/stl_vector.h [__cplusplus >= 201103L]
1189 (vector::_M_data_ptr): Use __to_address.
1190 [__cplusplus < 201103L] (vector::_M_data_ptr): Don't dereference
1191 possibly invalid pointers.
1192 * include/ext/alloc_traits.h (__alloc_traits::construct)
1193 (__alloc_traits::destroy): Use __to_address.
1195 2017-09-12 Jonathan Wakely <jwakely@redhat.com>
1198 * include/Makefile.am: Remove <bits/c++14_warning.h>.
1199 * include/Makefile.in: Regenerate.
1200 * include/bits/c++14_warning.h: Remove.
1201 * include/experimental/algorithm: Do not include <c++14_warning.h>.
1202 * include/experimental/any: Likewise.
1203 * include/experimental/array: Likewise.
1204 * include/experimental/bits/erase_if.h: Likewise.
1205 * include/experimental/bits/lfts_config.h: Likewise.
1206 * include/experimental/bits/shared_ptr.h: Likewise.
1207 * include/experimental/bits/string_view.tcc: Likewise.
1208 * include/experimental/chrono: Likewise.
1209 * include/experimental/deque: Likewise.
1210 * include/experimental/filesystem: Do not include <c++0x_warning.h>.
1211 * include/experimental/forward_list: Do not include <c++14_warning.h>.
1212 * include/experimental/functional: Likewise.
1213 * include/experimental/iterator: Likewise.
1214 * include/experimental/list: Likewise.
1215 * include/experimental/map: Likewise.
1216 * include/experimental/memory: Likewise.
1217 * include/experimental/numeric: Likewise.
1218 * include/experimental/optional: Likewise.
1219 * include/experimental/propagate_const: Likewise.
1220 * include/experimental/ratio: Likewise.
1221 * include/experimental/regex: Likewise.
1222 * include/experimental/set: Likewise.
1223 * include/experimental/string: Likewise.
1224 * include/experimental/string_view: Likewise.
1225 * include/experimental/system_error: Likewise.
1226 * include/experimental/tuple: Likewise.
1227 * include/experimental/type_traits: Likewise.
1228 * include/experimental/unordered_map: Likewise.
1229 * include/experimental/unordered_set: Likewise.
1230 * include/experimental/vector: Likewise.
1231 * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error
1233 * testsuite/experimental/array/neg.cc: Likewise.
1234 * testsuite/experimental/propagate_const/assignment/move_neg.cc:
1236 * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
1237 * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
1238 * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
1239 * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
1240 * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
1243 * doc/xml/manual/status_cxx2017.xml: Update feature-test macros.
1244 * doc/html/*: Regenerate.
1245 * include/Makefile.am: Remove <bits/c++17_warning.h>.
1246 * include/Makefile.in: Regenerate.
1247 * include/bits/c++17_warning.h: Remove.
1248 * include/bits/string_view.tcc: Do not include <bits/c++17_warning.h>
1249 for pre-C++17 modes.
1250 * include/std/any: Likewise.
1251 (__cpp_lib_any): Define.
1252 * include/std/mutex (__cpp_lib_scoped_lock): Adjust value as per new
1254 * include/std/numeric (__cpp_lib_gcd_lcm): Define as per new SD-6
1256 * include/std/optional: Do not include <bits/c++17_warning.h>.
1257 (__cpp_lib_optional): Define.
1258 * include/std/shared_mutex: Do not include <bits/c++14_warning.h>.
1259 * include/std/string_view: Do not include <bits/c++17_warning.h>.
1260 (__cpp_lib_string_view): Define.
1261 * include/std/variant: Do not include <bits/c++17_warning.h>.
1262 (__cpp_lib_variant): Define.
1263 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error line
1265 * testsuite/26_numerics/gcd/1.cc: Test for __cpp_lib_gcd_lcm.
1266 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
1268 * testsuite/26_numerics/lcm/1.cc: Test for __cpp_lib_gcd_lcm.
1269 * testsuite/26_numerics/lcm/lcm_neg.cc: Adjust dg-error line
1271 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Adjust
1272 expected value of __cpp_lib_scoped_lock.
1275 * include/experimental/bits/string_view.tcc (basic_string_view::find)
1276 (basic_string_view::rfind, basic_string_view::find_first_of)
1277 (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1278 (basic_string_view::find_last_not_of): Add constexpr specifier.
1279 * include/experimental/string_view (basic_string_view::remove_prefix)
1280 (basic_string_view::remove_suffix, basic_string_view::swap)
1281 (basic_string_view::compare, basic_string_view::find)
1282 (basic_string_view::rfind, basic_string_view::find_first_of)
1283 (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1284 (basic_string_view::find_last_not_of, operator==, operator!=)
1285 (operator<, operator>, operator<=, operator>=): Likewise.
1286 * testsuite/experimental/string_view/operations/compare/char/70483.cc:
1289 2017-09-11 Jonathan Wakely <jwakely@redhat.com>
1292 * include/bits/string_view.tcc (basic_string_view::find)
1293 (basic_string_view::rfind, basic_string_view::find_first_of)
1294 (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1295 (basic_string_view::find_last_not_of): Add constexpr specifier.
1296 * include/std/string_view (basic_string_view::operator=)
1297 (basic_string_view::rbegin, basic_string_view::rend)
1298 (basic_string_view::crbegin, basic_string_view::crend)
1299 (basic_string_view::remove_prefix, basic_string_view::remove_suffix)
1300 (basic_string_view::swap, basic_string_view::compare)
1301 (basic_string_view::find, basic_string_view::rfind)
1302 (basic_string_view::find_first_of, basic_string_view::find_last_of)
1303 (basic_string_view::find_first_not_of)
1304 (basic_string_view::find_last_not_of, basic_string_view::_M_check)
1305 (basic_string_view::_M_limit, operator==, operator!=, operator<)
1306 (operator>, operator<=, operator>=): Likewise.
1307 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
1308 char/1.cc: Repeat tests in constexpr context.
1309 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
1310 wchar_t/1.cc: Likewise.
1311 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
1312 char/1.cc: Likewise.
1313 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
1314 wchar_t/1.cc: Likewise.
1315 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1317 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1319 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1321 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1323 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1325 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1327 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
1329 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1331 * testsuite/21_strings/basic_string_view/range_access/char/1.cc: Test
1332 cbegin, cend, rbegin, rend, crbegin and crend.
1333 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1335 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1336 Remove trailing whitespace.
1337 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
1339 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
1341 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
1343 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
1345 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
1348 2017-09-11 Tim Shen <timshen@google.com>
1351 * include/bits/regex_executor.tcc: Support icase in regex_traits<...>
1352 for back reference matches.
1353 * testsuite/28_regex/regression.cc: Test case.
1355 2017-09-11 Jonathan Wakely <jwakely@redhat.com>
1357 * testsuite/21_strings/basic_string/lwg2946.cc: Adjust for
1358 compatibility with old COW std::string.
1360 2017-09-09 Gerald Pfeifer <gerald@pfeifer.com>
1362 * doc/xml/manual/allocator.xml: Adjust link for Hoard.
1363 * doc/html/manual/memory.html: Regenerate.
1365 2017-09-04 Daniel Kruegler <daniel.kruegler@gmail.com>
1368 Implement LWG 2946, LWG 2758's resolution missed further corrections
1369 * include/bits/basic_string.h (basic_string::compare): Add missing
1370 required noexcept specifications.
1371 (basic_string): Introduce internal _S_to_string_view and __sv_wrapper
1372 for implicit string_view conversion.
1373 (basic_string::basic_string): Fix explicit string_view conversion by
1374 implicit conversion using _S_to_string_view and __sv_wrapper.
1375 (basic_string): Introduce internal basic_string(__sv_wrapper, Alloc)
1377 (basic_string): Fix operator=(T) template by operator=(const T&)
1378 template for uncopyable types (PR 79162).
1379 (basic_string::operator+=, basic_string::append, basic_string::assign)
1380 (basic_string::insert, basic_string::replace, basic_string::find)
1381 (basic_string::rfind, basic_string::find_first_of)
1382 (basic_string::find_last_of, basic_string::find_first_not_of)
1383 (basic_string::find_last_not_of, basic_string::compare): Replace
1384 __sv_type argument by template const T& (LWG 2946) and correct
1385 documentation describing __sv_type argument.
1386 (basic_string::find, basic_string::rfind, basic_string::find_first_of)
1387 (basic_string::find_last_of, basic_string::find_first_not_of)
1388 (basic_string::find_last_not_of, basic_string::compare): Replace
1389 unconditional noexcept specification by conditional noexcept
1390 specification to partially balance the removal of noexcept by LWG 2946.
1391 * testsuite/21_strings/basic_string/79162.cc: New.
1392 * testsuite/21_strings/basic_string/lwg2946.cc: New.
1394 2017-08-31 Jonathan Wakely <jwakely@redhat.com>
1397 * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
1398 Adjust null pointer constant to avoid warning.
1400 2017-08-24 François Dumont <fdumont@gcc.gnu.org>
1402 * include/bits/stl_list.h
1403 [!_GLIBCXX_INLINE_VERSION](_List_base<>::_S_distance): Remove.
1404 (_List_impl(_Node_alloc_type&&, _List_impl&&)): New.
1405 (_List_base(_Node_alloc_type&&, _List_base&&)): New, use latter.
1406 [!_GLIBCXX_INLINE_VERSION](_List_base(_Node_alloc_type&&,_List_base&&)):
1408 (_List_base(_Node_alloc_type&&)): New.
1409 [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_distance): Remove.
1410 [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_node_count): Remove.
1411 (list<>::_M_node_count): New.
1412 (list<>::size()): Adapt to call latter.
1413 (list<>::_S_distance(const_iterator, const_iterator)): New.
1414 (list<>::splice(iterator, list&, const_iterator, const_iterator)):
1415 Adapt to call latter.
1416 (list(list&&, const allocator_type&, true_type)): New.
1417 (list(list&&, const allocator_type&, false_type)): New.
1418 (list(list&&, const allocator_type&)): Adapt to call latters.
1420 2017-08-21 Jonathan Wakely <jwakely@redhat.com>
1423 * include/bits/stl_iterator_base_types.h (__iterator_category): Add
1424 constexpr for C++11 and later.
1425 * testsuite/24_iterators/container_access.cc: Add target selector.
1426 * testsuite/24_iterators/range_access.cc: Fix clause number in
1428 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
1429 * testsuite/24_iterators/range_access_cpp17.cc: New.
1431 2017-08-21 Richard Biener <rguenther@suse.de>
1433 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Run all
1434 tests with -flto as well if supported.
1436 2017-08-20 Martin Sebor <msebor@redhat.com>
1439 * src/c++98/compatibility.cc (_GLIBCXX_3_4_SYMVER): Declare alias
1440 target as a C++ function with no prototype.
1441 (_GLIBCXX_3_4_5_SYMVER): Ditto.
1443 2017-08-20 John David Anglin <danglin@gcc.gnu.org>
1446 * testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__.
1448 2017-08-18 Jonathan Wakely <jwakely@redhat.com>
1450 * include/bits/hashtable_policy.h (_ReuseOrAllocNode): Remove
1451 __value_alloc_type and __value_alloc_traits typedefs.
1452 (_ReuseOrAllocNode::operator()): Call construct and destroy on the
1454 (_Hashtable_alloc): Simplify __value_alloc_traits typedef.
1455 (_Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&&...)): Call
1456 construct on the node allocator.
1457 (_Hashtable_alloc<_NodeAlloc>::_M_deallocate_node(__node_type*)): Call
1458 destroy on the node allocator.
1461 * include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
1462 size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
1463 const _ExtractKey&, const allocator_type&)): Let destructor do clean
1464 up if an exception is thrown.
1465 * testsuite/23_containers/unordered_map/cons/81891.cc: New.
1467 2017-08-11 Jonathan Wakely <jwakely@redhat.com>
1470 * testsuite/27_io/basic_fstream/53984.cc: Adjust test for targets
1471 that allow opening a directory as a FILE and reading from it.
1473 2017-08-09 Jonathan Wakely <jwakely@redhat.com>
1475 * include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP):
1476 Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use
1477 __is_identifier to set it.
1479 2017-08-09 Katsuhiko Nishimra <ktns.87@gmail.com>
1481 * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
1482 __is_identifier instead of __has_builtin.
1484 2017-08-09 Jonathan Wakely <jwakely@redhat.com>
1488 * config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)):
1489 Call fflush on the stream instead of calling sync() while _M_cfile is
1490 null. Restore original value of errno.
1491 * testsuite/ext/stdio_filebuf/char/79820.cc: New.
1492 * testsuite/ext/stdio_filebuf/char/81751.cc: New.
1494 2017-07-31 Marek Polacek <polacek@redhat.com>
1497 * include/bits/stl_stack.h: Fix typo.
1499 2017-07-26 Jonathan Wakely <jwakely@redhat.com>
1501 * testsuite/27_io/basic_fstream/53984.cc: Fix test.
1503 2017-07-26 Paolo Carlini <paolo.carlini@oracle.com>
1505 * testsuite/27_io/basic_fstream/53984.cc: Fix typo in dg-require
1508 2017-07-25 Jonathan Wakely <jwakely@redhat.com>
1511 * include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment.
1512 * include/bits/istream.tcc (basic_istream::sentry): Handle exceptions
1513 during construction.
1514 * include/std/istream: Adjust comments for formatted input functions
1515 and unformatted input functions.
1516 * testsuite/27_io/basic_fstream/53984.cc: New.
1517 * testsuite/27_io/basic_istream/sentry/char/53984.cc: New.
1519 * include/bits/ios_base.h (ios_base::io_state, ios_base::open_mode)
1520 (ios_base::seek_dir): Remove for C++17.
1521 * include/std/streambuf (basic_streambuf::stossc): Remove for C++17.
1522 Add deprecated attribute for C++11 and C++14.
1523 * testsuite/27_io/types/1.cc: Don't run for C++17 and later.
1524 * testsuite/27_io/types/4.cc: New.
1526 2017-07-23 Michael Collison <michael.collison@arm.com>
1528 Add optimized implementation of mersenne twister for aarch64
1529 * config/cpu/aarch64/opt/ext/opt_random.h: New file.
1530 (__arch64_recursion): New function.
1531 (__aarch64_lsr_128): New function.
1532 (__aarch64_lsl_128): New function.
1533 (operator==): New function.
1534 (simd_fast_mersenne_twister_engine): Implement
1536 * config/cpu/aarch64/opt/bits/opt_random.h: New file.
1537 * include/ext/random: (simd_fast_mersenne_twister_engine):
1538 add _M_state private array.
1540 2017-07-23 François Dumont <fdumont@gcc.gnu.org>
1543 * include/bits/algorithmfwd.h: Reorganize versioned namespace.
1544 * include/bits/basic_string.h: Likewise.
1545 * include/bits/c++config: Likewise.
1546 * include/bits/deque.tcc: Likewise.
1547 * include/bits/forward_list.h: Likewise.
1548 * include/bits/forward_list.tcc: Likewise.
1549 * include/bits/hashtable_policy.h: Likewise.
1550 * include/bits/list.tcc: Likewise.
1551 * include/bits/move.h: Likewise.
1552 * include/bits/quoted_string.h: Likewise.
1553 * include/bits/random.h: Likewise.
1554 * include/bits/random.tcc: Likewise.
1555 * include/bits/regex.h: Likewise.
1556 * include/bits/regex.tcc: Likewise.
1557 * include/bits/regex_automaton.h: Likewise.
1558 * include/bits/regex_automaton.tcc: Likewise.
1559 * include/bits/regex_compiler.h: Likewise.
1560 * include/bits/regex_compiler.tcc: Likewise.
1561 * include/bits/regex_constants.h: Likewise.
1562 * include/bits/regex_error.h: Likewise.
1563 * include/bits/regex_executor.h: Likewise.
1564 * include/bits/regex_executor.tcc: Likewise.
1565 * include/bits/regex_scanner.h: Likewise.
1566 * include/bits/regex_scanner.tcc: Likewise.
1567 * include/bits/specfun.h: Likewise.
1568 * include/bits/stl_algo.h: Likewise.
1569 * include/bits/stl_algobase.h: Likewise.
1570 * include/bits/stl_bvector.h: Likewise.
1571 * include/bits/stl_deque.h: Likewise.
1572 * include/bits/stl_iterator.h: Likewise.
1573 * include/bits/stl_iterator_base_funcs.h: Likewise.
1574 * include/bits/stl_list.h: Likewise.
1575 * include/bits/stl_map.h: Likewise.
1576 * include/bits/stl_multimap.h: Likewise.
1577 * include/bits/stl_multiset.h: Likewise.
1578 * include/bits/stl_relops.h: Likewise.
1579 * include/bits/stl_set.h: Likewise.
1580 * include/bits/stl_vector.h: Likewise.
1581 * include/bits/uniform_int_dist.h: Likewise.
1582 * include/bits/unordered_map.h: Likewise.
1583 * include/bits/unordered_set.h: Likewise.
1584 * include/bits/vector.tcc: Likewise.
1585 * include/c_global/cmath: Likewise.
1586 * include/c_std/cmath: Likewise.
1587 * include/decimal/decimal: Likewise.
1588 * include/decimal/decimal.h: Likewise.
1589 * include/experimental/algorithm: Likewise.
1590 * include/experimental/any: Likewise.
1591 * include/experimental/array: Likewise.
1592 * include/experimental/bits/erase_if.h: Likewise.
1593 * include/experimental/bits/fs_dir.h: Likewise.
1594 * include/experimental/bits/fs_fwd.h: Likewise.
1595 * include/experimental/bits/fs_ops.h: Likewise.
1596 * include/experimental/bits/fs_path.h: Likewise.
1597 * include/experimental/bits/lfts_config.h: Likewise.
1598 * include/experimental/bits/shared_ptr.h: Likewise.
1599 * include/experimental/bits/string_view.tcc: Likewise.
1600 * include/experimental/chrono: Likewise.
1601 * include/experimental/deque: Likewise.
1602 * include/experimental/filesystem: Likewise.
1603 * include/experimental/forward_list: Likewise.
1604 * include/experimental/functional: Likewise.
1605 * include/experimental/iterator: Likewise.
1606 * include/experimental/list: Likewise.
1607 * include/experimental/map: Likewise.
1608 * include/experimental/memory: Likewise.
1609 * include/experimental/memory_resource: Likewise.
1610 * include/experimental/numeric: Likewise.
1611 * include/experimental/optional: Likewise.
1612 * include/experimental/propagate_const: Likewise.
1613 * include/experimental/random: Likewise.
1614 * include/experimental/ratio: Likewise.
1615 * include/experimental/regex: Likewise.
1616 * include/experimental/set: Likewise.
1617 * include/experimental/source_location: Likewise.
1618 * include/experimental/string: Likewise.
1619 * include/experimental/string_view: Likewise.
1620 * include/experimental/system_error: Likewise.
1621 * include/experimental/tuple: Likewise.
1622 * include/experimental/type_traits: Likewise.
1623 * include/experimental/unordered_map: Likewise.
1624 * include/experimental/unordered_set: Likewise.
1625 * include/experimental/utility: Likewise.
1626 * include/experimental/vector: Likewise.
1627 * include/ext/bitmap_allocator.h: Likewise.
1628 * include/ext/codecvt_specializations.h: Likewise.
1629 * include/ext/rope: Likewise.
1630 * include/ext/typelist.h: Likewise.
1631 * include/std/chrono: Likewise.
1632 * include/std/complex: Likewise.
1633 * include/std/functional: Likewise.
1634 * include/std/numeric: Likewise.
1635 * include/std/string_view: Likewise.
1636 * include/std/thread: Likewise.
1637 * include/std/variant: Likewise.
1638 * include/tr1/array: Likewise.
1639 * include/tr1/bessel_function.tcc: Likewise.
1640 * include/tr1/beta_function.tcc: Likewise.
1641 * include/tr1/cmath: Likewise.
1642 * include/tr1/complex: Likewise.
1643 * include/tr1/ell_integral.tcc: Likewise.
1644 * include/tr1/exp_integral.tcc: Likewise.
1645 * include/tr1/functional: Likewise.
1646 * include/tr1/functional_hash.h: Likewise.
1647 * include/tr1/gamma.tcc: Likewise.
1648 * include/tr1/hashtable.h: Likewise.
1649 * include/tr1/hashtable_policy.h: Likewise.
1650 * include/tr1/hypergeometric.tcc: Likewise.
1651 * include/tr1/legendre_function.tcc: Likewise.
1652 * include/tr1/modified_bessel_func.tcc: Likewise.
1653 * include/tr1/poly_hermite.tcc: Likewise.
1654 * include/tr1/poly_laguerre.tcc: Likewise.
1655 * include/tr1/random.h: Likewise.
1656 * include/tr1/random.tcc: Likewise.
1657 * include/tr1/regex: Likewise.
1658 * include/tr1/riemann_zeta.tcc: Likewise.
1659 * include/tr1/shared_ptr.h: Likewise.
1660 * include/tr1/special_function_util.h: Likewise.
1661 * include/tr1/tuple: Likewise.
1662 * include/tr1/type_traits: Likewise.
1663 * include/tr1/unordered_map.h: Likewise.
1664 * include/tr1/unordered_set.h: Likewise.
1665 * include/tr1/utility: Likewise.
1666 * include/tr2/bool_set: Likewise.
1667 * include/tr2/bool_set.tcc: Likewise.
1668 * include/tr2/dynamic_bitset: Likewise.
1669 * include/tr2/dynamic_bitset.tcc: Likewise.
1670 * include/tr2/ratio: Likewise.
1671 * include/tr2/type_traits: Likewise.
1672 * src/c++11/chrono.cc: Likewise.
1673 * src/c++11/compatibility-c++0x.cc: Likewise.
1674 * src/c++11/compatibility-chrono.cc: Likewise.
1675 * src/c++11/cxx11-shim_facets.cc: Likewise.
1676 * src/c++11/hashtable_c++0x.cc: Likewise.
1677 * src/c++11/placeholders.cc: Likewise.
1678 * src/c++11/thread.cc: Likewise.
1679 * src/c++98/bitmap_allocator.cc: Likewise.
1680 * src/c++98/hashtable_tr1.cc: Likewise.
1681 * src/c++98/list.cc: Likewise.
1682 * src/shared/hashtable-aux.cc: Likewise.
1683 * testsuite/20_util/duration/literals/range.cc: Adapt line number.
1684 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1685 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1686 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1687 * testsuite/20_util/forward/c_neg.cc: Likewise.
1688 * testsuite/20_util/forward/f_neg.cc: Likewise.
1689 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
1690 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
1691 * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
1692 * python/libstdcxx/v6/printers.py: Adapt.
1694 2017-07-20 Jonathan Wakely <jwakely@redhat.com>
1696 * config/allocator/malloc_allocator_base.h [__SANITIZE_ADDRESS__]
1697 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
1698 * config/allocator/new_allocator_base.h [__SANITIZE_ADDRESS__]
1699 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
1700 * doc/xml/manual/using.xml (_GLIBCXX_SANITIZE_VECTOR): Document macro.
1701 * include/bits/stl_vector.h [_GLIBCXX_SANITIZE_VECTOR]
1702 (_Vector_impl::_Asan, _Vector_impl::_Asan::_Reinit)
1703 (_Vector_impl::_Asan::_Grow, _GLIBCXX_ASAN_ANNOTATE_REINIT)
1704 (_GLIBCXX_ASAN_ANNOTATE_GROW, _GLIBCXX_ASAN_ANNOTATE_GREW)
1705 (_GLIBCXX_ASAN_ANNOTATE_SHRINK, _GLIBCXX_ASAN_ANNOTATE_BEFORE_DEALLOC):
1706 Define annotation helper types and macros.
1707 (vector::~vector, vector::push_back, vector::pop_back)
1708 (vector::_M_erase_at_end): Add annotations.
1709 * include/bits/vector.tcc (vector::reserve, vector::emplace_back)
1710 (vector::insert, vector::_M_erase, vector::operator=)
1711 (vector::_M_fill_assign, vector::_M_assign_aux)
1712 (vector::_M_insert_rval, vector::_M_emplace_aux)
1713 (vector::_M_insert_aux, vector::_M_realloc_insert)
1714 (vector::_M_fill_insert, vector::_M_default_append)
1715 (vector::_M_shrink_to_fit, vector::_M_range_insert): Annotate.
1717 2017-07-19 Jonathan Wakely <jwakely@redhat.com>
1720 * include/bits/vector.tcc (vector::_M_range_insert<_InputIterator>):
1721 Only insert elements one-by-one when inserting at the end.
1722 * testsuite/performance/23_containers/insert/81476.cc: New.
1724 2017-07-19 Volker Reichelt <v.reichelt@netcologne.de>
1726 * libsupc++/new (bad_array_new_length): Remove redundant
1727 semicolon after in-class member function definition.
1728 * include/bits/locale_facets.h (ctype_byname, num_put): Likewise.
1729 * include/bits/locale_facets_nonio.h (time_put_byname): Likewise.
1730 * include/bits/random.h (mersenne_twister_engine): Likewise.
1731 * include/tr1/random.h (mersenne_twister): Likewise
1732 * include/ext/random (simd_fast_mersenne_twister_engine): Likewise.
1733 * include/ext/rope (char_producer, _Rope_char_consumer,
1734 _Rope_self_destruct_ptr, _Rope_const_iterator, _Rope_iterator):
1736 * include/ext/ropeimpl.h (_Rope_flatten_char_consumer,
1737 _Rope_insert_char_consumer): Likewise.
1739 2017-07-19 Jonathan Wakely <jwakely@redhat.com>
1741 * include/bits/fstream.tcc (basic_filebuf::xsgetn)
1742 (basic_filebuf::xsputn, basic_filebuf::seekoff): Fix indentation.
1744 * testsuite/util/testsuite_iterators.h: Fix indentation.
1746 * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: Add dg-require.
1748 2017-07-18 Jonathan Wakely <jwakely@redhat.com>
1751 * include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer
1752 pointers for write mode after reading.
1753 * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New.
1755 2017-07-18 François Dumont <fdumont@gcc.gnu.org>
1757 * include/bits/stl_list.h
1758 (struct _List_node_header): New.
1759 (_List_impl()): Fix noexcept qualification.
1760 (_List_impl(_List_impl&&)): New, default.
1761 (_List_base()): Default.
1762 (_List_base(_List_base&&)): Default.
1763 (_List_base::_M_move_nodes): Adapt to use
1764 _List_node_header._M_move_nodes.
1765 (_List_base::_M_init): Likewise.
1766 (list<>()): Default.
1767 (list<>(list&&)): Default.
1768 (list<>::_M_move_assign(list&&, true_type)): Use _M_move_nodes.
1769 (__distance(_List_const_iterator<>, _List_const_iterator<>,
1770 input_iterator_tag)): Adapt.
1771 * testsuite/23_containers/list/allocator/default_init.cc: New.
1773 2017-07-15 Jonathan Wakely <jwakely@redhat.com>
1775 * include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter
1777 * testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments.
1778 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction
1779 with std::adopt_lock_t.
1780 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check
1783 2017-07-14 Jason Merrill <jason@redhat.com>
1784 Jonathan Wakely <jwakely@redhat.com>
1786 * include/std/variant (variant::variant(_Tp&&)): Constrain to remove
1787 the constructor for empty variants from the candidate functions
1788 during class template argument deduction.
1789 * testsuite/20_util/variant/deduction.cc: New.
1791 2017-07-11 Jonathan Wakely <jwakely@redhat.com>
1793 * doc/xml/faq.xml: Update several old entries. Improve
1795 * doc/xml/manual/intro.xml: Add anchors to each DR.
1796 * doc/html/*: Regenerate.
1798 2017-07-10 Jonathan Wakely <jwakely@redhat.com>
1800 * testsuite/abi/pr42230.cc: Add header for std::free.
1803 * include/bits/sstream.tcc (basic_stringbuf::overflow)
1804 (basic_stringbuf::basic_stringbuf(const __string_type&, ios::mode))
1805 (basic_stringbuf::str()): Construct new strings with an allocator.
1806 * testsuite/27_io/basic_stringbuf/cons/81381.cc: New.
1809 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
1810 Declare basic_stringbuf to be a friend.
1811 * include/bits/sstream.tcc (basic_stringbuf::overflow)
1812 [_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
1813 * include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
1814 length to buffer length.
1815 * testsuite/27_io/basic_stringstream/assign/81338.cc: New.
1817 2017-07-06 Jonathan Wakely <jwakely@redhat.com>
1819 * testsuite/20_util/specialized_algorithms/memory_management_tools/
1821 * testsuite/22_locale/locale/cons/5.cc: Remove redundant restoration
1822 of original environment and free memory.
1824 * testsuite/abi/pr42230.cc: Free memory.
1825 * testsuite/util/testsuite_abi.cc (demangle): Return std::string
1826 instead of pointer that might need freeing.
1827 * testsuite/util/testsuite_abi.h (demangle): Likewise.
1828 * testsuite/util/testsuite_hooks.cc (verify_demangle): Free memory.
1830 * include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add
1831 deleted overload to prevent dangling references to rvalues.
1832 * include/experimental/memory_resource
1833 (polymorphic_allocator::construct): Do not call __use_alloc with
1836 2017-06-27 Tim Shen <timshen@google.com>
1839 * include/std/variant (variant::variant, variant::~variant,
1840 variant::operator=): Implement triviality forwarding for four
1841 special member functions.
1842 * testsuite/20_util/variant/compile.cc: Tests.
1844 2017-06-27 Jonathan Wakely <jwakely@redhat.com>
1847 * testsuite/25_algorithms/sample/81221.cc: Disable except for
1851 * include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not
1853 * testsuite/25_algorithms/sample/81221.cc: New.
1855 2017-06-22 Jonathan Wakely <jwakely@redhat.com>
1858 * include/bits/stl_bvector.h (vector<bool>::_M_initialize_value):
1859 Do not pass null pointer to memset.
1861 2017-06-21 Ville Voutilainen <ville.voutilainen@gmail.com>
1865 * include/std/istream:
1866 (__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
1867 (__do_is_convertible_to_basic_istream_impl): Likewise.
1868 (__is_convertible_to_basic_istream_impl): Likewise.
1869 (__is_convertible_to_basic_istream): Use the new base.
1870 (__rvalue_istream_type): New.
1871 (operator>>(_Istream&&, _Tp&&)): Use the new helper alias
1872 for the SFINAE check, convert to the helper alias type before
1873 doing the actual extraction.
1874 * include/std/ostream:
1875 (__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
1876 (__do_is_convertible_to_basic_ostream_impl): Likewise.
1877 (__is_convertible_to_basic_ostream_impl): Likewise.
1878 (__is_convertible_to_basic_ostream): Use the new base.
1879 (__rvalue_ostream_type): New.
1880 (operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
1881 for the SFINAE check, convert to the helper alias type before
1882 doing the actual insertion.
1883 * testsuite/27_io/rvalue_streams-2.cc: Add new tests.
1885 2017-06-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1887 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1889 2017-06-21 Jonathan Wakely <jwakely@redhat.com>
1892 * configure: Regenerate.
1894 2017-06-20 Uros Bizjak <ubizjak@gmail.com>
1896 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1898 2017-06-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1900 * testsuite/20_util/variant/index_type.cc: Allow for all ilp32 and
1903 2017-06-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1905 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
1906 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
1907 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
1908 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
1909 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
1910 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
1912 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
1913 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
1916 2017-06-18 H.J. Lu <hongjiu.lu@intel.com>
1919 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
1921 2017-06-18 Andreas Schwab <schwab@linux-m68k.org>
1924 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1926 2017-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1928 * testsuite: Remove dg-skip-if, dg-xfail-if, dg-xfail-run-if
1931 2017-06-17 Jonathan Wakely <jwakely@redhat.com>
1934 * testsuite/23_containers/vector/bool/80893.cc: Add { target c++11 }.
1936 2017-06-16 Jonathan Wakely <jwakely@redhat.com>
1938 * include/bits/shared_ptr.h (get_deleter): Add overload matching
1940 * include/bits/shared_ptr_base.h (__shared_ptr): Declare new
1941 get_deleter overload as a friend.
1942 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: New.
1944 2017-06-16 Jakub Jelinek <jakub@redhat.com>
1947 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1948 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
1949 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
1951 2017-06-16 Jonathan Wakely <jwakely@redhat.com>
1953 * include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
1954 * testsuite/22_locale/conversions/buffer/2.cc: New.
1957 * acinclude.m4: Bump libtool_VERSION.
1958 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1959 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1960 * config/abi/pre/gnu.ver: Add wstring constructor symbols to
1961 GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol
1962 to new GLIBCXX_3.4.25 version.
1963 * doc/xml/manual/abi.xml: Document new versions.
1964 * doc/html/*: Regenerate.
1965 * testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
1966 constructors to ensure required symbols are exported.
1967 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
1968 * testsuite/util/testsuite_abi.cc: Add new version.
1970 * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
1972 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1974 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1976 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
1977 missing return statements.
1978 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
1980 * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
1982 * testsuite/special_functions/14_expint/pr68397.cc: Likewise.
1984 2017-06-16 François Dumont <fdumont@gcc.gnu.org>
1986 * include/bits/stl_bvector.h
1987 (__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)):
1989 (std::fill(_Bit_iterator, _Bit_iterator, bool)): Adapt.
1990 (_Bvector_impl_data): New.
1991 (_Bvector_impl): Inherits from latter.
1992 (_Bvector_impl(_Bit_alloc_type&&)): Delete.
1993 (_Bvector_impl(_Bvector_impl&&)): New, default.
1994 (_Bvector_base()): Default.
1995 (_Bvector_base(_Bvector_base&&)): Default.
1996 (_Bvector_base::_M_move_data(_Bvector_base&&)): New.
1997 (vector(vector&&, const allocator_type&)): Use latter.
1998 (vector<bool>::operator=(vector&&)): Likewise.
1999 (vector<bool>::vector()): Default.
2000 (vector<bool>::vector(vector&&)): Default.
2001 (vector<bool>::assign(_InputIterator, _InputIterator)): Use
2003 (vector<bool>::assign(initializer_list<bool>)): Likewise.
2004 (vector<bool>::_M_initialize_value(bool)): New.
2005 (vector<bool>(size_type, const bool&, const allocator_type&)): Use
2007 (vector<bool>::_M_initialize_dispatch(_Integer, _Integer, __true_type)):
2009 (vector<bool>::_M_fill_assign(size_t, bool)): Likewise.
2011 2017-06-15 François Dumont <fdumont@gcc.gnu.org>
2013 * src/c++98/tree.cc [!_GLIBCXX_INLINE_VERSION]
2014 (_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete.
2016 2017-06-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2018 * testsuite: Add dg-require-effective-target pthread to -pthread
2020 Remove explicit target lists from dg-do and dg-options.
2022 * testsuite/30_threads/async/forced_unwind.cc: Remove explit
2023 target list from dg-options.
2024 * testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise.
2026 * 30_threads/shared_mutex/cons/1.cc: Likewise.
2027 Pass -pthread for all targets.
2028 * 30_threads/shared_mutex/try_lock/1.cc: Likewise.
2029 * 30_threads/shared_mutex/try_lock/2.cc: Likewise.
2030 * 30_threads/shared_mutex/unlock/1.cc: Likewise.
2032 * testsuite/30_threads/this_thread/57060.cc: Require c++11 via
2033 dg-require-effective-target.
2035 2017-06-14 Jonathan Wakely <jwakely@redhat.com>
2037 * doc/xml/manual/test.xml: Correct instructions on running tests.
2038 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to
2039 pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
2040 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
2042 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise.
2043 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2044 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
2045 exceptions_failbit.cc: Likewise.
2046 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2047 exceptions_failbit.cc: Likewise.
2048 * testsuite/27_io/basic_istream/extractors_other/char/
2049 exceptions_null.cc: Likewise.
2050 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
2051 exceptions_null.cc: Likewise.
2052 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2053 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2054 * testsuite/27_io/basic_ostream/inserters_other/char/
2055 exceptions_null.cc: Likewise.
2056 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2057 exceptions_null.cc: Likewise.
2058 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2060 2017-06-12 Pedro Alves <palves@redhat.com>
2062 * doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
2064 * doc/html/*: Regenerate.
2066 * include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
2067 not already defined.
2068 (__cpp_lib_constexpr_char_traits): Uncomment.
2069 (__constant_string_p, __constant_char_array_p): New.
2070 (std::char_traits<char>, std::char_traits<wchar_t>): Add
2071 _GLIBCXX17_CONSTEXPR on compare, length and find and use
2072 __constant_string_p, __constant_char_array_p and
2073 __builtin_constant_p to defer to __gnu_cxx::char_traits at compile
2076 * testsuite/21_strings/char_traits/requirements/
2077 constexpr_functions_c++17.cc: Uncomment
2078 __cpp_lib_constexpr_char_traits tests. Uncomment
2079 test_compare<char>, test_length<char>, test_find<char>,
2080 test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
2081 static_assert tests.
2083 2017-06-12 François Dumont <fdumont@gcc.gnu.org>
2085 * include/bits/stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator
2087 * testsuite/util/testsuite_allocator.h
2088 (__gnu_test::default_init_allocator<>) New.
2089 * testsuite/23_containers/set/allocator/default_init.cc: New.
2090 * testsuite/23_containers/map/allocator/default_init.cc: New.
2092 2017-06-12 Jonathan Wakely <jwakely@redhat.com>
2095 * src/c++11/thread.cc (execute_native_thread_routine): Remove
2096 try-block so that exceptions propagate out of the thread and terminate
2097 is called by the exception-handling runtime.
2098 (execute_native_thread_routine_compat): Likewise.
2099 * testsuite/30_threads/thread/cons/terminate.cc: New.
2101 2017-06-09 Jonathan Wakely <jwakely@redhat.com>
2103 * doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
2104 * include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
2106 * include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
2107 (_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
2108 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
2110 * include/bits/forward_list.h (forward_list): Add deduction guide.
2111 * include/bits/stl_deque.h (deque): Likewise.
2112 * include/bits/stl_list.h (list): Likewise.
2113 * include/bits/stl_vector.h (vector): Likewise.
2114 * testsuite/23_containers/deque/cons/deduction.cc: New.
2115 * testsuite/23_containers/forward_list/cons/deduction.cc: New.
2116 * testsuite/23_containers/list/cons/deduction.cc: New.
2117 * testsuite/23_containers/vector/cons/deduction.cc: New.
2119 2017-06-08 Jonathan Wakely <jwakely@redhat.com>
2122 * include/bits/std_function.h (function::function(function&&))
2123 (function::operator=(funtion&&)): Add noexcept.
2124 * testsuite/20_util/function/assign/move.cc: Check for noexcept.
2125 * testsuite/20_util/function/cons/move.cc: Likewise.
2127 2017-06-07 Jonathan Wakely <jwakely@redhat.com>
2129 * include/bits/regex.h (basic_regex): Add deduction guide from P0433.
2130 * testsuite/28_regex/basic_regex/ctors/deduction.cc: New.
2133 * include/bits/regex.h (basic_regex): Adjust call to __compile_nfa
2134 so iterator type is deduced.
2135 * include/bits/regex_compiler.h (__compile_nfa): Reorder template
2136 parameters to allow iterator type to be deduced.
2137 * testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
2139 * include/bits/alloc_traits.h (__is_allocator, _RequireAllocator):
2140 New trait and alias for detecting Allocator-like types.
2141 * include/bits/basic_string.h (basic_string): Add deduction guide
2143 * include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): Add template
2144 parameter with default template argument that causes substitution
2145 failures for types that cannot be allocators.
2146 * testsuite/21_strings/basic_string/cons/char/deduction.cc: New.
2147 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: New.
2149 2017-06-02 Jonathan Wakely <jwakely@redhat.com>
2152 * include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
2153 (__erased_hash): Remove constexpr specifier and qualify calls to
2155 (__erased_dtor): Remove constexpr specifier and use _Destroy.
2157 2017-06-05 Jonathan Wakely <jwakely@redhat.com>
2159 * include/bits/stl_iterator_base_funcs.h
2160 (__advance<_RandomAccessIterator, _Distance>): Optimize for next/prev
2161 cases where incrementing or decrementing a single step.
2163 * include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
2164 (__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
2165 specifiers as per LWG 2873 and LWG 2942.
2166 * testsuite/20_util/owner_less/noexcept.cc: New.
2167 * testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
2168 noexcept guarantees.
2169 * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
2171 2017-06-03 Andreas Schwab <schwab@linux-m68k.org>
2173 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
2175 2017-06-03 Eric Botcazou <ebotcazou@adacore.com>
2177 * src/filesystem/dir.cc (fs::_Dir::advance): Use std::exchange.
2179 2017-06-02 Jonathan Wakely <jwakely@redhat.com>
2182 * doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
2183 * include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
2184 Transform eof value to U+FFFD.
2185 * testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
2186 * testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
2187 * testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.
2189 * libsupc++/Makefile.am: Remove custom targets for files that need to
2190 be compiled as C++11 or C++14.
2191 * libsupc++/Makefile.in: Regenerate.
2192 * libsupc++/del_ops.cc: Use pragma to disable -Wsized-deallocation
2194 * libsupc++/del_opvs.cc: Likewise.
2196 2017-06-02 Richard Biener <rguenther@suse.de>
2197 Markus Eisenmann <meisenmann.lba@fh-salzburg.ac.at>
2200 * libsupc++/eh_alloc.cc (pool::free): Keep list properly
2201 sorted and add missing freelist item merging cases.
2203 2017-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2205 (GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
2206 Remove *-solaris* section.
2207 * configure: Regenerate.
2209 2017-05-31 Jonathan Wakely <jwakely@redhat.com>
2212 * include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
2213 null pointer dereference when size is zero.
2214 * testsuite/23_containers/vector/bool/80893.cc: New.
2215 * testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
2216 Add non-explicit constructor from nullptr.
2217 (PointerBase::derived() const): Add const-qualified overload.
2219 2017-05-20 Tim Shen <timshen@google.com>
2222 * include/std/variant(variant::variant): SFINAE on is_same first.
2223 * testsuite/20_util/variant/any.cc: test case.
2225 2017-05-24 Jonathan Wakely <jwakely@redhat.com>
2227 * src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__
2228 instead of fixed number of bits.
2230 2017-05-24 Andreas Schwab <schwab@suse.de>
2232 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2233 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
2235 2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
2236 Jonathan Wakely <jwakely@redhat.com>
2239 * acinclude.m4: Bump libtool_VERSION.
2240 * config/abi/pre/gnu.ver: Create GLIBCXX_3.4.24 with new symbol.
2241 * config.h.in: Regenerate.
2242 * configure: Regenerate.
2243 * configure.ac: Add test for <linux/random.h>.
2244 * doc/xml/manual/abi.xml: Document new library version.
2245 * include/bits/random.h (random_device::entropy)
2246 [_GLIBCXX_USE_RANDOM_TR1]: Add call to new _M_getentropy member.
2247 (random_device::_M_getentropy): Declare.
2248 * src/c++11/random.cc (random_device::_M_getentropy): Define.
2249 * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.24 to known
2250 versions, and make it the latest version.
2252 2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
2255 * include/bits/locale_facets.tcc (num_get::_M_extract_int): Add
2256 explicit conversion to avoid signed overflow.
2258 2017-05-19 Jonathan Wakely <jwakely@redhat.com>
2261 * include/bits/stl_algo.h (search): Add new overload for C++17.
2262 * testsuite/25_algorithms/search/searcher.cc: New.
2264 2017-05-18 Jonathan Wakely <jwakely@redhat.com>
2267 * include/std/functional (_Mem_fn_traits_base): Add specializations
2268 for noexcept member function types.
2269 * testsuite/20_util/function_objects/mem_fn/80478.cc: New test.
2271 2017-05-18 Jonathan Wakely <jwakely@redhat.com>
2273 * doc/xml/manual/policy_data_structures.xml: Fix typo.
2274 * doc/xml/manual/test_policy_data_structures.xml: Likewise.
2275 * doc/html/*: Regenerate.
2277 * doc/xml/manual/abi.xml: Document latest library versions.
2278 * doc/xml/manual/build_hacking.xml: Document requirement to update
2279 abi.xml when bumping library versions.
2280 * doc/html/*: Regenerate.
2282 2017-05-17 Jonathan Wakely <jwakely@redhat.com>
2284 * include/bits/refwrap.h: Fix Doxygen warning.
2285 * include/bits/specfun.h: Likewise.
2286 * include/bits/std_function.h: Likewise.
2287 * include/bits/stl_algo.h (set_union, set_intersection)
2288 (set_difference, set_symmetric_difference): Add Doxygen @param tags
2289 for output iterator parameters.
2290 * include/bits/stl_iterator.h (inserter): Add Doxygen @param tag for
2292 * include/std/mutex (try_lock, lock): Change Mutex to Lockable in
2295 2017-05-17 Ville Voutilainen <ville.voutilainen@gmail.com>
2297 Implement new C++ intrinsics __is_assignable and __is_constructible.
2298 * include/std/type_traits (__do_is_static_castable_impl): Remove.
2299 (__is_static_castable_impl, __is_static_castable_safe): Likewise.
2300 (__is_static_castable, __do_is_direct_constructible_impl): Likewise.
2301 (__is_direct_constructible_impl): Likewise.
2302 (__is_direct_constructible_new_safe): Likewise.
2303 (__is_base_to_derived_ref, __is_lvalue_to_rvalue_ref): Likewise.
2304 (__is_direct_constructible_ref_cast): Likewise.
2305 (__is_direct_constructible_new, __is_direct_constructible): Likewise.
2306 (__do_is_nary_constructible_impl): Likewise.
2307 (__is_nary_constructible_impl, __is_nary_constructible): Likewise.
2308 (__is_constructible_impl): Likewise.
2309 (is_constructible): Call the intrinsic.
2310 (__is_assignable_helper): Remove.
2311 (is_assignable): Call the intrinsic.
2312 (is_trivially_constructible): Likewise.
2313 (__is_trivially_copy_constructible_impl): New.
2314 (is_trivially_copy_constructible): Use it.
2315 (__is_trivially_move_constructible_impl): New.
2316 (is_trivially_move_constructible): Use it.
2317 (is_trivially_assignable): Call the intrinsic.
2318 (__is_trivially_copy_assignable_impl): New.
2319 (is_trivially_copy_assignable): Use it.
2320 (__is_trivially_move_assignable_impl): New.
2321 (is_trivially_move_assignable): Use it.
2322 (testsuite/20_util/declval/requirements/1_neg.cc): Adjust.
2323 (testsuite/20_util/is_trivially_copy_assignable/value.cc):
2325 (testsuite/20_util/is_trivially_copy_constructible/value.cc): Likewise.
2326 (testsuite/20_util/is_trivially_move_assignable/value.cc): Likewise.
2327 (testsuite/20_util/is_trivially_move_constructible/value.cc): Likewise.
2328 (testsuite/20_util/make_signed/requirements/typedefs_neg.cc): Adjust.
2329 (testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc):
2332 2017-05-16 Jonathan Wakely <jwakely@redhat.com>
2334 * testsuite/experimental/source_location/1.cc: Change expected result
2335 for source_location::current() used in default member initializer.
2337 * doc/xml/manual/status_cxx2017.xml: Update status table.
2338 * doc/html/*: Regenerate.
2339 * include/Makefile.am: Add new header.
2340 * include/Makefile.in: Regenerate.
2341 * include/experimental/source_location: New header implementing N4519.
2342 * testsuite/experimental/source_location/1.cc: New test.
2345 * include/bits/shared_ptr_base.h [!__cpp_rtti] (type_info): Declare
2346 outside versioned namespace.
2348 * configure: Regenerate.
2350 2017-05-16 Marc Glisse <marc.glisse@inria.fr>
2352 * include/std/optional (_Optional_base::_M_get): Check precondition.
2353 * testsuite/20_util/optional/cons/value_neg.cc: Update line numbers.
2355 2017-05-16 Jonathan Wakely <jwakely@redhat.com>
2357 * doc/xml/manual/appendix_contributing.xml: Link to test docs and
2358 note higher DejaGnu version requirement.
2359 * doc/html/*: Regenerate.
2361 * doc/xml/manual/appendix_contributing.xml: Link to the list of bad
2363 * doc/html/*: Regenerate.
2365 2017-05-15 Jonathan Wakely <jwakely@redhat.com>
2368 * include/bits/node_handle.h (_Node_insert_return): Reorder members.
2369 (tuple_size, tuple_element): Remove partial specializations.
2370 * include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
2371 const_iterator for std::set.
2372 * testsuite/23_containers/map/modifiers/extract.cc: New.
2373 * testsuite/23_containers/set/modifiers/extract.cc: New.
2374 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
2375 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
2377 2017-05-12 Jonathan Wakely <jwakely@redhat.com>
2380 * include/std/utility (tuple_size<cv T>): Only define partial
2381 specializations when tuple_size<T>::value is valid.
2382 * testsuite/20_util/tuple/78939.cc: New.
2383 * testsuite/20_util/tuple/cv_tuple_size_neg.cc: New.
2385 2017-05-11 François Dumont <fdumont@gcc.gnu.org>
2387 * include/bits/stl_tree.h [_GLIBCXX_INLINE_VERSION]
2388 (_Rb_tree_impl<>): Remove _Is_pod_comparator
2391 * include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
2392 (__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
2393 (__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
2395 (__gnu_debug::_Error_formatter::_M_format_word): Remove.
2396 (__gnu_debug::_Error_formatter::_M_print_word): Remove.
2397 (__gnu_debug::_Error_formatter::_M_print_string): Remove.
2398 (__gnu_debug::_Error_formatter::_M_get_max_length): Remove.
2399 * src/c++11/debug.cc: Adapt.
2400 * config/abi/pre/gnu-versioned-namespace.ver: Adapt.
2402 2017-05-11 Jonathan Wakely <jwakely@redhat.com>
2404 * doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
2405 * doc/xml/manual/mt_allocator.xml: Likewise.
2406 * doc/html/*: Regenerate.
2409 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Define
2410 function to get unique fake std::type_info reference.
2411 (_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Compare to
2412 _S_ti() fake reference.
2413 (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Share
2414 single implementation with or without RTTI enable.
2415 [!__cpp_rtti]: Pass fake reference to _M_get_deleter.
2416 * testsuite/20_util/shared_ptr/creation/alloc.cc: Change expected
2417 allocation and deallocation counts.
2418 * testsuite/20_util/shared_ptr/creation/single_allocation.cc: New.
2419 * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
2422 2017-05-10 François Dumont <fdumont@gcc.gnu.org>
2424 Bump version namespace.
2425 * config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
2426 from __7 to __8. Bump GLIBCXX_7.0 to GLIBCXX_8.0.
2427 * acinclude.m4 (libtool_VERSION): Bump to 8:0:0.
2428 * include/bits/c++config: Adapt.
2429 * include/bits/regex.h: Adapt.
2430 * include/experimental/bits/fs_fwd.h: Adapt.
2431 * include/experimental/bits/lfts_config.h: Adapt.
2432 * include/std/variant: Adapt.
2433 * python/libstdcxx/v6/printers.py: Adapt.
2434 * testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
2436 * include/bits/stl_algobase.h (std::__iter_swap<false>): Remove
2437 _GLIBCXX_MOVE usage.
2439 2017-05-09 Jason Merrill <jason@redhat.com>
2441 * testsuite/24_iterators/container_access.cc (test03): Make il3 static.
2443 2017-05-08 Jonathan Wakely <jwakely@redhat.com>
2445 * include/std/optional: Use a separate static_assert per condition.
2446 * testsuite/20_util/optional/cons/value_neg.cc: Update dg-error line
2449 * doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
2450 * doc/html/*: Regenerate.
2452 2017-05-02 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
2455 * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
2457 2017-04-29 François Dumont <fdumont@gcc.gnu.org>
2459 * testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
2462 2017-04-28 Jonathan Wakely <jwakely@redhat.com>
2465 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
2466 assertions to ensure type is destructible.
2467 (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
2468 * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
2469 Move to stl_construct.h.
2470 * testsuite/20_util/specialized_algorithms/memory_management_tools/
2471 destroy_neg.cc: New test.
2472 * testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
2474 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
2475 superfluous "" in dg-error.
2477 2017-04-28 Tom de Vries <tom@codesourcery.com>
2479 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
2480 superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
2482 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
2484 * include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
2485 (PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
2486 * testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
2489 2017-04-26 Jonathan Wakely <jwakely@redhat.com>
2491 * testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
2492 comment. Ensure first test works because allocator type propagates and
2493 not because is_always_equal is true.
2494 * testsuite/23_containers/vector/52591.cc: Likewise. Restore original
2495 testcase that instantiates the move-assignment operator.
2497 2017-04-24 Jonathan Wakely <jwakely@redhat.com>
2500 * include/bits/random.tcc (gamma_distribution::operator()): Fix magic
2501 number used in loop condition.
2504 * include/bits/refwrap.h (ref, cref): Qualify calls.
2505 * testsuite/20_util/reference_wrapper/80504.cc: New test.
2508 * include/experimental/optional (optional::swap): Fix exception
2511 2017-04-21 Jonathan Wakely <jwakely@redhat.com>
2514 * include/std/future (_State_baseV2::_Setter::operator()): Remove
2515 _S_check calls that are done after the pointer to the shared state is
2516 already dereferenced.
2517 (_State_baseV2::_Setter<_Res, void>): Define specialization for void
2518 as partial specialization so it can be defined within the definition
2520 (_State_baseV2::__setter): Call _S_check.
2521 (_State_baseV2::__setter(promise<void>*)): Add overload for use by
2522 promise<void>::set_value and promise<void>::set_value_at_thread_exit.
2523 (promise<T>, promise<T&>, promise<void>): Make _State a friend.
2524 (_State_baseV2::_Setter<void, void>): Remove explicit specialization.
2525 (promise<void>::set_value, promise<void>::set_value_at_thread_exit):
2526 Use new __setter overload.
2527 * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
2528 * testsuite/30_threads/promise/members/set_exception.cc: Test
2529 promise<T&> and promise<void> specializations.
2530 * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
2531 Test for no_state error condition.
2532 * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
2534 * include/backward/auto_ptr.h: Ignore deprecated warnings from use
2536 * include/bits/shared_ptr.h: Likewise.
2537 * include/bits/shared_ptr_base.h: Likewise.
2538 * include/bits/unique_ptr.h: Likewise.
2539 * libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
2541 * libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
2542 * libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
2544 * libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
2547 2017-04-20 Edward Smith-Rowland <3dw4rd@verizon.net>
2549 PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
2550 * include/tr1/exp_integral.tcc: Increase iteration limits.
2551 * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
2552 pr68397.cc: New test.
2553 * testsuite/special_functions/14_expint/pr68397.cc: New test.
2555 2017-04-20 Jonathan Wakely <jwakely@redhat.com>
2558 * include/std/atomic [!_GLIBCXX_USE_C99_STDINT_TR1] (atomic_int8_t)
2559 (atomic_uint8_t, atomic_int16_t, atomic_uint16_t, atomic_int32_t,
2560 (atomic_uint32_t, atomic_int64_t, atomic_uint64_t)
2561 (atomic_int_least8_t, atomic_uint_least8_t, atomic_int_least16_t)
2562 (atomic_uint_least16_t, atomic_int_least32_t, atomic_uint_least32_t)
2563 (atomic_int_least64_t, atomic_uint_least64_t, atomic_int_fast8_t)
2564 (atomic_uint_fast8_t, atomic_int_fast16_t, atomic_uint_fast16_t)
2565 (atomic_int_fast32_t, atomic_uint_fast32_t, atomic_int_fast64_t)
2566 (atomic_uint_fast64_t, atomic_intmax_t, atomic_uintmax_t): Don't
2569 2017-04-19 Jonathan Wakely <jwakely@redhat.com>
2571 * doc/xml/manual/abi.xml: Rephrase one of the references to the
2573 * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
2574 * doc/html/*: Regenerate.
2576 * libsupc++/new: Update comment on #endif directive.
2579 * include/experimental/bits/fs_dir.h (directory_iterator)
2580 (recursive_directory_iterator): Remove noexcept from defaulted
2584 * include/std/type_traits (is_aggregate): Change __has_builtin checks.
2585 * libsupc++/new (launder): Likewise.
2587 2017-04-18 Jonathan Wakely <jwakely@redhat.com>
2589 * include/std/functional (default_searcher, __boyer_moore_array_base)
2590 (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
2591 (boyer_moore_horspool_searcher): Remove redundant namespace
2593 (default_searcher::operator()): Construct return value early and
2594 advance second member in-place.
2595 (boyer_moore_horspool_searcher::operator()): Increment random access
2596 iterator directly instead of using std::next.
2597 (boyer_moore_searcher::operator()): Fix return value.
2598 * testsuite/20_util/function_objects/searchers.cc: Check both parts
2601 2017-04-12 Gerald Pfeifer <gerald@pfeifer.com>
2603 * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
2604 * doc/xml/manual/abi.xml. Ditto (thrice).
2606 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
2608 * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
2609 * doc/html/*: Regenerate.
2611 * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
2612 that no longer fail.
2614 * include/bits/ios_base.h: Correct comment.
2615 * testsuite/util/testsuite_hooks.h: Likewise.
2617 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
2618 * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
2619 directories for debug, parallel and profile headers.
2620 * doc/html/*: Regenerate.
2622 * include/bits/char_traits.h (__gnu_cxx::char_traits): Add
2623 _GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
2624 (std::char_traits<char>, std::char_traits<wchar_t>): Add
2625 _GLIBCXX17_CONSTEXPR on assign.
2626 (std::char_traits<char16_t>, std::char_traits<char32_t>): Add
2627 _GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
2628 * testsuite/21_strings/char_traits/requirements/
2629 constexpr_functions_c++17.cc: New test.
2631 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
2634 * include/bits/stl_pair.h (__nonesuch_no_braces): New.
2635 (operator=(typename conditional<
2636 __and_<is_copy_assignable<_T1>,
2637 is_copy_assignable<_T2>>::value,
2638 const pair&, const __nonesuch&>::type)): Change __nonesuch
2639 to __nonesuch_no_braces.
2640 (operator=(typename conditional<
2641 __not_<__and_<is_copy_assignable<_T1>,
2642 is_copy_assignable<_T2>>>::value,
2643 const pair&, const __nonesuch&>::type)): Likewise.
2644 (operator=(typename conditional<
2645 __and_<is_move_assignable<_T1>,
2646 is_move_assignable<_T2>>::value,
2647 pair&&, __nonesuch&&>::type)): Likewise.
2648 * testsuite/20_util/pair/79141.cc: New.
2650 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
2652 Implement std::is_aggregate.
2653 * include/std/type_traits (is_aggregate, is_aggregate_v): New.
2654 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
2656 * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
2657 * testsuite/20_util/is_aggregate/value.cc: Likewise.
2659 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
2661 Adjust optional's pretty printer for LWG 2900.
2662 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
2663 Look at the nested payload in case of non-experimental optional.
2665 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
2667 Implement LWG 2900, The copy and move constructors
2668 of optional are not constexpr.
2669 * include/std/optional (_Optional_payload): New.
2670 (_Optional_base): Remove the bool parameter.
2671 (_Optional_base<_Tp, false>): Remove.
2672 (_Optional_base()): Adjust.
2673 (_Optional_base(nullopt_t)): Likewise.
2674 (_Optional_base(in_place_t, _Args&&...)): Likewise.
2675 (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
2677 (_Optional_base(const _Optional_base&)): Likewise.
2678 (_Optional_base(_Optional_base&&)): Likewise.
2679 (operator=(const _Optional_base&)): Likewise.
2680 (operator=(_Optional_base&&)): Likewise.
2681 (~_Optional_base()): Remove.
2682 (_M_is_engaged()): Adjust.
2683 (_M_get()): Likewise.
2684 (_M_construct(_Args&&...)): Likewise.
2685 (_M_destruct()): Likewise.
2686 (_M_reset()): Likewise.
2687 (_Optional_base::_Empty_byte): Remove.
2688 (_Optional_base::_M_empty): Remove.
2689 (_Optional_base::_M_payload): Adjust.
2690 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
2691 * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
2693 2017-03-28 Jonathan Wakely <jwakely@redhat.com>
2696 * include/bits/random.tcc (generate_canonical): Use std::nextafter
2697 or numeric_limits::epsilon() to reduce out-of-range values.
2698 * testsuite/26_numerics/random/uniform_real_distribution/operators/
2699 64351.cc: Verify complexity requirement is met.
2701 * doc/xml/manual/abi.xml: Add xml:id anchor.
2702 * doc/xml/manual/using.xml (manual.intro.using.macros): Document
2703 _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
2704 (concurrency.io.structure): Add markup.
2705 * doc/html/*: Regenerate.
2708 * include/bits/shared_ptr_base.h
2709 (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
2710 non-const and then use remove_cv to get unqualified type.
2711 * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
2712 cast away constness on object created const.
2713 * testsuite/20_util/shared_ptr/cons/80229.cc: New test.
2715 2017-03-26 Markus Trippelsdorf <markus@trippelsdorf.de>
2718 * include/bits/stl_tree.h:
2719 (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
2721 2017-03-23 Jonathan Wakely <jwakely@redhat.com>
2723 * testsuite/23_containers/array/tuple_interface/
2724 tuple_element_debug_neg.cc: Adjust dg-error.
2725 * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
2726 define a valid strict weak ordering.
2727 * testsuite/23_containers/priority_queue/67085.cc: Disable test for
2728 Debug Mode, due to debug checks making extra copies of predicate.
2729 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
2732 * doc/xml/faq.xml: Add link.
2733 * doc/xml/manual/backwards_compatibility.xml: Remove outdated
2734 information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
2735 * doc/xml/manual/io.xml: Update broken link.
2736 * doc/html/*: Regenerate.
2738 2017-03-23 Daniel Kruegler <daniel.kruegler@gmail.com>
2740 Implement LWG 2686, Why is std::hash specialized for error_code,
2741 but not error_condition?
2742 * include/std/system_error (hash<error_condition>): Define for C++17.
2743 * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
2744 Instantiate test for error_condition.
2745 * testsuite/20_util/hash/requirements/explicit_instantiation.cc
2746 (hash<error_condition>): Instantiate hash<error_condition>.
2748 * include/bits/c++config (_GLIBCXX17_INLINE): Define.
2749 * include/bits/regex_constants.h (All std::regex_constants constants):
2750 Add _GLIBCXX17_INLINE as per P0607R0.
2751 * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
2753 * include/bits/stl_pair.h (piecewise_construct): Likewise.
2754 * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
2755 (__is_uses_allocator_constructible_v)
2756 (__is_nothrow_uses_allocator_constructible_v): Likewise.
2757 * include/std/chrono (treat_as_floating_point_v): Likewise.
2758 * include/std/functional (is_bind_expression_v, is_placeholder_v):
2760 * include/std/optional (nullopt): Likewise.
2761 * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
2762 ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
2763 * include/std/system_error (is_error_code_enum_v)
2764 (is_error_condition_enum_v): Likewise.
2765 * include/std/tuple (tuple_size_v, ignore): Likewise.
2766 (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
2767 constexpr as per LWG 2933.
2768 * include/std/type_traits (All variable templates): Add
2769 _GLIBCXX17_INLINE as per P0607R0.
2770 * include/std/variant (variant_size_v, variant_npos, __index_of_v)
2771 (__tuple_count_v, __exactly_once): Likewise.
2772 * testsuite/18_support/headers/new/synopsis.cc
2773 (hardware_destructive_interference_size)
2774 (hardware_constructive_interference_size): Likewise for commented-out
2776 * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
2777 test function for constexpr std::ignore (LWG 2773).
2778 * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
2781 2017-03-22 Jonathan Wakely <jwakely@redhat.com>
2783 * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
2785 * include/bits/std_function.h (function): Likewise.
2786 * include/bits/stl_pair.h (pair): Likewise.
2787 * include/debug/array (__gnu_debug::array): Likewise.
2788 * include/std/array (array): Likewise.
2789 * include/std/functional (make_default_searcher)
2790 (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
2791 Remove generator functions.
2792 * include/std/tuple (tuple): Add deduction guides.
2793 * include/std/valarray (valarray): Likewise.
2794 * testsuite/20_util/function_objects/searchers.cc: Adjust to use
2795 class template argument deduction instead of generator functions.
2796 * testsuite/20_util/function/cons/deduction.cc: New test.
2797 * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
2798 * testsuite/20_util/optional/cons/deduction.cc: ... here.
2799 * testsuite/20_util/pair/cons/deduction.cc: New test.
2800 * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
2801 * testsuite/20_util/tuple/cons/deduction.cc: New test.
2802 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
2803 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
2804 * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
2805 * testsuite/23_containers/array/cons/deduction.cc: New test.
2806 * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
2807 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
2809 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
2810 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2812 * testsuite/26_numerics/valarray/deduction.cc: New test.
2813 * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
2814 * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
2815 * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
2817 2017-03-20 François Dumont <fdumont@gcc.gnu.org>
2819 * include/bits/stl_deque.h (deque): Access allocator value_type only if
2820 concept checks are enabled.
2821 * include/bits/stl_stack.h (stack): Likewise.
2822 * include/bits/stl_vector.h (vector): Likewise.
2823 * include/bits/stl_list.h (list): Likewise and check
2824 _SGIAssignableConcept only in C++03.
2825 * include/bits/stl_map.h (map): Likewise.
2826 * include/bits/stl_set.h (set): Likewise.
2827 * include/bits/stl_multimap.h (multimap): Likewise.
2828 * include/bits/stl_multiset.h (multiset): Likewise.
2829 * include/bits/stl_queue.h (queue, priority_queue): Likewise.
2831 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
2833 * doc/xml/manual/appendix_contributing.xml: Convert link to
2835 Update link to the C++ standard at ansi.org.
2837 * doc/xml/faq.xml: Remove information redundant with the above;
2838 instead add a reference.
2840 2017-03-17 Jonathan Wakely <jwakely@redhat.com>
2842 * src/c++11/codecvt.cc (range): Add non-type template parameter and
2843 define oerloaded operators for reading and writing code units.
2844 (range<Elem, false>): Define partial specialization for accessing
2845 wide characters in potentially unaligned byte ranges.
2846 (ucs2_span(const char16_t*, const char16_t*, ...))
2847 (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
2848 to range<const char16_t, false> in order to avoid unaligned reads.
2849 (__codecvt_utf16_base<char16_t>::do_out)
2850 (__codecvt_utf16_base<char32_t>::do_out)
2851 (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
2852 unaligned data to avoid unaligned writes.
2853 (__codecvt_utf16_base<char16_t>::do_in)
2854 (__codecvt_utf16_base<char32_t>::do_in)
2855 (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
2856 error if there are unprocessable trailing bytes.
2857 (__codecvt_utf16_base<char16_t>::do_length)
2858 (__codecvt_utf16_base<char32_t>::do_length)
2859 (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
2860 range<const char16_t, false> to span functions.
2861 * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
2863 2017-03-16 Jonathan Wakely <jwakely@redhat.com>
2866 * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
2869 * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
2870 (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
2871 char16_t to work with UTF-16 instead of UTF-8.
2872 * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
2874 * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
2875 (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
2876 (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
2877 (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
2878 (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
2879 (__codecvt_utf8_utf16_base<char32_t>)
2880 (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
2881 do_max_length() return values.
2882 * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
2883 * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
2884 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
2887 * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
2889 * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
2890 for manipulating codecvt_mode values.
2891 (read_utf16_bom): Compare input to BOM constants instead of integral
2892 constants that depend on endianness. Take mode parameter by
2893 reference and adjust it, to distinguish between no BOM present and
2894 UTF-16BE BOM present.
2895 (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
2896 (surrogates): New enumeration type.
2897 (utf16_in, utf16_out): Add surrogates parameter to choose between
2898 UTF-16 and UCS2 behaviour.
2899 (utf16_span, ucs2_span): Use std::min not std::max.
2900 (ucs2_out): Use std::min not std::max. Disallow surrogate pairs.
2901 (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
2902 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
2903 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
2906 * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
2907 as a surrogate pair.
2908 (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
2909 for internal representation.
2910 (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
2911 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
2914 * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
2915 (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
2916 invalid instantiations using function types for _Compare argument.
2917 * testsuite/25_algorithms/make_heap/80064.cc: New test.
2920 * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
2921 for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
2923 2017-03-15 Ville Voutilainen <ville.voutilainen@gmail.com>
2925 Implement LWG 2857, {variant,optional,any}::emplace should
2926 return the constructed value.
2927 * include/std/any (emplace(_Args&&...)): Change the return type and
2928 return a reference to the constructed value.
2929 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2930 * include/std/optional (emplace(_Args&&...)): Likewise.
2931 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2932 * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
2933 (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
2934 (emplace<_Np>(_Args&&...)): Likewise.
2935 (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
2936 * testsuite/20_util/any/assign/emplace.cc: Add tests for
2937 checking the return value of emplace.
2938 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2939 * testsuite/20_util/optional/assignment/6.cc: Add tests for
2940 checking the return value of emplace.
2941 * testsuite/20_util/variant/run.cc: Likewise.
2943 2017-03-15 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
2946 * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
2948 (push_heap): Remove the wrong checking using is_heap.
2949 (make_heap): Remove the assertion using is_heap.
2950 * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
2952 (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
2955 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
2958 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
2960 * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
2963 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
2965 * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
2967 * config.h.in: Regenerate.
2968 * configure: Regenerate.
2969 * doc/Makefile.in: Regenerate.
2971 2017-03-14 Jonathan Wakely <jwakely@redhat.com>
2974 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2975 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
2976 with a constrained template.
2977 [!_GLIBCXX_USE_CXX11_ABI]
2978 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
2979 * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
2980 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
2982 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2985 * include/bits/list.tcc (merge(list&&)): Use const for the size_t
2987 (merge(list&&, _StrictWeakOrdering)): Likewise.
2988 * testsuite/23_containers/list/operations/80034.cc: New.
2990 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2992 Implement LWG 2806, Base class of bad_optional_access.
2993 * include/std/optional (bad_optional_access):
2994 Derive from std::exception.
2995 (bad_optional_access::bad_optional_access): Adjust.
2996 (bad_optional_access::what): New.
2997 (__throw_bad_optional_access(const char*)):
2998 Remove the parameter and adjust calls.
2999 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
3000 * testsuite/20_util/optional/typedefs.cc: Likewise.
3002 2017-03-12 Ville Voutilainen <ville.voutilainen@gmail.com>
3004 Implement LWG 2934, optional<const T> doesn't compare with T.
3005 * include/std/optional
3006 (operator==(const optional<_Tp>&, const optional<_Tp>&)):
3007 Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
3008 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
3009 Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
3010 (operator<(const optional<_Tp>&, const optional<_Tp>&)):
3011 Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
3012 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
3013 Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
3014 (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
3015 Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
3016 (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
3017 Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
3018 (operator==(const optional<_Tp>&, const _Tp&)):
3019 Turn into operator==(const optional<_Tp>&, const _Up&).
3020 (operator==(const _Tp&, const optional<_Tp>&)):
3021 Turn into operator==(const _Up&, const optional<_Tp>&).
3022 (operator!=(const optional<_Tp>&, const _Tp&)):
3023 Turn into operator!=(const optional<_Tp>&, const _Up&).
3024 (operator!=(const _Tp&, const optional<_Tp>&)):
3025 Turn into operator!=(const _Up&, const optional<_Tp>&).
3026 (operator<(const optional<_Tp>&, const _Tp&)):
3027 Turn into operator<(const optional<_Tp>&, const _Up&).
3028 (operator<(const _Tp&, const optional<_Tp>&)):
3029 Turn into operator<(const _Up&, const optional<_Tp>&).
3030 (operator>(const optional<_Tp>&, const _Tp&)):
3031 Turn into operator>(const optional<_Tp>&, const _Up&).
3032 (operator>(const _Tp&, const optional<_Tp>&)):
3033 Turn into operator>(const _Up&, const optional<_Tp>&).
3034 (operator<=(const optional<_Tp>&, const _Tp&)):
3035 Turn into operator<=(const optional<_Tp>&, const _Up&).
3036 (operator<=(const _Tp&, const optional<_Tp>&)):
3037 Turn into operator<=(const _Up&, const optional<_Tp>&).
3038 (operator>=(const optional<_Tp>&, const _Tp&)):
3039 Turn into operator>=(const optional<_Tp>&, const _Up&).
3040 (operator>=(const _Tp&, const optional<_Tp>&)):
3041 Turn into operator>=(const _Up&, const optional<_Tp>&).
3042 * testsuite/20_util/optional/relops/7.cc: New.
3044 2017-03-10 Jonathan Wakely <jwakely@redhat.com>
3046 * testsuite/17_intro/names.cc: Undefine macros that clash with
3047 identifiers in AIX system headers.
3049 * include/bits/invoke.h (__invoke): Use __invoke_result instead of
3050 result_of, and __is_nothrow_invocable instead of
3051 __is_nothrow_callable.
3052 * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
3053 instead of __is_callable.
3054 * include/std/functional (invoke): use invoke_result_t instead of
3055 result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
3056 (_Not_fn): Use __invoke_result instead of result_of.
3057 * include/std/type_traits (__result_of_memobj, __result_of_memfun):
3058 Remove partial specializations for reference_wrapper types.
3059 (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
3060 (__invoke_result): Define replacement for result_of and then use it to
3062 (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
3063 with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
3065 (invoke_result, invoke_result_t): Define for C++17.
3066 (is_callable, is_nothrow_callable): Replace with is_invocable,
3067 is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
3068 (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
3069 is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
3070 * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
3071 instead of is_nothrow_callable_v.
3072 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
3074 * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
3075 instead of is_callable.
3076 * testsuite/20_util/is_callable/*: Rename directory and adjust tests
3078 * testsuite/20_util/is_nothrow_callable/*: Likewise.
3079 * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
3081 * testsuite/20_util/variant/hash.cc: Likewise.
3083 2017-03-10 George Lander <george.lander@arm.com>
3085 * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
3086 _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
3087 * configure: Regenerate.
3089 2017-03-09 Jonathan Wakely <jwakely@redhat.com>
3091 * include/std/functional (_Not_fn): Define macro to simplify
3092 repetitive function definitions.
3094 * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
3095 * include/c_global/cstddef (std::byte): Define for C++17.
3096 * testsuite/18_support/byte/global_neg.cc: New test.
3097 * testsuite/18_support/byte/ops.cc: New test.
3098 * testsuite/18_support/byte/requirements.cc: New test.
3100 2017-03-05 Jonathan Wakely <jwakely@redhat.com>
3102 * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
3103 * doc/html/*: Regenerate.
3104 * include/std/mutex (scoped_lock): Implement new C++17 template.
3105 * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
3106 * testsuite/30_threads/scoped_lock/requirements/
3107 explicit_instantiation.cc: New test.
3108 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
3110 2017-03-02 Gerald Pfeifer <gerald@pfeifer.com>
3111 François Dumont <frs.dumont@gmail.com>
3112 Jonathan Wakely <jwakely@redhat.com>
3114 * doc/xml/manual/debug_mode.xml: Update and simplify note
3115 on link- and run-time coexistence.
3117 2017-03-02 Jonathan Wakely <jwakely@redhat.com>
3119 * testsuite/17_intro/headers/names.cc: Rename to ...
3120 * testsuite/17_intro/names.cc: ... here.
3123 * include/bits/hashtable_policy.h (__clp2): Use reserved names for
3124 parameters and local variables.
3125 * include/bits/ios_base.h (make_error_code, make_error_condition):
3127 * include/bits/list.tcc (list::sort): Likewise.
3128 * include/bits/mask_array.h (mask_array): Likewise.
3129 * include/bits/regex.h (regex_token_iterator): Likewise.
3130 * include/bits/slice_array.h (slice_array): Likewise.
3131 * include/bits/stl_algo.h (__sample): Likewise.
3132 * include/std/memory (undeclare_no_pointers): Likewise.
3133 * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
3135 * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
3136 * testsuite/17_intro/headers/names.cc: New test.
3139 * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
3140 result_of that loses top-level cv-qualifiers.
3141 * testsuite/20_util/bind/79798.cc: New test.
3143 2017-03-01 Gerald Pfeifer <gerald@pfeifer.com>
3145 * doc/xml/manual/documentation_hacking.xml: Tweak link to
3148 2017-02-23 Jonathan Wakely <jwakely@redhat.com>
3150 * include/experimental/iterator: Include <iterator>.
3151 * testsuite/experimental/iterator/requirements.cc: Check for contents
3154 2017-02-19 Dinka Ranns <dinka.ranns@googlemail.com>
3156 C++17 GB50 resolution
3157 * include/std/chrono (duration::operator++()): Add
3158 _GLIBCXX17_CONSTEXPR.
3159 (duration::operator++(int)): Likewise.
3160 (duration::operator--()): Likewise.
3161 (duration::operator--(int)): Likewise.
3162 (duration::operator+=(const duration&)): Likewise.
3163 (duration::operator-=(const duration&)): Likewise.
3164 (duration::operator*=(const rep&)): Likewise.
3165 (duration::operator/=(const rep&)): Likewise.
3166 (duration::operator%=(const rep&)): Likewise.
3167 (duration::operator%=(const duration&)): Likewise.
3168 (time_point::operator+=(const duration&)): Likewise.
3169 (time_point::operator-=(const duration&)): Likewise.
3170 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
3171 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
3172 * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
3174 2017-02-19 Gerald Pfeifer <gerald@pfeifer.com>
3176 * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
3178 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
3180 * doc/xml/manual/io.xml: Update link to groups.google.com.
3181 Tweak link description.
3183 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
3185 * doc/xml/manual/profile_mode.xml: Fix link.
3187 2017-02-16 Gerald Pfeifer <gerald@pfeifer.com>
3189 * doc/xml/manual/policy_data_structures.xml: Simplify and
3190 standardize references to boost.org.
3191 * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
3192 * doc/xml/manual/shared_ptr.xml: Ditto.
3194 2017-02-16 Jonathan Wakely <jwakely@redhat.com>
3197 * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
3198 written to buffer, not length remaining in buffer.
3200 2017-02-15 Tim Shen <timshen@google.com>
3203 * include/std/variant (operator<(), operator>(), operator<=(),
3204 operator>=(), operator==(), operator!=()): Implement P0393R3.
3205 * testsuite/20_util/variant/compile.cc: Adjust tests.
3206 * testsuite/20_util/variant/run.cc: Adjust tests.
3208 2017-02-15 Tim Shen <timshen@google.com>
3211 * include/std/variant (visit()): Forward variant types to the return
3212 type detection code.
3213 * testsuite/20_util/variant/compile.cc: Add test cases.
3215 2017-02-13 H.J. Lu <hongjiu.lu@intel.com>
3218 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
3220 2017-02-13 Jakub Jelinek <jakub@redhat.com>
3223 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3224 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
3225 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
3226 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
3227 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
3228 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
3229 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
3230 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
3231 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
3233 2017-02-13 Jonathan Wakely <jwakely@redhat.com>
3236 * include/std/future (__future_base::_Task_state::_M_run)
3237 (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
3238 result_of expressions.
3239 * testsuite/30_threads/packaged_task/79486.cc: New.
3241 2017-02-11 Jonathan Wakely <jwakely@redhat.com>
3244 * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
3245 (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
3246 __is_callable check.
3247 * testsuite/20_util/shared_ptr/cons/79467.cc: New.
3249 * include/bits/atomic_base.h: Re-indent.
3251 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
3253 * doc/xml/manual/profile_mode.xml: Update a paper reference.
3255 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
3257 * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
3259 2017-02-08 Jonathan Wakely <jwakely@redhat.com>
3261 * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
3263 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
3264 broken links to texts that are no longer online.
3265 * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
3267 * doc/xml/manual/using.xml: Update links to memory model information.
3268 * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
3269 Standard-Library Exception Safety".
3270 * doc/html/*: Regenerate.
3272 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
3274 * doc/xml/manual/profile_mode.xml: Unbreak link to
3275 "Optimizing Sorting with Machine Learning Algorithms".
3277 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
3279 * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
3281 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
3283 * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
3286 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
3288 * doc/html/ext/lwg-active.html: Remove.
3289 * doc/html/ext/lwg-closed.html: Ditto.
3290 * doc/html/ext/lwg-defects.html: Ditto.
3292 * doc/Makefile.am (xml_extradir): Remove.
3294 (stamp-html-docbook-lwg): Remove recipe...
3295 (stamp-html-docbook-data): ...and its use here.
3296 * doc/Makefile.in: Regenerate.
3298 * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
3299 the relationship to the upstream working group.
3300 Replace a local link to ../ext/lwg-active.html by the upstream one.
3301 Replace all reference to ../ext/lwg-defects.html by a new entity
3302 &DR; which refers to the upstream address.
3304 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
3306 * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
3308 2017-02-06 Jonathan Wakely <jwakely@redhat.com>
3311 * testsuite/20_util/duration/literals/range.cc: Prune extra output
3314 2017-02-06 Gerald Pfeifer <gerald@pfeifer.com>
3316 * doc/xml/manual/documentation_hacking.xml: Update URL of the
3317 DocBook Element Reference. Use that term as link description
3318 instead of "online".
3319 epubcheck has moved to GitHub.
3320 Remove obsolete link to DocBook Publishing Tools.
3322 2017-02-03 Jonathan Wakely <jwakely@redhat.com>
3325 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
3326 so new ios::failure can be caught even when old ABI is the default.
3327 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
3328 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
3329 exceptions_failbit.cc: Likewise.
3330 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
3331 exceptions_failbit.cc: Likewise.
3332 * testsuite/27_io/basic_istream/extractors_other/char/
3333 exceptions_null.cc: Likewise.
3334 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
3335 exceptions_null.cc: Likewise.
3336 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
3337 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
3338 * testsuite/27_io/basic_ostream/inserters_other/char/
3339 exceptions_null.cc: Likewise.
3340 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
3341 exceptions_null.cc: Likewise.
3342 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
3345 * src/c++11/Makefile.am: Add new files.
3346 * src/c++11/Makefile.in: Regenerate.
3347 * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
3348 (operator<<, operator>>, getline): Move explicit instantiations to ...
3349 * src/c++11/cow-string-io-inst.cc: ... new file.
3350 * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
3351 (operator<<, operator>>, getline): Move explicit instantiations to ...
3352 * src/c++11/cow-wstring-io-inst.cc: ... new file.
3353 * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
3354 (__throw_future_error, __throw_bad_function_call):
3355 (__throw_regex_error): Move functions for C++11 exceptions to the
3356 files that define the exception types.
3357 * src/c++11/functional.cc (__throw_bad_function_call): Move here.
3358 * src/c++11/future.cc (__throw_future_error): Likewise.
3359 * src/c++11/ios.cc (__throw_ios_failure): Likewise.
3360 * src/c++11/regex.cc (__throw_regex_error): Likewise.
3361 * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
3362 representation directly instead of calling __int_to_char.
3363 * src/c++11/sso_string.cc (__sso_string): New file for definition
3364 of __sso_string type.
3365 * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
3366 explicit instantiations of narrow string I/O functions.
3367 * src/c++11/system_error.cc (__throw_system_error): Move here.
3368 (__sso_string): Move to new file.
3369 * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
3370 explicit instantiations of wide string I/O functions.
3371 * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
3372 (operator>>, getline): Remove explicit instantiations from here.
3374 2017-02-02 H.J. Lu <hongjiu.lu@intel.com>
3376 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
3378 2017-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3380 * configure.host: Separate Solaris/SPARC and x86 baselines.
3381 * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
3382 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
3383 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
3384 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
3386 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
3387 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
3388 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
3389 * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
3390 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
3391 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
3392 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
3394 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
3395 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
3396 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
3398 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
3399 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
3400 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
3401 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
3402 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
3403 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
3405 2017-02-01 Jonathan Wakely <jwakely@redhat.com>
3408 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
3410 (_Iter_comp_to_iter): Likewise.
3411 * testsuite/25_algorithms/search/78346.cc: New test.
3414 * config/abi/pre/gnu.ver: Remove recently added symbols.
3415 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
3416 (basic_string::_M_copy_assign): Remove.
3417 (basic_string::operator=(const basic_string&)): Don't dispatch to
3418 _M_copy_assign. If source object is small just deallocate, otherwise
3419 perform new allocation before making any changes.
3420 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
3421 (basic_string::_M_copy_assign(const basic_string&, true_type)):
3423 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
3424 Test cases where the allocators are equal or the string is small.
3425 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
3428 2017-01-30 Ville Voutilainen <ville.voutilainen@gmail.com>
3430 Implement LWG 2825, LWG 2756 breaks class template argument
3431 deduction for optional.
3432 * include/std/optional: Add a deduction guide.
3433 * testsuite/20_util/optional/cons/deduction_guide.cc: New.
3435 2017-01-27 Jonathan Wakely <jwakely@redhat.com>
3438 * config/abi/pre/gnu.ver: Add new symbols.
3439 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
3440 (basic_string::_M_copy_assign): New overloaded functions to perform
3442 (basic_string::operator=(const basic_string&)): Dispatch to
3444 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
3445 (basic_string::_M_copy_assign(const basic_string&, true_type)):
3446 Define, performing rollback on exception.
3447 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
3448 Test exception-safety guarantee.
3449 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
3451 * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
3454 2017-01-26 Jonathan Wakely <jwakely@redhat.com>
3457 * include/tr1/complex (conj): Remove using-declaration and restore
3458 overloads, reverting previous change.
3460 * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
3462 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
3463 Mark as unsupported in C++98 mode.
3464 * testsuite/23_containers/queue/requirements/constructible.cc:
3466 * testsuite/23_containers/stack/requirements/constructible.cc:
3468 * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
3471 * include/bits/c++config (literals::string_view_literals::__7): Add.
3472 Only declare versioned namespaces for the relevant C++ dialects.
3473 * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
3474 Add versioning macros.
3475 * include/experimental/bits/lfts_config.h:
3476 (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
3477 * include/experimental/string_view (fundamentals_v2::__detail):
3478 Add versioning macros.
3479 (fundamentals_v2::__detail::__identity): Remove.
3480 (fundamentals_v2::__detail::__idt): Use common_type instead of
3481 __detail::__identity.
3482 * include/std/string_view (__detail::__identity, __detail::__idt):
3484 (literals::string_view_literals): Fix nesting of versioning macros.
3487 * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
3488 [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
3489 && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
3490 Retrieve original pointer value allocated by malloc.
3491 * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
3492 && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
3493 && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
3494 Define, adjusting pointer value allocated by malloc and storing for
3495 retrieval by operator delete.
3497 2017-01-26 Jakub Jelinek <jakub@redhat.com>
3499 * libsupc++/eh_atomics.h: Update copyright years.
3500 * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
3502 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
3506 * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
3507 (proj(T), conj(T)): Change return types per DR 1522.
3508 * include/tr1/complex (conj): Remove overloads and use std::conj.
3509 * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
3510 * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
3511 * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
3512 real(T) and imag(T). Allow testing for C++11 too.
3514 2017-01-24 Jonathan Wakely <jwakely@redhat.com>
3517 * include/experimental/string_view (operator==): Check sizes first.
3518 * include/std/string_view (operator==): Likewise.
3520 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
3522 * testsuite/experimental/array/make_array.cc: Restore <functional>
3525 2017-01-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
3527 * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
3529 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
3532 * include/experimental/array (__make_array_elem): New class template
3533 and partial specialization.
3534 (__is_reference_wrapper): Move into __make_array_elem specialization.
3535 (make_array): Use __make_array_elem to determine element type and move
3536 static assertion into specialization. Qualify std::forward call.
3537 (to_array): Add exception specifiation.
3538 * testsuite/experimental/array/make_array.cc: Test argument types
3539 without a common type.
3540 * testsuite/experimental/array/neg.cc: Adjust expected error message.
3542 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
3544 * doc/xml/manual/debug.xml: code.google.com uses https now.
3546 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
3548 * doc/xml/manual/test.xml: Fix link into gccint online manual.
3550 2017-01-21 Ville Voutilainen <ville.voutilainen@gmail.com>
3552 Make poisoned hashes SFINAE away the call operator of the hash.
3553 * include/bits/functional_hash.h
3554 (__poison_hash::__enable_hash_call): New.
3555 * include/std/optional (__optional_hash_call_base): New.
3556 (hash<optional<_Tp>>): Derive from the new base,
3557 move the hash function into that base.
3558 * include/std/variant (__variant_hash_call_base_impl): New.
3559 (__variant_hash_call_base): Likewise.
3560 (hash<variant<_Types...>>): Derive from the new base,
3561 move the hash function into that base.
3562 * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
3563 * testsuite/20_util/variant/hash.cc: Likewise.
3565 2017-01-20 Joe Seymour <joe.s@somniumtech.com>
3567 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
3568 * configure: Regenerate.
3570 2017-01-20 Jonathan Wakely <jwakely@redhat.com>
3573 * include/bits/random.h (uniform_real_distribution::param_type)
3574 (normal_distribution::param_type, lognormal_distribution::param_type)
3575 (gamma_distribution::param_type, chi_squared_distribution::param_type)
3576 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
3577 (student_t_distribution::param_type)
3578 (bernoulli_distribution::param_type, binomial_distribution::param_type)
3579 (geometric_distribution::param_type)
3580 (negative_binomial_distribution::param_type)
3581 (poisson_distribution::param_type)
3582 (exponential_distribution::param_type)
3583 (weibull_distribution::param_type)
3584 (extreme_value_distribution::param_type)
3585 (discrete_distribution::param_type)
3586 (piecewise_constant_distribution::param_type)
3587 (piecewise_linear_distribution::param_type): Define operator!=.
3588 * include/bits/uniform_int_dist.h
3589 (uniform_int_distribution::param_type): Likewise.
3590 * include/ext/random (beta_distribution::param_type)
3591 (rice_distribution::param_type, nakagami_distribution::param_type)
3592 (pareto_distribution::param_type, k_distribution::param_type)
3593 (arcsine_distribution::param_type, hoyt_distribution::param_type)
3594 (triangular_distribution::param_type)
3595 (von_mises_distribution::param_type)
3596 (hypergeometric_distribution::param_type)
3597 (logistic_distribution::param_type)
3598 (uniform_on_sphere_distribution::param_type)
3599 (uniform_inside_sphere_distribution::param_type): Likewise.
3600 * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
3601 Test construction with param_type.
3602 * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
3604 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
3606 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
3608 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
3610 * testsuite/26_numerics/random/extreme_value_distribution/cons/
3612 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
3614 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
3616 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
3618 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
3620 * testsuite/26_numerics/random/negative_binomial_distribution/cons/
3622 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
3624 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
3626 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
3628 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
3630 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
3632 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
3634 * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
3635 * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
3636 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
3637 * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
3639 * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
3640 * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
3641 * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
3642 * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
3643 * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
3644 * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
3645 * testsuite/ext/random/triangular_distribution/cons/parms.cc:
3647 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
3649 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
3652 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
3653 (__allocator_traits_base::__size_type): Remove.
3654 (allocator_traits::_Ptr): New class template to detect const and void
3655 pointer types without instantiating pointer_traits::rebind
3657 (allocator_traits::_Diff): Likewise for detecting difference_type.
3658 (allocator_traits::_Size): New class template to detect size_type
3659 without instantiating make_unsigned unnecessarily.
3660 * include/bits/ptr_traits.h (pointer_traits::element_type): Use
3661 __detected_or_t instead of __detected_or_t_.
3662 * include/std/type_traits (__detected_or_t_): Remove.
3663 * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
3667 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
3668 Replace with class template using void_t.
3669 (__alloc_rebind): Define in terms of
3670 __allocator_traits_base::__rebind.
3671 (allocator_traits): Remove unconditional static_assert for
3673 * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
3674 (pointer_traits::__rebind): Replace with class template using void_t.
3675 (pointer_traits::rebind): Define in terms of __rebind.
3676 (pointer_traits): Remove unconditional static_assert for rebind.
3677 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
3678 * testsuite/20_util/pointer_traits/rebind.cc: New test.
3681 * include/experimental/any (__any_caster): Avoid instantiating
3682 manager function for types that can't be stored in any.
3683 * include/std/any (__any_caster): Likewise.
3684 * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
3685 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
3688 * include/bits/stl_algo.h (is_partitioned): Use increment instead of
3691 2017-01-19 Jonathan Wakely <jwakely@redhat.com>
3694 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
3696 (__enable_shared_from_this): Declare __shared_ptr as a friend.
3697 * testsuite/ext/shared_ptr/1.cc: New test.
3700 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
3702 * testsuite/25_algorithms/is_partitioned/2.cc: New test.
3704 * doc/xml/manual/abi.xml: Fix typo.
3705 * doc/html/manual/abi.html: Likewise.
3708 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
3709 converting constructors from _Iter_less_iter.
3710 (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
3712 (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
3713 (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
3714 * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
3715 (__make_heap, __sort_heap): Change _Compare parameters to references.
3716 (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
3717 (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
3718 functions as lvalues.
3719 (is_heap): Call __is_heap_until directly to avoid copying __comp.
3720 * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
3721 count copies during construction with empty sequence.
3724 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
3725 (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
3726 * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
3728 * testsuite/25_algorithms/make_heap/movable.cc: New test.
3731 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
3732 (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
3733 _GLIBCXX_MOVE when passing comparison function to other functions.
3734 (is_heap_until, is_heap): Use std::move when passing comparison
3736 * testsuite/23_containers/priority_queue/67085.cc: New test.
3739 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
3740 macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
3741 Document that the deprecated _GLIBCXX_VERSION macro was removed for
3743 * doc/html/*: Regenerate.
3744 * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
3745 * include/Makefile.in: Regenerate.
3746 * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
3747 * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
3750 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
3753 * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
3754 aligned buffer instead of default-initialized variable.
3755 * testsuite/29_atomics/atomic/69301.cc: New test.
3756 * include/experimental/memory (observer_ptr::release): Use reserved
3758 * include/ext/pointer.h (_Pointer_adapter::operator++(int))
3759 (_Pointer_adapter::operator--(int)): Likewise.
3762 * include/experimental/random (randint): Use temporary instead of
3763 thread_local static.
3765 2017-01-17 Joshua Conner <joshconner@google.com>
3767 * crossconfig.m4: Add fuchsia OS.
3768 * configure: Regenerate.
3770 2017-01-17 Jonathan Wakely <jwakely@redhat.com>
3773 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
3774 __GLIBCXX__ macro is not useful. Remove redundant date information
3775 and link to the GCC release timeline.
3776 (abi.versioning.active): Move partial sentence into the previous
3778 * doc/html/*: Regenerate.
3781 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
3782 of remove_reference.
3783 * testsuite/18_support/nested_exception/79114.cc: New test.
3785 2017-01-17 Jakub Jelinek <jakub@redhat.com>
3788 * configure.ac: Add GCC_BASE_VER.
3789 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
3790 get version from BASE-VER file.
3791 * po/Makefile.in: Regenerated.
3792 * libsupc++/Makefile.in: Regenerated.
3793 * testsuite/Makefile.in: Regenerated.
3794 * src/Makefile.in: Regenerated.
3795 * configure: Regenerated.
3796 * Makefile.in: Regenerated.
3797 * include/Makefile.in: Regenerated.
3798 * doc/Makefile.in: Regenerated.
3799 * python/Makefile.in: Regenerated.
3800 * src/c++11/Makefile.in: Regenerated.
3801 * src/c++98/Makefile.in: Regenerated.
3802 * src/filesystem/Makefile.in: Regenerated.
3804 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
3807 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
3809 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
3810 for test, so new ios::failure can be caught.
3811 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
3812 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
3813 exceptions_failbit.cc: Likewise.
3814 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
3815 exceptions_failbit.cc: Likewise.
3816 * testsuite/27_io/basic_istream/extractors_other/char/
3817 exceptions_null.cc: Likewise.
3818 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
3819 exceptions_null.cc: Likewise.
3820 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
3821 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
3822 * testsuite/27_io/basic_ostream/inserters_other/char/
3823 exceptions_null.cc: Likewise.
3824 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
3825 exceptions_null.cc: Likewise.
3826 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
3829 * include/bits/locale_classes.h (locale::facet::__shim): Change from
3830 private to protected.
3831 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
3832 make locale::facet::__shim accessible.
3834 2017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
3837 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
3838 (merge(list&&, _StrictWeakOrdering)): Likewise.
3839 * testsuite/23_containers/list/operations/78389.cc: Add
3840 better test for the sizes.
3842 2017-01-14 Jonathan Wakely <jwakely@redhat.com>
3844 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
3845 Skip test when -D_GLIBCXX_PROFILE mode is included in options.
3846 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
3847 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
3849 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
3850 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
3851 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
3852 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
3853 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
3855 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
3857 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
3859 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
3861 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
3863 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
3864 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
3865 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
3866 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
3867 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
3868 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
3869 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
3870 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
3871 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
3872 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
3873 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
3874 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
3875 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
3877 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
3880 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
3881 retry fclose on EINTR.
3883 * include/profile/base.h: Remove unused header that leads to header
3884 cycle in C++17 mode.
3887 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
3888 Make _If_sv private.
3889 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
3890 basic_string_view arguments.
3893 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
3894 redundant option from cxxflags.
3895 (check_effective_target_cxx11-abi): Define.
3896 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
3898 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
3899 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
3901 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
3903 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
3904 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
3906 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
3908 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
3909 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
3911 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
3913 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
3915 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
3917 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
3919 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
3921 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
3923 * testsuite/23_containers/list/61347.cc: Likewise.
3924 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
3925 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
3927 2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
3930 * include/bits/list.tcc (merge(list&&)):
3931 Adjust list sizes if the comparator throws.
3932 (merge(list&&, _StrictWeakOrdering)): Likewise.
3933 (sort()): Splice elements back from the scratch buffers
3934 if the comparator throws.
3935 (sort(_StrictWeakOrdering)): Likewise.
3936 * testsuite/23_containers/list/operations/78389.cc: New.
3938 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
3940 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
3941 XFAIL for C++17 until node reinsertion supports fancy pointers.
3944 * testsuite/20_util/add_pointer/value.cc: Test forming function
3947 2017-01-13 Michael Brune <lucdanton@free.fr>
3950 * include/std/type_traits (__is_referenceable): Handle noexcept
3953 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
3956 * include/bits/stl_queue.h (queue, priority_queue): Remove default
3957 member-initializers and define default constructors as templates with
3959 * include/bits/stl_stack.h (stack): Likewise.
3960 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
3962 * testsuite/23_containers/priority_queue/requirements/
3963 explicit_instantiation/1.cc: Test more instantiations.
3964 * testsuite/23_containers/priority_queue/requirements/
3965 explicit_instantiation/1_c++98.cc: Likewise.
3966 * testsuite/23_containers/queue/requirements/constructible.cc: New.
3967 * testsuite/23_containers/stack/requirements/constructible.cc: New.
3970 * doc/xml/manual/intro.xml: Document LWG 2781 change.
3971 * doc/html/*: Regenerate.
3972 * include/std/functional (_Function_base::_Ref_manager): Remove.
3973 (_Function_handler): Remove partial specializations for
3975 (function::target): Remove special case for const qualification.
3976 * testsuite/20_util/function/6.cc: Adjust tests for target type.
3977 * testsuite/20_util/function/7.cc: Likewise.
3978 * testsuite/20_util/function/8.cc: Likewise.
3980 2017-01-11 Jonathan Wakely <jwakely@redhat.com>
3983 * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
3984 (map::equal_range): Fix return type of heterogeneous overloads.
3985 * include/bits/stl_multimap.h (multimap::lower_bound)
3986 (multimap::upper_bound, multimap::equal_range): Likewise.
3987 * include/bits/stl_multiset.h (multiset::lower_bound)
3988 (multiset::upper_bound, multiset::equal_range): Likewise.
3989 * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
3990 (set::equal_range): Likewise.
3991 * testsuite/23_containers/map/operations/2.cc
3992 * testsuite/23_containers/multimap/operations/2.cc
3993 * testsuite/23_containers/multiset/operations/2.cc
3994 * testsuite/23_containers/set/operations/2.cc
3997 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
3998 the heterogeneous comparison can only find one match.
3999 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
4000 * testsuite/23_containers/map/operations/2.cc: Test count works with
4001 comparison function that just partitions rather than sorting.
4002 * testsuite/23_containers/set/operations/2.cc: Likewise.
4004 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
4006 Reduce the size of variant, it doesn't need an index of
4007 type size_t internally.
4008 * include/std/variant (parse_numbers.h): New include.
4009 (__select_index): New.
4010 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
4011 _index_type for comparison with variant_npos.
4012 (_Variant_storage<false, _Types...>::__index_type): New.
4013 (_Variant_storage<false, _Types...>::_M_index): Change the
4014 type from size_t to __index_type.
4015 (_Variant_storage<true, _Types...>::__index_type): New.
4016 (_Variant_storage<true, _Types...>::_M_index): Change the
4017 type from size_t to __index_type.
4018 (_Variant_base::_M_valid): Use _Storage::__index_type
4019 for comparison with variant_npos.
4020 (variant::index): Use _Base::_Storage::__index_type
4021 for comparison with variant_npos.
4022 * testsuite/20_util/variant/index_type.cc: New.
4024 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
4026 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
4027 effective target selector to prevent running in C++17 mode.
4030 * include/bits/stl_queue.h (queue::c): Add default member initializer.
4031 (queue::queue()): Add constructor and define as defaulted.
4032 (queue::queue(_Sequence&&)): Remove default argument.
4033 (priority_queue::c, priority_queue::comp): Add default member
4035 (priority_queue::priority_queue()): Add constructor and define as
4037 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
4038 Remove default argument for first parameter.
4039 * include/bits/stl_stack.h (stack::c): Add default member initializer.
4040 (stack::stack()): Add constructor and define as defaulted.
4041 (stack::stack(const _Sequence&)): Remove default argument.
4042 * testsuite/23_containers/priority_queue/requirements/
4043 explicit_instantiation/1.cc: Test explicit instantiation with
4044 non-DefaultConstructible sequence.
4045 * testsuite/23_containers/priority_queue/77528.cc: New test.
4046 * testsuite/23_containers/priority_queue/requirements/
4047 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
4048 * testsuite/23_containers/queue/77528.cc: New test.
4049 * testsuite/23_containers/queue/requirements/explicit_instantiation/
4050 1.cc: Test explicit instantiation with non-DefaultConstructible
4052 * testsuite/23_containers/queue/requirements/explicit_instantiation/
4053 1_c++0x.cc: Replace with 1_c++98.cc.
4054 * testsuite/23_containers/stack/77528.cc: New test.
4055 * testsuite/23_containers/stack/requirements/explicit_instantiation/
4056 1.cc: Test explicit instantiation with non-DefaultConstructible
4058 * testsuite/23_containers/stack/requirements/explicit_instantiation/
4059 1_c++0x.cc: Replace with 1_c++98.cc.
4061 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
4063 * include/bits/locale_facets_nonio.tcc
4064 (time_get::_M_extract_via_format): Avoid compilation errors with
4065 non-standard struct tm.
4067 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
4068 Jonathan Wakely <jwakely@redhat.com>
4070 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
4071 (is_specialization, strip_versioned_namespace): New helpers functions
4072 to work with symbols in the versioned namespace.
4073 (Printer.add_version): Add second name using versioned namespace.
4074 (add_one_template_type_printer, add_one_type_printer): Add second
4075 type printers using versioned namespace.
4076 (register_type_printers): Add template type printer for basic_string.
4077 (build_libstdcxx_dictionary): Remove dead code.
4078 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
4079 versioned namespace.
4080 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
4082 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
4084 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
4087 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
4088 functions separately on darwin and if they're missing define
4089 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
4090 * config.h.in: Regenerate.
4091 * configure: Regenerate.
4092 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
4093 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
4095 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
4096 to detect correct thread_local destructors.
4097 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
4100 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
4101 Aditya Kumar <hiraditya@msn.com>
4104 * include/bits/basic_string.tcc
4105 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
4107 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
4109 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
4110 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
4112 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
4113 Include <cassert> header.
4116 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
4117 * configure: Regenerate.
4119 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
4120 Jonathan Wakely <jwakely@redhat.com>
4122 * include/std/variant (variant, swap): Replace __and_ usage with fold
4125 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4128 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
4129 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
4130 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
4131 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
4133 * aclocal.m4: Regenerate.
4134 * configure: Regenerate.
4135 * Makefile.in, doc/Makefile.in, include/Makefile.in,
4136 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
4137 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
4138 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
4140 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
4142 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
4145 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
4146 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
4147 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
4148 move function objects.
4149 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
4150 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
4151 * testsuite/25_algorithms/sort/78991.cc: New test.
4153 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
4155 * include/bits/std_function.h (function::_Signature_type): Remove.
4156 (function::function(_Functor)): Adjust.
4158 2017-01-05 Tim Shen <timshen@google.com>
4161 * include/std/variant (__gen_vtable_impl): rename __unused to
4162 __dimensions to avoid naming conflict.
4164 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
4167 * config.h.in: Regenerate.
4168 * configure: Likewise.
4169 * configure.ac: Check for __cxa_thread_atexit.
4170 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
4171 Don't define __cxa_thread_atexit if libc provides it.
4173 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
4175 Implement 2801, Default-constructibility of unique_ptr.
4176 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
4177 (unique_ptr::_DeleterConstraint): Likewise.
4178 (unique_ptr()): Constrain.
4179 (unique_ptr(pointer)): Likewise.
4180 (unique_ptr(nullptr_t)): Likewise.
4181 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
4182 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
4183 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
4184 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
4185 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
4186 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
4187 * testsuite/20_util/unique_ptr/cons/default.cc: New.
4188 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
4190 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
4191 Jonathan Wakely <jwakely@redhat.com>
4194 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
4195 * config.h.in: Regenerate.
4196 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
4197 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
4198 exports for exception_ptr, nested_exception, and future conditional.
4199 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
4200 exports for exception_ptr, nested_exception, and future conditional.
4201 * configure: Regenerate.
4202 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
4203 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
4204 * libsupc++/eh_atomics.h: New file for internal use only.
4205 (__eh_atomic_inc, __eh_atomic_dec): New.
4206 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
4207 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
4208 (rethrow_exception): Use eh_atomics.h reference counting helpers.
4209 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
4210 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
4211 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
4212 * libsupc++/exception_ptr.h: Likewise.
4213 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
4214 * libsupc++/nested_exception.cc: Remove check for
4215 ATOMIC_INT_LOCK_FREE.
4216 * libsupc++/nested_exception.h: Likewise.
4217 * src/c++11/future.cc: Likewise.
4218 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
4219 * testsuite/18_support/nested_exception/*: Likewise.
4220 * testsuite/30_threads/async/*: Likewise.
4221 * testsuite/30_threads/future/*: Likewise.
4222 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
4223 * testsuite/30_threads/packaged_task/*: Likewise.
4224 * testsuite/30_threads/promise/*: Likewise.
4225 * testsuite/30_threads/shared_future/*: Likewise.
4227 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
4229 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
4230 defaults to https; adjust reference.
4232 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
4235 * include/std/thread (thread(const thread&&)): Add deleted
4237 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
4239 * doc/xml/manual/spine.xml: Update copyright years.
4240 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
4241 * doc/xml/manual/test.xml: Likewise.
4242 * doc/html/*: Regenerate.
4244 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
4246 * doc/xml/faq.xml: Update address of C++ ABI link.
4247 * doc/xml/manual/abi.xml: Ditto.
4249 2017-01-01 Jakub Jelinek <jakub@redhat.com>
4251 Update copyright years.
4253 Copyright (C) 2017 Free Software Foundation, Inc.
4255 Copying and distribution of this file, with or without modification,
4256 are permitted in any medium without royalty provided the copyright
4257 notice and this notice are preserved.