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