1 2017-12-16 Martin Sebor <msebor@redhat.com>
3 PR tree-optimization/83239
4 * include/bits/vector.tcc (vector::_M_default_append): Assert
5 invariant to generate better code.
7 2017-12-14 Jonathan Wakely <jwakely@redhat.com>
10 * src/filesystem/std-ops.cc (do_copy_file): Handle sendfile not
14 * include/std/condition_variable (condition_variable::wait_for):
15 Convert duration to native clock's duration before addition.
16 * testsuite/30_threads/condition_variable/members/68519.cc: New test.
19 * include/bits/refwrap.h (_Maybe_unary_or_binary_function): Move here
20 from <bits/std_function.h>.
21 (_Mem_fn_traits_base, _Mem_fn_traits): Move here, from <functional>.
22 (_Weak_result_type_impl, _Reference_wrapper_base): Deduce noexcept
23 for function types. Remove partial specializations for member
25 (_Weak_result_type_impl): Remove unused partial specializations for
26 non-referenceable function types and for references to functions.
27 (_Weak_result_type_memfun, _Reference_wrapper_base_memfun): New
28 helpers to handle member functions via _Mem_fn_traits.
29 (_Weak_result_type, reference_wrapper): Derive from new helpers.
30 * include/bits/std_function.h (_Maybe_unary_or_binary_function): Move
32 * include/std/functional (_Pack, _AllConvertible, _NotSame): Remove.
33 (_Mem_fn_traits_base, _Mem_fn_traits): Move to <bits/refwrap.h>.
34 * testsuite/20_util/bind/83427.cc: New test.
35 * testsuite/20_util/bind/refqual.cc: Add noexcept to functions and
36 check for weak result types.
37 * testsuite/20_util/reference_wrapper/83427.cc: New test.
39 * testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc:
40 Add tests using noskipws.
42 * testsuite/26_numerics/complex/dr2714.cc: Move to ...
43 * testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc:
44 ... Here. Remove duplicate header and dg-options. Check first invalid
45 character gets putback. Remove wchar_t test.
47 2017-12-13 Jonathan Wakely <jwakely@redhat.com>
50 * include/std/complex (operator>>): Implement proposed resolution to
51 LWG 2714. Use putback if and only if a character has been successfully
52 extracted but isn't a delimiter. Use ctype::widen and traits::eq when
53 testing if extracted characters match delimiters.
54 * testsuite/26_numerics/complex/dr2714.cc: New test.
56 2017-12-12 Jonathan Wakely <jwakely@redhat.com>
59 * include/std/type_traits (__is_invocable_impl): Remove partial
60 specialization for INVOKE<void> and restore is_void<R> check in
62 (__is_nt_invocable_impl): Likewise.
63 * testsuite/20_util/is_invocable/83395.cc: New test.
64 * testsuite/20_util/is_nothrow_invocable/83395.cc: New test.
66 2017-12-07 David Edelsohn <dje.gcc@gmail.com>
69 * testsuite/ext/special_functions/hyperg/check_value.cc: Add
70 -ffp-contract=off. Add -ffloat-store for m68* and ia32.
71 * testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/check_value.cc: Same.
73 2017-12-07 Martin Sebor <msebor@redhat.com>
76 * include/ext/mt_allocator.h (_M_destroy_thread_key): Remove
79 2017-12-05 Jason Merrill <jason@redhat.com>
80 Jonathan Wakely <jwakely@redhat.com>
82 * include/bits/fs_fwd.h (copy, copy_file): Remove noexcept.
83 (permissions): Add noexcept.
84 * include/bits/fs_ops.h (permissions): Add noexcept.
85 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Add
88 2017-12-04 Jonathan Wakely <jwakely@redhat.com>
90 * include/bits/regex_compiler.tcc: Use C-style comment to work around
91 PR preprocessor/61638.
92 (__INSERT_REGEX_MATCHER): Replace GNU extension with __VA_ARGS__.
94 * config/io/basic_file_stdio.h (__basic_file): Remove name of unused
96 * include/bits/boost_concept_check.h: Add pragmas to disable
97 -Wunused-local-typedef warnings.
98 * include/bits/codecvt.h (codecvt_byname<char16_t, char, mbstate_t>)
99 (codecvt_byname<char32_t, char, mbstate_t>): Remove name of unused
101 * include/bits/locale_facets_nonio.tcc (time_get::do_get_weekday)
102 (time_get::do_get_monthname, time_get::do_get_year): Remove unused
104 * include/std/bitset (_Base_bitset<0>::_M_getword): Remove name of
106 * include/std/streambuf (_IsUnused): Define.
107 (basic_streambuf::imbue, basic_streambuf::pbackfail)
108 (basic_streambuf::overflow): Add macro to unused parameters.
109 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error.
111 2017-12-01 Jonathan Wakely <jwakely@redhat.com>
113 * include/experimental/string_view (basic_string_view::_S_compare):
114 Use value-init so narrowing conversions are not ill-formed.
115 * include/std/string_view (basic_string_view::_S_compare): Likewise.
117 * include/bits/basic_string.h (operator""s): Add pragmas to disable
118 -Wliteral-suffix warnings.
119 * include/experimental/string_view (operator""sv): Likewise.
120 * include/std/chrono (operator""h, operator""min, operator""s)
121 (operator""ms, operator""us, operator""ns): Likewise.
122 * include/std/complex (operator""if, operator""i, operator""il):
124 * include/std/string_view (operator""sv): Likewise.
125 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
127 * include/bits/locale_facets_nonio.tcc (money_get::_M_extract): Add
130 * include/bits/node_handle.h (_Node_handle_common::operator=)
131 (_Node_handle_common::_M_swap): Add braces around debug assertions.
133 * include/ext/ropeimpl.h (rope::_S_dump): Use const char*.
135 * libsupc++/nested_exception.h (__throw_with_nested_impl): Add
138 * include/bits/regex_executor.tcc (_Executor::_M_rep_once_more):
139 Remove semi-colon after function body.
140 * include/bits/uniform_int_dist.h (_Power_of_2): Likewise.
142 * include/tr1/modified_bessel_func.tcc (__airy): Use value-init not
145 * include/std/type_traits (integral_constant): Make member functions
147 * include/std/utility (integer_sequence): Likewise.
149 2017-11-30 Jonathan Wakely <jwakely@redhat.com>
152 * include/bits/locale_facets_nonio.h (__timepunct::_M_am_pm_format):
153 Remove statement with no effect.
155 2017-11-30 Glen Joseph Fernandes <glenjofe@gmail.com>
157 * include/bits/ptr_traits.h (__to_address, to_address): Move static
159 * testsuite/20_util/to_address/1_neg.cc: New test.
161 2017-11-30 Jonathan Wakely <jwakely@redhat.com>
164 * include/bits/node_handle.h (_Node_handle::__pointer): Avoid forming
165 pointer-to-reference types.
166 * testsuite/23_containers/map/modifiers/insert/83226.cc: New test.
168 2017-11-29 John David Anglin <danglin@gcc.gnu.org>
170 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
172 2017-11-29 David Malcolm <dmalcolm@redhat.com>
174 * testsuite/20_util/duration/literals/range.cc: Update expected
175 line of a static_assert failure.
177 2017-11-28 Glen Joseph Fernandes <glenjofe@gmail.com>
179 * include/bits/ptr_traits.h (to_address): Implement to_address.
180 * testsuite/20_util/to_address/1.cc: New test.
182 2017-11-27 Stephan Bergmann <sbergman@redhat.com>
184 * include/std/string_view (basic_string_view::find_first_of): Add
187 * include/bits/unordered_map.h (unordered_map): Fix deduction guide.
188 * include/debug/unordered_map (unordered_map): Likewise.
190 2017-11-23 Jonathan Wakely <jwakely@redhat.com>
192 * libsupc++/new (launder): Add nodiscard attribute.
193 * testsuite/18_support/launder/nodiscard.cc: New test.
195 * include/bits/fs_path.h (path::empty): Add nodiscard attribute.
196 * include/bits/range_access.h (empty): Likewise.
197 * include/std/string_view (basic_string_view::empty): Likewise.
198 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc: New
200 * testsuite/24_iterators/range_access_cpp17_neg.cc: New test.
201 * testsuite/27_io/filesystem/path/query/empty_neg.cc: New test.
204 * include/std/type_traits (__not_): Explicitly convert to bool.
205 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
206 * testsuite/20_util/logical_traits/83134.cc: New test.
207 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
209 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
212 2017-11-22 Jonathan Wakely <jwakely@redhat.com>
215 * include/bits/stl_tree.h (_Rb_tree): Relax invocable checks for
216 comparison object pre-C++17.
218 2017-11-21 Jonathan Wakely <jwakely@redhat.com>
221 * include/bits/allocator.h (allocator<const _Tp>)
222 (allocator<volatile _Tp>, allocator<const volatile _Tp>): Add partial
224 * include/bits/forward_list.h (forward_list): Add static assertions.
225 * include/bits/hashtable.h (__cache_default): Use
226 __is_nothrow_invocable instead of __is_noexcept_hash.
227 (_Hashtable): Add static assertions.
228 * include/bits/hashtable_policy.h (__is_noexcept_hash): Remove.
229 * include/bits/stl_deque.h (deque): Add static assertions.
230 * include/bits/stl_function.h (_Identity<const _Tp>): Add partial
232 * include/bits/stl_list.h (list): Add static assertions.
233 * include/bits/stl_map.h (map): Likewise.
234 * include/bits/stl_multimap.h (multimap): Likewise.
235 * include/bits/stl_multiset.h (multiset): Likewise.
236 * include/bits/stl_set.h (set): Likewise.
237 * include/bits/stl_tree.h (_Rb_tree): Likewise.
238 * include/bits/stl_vector.h (vector): Likewise.
239 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
240 Use typename instead of class in template-parameter-list and remove
242 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
244 * testsuite/23_containers/deque/48101-2_neg.cc: New test.
245 * testsuite/23_containers/deque/48101_neg.cc: New test.
246 * testsuite/23_containers/forward_list/48101-2_neg.cc: New test.
247 * testsuite/23_containers/forward_list/48101_neg.cc: New test.
248 * testsuite/23_containers/list/48101-2_neg.cc: New test.
249 * testsuite/23_containers/list/48101_neg.cc: New test.
250 * testsuite/23_containers/map/48101-2_neg.cc: New test.
251 * testsuite/23_containers/map/48101_neg.cc: New test.
252 * testsuite/23_containers/map/operations/31440.cc: Fix comparison
253 object to have const-qualified call operator.
254 * testsuite/23_containers/multimap/48101-2_neg.cc: New test.
255 * testsuite/23_containers/multimap/48101_neg.cc: New test.
256 * testsuite/23_containers/multiset/48101-2_neg.cc: New test.
257 * testsuite/23_containers/multiset/48101_neg.cc: New test.
258 * testsuite/23_containers/set/48101-2_neg.cc: New test.
259 * testsuite/23_containers/set/48101_neg.cc: New test.
260 * testsuite/23_containers/unordered_map/48101-2_neg.cc: New test.
261 * testsuite/23_containers/unordered_map/48101_neg.cc: New test.
262 * testsuite/23_containers/unordered_multimap/48101-2_neg.cc: New test.
263 * testsuite/23_containers/unordered_multimap/48101_neg.cc: New test.
264 * testsuite/23_containers/unordered_multiset/48101-2_neg.cc: New test.
265 * testsuite/23_containers/unordered_multiset/48101_neg.cc: New test.
266 * testsuite/23_containers/unordered_set/48101-2_neg.cc: New test.
267 * testsuite/23_containers/unordered_set/48101_neg.cc: New test.
268 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
269 dg-error line number.
270 * testsuite/23_containers/vector/48101-2_neg.cc: New test.
271 * testsuite/23_containers/vector/48101_neg.cc: New test.
273 2017-11-21 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
275 * doc/xml/manual/using.xml (manual.intro.using.macros): Move
276 variablelist element at the end of its list.
278 2017-11-21 Sebastian Huber <sebastian.huber@embedded-brains.de>
280 * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Add rtems*.
281 (GLIBCXX_ENABLE_FILESYSTEM_TS): Likewise.
282 * configure: Regenerate.
284 2017-11-20 François Dumont <fdumont@gcc.gnu.org>
286 * include/bits/streambuf_iterator.h (istreambuf_iterator<>): Declare
287 std::advance for istreambuf_iterator of char types to be friend.
288 (std::advance(istreambuf_iterator&, _Distance)): New overload.
289 * include/std/streambuf (basic_streambuf<>): Declare std::advance for
290 istreambuf_iterator of char types to be friend.
291 * testsuite/22_locale/money_get/get/char/9.cc: Have
292 istreambuf_iterator created on the fly when calling money_get<>::get.
293 * testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
294 * testsuite/24_iterators/istreambuf_iterator/debug/1_neg.cc: New.
295 * testsuite/24_iterators/istreambuf_iterator/debug/2_neg.cc: New.
296 * testsuite/25_algorithms/advance/istreambuf_iterators/char/1.cc: New.
297 * testsuite/25_algorithms/advance/istreambuf_iterators/char/1_neg.cc:
299 * testsuite/25_algorithms/advance/istreambuf_iterators/char/2.cc: New.
300 * testsuite/25_algorithms/advance/istreambuf_iterators/char/2_neg.cc:
302 * testsuite/25_algorithms/advance/istreambuf_iterators/char/3_neg.cc:
304 * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1.cc:
306 * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1_neg.cc:
308 * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2.cc:
310 * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2_neg.cc:
312 * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/3_neg.cc:
314 * testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc: Leverage
315 on std::advance overload.
316 * testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
319 2017-11-20 Jonathan Wakely <jwakely@redhat.com>
321 * testsuite/special_functions/18_riemann_zeta/check_value.cc: Fix
322 duplicate dg-options directive.
323 * testsuite/tr1/5_numerical_facilities/special_functions/
324 20_riemann_zeta/check_value_neg.cc: Likewise.
326 2017-11-20 Ville Voutilainen <ville.voutilainen@gmail.com>
329 * include/bits/stl_iterator_base_funcs.h (next):
330 Use InputIterator instead of ForwardIterator.
331 * testsuite/24_iterators/operations/lwg2353.cc: New.
332 * testsuite/24_iterators/operations/next_neg.cc: Remove.
334 2017-11-18 Edward Smith-Rowland <3dw4rd@verizon.net>
336 PR libstdc++/pr66689 - comp_ellint_3 and ellint_3 return garbage values
337 * include/tr1/ell_integral.tcc: Correct the nu sign convention
338 in ellint_3 and comp_ellint_3.
339 * testsuite/tr1/5_numerical_facilities/special_functions/
340 06_comp_ellint_3/check_value.cc: Regen with correct values.
341 * testsuite/tr1/5_numerical_facilities/special_functions/
342 14_ellint_3/check_value.cc: Ditto.
343 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: Ditto.
344 * testsuite/special_functions/13_ellint_3/check_value.cc: Ditto.
345 * testsuite/tr1/5_numerical_facilities/special_functions/
346 01_assoc_laguerre/check_value.cc: Regen.
347 * testsuite/tr1/5_numerical_facilities/special_functions/
348 02_assoc_legendre/check_value.cc: Regen.
349 * testsuite/tr1/5_numerical_facilities/special_functions/
350 03_beta/check_value.cc: Regen.
351 * testsuite/tr1/5_numerical_facilities/special_functions/
352 04_comp_ellint_1/check_value.cc: Regen.
353 * testsuite/tr1/5_numerical_facilities/special_functions/
354 05_comp_ellint_2/check_value.cc: Regen.
355 * testsuite/tr1/5_numerical_facilities/special_functions/
356 07_conf_hyperg/check_value.cc: Regen.
357 * testsuite/tr1/5_numerical_facilities/special_functions/
358 08_cyl_bessel_i/check_value.cc: Regen.
359 * testsuite/tr1/5_numerical_facilities/special_functions/
360 09_cyl_bessel_j/check_value.cc: Regen.
361 * testsuite/tr1/5_numerical_facilities/special_functions/
362 10_cyl_bessel_k/check_value.cc: Regen.
363 * testsuite/tr1/5_numerical_facilities/special_functions/
364 11_cyl_neumann/check_value.cc: Regen.
365 * testsuite/tr1/5_numerical_facilities/special_functions/
366 12_ellint_1/check_value.cc: Regen.
367 * testsuite/tr1/5_numerical_facilities/special_functions/
368 13_ellint_2/check_value.cc: Regen.
369 * testsuite/tr1/5_numerical_facilities/special_functions/
370 15_expint/check_value_neg.cc: Regen.
371 * testsuite/tr1/5_numerical_facilities/special_functions/
372 16_hermite/check_value.cc: Regen.
373 * testsuite/tr1/5_numerical_facilities/special_functions/
374 17_hyperg/check_value.cc: Regen.
375 * testsuite/tr1/5_numerical_facilities/special_functions/
376 18_laguerre/check_value.cc: Regen.
377 * testsuite/tr1/5_numerical_facilities/special_functions/
378 19_legendre/check_value.cc: Regen.
379 * testsuite/tr1/5_numerical_facilities/special_functions/
380 20_riemann_zeta/check_value_neg.cc: Regen.
381 * testsuite/tr1/5_numerical_facilities/special_functions/
382 21_sph_bessel/check_value.cc: Regen.
383 * testsuite/tr1/5_numerical_facilities/special_functions/
384 22_sph_legendre/check_value.cc: Regen.
385 * testsuite/tr1/5_numerical_facilities/special_functions/
386 23_sph_neumann/check_value.cc: Regen.
387 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: Regen.
388 * testsuite/ext/special_functions/hyperg/check_value.cc: Regen.
389 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: Regen.
390 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Regen.
391 * testsuite/special_functions/03_beta/check_value.cc: Regen.
392 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: Regen.
393 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: Regen.
394 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: Regen.
395 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: Regen.
396 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: Regen.
397 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Regen.
398 * testsuite/special_functions/11_ellint_1/check_value.cc: Regen.
399 * testsuite/special_functions/12_ellint_2/check_value.cc: Regen.
400 * testsuite/special_functions/14_expint/check_value.cc: Regen.
401 * testsuite/special_functions/15_hermite/check_value.cc: Regen.
402 * testsuite/special_functions/16_laguerre/check_value.cc: Regen.
403 * testsuite/special_functions/17_legendre/check_value.cc: Regen.
404 * testsuite/special_functions/18_riemann_zeta/check_value.cc: Regen.
405 * testsuite/special_functions/19_sph_bessel/check_value.cc: Regen.
406 * testsuite/special_functions/20_sph_legendre/check_value.cc: Regen.
407 * testsuite/special_functions/21_sph_neumann/check_value.cc: Regen.
408 * testsuite/tr1/5_numerical_facilities/special_functions/
409 06_comp_ellint_3/pr66689.cc: New.
410 * testsuite/tr1/5_numerical_facilities/special_functions/
411 14_ellint_3/pr66689.cc: New.
412 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc: New.
413 * testsuite/special_functions/13_ellint_3/pr66689.cc: New.
415 2017-11-18 Edward Smith-Rowland <3dw4rd@verizon.net>
416 Expose Airy functions as an extenaion.
417 * include/bits/specfun.h: Expose airy_ai and airy_bi.
418 * include/tr1/modified_bessel_func.tcc: Treat NaN and inf arg, return.
419 * testsuite/ext/special_functions/airy_ai/check_nan.cc: New.
420 * testsuite/ext/special_functions/airy_ai/check_value.cc: New.
421 * testsuite/ext/special_functions/airy_ai/compile.cc: New.
422 * testsuite/ext/special_functions/airy_bi/check_nan.cc: New.
423 * testsuite/ext/special_functions/airy_bi/check_value.cc: New.
424 * testsuite/ext/special_functions/airy_bi/compile.cc: New.
426 2017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
428 * acinclude.m4: Add cet.m4.
429 * configure.ac: Set CET_FLAGS. Update EXTRA_CFLAGS,
431 * libsupc++/Makefile.am: Use Add EXTRA_CFLAGS.
432 * Makefile.in: Regenerate.
433 * configure: Likewise.
434 * doc/Makefile.in: Likewise.
435 * include/Makefile.in: Likewise.
436 * libsupc++/Makefile.in: Likewise.
437 * po/Makefile.in: Likewise.
438 * python/Makefile.in: Likewise.
439 * src/Makefile.in: Likewise.
440 * src/c++11/Makefile.in: Likewise.
441 * src/c++98/Makefile.in: Likewise.
442 * src/filesystem/Makefile.in: Likewise.
443 * testsuite/Makefile.in: Likewise.
445 2017-11-17 Jonathan Wakely <jwakely@redhat.com>
448 * include/std/fstream (basic_filebuf::_If_path): Move to
449 namespace-scope and rename to _If_fs_path.
450 (basic_filebuf::open): Use new name.
451 (basic_ifstream(_Path, ios::openmode))
452 (basic_ifstream::open(_Path, ios::openmode))
453 (basic_ofstream(_Path, ios::openmode))
454 (basic_ofstream::open(_Path, ios::openmode))
455 (basic_fstream(_Path, ios::openmode))
456 (basic_fstream::open(_Path, ios::openmode)): Use _If_fs_path.
457 * testsuite/27_io/basic_filebuf/open/char/path.cc: Test with filename
459 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
460 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
461 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
462 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
463 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
464 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
467 2017-11-17 Marc Glisse <marc.glisse@inria.fr>
469 * include/bits/vector.tcc (vector::_M_realloc_insert): Cache old
470 values before the allocation.
472 2017-11-16 Jonathan Wakely <jwakely@redhat.com>
474 * include/std/future (shared_future): Add noexcept to copy constructor
475 and copy-assignment operator (LWG 2799).
477 2017-11-15 Ville Voutilainen <ville.voutilainen@gmail.com>
480 * include/std/numeric (gcd): Use remove_cv_t, not remove_cv.
482 2017-11-15 Jonathan Wakely <jwakely@redhat.com>
484 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Leave
486 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
487 Check for past-the-end before dereferencing.
488 * testsuite/experimental/filesystem/iterators/
489 recursive_directory_iterator.cc: Likewise.
491 * include/bits/range_access.h (size, empty, data): Add conditional
492 noexcept to generic overloads.
494 2017-11-14 Ville Voutilainen <ville.voutilainen@gmail.com>
496 Implement LWG 2733 and LWG 2759
497 * include/experimental/numeric (gcd): Reject cv-qualified bool.
499 * include/std/numeric (gcd): Likewise.
501 * testsuite/26_numerics/gcd/gcd_neg.cc: Add tests and adjust.
502 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
504 2017-11-14 Jonathan Wakely <jwakely@redhat.com>
506 * include/bits/locale_conv.h (wbuffer_convert::_M_conv_get): Fix typo.
507 * testsuite/22_locale/conversions/buffer/3.cc: New test.
509 2017-11-10 Jonathan Wakely <jwakely@redhat.com>
511 * testsuite/util/testsuite_tr1.h (ThrowMoveConsClass): Use noexcept.
514 * include/std/fstream (basic_ifstream::open, basic_ofstream::open)
515 (basic_fstream::open): Fix missing return.
517 2017-11-07 Jonathan Wakely <jwakely@redhat.com>
519 * src/filesystem/ops-common.h (make_file_type) [S_ISSOCK]: Only use
520 S_ISSOCK when defined.
522 2017-11-06 François Dumont <fdumont@gcc.gnu.org>
524 * testsuite/libstdc++-prettyprinters/tr1.cc: Compile with -O0.
526 2017-11-06 Martin Liska <mliska@suse.cz>
528 * testsuite/27_io/basic_fstream/cons/char/path.cc (main):
529 Return a value for functions with non-void return type,
530 or change type to void, or add -Wno-return-type for test.
531 * testsuite/27_io/basic_ifstream/cons/char/path.cc (main):
533 * testsuite/27_io/basic_ofstream/open/char/path.cc (main):
536 2017-11-06 Paolo Carlini <paolo.carlini@oracle.com>
538 * testsuite/20_util/optional/cons/deduction.cc: Avoid -Wreturn-type
540 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
541 * testsuite/20_util/pair/traits.cc: Likewise.
542 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
543 * testsuite/20_util/variant/compile.cc: Likewise.
544 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
545 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
548 2017-11-05 Gerald Pfeifer <gerald@pfeifer.com>
550 * doc/xml/manual/abi.xml: Move docs.oracle.com references to https.
552 2017-11-03 Jonathan Wakely <jwakely@redhat.com>
554 * include/std/type_traits (endian): Define new enumeration type.
555 * testsuite/20_util/endian/1.cc: New test.
557 * include/bits/node_handle.h (_Node_insert_return::get): Remove, as
560 2017-11-01 François Dumont <fdumont@gcc.gnu.org>
562 * python/libstdcxx/v6/printers.py (StdExpAnyPrinter.__init__): Strip
563 typename versioned namespace before the substitution.
564 (StdExpOptionalPrinter.__init__): Likewise.
565 (StdVariantPrinter.__init__): Likewise.
566 (Printer.add_version): Inject versioned namespace after std or
568 (build_libstdcxx_dictionary): Adapt add_version usages, always pass
569 namespace first and symbol second.
571 2017-11-01 Jonathan Wakely <jwakely@redhat.com>
574 * src/filesystem/std-path.cc (path::lexically_normal): Remove dot-dot
576 * testsuite/27_io/filesystem/path/generation/normal.cc: Add testcase.
577 * testsuite/util/testsuite_fs.h (compare_paths): Improve exception
580 2017-10-30 Jonathan Wakely <jwakely@redhat.com>
582 * include/Makefile.am (stamp-bits-sup): Do not create broken symlink
584 * include/Makefile.in: Regenerate.
586 * include/std/fstream (basic_ifstream, basic_ofstream, basic_fstream):
587 Remove outdated comments about calling c_str() to create a file stream
589 (basic_ofstream::basic_ofstream, basic_ofstream::open): Remove
590 redundant ios_mode::trunc bits from default arguments and comments.
592 * doc/xml/faq.xml: Adjust "What is libstdc++?" answer slightly.
594 * include/bits/hashtable_policy.h: Include <tuple>.
595 * include/std/unordered_map: Only include <bits/stl_pair.h> instead
596 of <utility> and <tuple>.
597 * include/std/unordered_set: Likewise.
599 2017-10-30 Ville Voutilainen <ville.voutilainen@gmail.com>
602 * include/debug/array (get(const array<_Tp, _Nm>&&)): New.
603 * include/std/array (get(const array<_Tp, _Nm>&&)): Likewise.
604 * include/std/tuple (get(const tuple<_Elements...>&&)): Likewise.
605 (get(const tuple<_Types...>&&)): Likewise.
606 * include/std/utility
607 (__pair_get::__const_move_get(const std::pair<_Tp1, _Tp2>&&)):
609 (get(const std::pair<_Tp1, _Tp2>&&)): Likewise.
610 (get(const pair<_Tp, _Up>&&)): Likewise.
611 (get(const pair<_Up, _Tp>&&)): Likewise.
612 * testsuite/20_util/pair/astuple/get.cc: Add tests for
614 * testsuite/20_util/pair/astuple/get_by_type.cc: Likewise.
615 * testsuite/20_util/tuple/element_access/get2.cc: Likewise.
616 * testsuite/20_util/tuple/element_access/get2_by_type.cc: Likewise.
617 * testsuite/23_containers/array/tuple_interface/get.cc: Likewise.
618 * testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc:
620 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
623 2017-10-27 Jonathan Wakely <jwakely@redhat.com>
625 * include/bits/node_handle.h (_Node_insert_return::get): Avoid
626 use of std::tie and std::get.
628 * include/Makefile.am: Put headers in alphabetical order.
629 * include/Makefile.in: Regenerate.
631 * include/bits/fs_dir.h (directory_iterator): Remove noexcept from
632 constructors and increment member (LWG 3013).
633 (recursive_directory_iterator): Likewise.
634 * include/bits/fs_ops.h (copy, copy_file, create_directories)
635 (is_empty, remove_all): Remove noexcept (LWG 3013 and LWG 3014).
636 * src/filesystem/std-dir.cc (directory_iterator::increment)
637 (recursive_directory_iterator::increment): Remove noexcept.
638 * src/filesystem/std-ops.cc (copy, copy_file, create_directories)
639 (is_empty, remove_all): Remove noexcept
641 * include/bits/fs_dir.h (file_status): Make default constructor
642 non-explicit (LWG 2787).
643 * testsuite/27_io/filesystem/file_status/1.cc: New test.
644 * testsuite/experimental/filesystem/file_status/1.cc: New test.
646 * include/std/fstream (basic_filebuf::_If_path): New SFINAE helper.
647 (basic_filebuf::open<Path>(const Path&, const ios_base::openmode&))
648 (basic_ifstream<Path>(const Path&, const ios_base::openmode&))
649 (basic_ifstream::open<Path>(const Path&, const ios_base::openmode&))
650 (basic_ofstream<Path>(const Path&, const ios_base::openmode&))
651 (basic_ofstream::open<Path>(const Path&, const ios_base::openmode&))
652 (basic_fstream<Path>(const Path&, const ios_base::openmode&))
653 (basic_fstream::open<Path>(const Path&, const ios_base::openmode&)):
654 New constructors and member functions.
655 * testsuite/27_io/basic_filebuf/open/char/path.cc: New test.
656 * testsuite/27_io/basic_fstream/cons/char/path.cc: New test.
657 * testsuite/27_io/basic_fstream/open/char/path.cc: New test.
658 * testsuite/27_io/basic_ifstream/cons/char/path.cc: New test.
659 * testsuite/27_io/basic_ifstream/open/char/path.cc: New test.
660 * testsuite/27_io/basic_ofstream/cons/char/path.cc: New test.
661 * testsuite/27_io/basic_ofstream/open/char/path.cc: New test.
663 * include/bits/fs_path.h (path::format): Define new enumeration type.
664 (path(string_type&&), path<Source>(const Source&))
665 (path<InputIterator>(InputIterator, InputIterator))
666 (path<Source>(const Source&, const locale&))
667 (path<InputIterator>(InputIterator, InputIterator, const locale&)):
668 Add format parameter.
669 * testsuite/27_io/filesystem/path/construct/format.cc: New test.
671 * include/bits/stl_algo.h (__find_if_not_n, generate_n): Cast to void
672 to ensure overloaded comma not used.
673 * include/bits/stl_algobase.h (__fill_n_a, equal): Likewise.
674 * include/bits/stl_uninitialized.h (__uninitialized_fill_n)
675 (__uninitialized_fill_n_a, __uninitialized_default_n_1)
676 (__uninitialized_default_n_a, __uninitialized_copy_n)
677 (__uninitialized_copy_n_pair): Likewise
678 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
679 Use test iterator wrappers with overloaded comma operator.
680 * testsuite/25_algorithms/fill_n/1.cc: Likewise.
681 * testsuite/25_algorithms/generate_n/1.cc: New test.
682 * testsuite/25_algorithms/stable_partition/1.cc: New test.
683 * testsuite/util/testsuite_iterators.h (operator,): Add deleted
684 non-member comma operator with iterator wrappers as right operand.
686 2017-10-26 Ville Voutilainen <ville.voutilainen@gmail.com>
688 Deduction guides for associative containers, debug mode deduction
690 * include/bits/stl_iterator.h (__iter_key_t)
691 (__iter_val_t, __iter_to_alloc_t): New.
692 * include/bits/stl_map.h: Add deduction guides.
693 * include/bits/stl_multimap.h: Likewise.
694 * include/bits/stl_multiset.h: Likewise.
695 * include/bits/stl_set.h: Likewise.
696 * include/bits/unordered_map.h: Likewise.
697 * include/bits/unordered_set.h: Likewise.
698 * include/debug/deque: Likewise.
699 * include/debug/forward_list: Likewise.
700 * include/debug/list: Likewise.
701 * include/debug/map.h: Likewise.
702 * include/debug/multimap.h: Likewise.
703 * include/debug/multiset.h: Likewise.
704 * include/debug/set.h: Likewise.
705 * include/debug/unordered_map: Likewise.
706 * include/debug/unordered_set: Likewise.
707 * include/debug/vector: Likewise.
708 * testsuite/23_containers/map/cons/deduction.cc: New.
709 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
710 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
711 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
712 * testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
713 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
715 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
717 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
719 2017-10-25 Jonathan Wakely <jwakely@redhat.com>
721 * doc/xml/manual/status_cxx2017.xml: Update C++17 status, and
722 information on feature-test macros.
723 * doc/html/*: Regenerate.
726 * include/std/array (tuple_size, tuple_element): Change class-key
727 from class to struct, to avoid annoying Clang warnings.
730 * src/filesystem/ops.cc (read_symlink): Handle st_size being zero.
731 * src/filesystem/std-ops.cc (read_symlink): Likewise.
732 (do_copy_file) [!NEED_DO_COPY_FILE]: Avoid multiple definitions.
734 * src/filesystem/std-path.cc (path::lexically_normal): Add missing
735 step to algorithm, for removing dot-dot elements after root-directory.
736 * testsuite/27_io/filesystem/operations/canonical.cc: Use
737 compare_paths for more exhaustive checks.
738 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
739 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
740 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
741 * testsuite/27_io/filesystem/path/concat/strings.cc: Fix comment.
742 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
743 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
745 * testsuite/27_io/filesystem/path/generation/normal.cc: Use
746 compare_paths for more exhaustive checks. Add extra testcases.
747 * testsuite/27_io/filesystem/path/generation/proximate.cc: Use
748 compare_paths for more exhaustive checks.
749 * testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
750 * testsuite/27_io/filesystem/path/generic/generic_string.cc: Remove
752 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: Fix
754 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: Use
755 compare_paths for more exhaustive checks.
756 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
758 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
760 * testsuite/util/testsuite_fs.h (compare_paths): Also compare native
764 * testsuite/27_io/filesystem/operations/permissions.cc: Fix test.
766 2017-10-24 François Dumont <fdumont@gcc.gnu.org>
768 * testsuite/lib/libstdc++.exp (check_v3_target_normal_mode): Add
770 (check_v3_target_normal_namespace): New.
771 * testsuite/lib/dg-options.exp (dg-require-normal-namespace): New.
772 * testsuite/18_support/headers/limits/synopsis.cc: Add latter.
773 * testsuite/20_util/from_chars/requirements.cc: Likewise.
774 * testsuite/20_util/headers/functional/synopsis.cc: Likewise.
775 * testsuite/20_util/headers/memory/synopsis.cc: Likewise.
776 * testsuite/20_util/headers/utility/synopsis.cc: Likewise.
777 * testsuite/20_util/to_chars/requirements.cc: Likewise.
778 * testsuite/21_strings/headers/string/synopsis.cc: Likewise.
779 * testsuite/22_locale/headers/locale/synopsis.cc: Likewise.
780 * testsuite/23_containers/headers/bitset/synopsis.cc: Likewise.
781 * testsuite/23_containers/headers/deque/synopsis.cc: Likewise.
782 * testsuite/23_containers/headers/forward_list/synopsis.cc: Likewise.
783 * testsuite/23_containers/headers/list/synopsis.cc: Likewise.
784 * testsuite/23_containers/headers/map/synopsis.cc: Likewise.
785 * testsuite/23_containers/headers/queue/synopsis.cc: Likewise.
786 * testsuite/23_containers/headers/set/synopsis.cc: Likewise.
787 * testsuite/23_containers/headers/stack/synopsis.cc: Likewise.
788 * testsuite/23_containers/headers/vector/synopsis.cc: Likewise.
789 * testsuite/23_containers/map/modifiers/erase/abi_tag.cc: Likewise.
790 * testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc: Likewise.
791 * testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc: Likewise.
792 * testsuite/23_containers/set/modifiers/erase/abi_tag.cc: Likewise.
793 * testsuite/24_iterators/headers/iterator/synopsis.cc: Likewise.
794 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: Likewise.
795 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: Likewise.
796 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Likewise.
797 * testsuite/26_numerics/complex/abi_tag.cc: Likewise.
798 * testsuite/26_numerics/headers/complex/synopsis.cc: Likewise.
799 * testsuite/26_numerics/headers/valarray/synopsis.cc: Likewise.
800 * testsuite/27_io/headers/fstream/synopsis.cc: Likewise.
801 * testsuite/27_io/headers/ios/synopsis.cc: Likewise.
802 * testsuite/27_io/headers/istream/synopsis.cc: Likewise.
803 * testsuite/27_io/headers/ostream/synopsis.cc: Likewise.
804 * testsuite/27_io/headers/sstream/synopsis.cc: Likewise.
805 * testsuite/27_io/headers/streambuf/synopsis.cc: Likewise.
807 2017-10-24 Jonathan Wakely <jwakely@redhat.com>
809 * config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Ignore
810 -Wattribute-alias warnings.
811 * src/c++11/istream-inst.cc: Likewise.
812 * src/c++11/locale-inst.cc: Likewise.
813 * src/c++11/ostream-inst.cc: Likewise.
814 * src/c++11/wlocale-inst.cc: Likewise.
815 * src/c++98/hash-long-double-tr1-aux.cc: Likewise.
817 * include/bits/string_view.tcc (find_first_of, find_last_of)
818 (find_first_not_of, find_last_not_of): Add noexcept.
819 * include/std/string_view (basic_string_view(const _CharT*))
820 (basic_string_view(const _CharT*, size_type))
821 (front, back, remove_prefix, remove_suffix, find, rfind)
822 (find_first_of, find_first_not_of): Add noexcept.
823 (at(size_type), _S_compare(size_type, size_type)): Replace conditional
824 expressions with if statements.
825 (copy(_CharT*, size_type, size_type), substr(size_type, size_type)):
826 Use _M_check for length checks.
827 (compare(basic_string_view)): Reformat.
828 (_M_check(size_type, const char)): Add noexcept(false).
829 (_M_limit(size_type, size_type)): Use noexcept not _GLIBCXX_NOEXCEPT.
832 * include/experimental/string_view (operator""sv): Add noexcept.
833 * include/std/string_view (operator""sv): Likewise.
835 2017-10-23 Jonathan Wakely <jwakely@redhat.com>
837 * include/Makefile.am: Add new headers for C++17 filesystem library.
838 * include/Makefile.in: Regenerate.
839 * include/bits/fs_dir.h: New header, based on Filesystem TS code in
840 include/experimental/bits directory.
841 * include/bits/fs_fwd.h: Likewise.
842 * include/bits/fs_ops.h: Likewise.
843 * include/bits/fs_path.h: Likewise.
844 * include/experimental/bits/fs_dir.h: Rename Doxygen group.
845 * include/experimental/bits/fs_fwd.h: Likewise.
846 * include/experimental/bits/fs_ops.h: Likewise.
847 * include/experimental/bits/fs_path.h: Likewise.
848 * include/experimental/filesystem (filesystem_error::_M_gen_what):
849 Remove inline definition.
850 * include/precompiled/stdc++.h: Add <filesystem> to precompiled
852 * include/std/filesystem: New header.
853 * python/libstdcxx/v6/printers.py: Enable printer for std::filesystem
855 * src/filesystem/Makefile.am: Add new files. Compile as C++17.
856 * src/filesystem/Makefile.in: Regenerate.
857 * src/filesystem/cow-dir.cc: Update comment.
858 * src/filesystem/cow-ops.cc: Likewise.
859 * src/filesystem/cow-path.cc: Likewise.
860 * src/filesystem/cow-std-dir.cc: New file.
861 * src/filesystem/cow-std-ops.cc: New file.
862 * src/filesystem/cow-std-path.cc: New file.
863 * src/filesystem/dir-common.h (_Dir_base, get_file_type): New header
865 * src/filesystem/dir.cc (_Dir): Derive from _Dir_base.
866 (open_dir): Move to _Dir_base constructor.
867 (get_file_type): Move to dir-common.h.
868 (recurse): Move to _Dir_base::should_recurse.
869 * src/filesystem/ops-common.h: New header for common code.
870 * src/filesystem/ops.cc (is_set, make_file_type, make_file_status)
871 (is_not_found_errno, file_time, do_copy_file): Move to ops-common.h.
872 * src/filesystem/path.cc (filesystem_error::_M_gen_what): Define.
873 * src/filesystem/std-dir.cc: New file, based on Filesystem TS code.
874 * src/filesystem/std-ops.cc: Likewise.
875 * src/filesystem/std-dir.cc: Likewise.
876 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: New
878 * testsuite/27_io/filesystem/iterators/pop.cc: New test.
879 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
881 * testsuite/27_io/filesystem/operations/absolute.cc: New test.
882 * testsuite/27_io/filesystem/operations/canonical.cc: New test.
883 * testsuite/27_io/filesystem/operations/copy.cc: New test.
884 * testsuite/27_io/filesystem/operations/copy_file.cc: New test.
885 * testsuite/27_io/filesystem/operations/create_directories.cc: New
887 * testsuite/27_io/filesystem/operations/create_directory.cc: New test.
888 * testsuite/27_io/filesystem/operations/create_symlink.cc: New test.
889 * testsuite/27_io/filesystem/operations/current_path.cc: New test.
890 * testsuite/27_io/filesystem/operations/equivalent.cc: New test.
891 * testsuite/27_io/filesystem/operations/exists.cc: New test.
892 * testsuite/27_io/filesystem/operations/file_size.cc: New test.
893 * testsuite/27_io/filesystem/operations/is_empty.cc: New test.
894 * testsuite/27_io/filesystem/operations/last_write_time.cc: New test.
895 * testsuite/27_io/filesystem/operations/permissions.cc: New test.
896 * testsuite/27_io/filesystem/operations/proximate.cc: New test.
897 * testsuite/27_io/filesystem/operations/read_symlink.cc: New test.
898 * testsuite/27_io/filesystem/operations/relative.cc: New test.
899 * testsuite/27_io/filesystem/operations/remove_all.cc: New test.
900 * testsuite/27_io/filesystem/operations/space.cc: New test.
901 * testsuite/27_io/filesystem/operations/status.cc: New test.
902 * testsuite/27_io/filesystem/operations/symlink_status.cc: New test.
903 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: New
905 * testsuite/27_io/filesystem/operations/weakly_canonical.cc: New test.
906 * testsuite/27_io/filesystem/path/append/path.cc: New test.
907 * testsuite/27_io/filesystem/path/assign/assign.cc: New test.
908 * testsuite/27_io/filesystem/path/assign/copy.cc: New test.
909 * testsuite/27_io/filesystem/path/compare/compare.cc: New test.
910 * testsuite/27_io/filesystem/path/compare/path.cc: New test.
911 * testsuite/27_io/filesystem/path/compare/strings.cc: New test.
912 * testsuite/27_io/filesystem/path/concat/path.cc: New test.
913 * testsuite/27_io/filesystem/path/concat/strings.cc: New test.
914 * testsuite/27_io/filesystem/path/construct/copy.cc: New test.
915 * testsuite/27_io/filesystem/path/construct/default.cc: New test.
916 * testsuite/27_io/filesystem/path/construct/locale.cc: New test.
917 * testsuite/27_io/filesystem/path/construct/range.cc: New test.
918 * testsuite/27_io/filesystem/path/construct/string_view.cc: New test.
919 * testsuite/27_io/filesystem/path/decompose/extension.cc: New test.
920 * testsuite/27_io/filesystem/path/decompose/filename.cc: New test.
921 * testsuite/27_io/filesystem/path/decompose/parent_path.cc: New test.
922 * testsuite/27_io/filesystem/path/decompose/relative_path.cc: New
924 * testsuite/27_io/filesystem/path/decompose/root_directory.cc: New
926 * testsuite/27_io/filesystem/path/decompose/root_name.cc: New test.
927 * testsuite/27_io/filesystem/path/decompose/root_path.cc: New test.
928 * testsuite/27_io/filesystem/path/decompose/stem.cc: New test.
929 * testsuite/27_io/filesystem/path/generation/normal.cc: New test.
930 * testsuite/27_io/filesystem/path/generation/proximate.cc: New test.
931 * testsuite/27_io/filesystem/path/generation/relative.cc: New test.
932 * testsuite/27_io/filesystem/path/generic/generic_string.cc: New test.
933 * testsuite/27_io/filesystem/path/itr/traversal.cc: New test.
934 * testsuite/27_io/filesystem/path/modifiers/clear.cc: New test.
935 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: New
937 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: New
939 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: New
941 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc: New
943 * testsuite/27_io/filesystem/path/modifiers/swap.cc: New test.
944 * testsuite/27_io/filesystem/path/native/string.cc: New test.
945 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: New test.
946 * testsuite/27_io/filesystem/path/query/empty.cc: New test.
947 * testsuite/27_io/filesystem/path/query/has_extension.cc: New test.
948 * testsuite/27_io/filesystem/path/query/has_filename.cc: New test.
949 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: New test.
950 * testsuite/27_io/filesystem/path/query/has_relative_path.cc: New
952 * testsuite/27_io/filesystem/path/query/has_root_directory.cc: New
954 * testsuite/27_io/filesystem/path/query/has_root_name.cc: New test.
955 * testsuite/27_io/filesystem/path/query/has_root_path.cc: New test.
956 * testsuite/27_io/filesystem/path/query/has_stem.cc: New test.
957 * testsuite/27_io/filesystem/path/query/is_relative.cc: New test.
958 * testsuite/experimental/filesystem/path/construct/string_view.cc:
959 Define USE_FILESYSTEM_TS.
960 * testsuite/util/testsuite_fs.h: Allow use with C++17 paths as well
964 * doc/xml/manual/intro.xml: Include new section.
965 * doc/xml/manual/status_cxxis29124.xml: New section on IS 29124
967 * include/bits/specfun.h [__STRICT_ANSI__] (hyperg, hypergf, hypergl)
968 (conf_hyperg, conf_hypergf, conf_hypergl): Don't declare.
969 * include/c_compatibility/math.h: Import special functions into
970 global namespace for C++17.
971 * testsuite/26_numerics/headers/cmath/82644.cc: New test.
972 * testsuite/26_numerics/headers/cmath/functions_global_c++17.cc: New
975 2017-10-21 Jonathan Wakely <jwakely@redhat.com>
977 * testsuite/experimental/filesystem/path/itr/traversal.cc: Do not
978 increment past-the-end iterators.
980 2017-10-20 Jonathan Wakely <jwakely@redhat.com>
982 * include/std/chrono (__cpp_lib_chrono): Update macro value to
983 indicate support for P0505R0.
984 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Check
987 * include/c_global/cstddef: Define __cpp_lib_byte feature-test macro.
988 * testsuite/18_support/byte/requirements.cc: Check macro.
990 2017-10-19 Jonathan Wakely <jwakely@redhat.com>
992 * testsuite/experimental/filesystem/iterators/
993 recursive_directory_iterator.cc: Ensure that error_code arguments are
994 cleared when required.
995 * testsuite/experimental/filesystem/operations/create_directory.cc:
996 Remove redundant check.
997 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
998 Ensure that error_code argument is cleared when required.
1000 * include/experimental/bits/fs_path.h (path::iterator++(int))
1001 (path::iterator--(int)): Fix for paths with only one component.
1002 * testsuite/experimental/filesystem/path/itr/traversal.cc: Test
1003 post-increment and post-decrement.
1005 * doc/xml/manual/status_cxx2017.xml: Update references to C++17
1008 * testsuite/decimal/conversion-to-integral.cc: Use predefined macro
1009 instead of non-standard glibc one.
1011 2017-10-16 François Dumont <fdumont@gcc.gnu.org>
1014 * include/bits/stl_bvector.h (fill): Add iterator offset check.
1015 * testsuite/23_containers/vector/bool/82558.cc: New.
1017 2017-10-13 Jonathan Wakely <jwakely@redhat.com>
1020 * doc/xml/manual/intro.xml: Document LWG 2354 changes.
1021 * include/bits/stl_map.h (map::insert(value_type&&))
1022 (map::insert(const_iterator, value_type&&)): Add overload for rvalues.
1023 * include/bits/stl_multimap.h (multimap::insert(value_type&&))
1024 (multimap::insert(const_iterator, value_type&&)): Likewise.
1025 * include/bits/unordered_map.h (unordered_map::insert(value_type&&))
1026 (unordered_map::insert(const_iterator, value_type&&))
1027 (unordered_multimap::insert(value_type&&))
1028 (unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
1029 * testsuite/23_containers/map/modifiers/insert/dr2354.cc: New test.
1030 * testsuite/23_containers/multimap/modifiers/insert/dr2354.cc: New
1032 * testsuite/23_containers/unordered_map/insert/dr2354.cc: New test.
1033 * testsuite/23_containers/unordered_multimap/insert/dr2354.cc: New
1037 * include/std/mutex (call_once): Suppress clang-tidy warnings about
1038 dangling references.
1040 2017-10-10 Jonathan Wakely <jwakely@redhat.com>
1042 * include/bits/streambuf_iterator.h (istreambuf_iterator::equal):
1043 Update comment about NAD issue.
1047 * include/c_compatibility/complex.h [!C++98 && __STRICT_ANSI__]: Do
1048 not include C library's <complex.h>.
1049 * testsuite/26_numerics/complex/c99.cc: Depend on __STRICT_ANSI__.
1050 * testsuite/26_numerics/headers/complex.h/std_c++11.h: New test.
1051 * testsuite/26_numerics/headers/complex.h/std_gnu++11.h: New test.
1052 * testsuite/26_numerics/headers/complex.h/std_c++98.h: New test.
1054 2017-10-05 Jonathan Wakely <jwakely@redhat.com>
1056 * testsuite/20_util/to_chars/1.cc: Add dg-require-string-conversions.
1058 2017-10-04 Petr Ovtchenkov <ptr@void-ptr.info>
1059 François Dumont <fdumont@gcc.gnu.org>
1061 * include/bits/streambuf_iterator.h
1062 (istreambuf_iterator<>::operator*()): Do not capture iterator state
1064 (istreambuf_iterator<>::operator++()): Likewise and remove _M_sbuf check.
1065 (istreambuf_iterator<>::operator++(int)): Likewise.
1066 (istreambuf_iterator<>::_M_get()): Remove _M_c assignment.
1067 (istreambuf_iterator<>::_S_is_eof()): New.
1068 (istreambuf_iterator<>::_M_at_eof()): Adapt, use latter.
1069 (find(istreambuf_iterator<>, istreambuf_iterator<>, _CharT)):
1070 Return an iterator with _M_c set to eof to capture streambuf state
1072 (testsuite/24_iterators/istreambuf_iterator/2.cc): Add checks.
1074 2017-10-03 Jakub Jelinek <jakub@redhat.com>
1076 * include/std/charconv (__unsigned_least_t): Fix number of closing >s for
1077 !_GLIBCXX_USE_INT128.
1079 2017-10-02 Jonathan Wakely <jwakely@redhat.com>
1081 * include/Makefile.am: Add new <charconv> header.
1082 * include/Makefile.in: Regenerate.
1083 * include/precompiled/stdc++.h: Include <charconv>.
1084 * include/std/charconv: New file.
1085 (to_chars_result, to_chars, from_chars_result, from_chars): Define.
1086 * testsuite/20_util/from_chars/1.cc: New test.
1087 * testsuite/20_util/from_chars/1_neg.cc: New test.
1088 * testsuite/20_util/from_chars/2.cc: New test.
1089 * testsuite/20_util/from_chars/requirements.cc: New test.
1090 * testsuite/20_util/to_chars/1.cc: New test.
1091 * testsuite/20_util/to_chars/1_neg.cc: New test.
1092 * testsuite/20_util/to_chars/2.cc: New test.
1093 * testsuite/20_util/to_chars/requirements.cc: New test.
1095 2017-09-27 François Dumont <fdumont@gcc.gnu.org>
1097 * testsuite/22_locale/money_get/get/char/22131.cc: Make test less
1098 istreambuf_iterator implementation dependent.
1099 * testsuite/22_locale/money_get/get/wchar_t/22131.cc: Likewise.
1101 2017-09-25 Uros Bizjak <ubizjak@gmail.com>
1104 * src/c++98/complex_io.cc (_GLIBCXX_LDBL_COMPAT): Declare alias
1105 target as a C++ function with no prototype.
1107 2017-09-21 Jonathan Wakely <jwakely@redhat.com>
1109 * testsuite/25_algorithms/clamp/1.cc: Fix order of arguments and
1110 expected results when using predicate defining reverse order.
1111 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
1113 2017-09-20 Jonathan Wakely <jwakely@redhat.com>
1116 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1117 (basic_string::_If_sv): Remove from the overload set when the
1118 argument is derived from basic_string.
1121 * include/bits/basic_string.h (basic_string::_If_sv): Remove from the
1122 overload set when the argument is derived from basic_string.
1123 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: New
1125 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
1128 * testsuite/24_iterators/range_access_cpp17.cc: Fix order of dg-do
1129 and dg-options directives. Fix invalid test.
1132 * libsupc++/exception (uncaught_exception): Deprecate for C++17.
1133 * testsuite/18_support/exception_ptr/62258.cc: Add -Wno-deprecated.
1134 * testsuite/18_support/uncaught_exception/14026.cc: Likewise.
1136 * include/bits/c++config (_GLIBCXX17_DEPRECATED): Define.
1137 * include/bits/functional_hash.h (__hash_base::result_type)
1138 (__hash_base::argument_type): Add _GLIBCXX17_DEPRECATED.
1139 * include/std/optional (hash<optional<T>>::result_type)
1140 (hash<optional<T>>::argument_type): Add deprecated attribute.
1141 (__is_fast_hash<hash<optional<T>>>): Add partial specialization.
1142 * include/std/variant (hash<variant<Types...>>::result_type)
1143 (hash<variant<Types...>>::argument_type): Add deprecated attribute.
1144 (__is_fast_hash<hash<variant<Types...>>>): Add partial specialization.
1146 * libsupc++/exception_ptr.h (copy_exception): Remove deprecated
1147 non-standard function.
1150 * include/std/optional (__optional_hash_call_base): Add template
1151 parameter for remove_const_t<_Tp> and use it consistently.
1152 * testsuite/20_util/optional/hash.cc: Test optional<const T>.
1154 2017-09-19 Jonathan Wakely <jwakely@redhat.com>
1157 * include/bits/regex_executor.tcc
1158 (_Backref_matcher<BidIt, regex_traits<C>>::_M_apply): Use
1159 std::__equal4 instead of C++14 4-iterator overloads of std::equal.
1160 * include/bits/stl_algobase.h (__equal4): New functions implementing
1161 4-iterator overloads of std::equal for use in C++11.
1162 (equal(It1, It1, It2, It2), equal(It1, It1, It2, It2, BinaryPred)):
1163 Move function bodies to new __equal4 functions.
1164 * testsuite/28_regex/simple_c++11.cc: New.
1167 * include/std/type_traits (__is_invocable): Add partial specialization
1168 for INVOKE<void> case and remove is_void<R> check from partial
1169 specialization for INVOKE<R> case.
1170 (__is_nt_invocable_impl): New helper for is_nothrow_invocable_r.
1171 (is_nothrow_invocable_r): Use __is_nt_invocable_impl.
1172 * testsuite/20_util/is_nothrow_invocable/value.cc: Add tests for
1173 conversions that can throw or fail to convert. Use static assert
1174 strings to explain negative results.
1175 * testsuite/20_util/is_nothrow_invocable/value_ext.cc: Use
1176 is_nothrow_constructible in is_nt_invocable_conv.
1178 2017-09-18 Jonathan Wakely <jwakely@redhat.com>
1181 * testsuite/20_util/duration/cons/dr1177.cc: Fix incorrect test and
1182 improve static assertion messages.
1184 * include/std/utility (_Itup_cat, _Make_integer_sequence): Remove.
1185 (_Build_index_tuple, make_integer_sequence): Use built-in to generate
1189 * include/std/type_traits (__declval): New function to deduce return
1191 (__declval_protector::_delegate): Remove.
1192 (declval): Use __declval instead of add_rvalue_reference and
1193 __declval_protector::__delegate.
1194 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1196 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
1198 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1201 2017-09-15 Jakub Jelinek <jakub@redhat.com>
1203 * testsuite/libstdc++-prettyprinters/cxx17.cc: Use -std=c++17 or
1204 -std=gnu++17 instead of -std=c++1z or -std=gnu++1z. Use c++17 instead
1205 of c++1z and c++17_only instead of c++1z_only. Adjust expected
1206 diagnostics and comments refering to 1z to 17.
1207 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
1208 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
1209 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
1210 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
1211 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
1213 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
1214 * testsuite/18_support/launder/1.cc (test02): Likewise.
1215 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
1216 * testsuite/18_support/launder/requirements.cc: Likewise.
1217 * testsuite/18_support/byte/requirements.cc: Likewise.
1218 * testsuite/18_support/byte/ops.cc: Likewise.
1219 * testsuite/18_support/byte/global_neg.cc: Likewise.
1220 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
1222 * testsuite/27_io/types/4.cc: Likewise.
1223 * testsuite/25_algorithms/sample/81221.cc: Likewise.
1224 * testsuite/25_algorithms/sample/1.cc: Likewise.
1225 * testsuite/25_algorithms/sample/2.cc: Likewise.
1226 * testsuite/25_algorithms/search/searcher.cc: Likewise.
1227 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
1228 * testsuite/experimental/filesystem/path/construct/string_view.cc:
1230 * testsuite/24_iterators/range_access_cpp17.cc: Likewise.
1231 * testsuite/24_iterators/container_access.cc: Likewise.
1232 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
1233 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1234 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1235 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1236 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1237 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1238 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1239 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1240 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1241 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
1242 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
1243 * testsuite/20_util/shared_ptr/cons/array.cc: Likewise.
1244 * testsuite/20_util/shared_ptr/observers/array.cc (struct A): Likewise.
1245 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
1246 * testsuite/20_util/variant/deduction.cc: Likewise.
1247 * testsuite/20_util/tuple/78939.cc: Likewise.
1248 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
1249 * testsuite/20_util/void_t/1.cc: Likewise.
1250 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Likewise.
1251 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
1252 * testsuite/20_util/addressof/requirements/constexpr.cc: Likewise.
1253 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
1254 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
1256 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
1258 * testsuite/20_util/has_unique_object_representations/value.cc:
1260 * testsuite/20_util/time_point/arithmetic/constexpr.cc: Likewise.
1261 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
1262 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
1263 * testsuite/20_util/function/cons/deduction.cc: Likewise.
1264 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1266 * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
1267 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
1269 * testsuite/20_util/is_aggregate/value.cc: Likewise.
1270 * testsuite/26_numerics/lcm/1.cc: Likewise.
1271 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
1272 * testsuite/26_numerics/gcd/1.cc: Likewise.
1273 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
1274 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
1275 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Likewise.
1276 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
1277 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
1279 * testsuite/23_containers/array/cons/deduction.cc: Likewise.
1280 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
1281 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
1283 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
1284 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
1286 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
1288 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
1289 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
1291 * testsuite/23_containers/forward_list/cons/deduction.cc: Likewise.
1292 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Likewise.
1293 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
1295 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
1296 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
1298 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
1299 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Likewise.
1300 * testsuite/21_strings/basic_string/cons/char/79162.cc: Likewise.
1301 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
1302 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1304 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: Likewise.
1305 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
1307 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
1309 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
1311 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
1313 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
1315 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
1318 2017-09-13 Jonathan Wakely <jwakely@redhat.com>
1321 * include/std/chrono (__enable_if_is_duration)
1322 (__disable_if_is_duration): New alias templates to simplify SFINAE.
1323 (duration_cast, floor, ceil): Use __enable_if_is_duration.
1324 (duration::__is_float, duration::__is_harmonic): New alias templates
1326 (duration::duration(const _Rep2&)): Use _Require, __is_float and
1328 (duration::duration(const duration<_Rep2, _Period2>&)): Likewise.
1329 (__common_rep_type): Remove, replace with ...
1330 (__common_rep_t): New alias template.
1331 (operator*, operator/, operator%): Use __common_rep_t and
1332 __disable_if_is_duration.
1333 (time_point::time_point(const time_point<clock, _Dur2>&)): Add missing
1334 constraint from LWG DR 1177.
1335 * testsuite/20_util/duration/cons/dr1177.cc: New.
1336 * testsuite/20_util/duration/literals/range.cc: Update dg-error line.
1337 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1338 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1339 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1340 * testsuite/20_util/time_point/cons/81468.cc: New.
1342 * doc/doxygen/mainpage.html: Fix broken URLs.
1345 * doc/xml/manual/extensions.xml: Replace unstable URL.
1346 * doc/html/manual/ext_demangling.html: Regenerate.
1347 * libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL.
1349 * include/bits/allocated_ptr.h (__allocated_ptr::get): Use
1351 (__allocated_ptr::_S_raw_ptr): Remove.
1352 * include/bits/forward_list.h (_Fwd_list_base::_M_get_node): Use
1354 * include/bits/hashtable_policy.h (_Hashtable_alloc): Likewise.
1355 * include/bits/ptr_traits.h (__to_address): Define new function
1357 * include/bits/shared_ptr_base.h (__shared_ptr): Use __to_address.
1358 (__shared_ptr::_S_raw_ptr): Remove.
1359 * include/bits/stl_vector.h [__cplusplus >= 201103L]
1360 (vector::_M_data_ptr): Use __to_address.
1361 [__cplusplus < 201103L] (vector::_M_data_ptr): Don't dereference
1362 possibly invalid pointers.
1363 * include/ext/alloc_traits.h (__alloc_traits::construct)
1364 (__alloc_traits::destroy): Use __to_address.
1366 2017-09-12 Jonathan Wakely <jwakely@redhat.com>
1369 * include/Makefile.am: Remove <bits/c++14_warning.h>.
1370 * include/Makefile.in: Regenerate.
1371 * include/bits/c++14_warning.h: Remove.
1372 * include/experimental/algorithm: Do not include <c++14_warning.h>.
1373 * include/experimental/any: Likewise.
1374 * include/experimental/array: Likewise.
1375 * include/experimental/bits/erase_if.h: Likewise.
1376 * include/experimental/bits/lfts_config.h: Likewise.
1377 * include/experimental/bits/shared_ptr.h: Likewise.
1378 * include/experimental/bits/string_view.tcc: Likewise.
1379 * include/experimental/chrono: Likewise.
1380 * include/experimental/deque: Likewise.
1381 * include/experimental/filesystem: Do not include <c++0x_warning.h>.
1382 * include/experimental/forward_list: Do not include <c++14_warning.h>.
1383 * include/experimental/functional: Likewise.
1384 * include/experimental/iterator: Likewise.
1385 * include/experimental/list: Likewise.
1386 * include/experimental/map: Likewise.
1387 * include/experimental/memory: Likewise.
1388 * include/experimental/numeric: Likewise.
1389 * include/experimental/optional: Likewise.
1390 * include/experimental/propagate_const: Likewise.
1391 * include/experimental/ratio: Likewise.
1392 * include/experimental/regex: Likewise.
1393 * include/experimental/set: Likewise.
1394 * include/experimental/string: Likewise.
1395 * include/experimental/string_view: Likewise.
1396 * include/experimental/system_error: Likewise.
1397 * include/experimental/tuple: Likewise.
1398 * include/experimental/type_traits: Likewise.
1399 * include/experimental/unordered_map: Likewise.
1400 * include/experimental/unordered_set: Likewise.
1401 * include/experimental/vector: Likewise.
1402 * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error
1404 * testsuite/experimental/array/neg.cc: Likewise.
1405 * testsuite/experimental/propagate_const/assignment/move_neg.cc:
1407 * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
1408 * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
1409 * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
1410 * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
1411 * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
1414 * doc/xml/manual/status_cxx2017.xml: Update feature-test macros.
1415 * doc/html/*: Regenerate.
1416 * include/Makefile.am: Remove <bits/c++17_warning.h>.
1417 * include/Makefile.in: Regenerate.
1418 * include/bits/c++17_warning.h: Remove.
1419 * include/bits/string_view.tcc: Do not include <bits/c++17_warning.h>
1420 for pre-C++17 modes.
1421 * include/std/any: Likewise.
1422 (__cpp_lib_any): Define.
1423 * include/std/mutex (__cpp_lib_scoped_lock): Adjust value as per new
1425 * include/std/numeric (__cpp_lib_gcd_lcm): Define as per new SD-6
1427 * include/std/optional: Do not include <bits/c++17_warning.h>.
1428 (__cpp_lib_optional): Define.
1429 * include/std/shared_mutex: Do not include <bits/c++14_warning.h>.
1430 * include/std/string_view: Do not include <bits/c++17_warning.h>.
1431 (__cpp_lib_string_view): Define.
1432 * include/std/variant: Do not include <bits/c++17_warning.h>.
1433 (__cpp_lib_variant): Define.
1434 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error line
1436 * testsuite/26_numerics/gcd/1.cc: Test for __cpp_lib_gcd_lcm.
1437 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
1439 * testsuite/26_numerics/lcm/1.cc: Test for __cpp_lib_gcd_lcm.
1440 * testsuite/26_numerics/lcm/lcm_neg.cc: Adjust dg-error line
1442 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Adjust
1443 expected value of __cpp_lib_scoped_lock.
1446 * include/experimental/bits/string_view.tcc (basic_string_view::find)
1447 (basic_string_view::rfind, basic_string_view::find_first_of)
1448 (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1449 (basic_string_view::find_last_not_of): Add constexpr specifier.
1450 * include/experimental/string_view (basic_string_view::remove_prefix)
1451 (basic_string_view::remove_suffix, basic_string_view::swap)
1452 (basic_string_view::compare, basic_string_view::find)
1453 (basic_string_view::rfind, basic_string_view::find_first_of)
1454 (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1455 (basic_string_view::find_last_not_of, operator==, operator!=)
1456 (operator<, operator>, operator<=, operator>=): Likewise.
1457 * testsuite/experimental/string_view/operations/compare/char/70483.cc:
1460 2017-09-11 Jonathan Wakely <jwakely@redhat.com>
1463 * include/bits/string_view.tcc (basic_string_view::find)
1464 (basic_string_view::rfind, basic_string_view::find_first_of)
1465 (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1466 (basic_string_view::find_last_not_of): Add constexpr specifier.
1467 * include/std/string_view (basic_string_view::operator=)
1468 (basic_string_view::rbegin, basic_string_view::rend)
1469 (basic_string_view::crbegin, basic_string_view::crend)
1470 (basic_string_view::remove_prefix, basic_string_view::remove_suffix)
1471 (basic_string_view::swap, basic_string_view::compare)
1472 (basic_string_view::find, basic_string_view::rfind)
1473 (basic_string_view::find_first_of, basic_string_view::find_last_of)
1474 (basic_string_view::find_first_not_of)
1475 (basic_string_view::find_last_not_of, basic_string_view::_M_check)
1476 (basic_string_view::_M_limit, operator==, operator!=, operator<)
1477 (operator>, operator<=, operator>=): Likewise.
1478 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
1479 char/1.cc: Repeat tests in constexpr context.
1480 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
1481 wchar_t/1.cc: Likewise.
1482 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
1483 char/1.cc: Likewise.
1484 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
1485 wchar_t/1.cc: Likewise.
1486 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1488 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1490 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1492 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1494 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1496 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1498 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
1500 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1502 * testsuite/21_strings/basic_string_view/range_access/char/1.cc: Test
1503 cbegin, cend, rbegin, rend, crbegin and crend.
1504 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1506 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1507 Remove trailing whitespace.
1508 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
1510 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
1512 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
1514 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
1516 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
1519 2017-09-11 Tim Shen <timshen@google.com>
1522 * include/bits/regex_executor.tcc: Support icase in regex_traits<...>
1523 for back reference matches.
1524 * testsuite/28_regex/regression.cc: Test case.
1526 2017-09-11 Jonathan Wakely <jwakely@redhat.com>
1528 * testsuite/21_strings/basic_string/lwg2946.cc: Adjust for
1529 compatibility with old COW std::string.
1531 2017-09-09 Gerald Pfeifer <gerald@pfeifer.com>
1533 * doc/xml/manual/allocator.xml: Adjust link for Hoard.
1534 * doc/html/manual/memory.html: Regenerate.
1536 2017-09-04 Daniel Kruegler <daniel.kruegler@gmail.com>
1539 Implement LWG 2946, LWG 2758's resolution missed further corrections
1540 * include/bits/basic_string.h (basic_string::compare): Add missing
1541 required noexcept specifications.
1542 (basic_string): Introduce internal _S_to_string_view and __sv_wrapper
1543 for implicit string_view conversion.
1544 (basic_string::basic_string): Fix explicit string_view conversion by
1545 implicit conversion using _S_to_string_view and __sv_wrapper.
1546 (basic_string): Introduce internal basic_string(__sv_wrapper, Alloc)
1548 (basic_string): Fix operator=(T) template by operator=(const T&)
1549 template for uncopyable types (PR 79162).
1550 (basic_string::operator+=, basic_string::append, basic_string::assign)
1551 (basic_string::insert, basic_string::replace, basic_string::find)
1552 (basic_string::rfind, basic_string::find_first_of)
1553 (basic_string::find_last_of, basic_string::find_first_not_of)
1554 (basic_string::find_last_not_of, basic_string::compare): Replace
1555 __sv_type argument by template const T& (LWG 2946) and correct
1556 documentation describing __sv_type argument.
1557 (basic_string::find, basic_string::rfind, basic_string::find_first_of)
1558 (basic_string::find_last_of, basic_string::find_first_not_of)
1559 (basic_string::find_last_not_of, basic_string::compare): Replace
1560 unconditional noexcept specification by conditional noexcept
1561 specification to partially balance the removal of noexcept by LWG 2946.
1562 * testsuite/21_strings/basic_string/79162.cc: New.
1563 * testsuite/21_strings/basic_string/lwg2946.cc: New.
1565 2017-08-31 Jonathan Wakely <jwakely@redhat.com>
1568 * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
1569 Adjust null pointer constant to avoid warning.
1571 2017-08-24 François Dumont <fdumont@gcc.gnu.org>
1573 * include/bits/stl_list.h
1574 [!_GLIBCXX_INLINE_VERSION](_List_base<>::_S_distance): Remove.
1575 (_List_impl(_Node_alloc_type&&, _List_impl&&)): New.
1576 (_List_base(_Node_alloc_type&&, _List_base&&)): New, use latter.
1577 [!_GLIBCXX_INLINE_VERSION](_List_base(_Node_alloc_type&&,_List_base&&)):
1579 (_List_base(_Node_alloc_type&&)): New.
1580 [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_distance): Remove.
1581 [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_node_count): Remove.
1582 (list<>::_M_node_count): New.
1583 (list<>::size()): Adapt to call latter.
1584 (list<>::_S_distance(const_iterator, const_iterator)): New.
1585 (list<>::splice(iterator, list&, const_iterator, const_iterator)):
1586 Adapt to call latter.
1587 (list(list&&, const allocator_type&, true_type)): New.
1588 (list(list&&, const allocator_type&, false_type)): New.
1589 (list(list&&, const allocator_type&)): Adapt to call latters.
1591 2017-08-21 Jonathan Wakely <jwakely@redhat.com>
1594 * include/bits/stl_iterator_base_types.h (__iterator_category): Add
1595 constexpr for C++11 and later.
1596 * testsuite/24_iterators/container_access.cc: Add target selector.
1597 * testsuite/24_iterators/range_access.cc: Fix clause number in
1599 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
1600 * testsuite/24_iterators/range_access_cpp17.cc: New.
1602 2017-08-21 Richard Biener <rguenther@suse.de>
1604 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Run all
1605 tests with -flto as well if supported.
1607 2017-08-20 Martin Sebor <msebor@redhat.com>
1610 * src/c++98/compatibility.cc (_GLIBCXX_3_4_SYMVER): Declare alias
1611 target as a C++ function with no prototype.
1612 (_GLIBCXX_3_4_5_SYMVER): Ditto.
1614 2017-08-20 John David Anglin <danglin@gcc.gnu.org>
1617 * testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__.
1619 2017-08-18 Jonathan Wakely <jwakely@redhat.com>
1621 * include/bits/hashtable_policy.h (_ReuseOrAllocNode): Remove
1622 __value_alloc_type and __value_alloc_traits typedefs.
1623 (_ReuseOrAllocNode::operator()): Call construct and destroy on the
1625 (_Hashtable_alloc): Simplify __value_alloc_traits typedef.
1626 (_Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&&...)): Call
1627 construct on the node allocator.
1628 (_Hashtable_alloc<_NodeAlloc>::_M_deallocate_node(__node_type*)): Call
1629 destroy on the node allocator.
1632 * include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
1633 size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
1634 const _ExtractKey&, const allocator_type&)): Let destructor do clean
1635 up if an exception is thrown.
1636 * testsuite/23_containers/unordered_map/cons/81891.cc: New.
1638 2017-08-11 Jonathan Wakely <jwakely@redhat.com>
1641 * testsuite/27_io/basic_fstream/53984.cc: Adjust test for targets
1642 that allow opening a directory as a FILE and reading from it.
1644 2017-08-09 Jonathan Wakely <jwakely@redhat.com>
1646 * include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP):
1647 Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use
1648 __is_identifier to set it.
1650 2017-08-09 Katsuhiko Nishimra <ktns.87@gmail.com>
1652 * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
1653 __is_identifier instead of __has_builtin.
1655 2017-08-09 Jonathan Wakely <jwakely@redhat.com>
1659 * config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)):
1660 Call fflush on the stream instead of calling sync() while _M_cfile is
1661 null. Restore original value of errno.
1662 * testsuite/ext/stdio_filebuf/char/79820.cc: New.
1663 * testsuite/ext/stdio_filebuf/char/81751.cc: New.
1665 2017-07-31 Marek Polacek <polacek@redhat.com>
1668 * include/bits/stl_stack.h: Fix typo.
1670 2017-07-26 Jonathan Wakely <jwakely@redhat.com>
1672 * testsuite/27_io/basic_fstream/53984.cc: Fix test.
1674 2017-07-26 Paolo Carlini <paolo.carlini@oracle.com>
1676 * testsuite/27_io/basic_fstream/53984.cc: Fix typo in dg-require
1679 2017-07-25 Jonathan Wakely <jwakely@redhat.com>
1682 * include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment.
1683 * include/bits/istream.tcc (basic_istream::sentry): Handle exceptions
1684 during construction.
1685 * include/std/istream: Adjust comments for formatted input functions
1686 and unformatted input functions.
1687 * testsuite/27_io/basic_fstream/53984.cc: New.
1688 * testsuite/27_io/basic_istream/sentry/char/53984.cc: New.
1690 * include/bits/ios_base.h (ios_base::io_state, ios_base::open_mode)
1691 (ios_base::seek_dir): Remove for C++17.
1692 * include/std/streambuf (basic_streambuf::stossc): Remove for C++17.
1693 Add deprecated attribute for C++11 and C++14.
1694 * testsuite/27_io/types/1.cc: Don't run for C++17 and later.
1695 * testsuite/27_io/types/4.cc: New.
1697 2017-07-23 Michael Collison <michael.collison@arm.com>
1699 Add optimized implementation of mersenne twister for aarch64
1700 * config/cpu/aarch64/opt/ext/opt_random.h: New file.
1701 (__arch64_recursion): New function.
1702 (__aarch64_lsr_128): New function.
1703 (__aarch64_lsl_128): New function.
1704 (operator==): New function.
1705 (simd_fast_mersenne_twister_engine): Implement
1707 * config/cpu/aarch64/opt/bits/opt_random.h: New file.
1708 * include/ext/random: (simd_fast_mersenne_twister_engine):
1709 add _M_state private array.
1711 2017-07-23 François Dumont <fdumont@gcc.gnu.org>
1714 * include/bits/algorithmfwd.h: Reorganize versioned namespace.
1715 * include/bits/basic_string.h: Likewise.
1716 * include/bits/c++config: Likewise.
1717 * include/bits/deque.tcc: Likewise.
1718 * include/bits/forward_list.h: Likewise.
1719 * include/bits/forward_list.tcc: Likewise.
1720 * include/bits/hashtable_policy.h: Likewise.
1721 * include/bits/list.tcc: Likewise.
1722 * include/bits/move.h: Likewise.
1723 * include/bits/quoted_string.h: Likewise.
1724 * include/bits/random.h: Likewise.
1725 * include/bits/random.tcc: Likewise.
1726 * include/bits/regex.h: Likewise.
1727 * include/bits/regex.tcc: Likewise.
1728 * include/bits/regex_automaton.h: Likewise.
1729 * include/bits/regex_automaton.tcc: Likewise.
1730 * include/bits/regex_compiler.h: Likewise.
1731 * include/bits/regex_compiler.tcc: Likewise.
1732 * include/bits/regex_constants.h: Likewise.
1733 * include/bits/regex_error.h: Likewise.
1734 * include/bits/regex_executor.h: Likewise.
1735 * include/bits/regex_executor.tcc: Likewise.
1736 * include/bits/regex_scanner.h: Likewise.
1737 * include/bits/regex_scanner.tcc: Likewise.
1738 * include/bits/specfun.h: Likewise.
1739 * include/bits/stl_algo.h: Likewise.
1740 * include/bits/stl_algobase.h: Likewise.
1741 * include/bits/stl_bvector.h: Likewise.
1742 * include/bits/stl_deque.h: Likewise.
1743 * include/bits/stl_iterator.h: Likewise.
1744 * include/bits/stl_iterator_base_funcs.h: Likewise.
1745 * include/bits/stl_list.h: Likewise.
1746 * include/bits/stl_map.h: Likewise.
1747 * include/bits/stl_multimap.h: Likewise.
1748 * include/bits/stl_multiset.h: Likewise.
1749 * include/bits/stl_relops.h: Likewise.
1750 * include/bits/stl_set.h: Likewise.
1751 * include/bits/stl_vector.h: Likewise.
1752 * include/bits/uniform_int_dist.h: Likewise.
1753 * include/bits/unordered_map.h: Likewise.
1754 * include/bits/unordered_set.h: Likewise.
1755 * include/bits/vector.tcc: Likewise.
1756 * include/c_global/cmath: Likewise.
1757 * include/c_std/cmath: Likewise.
1758 * include/decimal/decimal: Likewise.
1759 * include/decimal/decimal.h: Likewise.
1760 * include/experimental/algorithm: Likewise.
1761 * include/experimental/any: Likewise.
1762 * include/experimental/array: Likewise.
1763 * include/experimental/bits/erase_if.h: Likewise.
1764 * include/experimental/bits/fs_dir.h: Likewise.
1765 * include/experimental/bits/fs_fwd.h: Likewise.
1766 * include/experimental/bits/fs_ops.h: Likewise.
1767 * include/experimental/bits/fs_path.h: Likewise.
1768 * include/experimental/bits/lfts_config.h: Likewise.
1769 * include/experimental/bits/shared_ptr.h: Likewise.
1770 * include/experimental/bits/string_view.tcc: Likewise.
1771 * include/experimental/chrono: Likewise.
1772 * include/experimental/deque: Likewise.
1773 * include/experimental/filesystem: Likewise.
1774 * include/experimental/forward_list: Likewise.
1775 * include/experimental/functional: Likewise.
1776 * include/experimental/iterator: Likewise.
1777 * include/experimental/list: Likewise.
1778 * include/experimental/map: Likewise.
1779 * include/experimental/memory: Likewise.
1780 * include/experimental/memory_resource: Likewise.
1781 * include/experimental/numeric: Likewise.
1782 * include/experimental/optional: Likewise.
1783 * include/experimental/propagate_const: Likewise.
1784 * include/experimental/random: Likewise.
1785 * include/experimental/ratio: Likewise.
1786 * include/experimental/regex: Likewise.
1787 * include/experimental/set: Likewise.
1788 * include/experimental/source_location: Likewise.
1789 * include/experimental/string: Likewise.
1790 * include/experimental/string_view: Likewise.
1791 * include/experimental/system_error: Likewise.
1792 * include/experimental/tuple: Likewise.
1793 * include/experimental/type_traits: Likewise.
1794 * include/experimental/unordered_map: Likewise.
1795 * include/experimental/unordered_set: Likewise.
1796 * include/experimental/utility: Likewise.
1797 * include/experimental/vector: Likewise.
1798 * include/ext/bitmap_allocator.h: Likewise.
1799 * include/ext/codecvt_specializations.h: Likewise.
1800 * include/ext/rope: Likewise.
1801 * include/ext/typelist.h: Likewise.
1802 * include/std/chrono: Likewise.
1803 * include/std/complex: Likewise.
1804 * include/std/functional: Likewise.
1805 * include/std/numeric: Likewise.
1806 * include/std/string_view: Likewise.
1807 * include/std/thread: Likewise.
1808 * include/std/variant: Likewise.
1809 * include/tr1/array: Likewise.
1810 * include/tr1/bessel_function.tcc: Likewise.
1811 * include/tr1/beta_function.tcc: Likewise.
1812 * include/tr1/cmath: Likewise.
1813 * include/tr1/complex: Likewise.
1814 * include/tr1/ell_integral.tcc: Likewise.
1815 * include/tr1/exp_integral.tcc: Likewise.
1816 * include/tr1/functional: Likewise.
1817 * include/tr1/functional_hash.h: Likewise.
1818 * include/tr1/gamma.tcc: Likewise.
1819 * include/tr1/hashtable.h: Likewise.
1820 * include/tr1/hashtable_policy.h: Likewise.
1821 * include/tr1/hypergeometric.tcc: Likewise.
1822 * include/tr1/legendre_function.tcc: Likewise.
1823 * include/tr1/modified_bessel_func.tcc: Likewise.
1824 * include/tr1/poly_hermite.tcc: Likewise.
1825 * include/tr1/poly_laguerre.tcc: Likewise.
1826 * include/tr1/random.h: Likewise.
1827 * include/tr1/random.tcc: Likewise.
1828 * include/tr1/regex: Likewise.
1829 * include/tr1/riemann_zeta.tcc: Likewise.
1830 * include/tr1/shared_ptr.h: Likewise.
1831 * include/tr1/special_function_util.h: Likewise.
1832 * include/tr1/tuple: Likewise.
1833 * include/tr1/type_traits: Likewise.
1834 * include/tr1/unordered_map.h: Likewise.
1835 * include/tr1/unordered_set.h: Likewise.
1836 * include/tr1/utility: Likewise.
1837 * include/tr2/bool_set: Likewise.
1838 * include/tr2/bool_set.tcc: Likewise.
1839 * include/tr2/dynamic_bitset: Likewise.
1840 * include/tr2/dynamic_bitset.tcc: Likewise.
1841 * include/tr2/ratio: Likewise.
1842 * include/tr2/type_traits: Likewise.
1843 * src/c++11/chrono.cc: Likewise.
1844 * src/c++11/compatibility-c++0x.cc: Likewise.
1845 * src/c++11/compatibility-chrono.cc: Likewise.
1846 * src/c++11/cxx11-shim_facets.cc: Likewise.
1847 * src/c++11/hashtable_c++0x.cc: Likewise.
1848 * src/c++11/placeholders.cc: Likewise.
1849 * src/c++11/thread.cc: Likewise.
1850 * src/c++98/bitmap_allocator.cc: Likewise.
1851 * src/c++98/hashtable_tr1.cc: Likewise.
1852 * src/c++98/list.cc: Likewise.
1853 * src/shared/hashtable-aux.cc: Likewise.
1854 * testsuite/20_util/duration/literals/range.cc: Adapt line number.
1855 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1856 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1857 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1858 * testsuite/20_util/forward/c_neg.cc: Likewise.
1859 * testsuite/20_util/forward/f_neg.cc: Likewise.
1860 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
1861 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
1862 * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
1863 * python/libstdcxx/v6/printers.py: Adapt.
1865 2017-07-20 Jonathan Wakely <jwakely@redhat.com>
1867 * config/allocator/malloc_allocator_base.h [__SANITIZE_ADDRESS__]
1868 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
1869 * config/allocator/new_allocator_base.h [__SANITIZE_ADDRESS__]
1870 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
1871 * doc/xml/manual/using.xml (_GLIBCXX_SANITIZE_VECTOR): Document macro.
1872 * include/bits/stl_vector.h [_GLIBCXX_SANITIZE_VECTOR]
1873 (_Vector_impl::_Asan, _Vector_impl::_Asan::_Reinit)
1874 (_Vector_impl::_Asan::_Grow, _GLIBCXX_ASAN_ANNOTATE_REINIT)
1875 (_GLIBCXX_ASAN_ANNOTATE_GROW, _GLIBCXX_ASAN_ANNOTATE_GREW)
1876 (_GLIBCXX_ASAN_ANNOTATE_SHRINK, _GLIBCXX_ASAN_ANNOTATE_BEFORE_DEALLOC):
1877 Define annotation helper types and macros.
1878 (vector::~vector, vector::push_back, vector::pop_back)
1879 (vector::_M_erase_at_end): Add annotations.
1880 * include/bits/vector.tcc (vector::reserve, vector::emplace_back)
1881 (vector::insert, vector::_M_erase, vector::operator=)
1882 (vector::_M_fill_assign, vector::_M_assign_aux)
1883 (vector::_M_insert_rval, vector::_M_emplace_aux)
1884 (vector::_M_insert_aux, vector::_M_realloc_insert)
1885 (vector::_M_fill_insert, vector::_M_default_append)
1886 (vector::_M_shrink_to_fit, vector::_M_range_insert): Annotate.
1888 2017-07-19 Jonathan Wakely <jwakely@redhat.com>
1891 * include/bits/vector.tcc (vector::_M_range_insert<_InputIterator>):
1892 Only insert elements one-by-one when inserting at the end.
1893 * testsuite/performance/23_containers/insert/81476.cc: New.
1895 2017-07-19 Volker Reichelt <v.reichelt@netcologne.de>
1897 * libsupc++/new (bad_array_new_length): Remove redundant
1898 semicolon after in-class member function definition.
1899 * include/bits/locale_facets.h (ctype_byname, num_put): Likewise.
1900 * include/bits/locale_facets_nonio.h (time_put_byname): Likewise.
1901 * include/bits/random.h (mersenne_twister_engine): Likewise.
1902 * include/tr1/random.h (mersenne_twister): Likewise
1903 * include/ext/random (simd_fast_mersenne_twister_engine): Likewise.
1904 * include/ext/rope (char_producer, _Rope_char_consumer,
1905 _Rope_self_destruct_ptr, _Rope_const_iterator, _Rope_iterator):
1907 * include/ext/ropeimpl.h (_Rope_flatten_char_consumer,
1908 _Rope_insert_char_consumer): Likewise.
1910 2017-07-19 Jonathan Wakely <jwakely@redhat.com>
1912 * include/bits/fstream.tcc (basic_filebuf::xsgetn)
1913 (basic_filebuf::xsputn, basic_filebuf::seekoff): Fix indentation.
1915 * testsuite/util/testsuite_iterators.h: Fix indentation.
1917 * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: Add dg-require.
1919 2017-07-18 Jonathan Wakely <jwakely@redhat.com>
1922 * include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer
1923 pointers for write mode after reading.
1924 * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New.
1926 2017-07-18 François Dumont <fdumont@gcc.gnu.org>
1928 * include/bits/stl_list.h
1929 (struct _List_node_header): New.
1930 (_List_impl()): Fix noexcept qualification.
1931 (_List_impl(_List_impl&&)): New, default.
1932 (_List_base()): Default.
1933 (_List_base(_List_base&&)): Default.
1934 (_List_base::_M_move_nodes): Adapt to use
1935 _List_node_header._M_move_nodes.
1936 (_List_base::_M_init): Likewise.
1937 (list<>()): Default.
1938 (list<>(list&&)): Default.
1939 (list<>::_M_move_assign(list&&, true_type)): Use _M_move_nodes.
1940 (__distance(_List_const_iterator<>, _List_const_iterator<>,
1941 input_iterator_tag)): Adapt.
1942 * testsuite/23_containers/list/allocator/default_init.cc: New.
1944 2017-07-15 Jonathan Wakely <jwakely@redhat.com>
1946 * include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter
1948 * testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments.
1949 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction
1950 with std::adopt_lock_t.
1951 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check
1954 2017-07-14 Jason Merrill <jason@redhat.com>
1955 Jonathan Wakely <jwakely@redhat.com>
1957 * include/std/variant (variant::variant(_Tp&&)): Constrain to remove
1958 the constructor for empty variants from the candidate functions
1959 during class template argument deduction.
1960 * testsuite/20_util/variant/deduction.cc: New.
1962 2017-07-11 Jonathan Wakely <jwakely@redhat.com>
1964 * doc/xml/faq.xml: Update several old entries. Improve
1966 * doc/xml/manual/intro.xml: Add anchors to each DR.
1967 * doc/html/*: Regenerate.
1969 2017-07-10 Jonathan Wakely <jwakely@redhat.com>
1971 * testsuite/abi/pr42230.cc: Add header for std::free.
1974 * include/bits/sstream.tcc (basic_stringbuf::overflow)
1975 (basic_stringbuf::basic_stringbuf(const __string_type&, ios::mode))
1976 (basic_stringbuf::str()): Construct new strings with an allocator.
1977 * testsuite/27_io/basic_stringbuf/cons/81381.cc: New.
1980 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
1981 Declare basic_stringbuf to be a friend.
1982 * include/bits/sstream.tcc (basic_stringbuf::overflow)
1983 [_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
1984 * include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
1985 length to buffer length.
1986 * testsuite/27_io/basic_stringstream/assign/81338.cc: New.
1988 2017-07-06 Jonathan Wakely <jwakely@redhat.com>
1990 * testsuite/20_util/specialized_algorithms/memory_management_tools/
1992 * testsuite/22_locale/locale/cons/5.cc: Remove redundant restoration
1993 of original environment and free memory.
1995 * testsuite/abi/pr42230.cc: Free memory.
1996 * testsuite/util/testsuite_abi.cc (demangle): Return std::string
1997 instead of pointer that might need freeing.
1998 * testsuite/util/testsuite_abi.h (demangle): Likewise.
1999 * testsuite/util/testsuite_hooks.cc (verify_demangle): Free memory.
2001 * include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add
2002 deleted overload to prevent dangling references to rvalues.
2003 * include/experimental/memory_resource
2004 (polymorphic_allocator::construct): Do not call __use_alloc with
2007 2017-06-27 Tim Shen <timshen@google.com>
2010 * include/std/variant (variant::variant, variant::~variant,
2011 variant::operator=): Implement triviality forwarding for four
2012 special member functions.
2013 * testsuite/20_util/variant/compile.cc: Tests.
2015 2017-06-27 Jonathan Wakely <jwakely@redhat.com>
2018 * testsuite/25_algorithms/sample/81221.cc: Disable except for
2022 * include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not
2024 * testsuite/25_algorithms/sample/81221.cc: New.
2026 2017-06-22 Jonathan Wakely <jwakely@redhat.com>
2029 * include/bits/stl_bvector.h (vector<bool>::_M_initialize_value):
2030 Do not pass null pointer to memset.
2032 2017-06-21 Ville Voutilainen <ville.voutilainen@gmail.com>
2036 * include/std/istream:
2037 (__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
2038 (__do_is_convertible_to_basic_istream_impl): Likewise.
2039 (__is_convertible_to_basic_istream_impl): Likewise.
2040 (__is_convertible_to_basic_istream): Use the new base.
2041 (__rvalue_istream_type): New.
2042 (operator>>(_Istream&&, _Tp&&)): Use the new helper alias
2043 for the SFINAE check, convert to the helper alias type before
2044 doing the actual extraction.
2045 * include/std/ostream:
2046 (__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
2047 (__do_is_convertible_to_basic_ostream_impl): Likewise.
2048 (__is_convertible_to_basic_ostream_impl): Likewise.
2049 (__is_convertible_to_basic_ostream): Use the new base.
2050 (__rvalue_ostream_type): New.
2051 (operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
2052 for the SFINAE check, convert to the helper alias type before
2053 doing the actual insertion.
2054 * testsuite/27_io/rvalue_streams-2.cc: Add new tests.
2056 2017-06-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2058 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2060 2017-06-21 Jonathan Wakely <jwakely@redhat.com>
2063 * configure: Regenerate.
2065 2017-06-20 Uros Bizjak <ubizjak@gmail.com>
2067 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
2069 2017-06-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2071 * testsuite/20_util/variant/index_type.cc: Allow for all ilp32 and
2074 2017-06-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2076 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
2077 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
2078 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
2079 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
2080 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
2081 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
2083 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
2084 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
2087 2017-06-18 H.J. Lu <hongjiu.lu@intel.com>
2090 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
2092 2017-06-18 Andreas Schwab <schwab@linux-m68k.org>
2095 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2097 2017-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2099 * testsuite: Remove dg-skip-if, dg-xfail-if, dg-xfail-run-if
2102 2017-06-17 Jonathan Wakely <jwakely@redhat.com>
2105 * testsuite/23_containers/vector/bool/80893.cc: Add { target c++11 }.
2107 2017-06-16 Jonathan Wakely <jwakely@redhat.com>
2109 * include/bits/shared_ptr.h (get_deleter): Add overload matching
2111 * include/bits/shared_ptr_base.h (__shared_ptr): Declare new
2112 get_deleter overload as a friend.
2113 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: New.
2115 2017-06-16 Jakub Jelinek <jakub@redhat.com>
2118 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
2119 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
2120 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
2122 2017-06-16 Jonathan Wakely <jwakely@redhat.com>
2124 * include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
2125 * testsuite/22_locale/conversions/buffer/2.cc: New.
2128 * acinclude.m4: Bump libtool_VERSION.
2129 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
2130 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
2131 * config/abi/pre/gnu.ver: Add wstring constructor symbols to
2132 GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol
2133 to new GLIBCXX_3.4.25 version.
2134 * doc/xml/manual/abi.xml: Document new versions.
2135 * doc/html/*: Regenerate.
2136 * testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
2137 constructors to ensure required symbols are exported.
2138 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
2139 * testsuite/util/testsuite_abi.cc: Add new version.
2141 * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
2143 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2145 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2147 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
2148 missing return statements.
2149 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
2151 * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
2153 * testsuite/special_functions/14_expint/pr68397.cc: Likewise.
2155 2017-06-16 François Dumont <fdumont@gcc.gnu.org>
2157 * include/bits/stl_bvector.h
2158 (__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)):
2160 (std::fill(_Bit_iterator, _Bit_iterator, bool)): Adapt.
2161 (_Bvector_impl_data): New.
2162 (_Bvector_impl): Inherits from latter.
2163 (_Bvector_impl(_Bit_alloc_type&&)): Delete.
2164 (_Bvector_impl(_Bvector_impl&&)): New, default.
2165 (_Bvector_base()): Default.
2166 (_Bvector_base(_Bvector_base&&)): Default.
2167 (_Bvector_base::_M_move_data(_Bvector_base&&)): New.
2168 (vector(vector&&, const allocator_type&)): Use latter.
2169 (vector<bool>::operator=(vector&&)): Likewise.
2170 (vector<bool>::vector()): Default.
2171 (vector<bool>::vector(vector&&)): Default.
2172 (vector<bool>::assign(_InputIterator, _InputIterator)): Use
2174 (vector<bool>::assign(initializer_list<bool>)): Likewise.
2175 (vector<bool>::_M_initialize_value(bool)): New.
2176 (vector<bool>(size_type, const bool&, const allocator_type&)): Use
2178 (vector<bool>::_M_initialize_dispatch(_Integer, _Integer, __true_type)):
2180 (vector<bool>::_M_fill_assign(size_t, bool)): Likewise.
2182 2017-06-15 François Dumont <fdumont@gcc.gnu.org>
2184 * src/c++98/tree.cc [!_GLIBCXX_INLINE_VERSION]
2185 (_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete.
2187 2017-06-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2189 * testsuite: Add dg-require-effective-target pthread to -pthread
2191 Remove explicit target lists from dg-do and dg-options.
2193 * testsuite/30_threads/async/forced_unwind.cc: Remove explit
2194 target list from dg-options.
2195 * testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise.
2197 * 30_threads/shared_mutex/cons/1.cc: Likewise.
2198 Pass -pthread for all targets.
2199 * 30_threads/shared_mutex/try_lock/1.cc: Likewise.
2200 * 30_threads/shared_mutex/try_lock/2.cc: Likewise.
2201 * 30_threads/shared_mutex/unlock/1.cc: Likewise.
2203 * testsuite/30_threads/this_thread/57060.cc: Require c++11 via
2204 dg-require-effective-target.
2206 2017-06-14 Jonathan Wakely <jwakely@redhat.com>
2208 * doc/xml/manual/test.xml: Correct instructions on running tests.
2209 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to
2210 pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
2211 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
2213 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise.
2214 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2215 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
2216 exceptions_failbit.cc: Likewise.
2217 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2218 exceptions_failbit.cc: Likewise.
2219 * testsuite/27_io/basic_istream/extractors_other/char/
2220 exceptions_null.cc: Likewise.
2221 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
2222 exceptions_null.cc: Likewise.
2223 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2224 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2225 * testsuite/27_io/basic_ostream/inserters_other/char/
2226 exceptions_null.cc: Likewise.
2227 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2228 exceptions_null.cc: Likewise.
2229 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2231 2017-06-12 Pedro Alves <palves@redhat.com>
2233 * doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
2235 * doc/html/*: Regenerate.
2237 * include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
2238 not already defined.
2239 (__cpp_lib_constexpr_char_traits): Uncomment.
2240 (__constant_string_p, __constant_char_array_p): New.
2241 (std::char_traits<char>, std::char_traits<wchar_t>): Add
2242 _GLIBCXX17_CONSTEXPR on compare, length and find and use
2243 __constant_string_p, __constant_char_array_p and
2244 __builtin_constant_p to defer to __gnu_cxx::char_traits at compile
2247 * testsuite/21_strings/char_traits/requirements/
2248 constexpr_functions_c++17.cc: Uncomment
2249 __cpp_lib_constexpr_char_traits tests. Uncomment
2250 test_compare<char>, test_length<char>, test_find<char>,
2251 test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
2252 static_assert tests.
2254 2017-06-12 François Dumont <fdumont@gcc.gnu.org>
2256 * include/bits/stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator
2258 * testsuite/util/testsuite_allocator.h
2259 (__gnu_test::default_init_allocator<>) New.
2260 * testsuite/23_containers/set/allocator/default_init.cc: New.
2261 * testsuite/23_containers/map/allocator/default_init.cc: New.
2263 2017-06-12 Jonathan Wakely <jwakely@redhat.com>
2266 * src/c++11/thread.cc (execute_native_thread_routine): Remove
2267 try-block so that exceptions propagate out of the thread and terminate
2268 is called by the exception-handling runtime.
2269 (execute_native_thread_routine_compat): Likewise.
2270 * testsuite/30_threads/thread/cons/terminate.cc: New.
2272 2017-06-09 Jonathan Wakely <jwakely@redhat.com>
2274 * doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
2275 * include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
2277 * include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
2278 (_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
2279 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
2281 * include/bits/forward_list.h (forward_list): Add deduction guide.
2282 * include/bits/stl_deque.h (deque): Likewise.
2283 * include/bits/stl_list.h (list): Likewise.
2284 * include/bits/stl_vector.h (vector): Likewise.
2285 * testsuite/23_containers/deque/cons/deduction.cc: New.
2286 * testsuite/23_containers/forward_list/cons/deduction.cc: New.
2287 * testsuite/23_containers/list/cons/deduction.cc: New.
2288 * testsuite/23_containers/vector/cons/deduction.cc: New.
2290 2017-06-08 Jonathan Wakely <jwakely@redhat.com>
2293 * include/bits/std_function.h (function::function(function&&))
2294 (function::operator=(funtion&&)): Add noexcept.
2295 * testsuite/20_util/function/assign/move.cc: Check for noexcept.
2296 * testsuite/20_util/function/cons/move.cc: Likewise.
2298 2017-06-07 Jonathan Wakely <jwakely@redhat.com>
2300 * include/bits/regex.h (basic_regex): Add deduction guide from P0433.
2301 * testsuite/28_regex/basic_regex/ctors/deduction.cc: New.
2304 * include/bits/regex.h (basic_regex): Adjust call to __compile_nfa
2305 so iterator type is deduced.
2306 * include/bits/regex_compiler.h (__compile_nfa): Reorder template
2307 parameters to allow iterator type to be deduced.
2308 * testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
2310 * include/bits/alloc_traits.h (__is_allocator, _RequireAllocator):
2311 New trait and alias for detecting Allocator-like types.
2312 * include/bits/basic_string.h (basic_string): Add deduction guide
2314 * include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): Add template
2315 parameter with default template argument that causes substitution
2316 failures for types that cannot be allocators.
2317 * testsuite/21_strings/basic_string/cons/char/deduction.cc: New.
2318 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: New.
2320 2017-06-02 Jonathan Wakely <jwakely@redhat.com>
2323 * include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
2324 (__erased_hash): Remove constexpr specifier and qualify calls to
2326 (__erased_dtor): Remove constexpr specifier and use _Destroy.
2328 2017-06-05 Jonathan Wakely <jwakely@redhat.com>
2330 * include/bits/stl_iterator_base_funcs.h
2331 (__advance<_RandomAccessIterator, _Distance>): Optimize for next/prev
2332 cases where incrementing or decrementing a single step.
2334 * include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
2335 (__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
2336 specifiers as per LWG 2873 and LWG 2942.
2337 * testsuite/20_util/owner_less/noexcept.cc: New.
2338 * testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
2339 noexcept guarantees.
2340 * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
2342 2017-06-03 Andreas Schwab <schwab@linux-m68k.org>
2344 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
2346 2017-06-03 Eric Botcazou <ebotcazou@adacore.com>
2348 * src/filesystem/dir.cc (fs::_Dir::advance): Use std::exchange.
2350 2017-06-02 Jonathan Wakely <jwakely@redhat.com>
2353 * doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
2354 * include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
2355 Transform eof value to U+FFFD.
2356 * testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
2357 * testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
2358 * testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.
2360 * libsupc++/Makefile.am: Remove custom targets for files that need to
2361 be compiled as C++11 or C++14.
2362 * libsupc++/Makefile.in: Regenerate.
2363 * libsupc++/del_ops.cc: Use pragma to disable -Wsized-deallocation
2365 * libsupc++/del_opvs.cc: Likewise.
2367 2017-06-02 Richard Biener <rguenther@suse.de>
2368 Markus Eisenmann <meisenmann.lba@fh-salzburg.ac.at>
2371 * libsupc++/eh_alloc.cc (pool::free): Keep list properly
2372 sorted and add missing freelist item merging cases.
2374 2017-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2376 (GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
2377 Remove *-solaris* section.
2378 * configure: Regenerate.
2380 2017-05-31 Jonathan Wakely <jwakely@redhat.com>
2383 * include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
2384 null pointer dereference when size is zero.
2385 * testsuite/23_containers/vector/bool/80893.cc: New.
2386 * testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
2387 Add non-explicit constructor from nullptr.
2388 (PointerBase::derived() const): Add const-qualified overload.
2390 2017-05-20 Tim Shen <timshen@google.com>
2393 * include/std/variant(variant::variant): SFINAE on is_same first.
2394 * testsuite/20_util/variant/any.cc: test case.
2396 2017-05-24 Jonathan Wakely <jwakely@redhat.com>
2398 * src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__
2399 instead of fixed number of bits.
2401 2017-05-24 Andreas Schwab <schwab@suse.de>
2403 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2404 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
2406 2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
2407 Jonathan Wakely <jwakely@redhat.com>
2410 * acinclude.m4: Bump libtool_VERSION.
2411 * config/abi/pre/gnu.ver: Create GLIBCXX_3.4.24 with new symbol.
2412 * config.h.in: Regenerate.
2413 * configure: Regenerate.
2414 * configure.ac: Add test for <linux/random.h>.
2415 * doc/xml/manual/abi.xml: Document new library version.
2416 * include/bits/random.h (random_device::entropy)
2417 [_GLIBCXX_USE_RANDOM_TR1]: Add call to new _M_getentropy member.
2418 (random_device::_M_getentropy): Declare.
2419 * src/c++11/random.cc (random_device::_M_getentropy): Define.
2420 * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.24 to known
2421 versions, and make it the latest version.
2423 2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
2426 * include/bits/locale_facets.tcc (num_get::_M_extract_int): Add
2427 explicit conversion to avoid signed overflow.
2429 2017-05-19 Jonathan Wakely <jwakely@redhat.com>
2432 * include/bits/stl_algo.h (search): Add new overload for C++17.
2433 * testsuite/25_algorithms/search/searcher.cc: New.
2435 2017-05-18 Jonathan Wakely <jwakely@redhat.com>
2438 * include/std/functional (_Mem_fn_traits_base): Add specializations
2439 for noexcept member function types.
2440 * testsuite/20_util/function_objects/mem_fn/80478.cc: New test.
2442 2017-05-18 Jonathan Wakely <jwakely@redhat.com>
2444 * doc/xml/manual/policy_data_structures.xml: Fix typo.
2445 * doc/xml/manual/test_policy_data_structures.xml: Likewise.
2446 * doc/html/*: Regenerate.
2448 * doc/xml/manual/abi.xml: Document latest library versions.
2449 * doc/xml/manual/build_hacking.xml: Document requirement to update
2450 abi.xml when bumping library versions.
2451 * doc/html/*: Regenerate.
2453 2017-05-17 Jonathan Wakely <jwakely@redhat.com>
2455 * include/bits/refwrap.h: Fix Doxygen warning.
2456 * include/bits/specfun.h: Likewise.
2457 * include/bits/std_function.h: Likewise.
2458 * include/bits/stl_algo.h (set_union, set_intersection)
2459 (set_difference, set_symmetric_difference): Add Doxygen @param tags
2460 for output iterator parameters.
2461 * include/bits/stl_iterator.h (inserter): Add Doxygen @param tag for
2463 * include/std/mutex (try_lock, lock): Change Mutex to Lockable in
2466 2017-05-17 Ville Voutilainen <ville.voutilainen@gmail.com>
2468 Implement new C++ intrinsics __is_assignable and __is_constructible.
2469 * include/std/type_traits (__do_is_static_castable_impl): Remove.
2470 (__is_static_castable_impl, __is_static_castable_safe): Likewise.
2471 (__is_static_castable, __do_is_direct_constructible_impl): Likewise.
2472 (__is_direct_constructible_impl): Likewise.
2473 (__is_direct_constructible_new_safe): Likewise.
2474 (__is_base_to_derived_ref, __is_lvalue_to_rvalue_ref): Likewise.
2475 (__is_direct_constructible_ref_cast): Likewise.
2476 (__is_direct_constructible_new, __is_direct_constructible): Likewise.
2477 (__do_is_nary_constructible_impl): Likewise.
2478 (__is_nary_constructible_impl, __is_nary_constructible): Likewise.
2479 (__is_constructible_impl): Likewise.
2480 (is_constructible): Call the intrinsic.
2481 (__is_assignable_helper): Remove.
2482 (is_assignable): Call the intrinsic.
2483 (is_trivially_constructible): Likewise.
2484 (__is_trivially_copy_constructible_impl): New.
2485 (is_trivially_copy_constructible): Use it.
2486 (__is_trivially_move_constructible_impl): New.
2487 (is_trivially_move_constructible): Use it.
2488 (is_trivially_assignable): Call the intrinsic.
2489 (__is_trivially_copy_assignable_impl): New.
2490 (is_trivially_copy_assignable): Use it.
2491 (__is_trivially_move_assignable_impl): New.
2492 (is_trivially_move_assignable): Use it.
2493 (testsuite/20_util/declval/requirements/1_neg.cc): Adjust.
2494 (testsuite/20_util/is_trivially_copy_assignable/value.cc):
2496 (testsuite/20_util/is_trivially_copy_constructible/value.cc): Likewise.
2497 (testsuite/20_util/is_trivially_move_assignable/value.cc): Likewise.
2498 (testsuite/20_util/is_trivially_move_constructible/value.cc): Likewise.
2499 (testsuite/20_util/make_signed/requirements/typedefs_neg.cc): Adjust.
2500 (testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc):
2503 2017-05-16 Jonathan Wakely <jwakely@redhat.com>
2505 * testsuite/experimental/source_location/1.cc: Change expected result
2506 for source_location::current() used in default member initializer.
2508 * doc/xml/manual/status_cxx2017.xml: Update status table.
2509 * doc/html/*: Regenerate.
2510 * include/Makefile.am: Add new header.
2511 * include/Makefile.in: Regenerate.
2512 * include/experimental/source_location: New header implementing N4519.
2513 * testsuite/experimental/source_location/1.cc: New test.
2516 * include/bits/shared_ptr_base.h [!__cpp_rtti] (type_info): Declare
2517 outside versioned namespace.
2519 * configure: Regenerate.
2521 2017-05-16 Marc Glisse <marc.glisse@inria.fr>
2523 * include/std/optional (_Optional_base::_M_get): Check precondition.
2524 * testsuite/20_util/optional/cons/value_neg.cc: Update line numbers.
2526 2017-05-16 Jonathan Wakely <jwakely@redhat.com>
2528 * doc/xml/manual/appendix_contributing.xml: Link to test docs and
2529 note higher DejaGnu version requirement.
2530 * doc/html/*: Regenerate.
2532 * doc/xml/manual/appendix_contributing.xml: Link to the list of bad
2534 * doc/html/*: Regenerate.
2536 2017-05-15 Jonathan Wakely <jwakely@redhat.com>
2539 * include/bits/node_handle.h (_Node_insert_return): Reorder members.
2540 (tuple_size, tuple_element): Remove partial specializations.
2541 * include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
2542 const_iterator for std::set.
2543 * testsuite/23_containers/map/modifiers/extract.cc: New.
2544 * testsuite/23_containers/set/modifiers/extract.cc: New.
2545 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
2546 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
2548 2017-05-12 Jonathan Wakely <jwakely@redhat.com>
2551 * include/std/utility (tuple_size<cv T>): Only define partial
2552 specializations when tuple_size<T>::value is valid.
2553 * testsuite/20_util/tuple/78939.cc: New.
2554 * testsuite/20_util/tuple/cv_tuple_size_neg.cc: New.
2556 2017-05-11 François Dumont <fdumont@gcc.gnu.org>
2558 * include/bits/stl_tree.h [_GLIBCXX_INLINE_VERSION]
2559 (_Rb_tree_impl<>): Remove _Is_pod_comparator
2562 * include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
2563 (__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
2564 (__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
2566 (__gnu_debug::_Error_formatter::_M_format_word): Remove.
2567 (__gnu_debug::_Error_formatter::_M_print_word): Remove.
2568 (__gnu_debug::_Error_formatter::_M_print_string): Remove.
2569 (__gnu_debug::_Error_formatter::_M_get_max_length): Remove.
2570 * src/c++11/debug.cc: Adapt.
2571 * config/abi/pre/gnu-versioned-namespace.ver: Adapt.
2573 2017-05-11 Jonathan Wakely <jwakely@redhat.com>
2575 * doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
2576 * doc/xml/manual/mt_allocator.xml: Likewise.
2577 * doc/html/*: Regenerate.
2580 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Define
2581 function to get unique fake std::type_info reference.
2582 (_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Compare to
2583 _S_ti() fake reference.
2584 (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Share
2585 single implementation with or without RTTI enable.
2586 [!__cpp_rtti]: Pass fake reference to _M_get_deleter.
2587 * testsuite/20_util/shared_ptr/creation/alloc.cc: Change expected
2588 allocation and deallocation counts.
2589 * testsuite/20_util/shared_ptr/creation/single_allocation.cc: New.
2590 * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
2593 2017-05-10 François Dumont <fdumont@gcc.gnu.org>
2595 Bump version namespace.
2596 * config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
2597 from __7 to __8. Bump GLIBCXX_7.0 to GLIBCXX_8.0.
2598 * acinclude.m4 (libtool_VERSION): Bump to 8:0:0.
2599 * include/bits/c++config: Adapt.
2600 * include/bits/regex.h: Adapt.
2601 * include/experimental/bits/fs_fwd.h: Adapt.
2602 * include/experimental/bits/lfts_config.h: Adapt.
2603 * include/std/variant: Adapt.
2604 * python/libstdcxx/v6/printers.py: Adapt.
2605 * testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
2607 * include/bits/stl_algobase.h (std::__iter_swap<false>): Remove
2608 _GLIBCXX_MOVE usage.
2610 2017-05-09 Jason Merrill <jason@redhat.com>
2612 * testsuite/24_iterators/container_access.cc (test03): Make il3 static.
2614 2017-05-08 Jonathan Wakely <jwakely@redhat.com>
2616 * include/std/optional: Use a separate static_assert per condition.
2617 * testsuite/20_util/optional/cons/value_neg.cc: Update dg-error line
2620 * doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
2621 * doc/html/*: Regenerate.
2623 2017-05-02 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
2626 * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
2628 2017-04-29 François Dumont <fdumont@gcc.gnu.org>
2630 * testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
2633 2017-04-28 Jonathan Wakely <jwakely@redhat.com>
2636 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
2637 assertions to ensure type is destructible.
2638 (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
2639 * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
2640 Move to stl_construct.h.
2641 * testsuite/20_util/specialized_algorithms/memory_management_tools/
2642 destroy_neg.cc: New test.
2643 * testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
2645 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
2646 superfluous "" in dg-error.
2648 2017-04-28 Tom de Vries <tom@codesourcery.com>
2650 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
2651 superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
2653 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
2655 * include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
2656 (PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
2657 * testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
2660 2017-04-26 Jonathan Wakely <jwakely@redhat.com>
2662 * testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
2663 comment. Ensure first test works because allocator type propagates and
2664 not because is_always_equal is true.
2665 * testsuite/23_containers/vector/52591.cc: Likewise. Restore original
2666 testcase that instantiates the move-assignment operator.
2668 2017-04-24 Jonathan Wakely <jwakely@redhat.com>
2671 * include/bits/random.tcc (gamma_distribution::operator()): Fix magic
2672 number used in loop condition.
2675 * include/bits/refwrap.h (ref, cref): Qualify calls.
2676 * testsuite/20_util/reference_wrapper/80504.cc: New test.
2679 * include/experimental/optional (optional::swap): Fix exception
2682 2017-04-21 Jonathan Wakely <jwakely@redhat.com>
2685 * include/std/future (_State_baseV2::_Setter::operator()): Remove
2686 _S_check calls that are done after the pointer to the shared state is
2687 already dereferenced.
2688 (_State_baseV2::_Setter<_Res, void>): Define specialization for void
2689 as partial specialization so it can be defined within the definition
2691 (_State_baseV2::__setter): Call _S_check.
2692 (_State_baseV2::__setter(promise<void>*)): Add overload for use by
2693 promise<void>::set_value and promise<void>::set_value_at_thread_exit.
2694 (promise<T>, promise<T&>, promise<void>): Make _State a friend.
2695 (_State_baseV2::_Setter<void, void>): Remove explicit specialization.
2696 (promise<void>::set_value, promise<void>::set_value_at_thread_exit):
2697 Use new __setter overload.
2698 * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
2699 * testsuite/30_threads/promise/members/set_exception.cc: Test
2700 promise<T&> and promise<void> specializations.
2701 * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
2702 Test for no_state error condition.
2703 * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
2705 * include/backward/auto_ptr.h: Ignore deprecated warnings from use
2707 * include/bits/shared_ptr.h: Likewise.
2708 * include/bits/shared_ptr_base.h: Likewise.
2709 * include/bits/unique_ptr.h: Likewise.
2710 * libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
2712 * libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
2713 * libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
2715 * libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
2718 2017-04-20 Edward Smith-Rowland <3dw4rd@verizon.net>
2720 PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
2721 * include/tr1/exp_integral.tcc: Increase iteration limits.
2722 * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
2723 pr68397.cc: New test.
2724 * testsuite/special_functions/14_expint/pr68397.cc: New test.
2726 2017-04-20 Jonathan Wakely <jwakely@redhat.com>
2729 * include/std/atomic [!_GLIBCXX_USE_C99_STDINT_TR1] (atomic_int8_t)
2730 (atomic_uint8_t, atomic_int16_t, atomic_uint16_t, atomic_int32_t,
2731 (atomic_uint32_t, atomic_int64_t, atomic_uint64_t)
2732 (atomic_int_least8_t, atomic_uint_least8_t, atomic_int_least16_t)
2733 (atomic_uint_least16_t, atomic_int_least32_t, atomic_uint_least32_t)
2734 (atomic_int_least64_t, atomic_uint_least64_t, atomic_int_fast8_t)
2735 (atomic_uint_fast8_t, atomic_int_fast16_t, atomic_uint_fast16_t)
2736 (atomic_int_fast32_t, atomic_uint_fast32_t, atomic_int_fast64_t)
2737 (atomic_uint_fast64_t, atomic_intmax_t, atomic_uintmax_t): Don't
2740 2017-04-19 Jonathan Wakely <jwakely@redhat.com>
2742 * doc/xml/manual/abi.xml: Rephrase one of the references to the
2744 * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
2745 * doc/html/*: Regenerate.
2747 * libsupc++/new: Update comment on #endif directive.
2750 * include/experimental/bits/fs_dir.h (directory_iterator)
2751 (recursive_directory_iterator): Remove noexcept from defaulted
2755 * include/std/type_traits (is_aggregate): Change __has_builtin checks.
2756 * libsupc++/new (launder): Likewise.
2758 2017-04-18 Jonathan Wakely <jwakely@redhat.com>
2760 * include/std/functional (default_searcher, __boyer_moore_array_base)
2761 (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
2762 (boyer_moore_horspool_searcher): Remove redundant namespace
2764 (default_searcher::operator()): Construct return value early and
2765 advance second member in-place.
2766 (boyer_moore_horspool_searcher::operator()): Increment random access
2767 iterator directly instead of using std::next.
2768 (boyer_moore_searcher::operator()): Fix return value.
2769 * testsuite/20_util/function_objects/searchers.cc: Check both parts
2772 2017-04-12 Gerald Pfeifer <gerald@pfeifer.com>
2774 * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
2775 * doc/xml/manual/abi.xml. Ditto (thrice).
2777 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
2779 * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
2780 * doc/html/*: Regenerate.
2782 * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
2783 that no longer fail.
2785 * include/bits/ios_base.h: Correct comment.
2786 * testsuite/util/testsuite_hooks.h: Likewise.
2788 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
2789 * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
2790 directories for debug, parallel and profile headers.
2791 * doc/html/*: Regenerate.
2793 * include/bits/char_traits.h (__gnu_cxx::char_traits): Add
2794 _GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
2795 (std::char_traits<char>, std::char_traits<wchar_t>): Add
2796 _GLIBCXX17_CONSTEXPR on assign.
2797 (std::char_traits<char16_t>, std::char_traits<char32_t>): Add
2798 _GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
2799 * testsuite/21_strings/char_traits/requirements/
2800 constexpr_functions_c++17.cc: New test.
2802 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
2805 * include/bits/stl_pair.h (__nonesuch_no_braces): New.
2806 (operator=(typename conditional<
2807 __and_<is_copy_assignable<_T1>,
2808 is_copy_assignable<_T2>>::value,
2809 const pair&, const __nonesuch&>::type)): Change __nonesuch
2810 to __nonesuch_no_braces.
2811 (operator=(typename conditional<
2812 __not_<__and_<is_copy_assignable<_T1>,
2813 is_copy_assignable<_T2>>>::value,
2814 const pair&, const __nonesuch&>::type)): Likewise.
2815 (operator=(typename conditional<
2816 __and_<is_move_assignable<_T1>,
2817 is_move_assignable<_T2>>::value,
2818 pair&&, __nonesuch&&>::type)): Likewise.
2819 * testsuite/20_util/pair/79141.cc: New.
2821 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
2823 Implement std::is_aggregate.
2824 * include/std/type_traits (is_aggregate, is_aggregate_v): New.
2825 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
2827 * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
2828 * testsuite/20_util/is_aggregate/value.cc: Likewise.
2830 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
2832 Adjust optional's pretty printer for LWG 2900.
2833 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
2834 Look at the nested payload in case of non-experimental optional.
2836 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
2838 Implement LWG 2900, The copy and move constructors
2839 of optional are not constexpr.
2840 * include/std/optional (_Optional_payload): New.
2841 (_Optional_base): Remove the bool parameter.
2842 (_Optional_base<_Tp, false>): Remove.
2843 (_Optional_base()): Adjust.
2844 (_Optional_base(nullopt_t)): Likewise.
2845 (_Optional_base(in_place_t, _Args&&...)): Likewise.
2846 (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
2848 (_Optional_base(const _Optional_base&)): Likewise.
2849 (_Optional_base(_Optional_base&&)): Likewise.
2850 (operator=(const _Optional_base&)): Likewise.
2851 (operator=(_Optional_base&&)): Likewise.
2852 (~_Optional_base()): Remove.
2853 (_M_is_engaged()): Adjust.
2854 (_M_get()): Likewise.
2855 (_M_construct(_Args&&...)): Likewise.
2856 (_M_destruct()): Likewise.
2857 (_M_reset()): Likewise.
2858 (_Optional_base::_Empty_byte): Remove.
2859 (_Optional_base::_M_empty): Remove.
2860 (_Optional_base::_M_payload): Adjust.
2861 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
2862 * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
2864 2017-03-28 Jonathan Wakely <jwakely@redhat.com>
2867 * include/bits/random.tcc (generate_canonical): Use std::nextafter
2868 or numeric_limits::epsilon() to reduce out-of-range values.
2869 * testsuite/26_numerics/random/uniform_real_distribution/operators/
2870 64351.cc: Verify complexity requirement is met.
2872 * doc/xml/manual/abi.xml: Add xml:id anchor.
2873 * doc/xml/manual/using.xml (manual.intro.using.macros): Document
2874 _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
2875 (concurrency.io.structure): Add markup.
2876 * doc/html/*: Regenerate.
2879 * include/bits/shared_ptr_base.h
2880 (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
2881 non-const and then use remove_cv to get unqualified type.
2882 * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
2883 cast away constness on object created const.
2884 * testsuite/20_util/shared_ptr/cons/80229.cc: New test.
2886 2017-03-26 Markus Trippelsdorf <markus@trippelsdorf.de>
2889 * include/bits/stl_tree.h:
2890 (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
2892 2017-03-23 Jonathan Wakely <jwakely@redhat.com>
2894 * testsuite/23_containers/array/tuple_interface/
2895 tuple_element_debug_neg.cc: Adjust dg-error.
2896 * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
2897 define a valid strict weak ordering.
2898 * testsuite/23_containers/priority_queue/67085.cc: Disable test for
2899 Debug Mode, due to debug checks making extra copies of predicate.
2900 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
2903 * doc/xml/faq.xml: Add link.
2904 * doc/xml/manual/backwards_compatibility.xml: Remove outdated
2905 information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
2906 * doc/xml/manual/io.xml: Update broken link.
2907 * doc/html/*: Regenerate.
2909 2017-03-23 Daniel Kruegler <daniel.kruegler@gmail.com>
2911 Implement LWG 2686, Why is std::hash specialized for error_code,
2912 but not error_condition?
2913 * include/std/system_error (hash<error_condition>): Define for C++17.
2914 * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
2915 Instantiate test for error_condition.
2916 * testsuite/20_util/hash/requirements/explicit_instantiation.cc
2917 (hash<error_condition>): Instantiate hash<error_condition>.
2919 * include/bits/c++config (_GLIBCXX17_INLINE): Define.
2920 * include/bits/regex_constants.h (All std::regex_constants constants):
2921 Add _GLIBCXX17_INLINE as per P0607R0.
2922 * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
2924 * include/bits/stl_pair.h (piecewise_construct): Likewise.
2925 * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
2926 (__is_uses_allocator_constructible_v)
2927 (__is_nothrow_uses_allocator_constructible_v): Likewise.
2928 * include/std/chrono (treat_as_floating_point_v): Likewise.
2929 * include/std/functional (is_bind_expression_v, is_placeholder_v):
2931 * include/std/optional (nullopt): Likewise.
2932 * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
2933 ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
2934 * include/std/system_error (is_error_code_enum_v)
2935 (is_error_condition_enum_v): Likewise.
2936 * include/std/tuple (tuple_size_v, ignore): Likewise.
2937 (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
2938 constexpr as per LWG 2933.
2939 * include/std/type_traits (All variable templates): Add
2940 _GLIBCXX17_INLINE as per P0607R0.
2941 * include/std/variant (variant_size_v, variant_npos, __index_of_v)
2942 (__tuple_count_v, __exactly_once): Likewise.
2943 * testsuite/18_support/headers/new/synopsis.cc
2944 (hardware_destructive_interference_size)
2945 (hardware_constructive_interference_size): Likewise for commented-out
2947 * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
2948 test function for constexpr std::ignore (LWG 2773).
2949 * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
2952 2017-03-22 Jonathan Wakely <jwakely@redhat.com>
2954 * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
2956 * include/bits/std_function.h (function): Likewise.
2957 * include/bits/stl_pair.h (pair): Likewise.
2958 * include/debug/array (__gnu_debug::array): Likewise.
2959 * include/std/array (array): Likewise.
2960 * include/std/functional (make_default_searcher)
2961 (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
2962 Remove generator functions.
2963 * include/std/tuple (tuple): Add deduction guides.
2964 * include/std/valarray (valarray): Likewise.
2965 * testsuite/20_util/function_objects/searchers.cc: Adjust to use
2966 class template argument deduction instead of generator functions.
2967 * testsuite/20_util/function/cons/deduction.cc: New test.
2968 * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
2969 * testsuite/20_util/optional/cons/deduction.cc: ... here.
2970 * testsuite/20_util/pair/cons/deduction.cc: New test.
2971 * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
2972 * testsuite/20_util/tuple/cons/deduction.cc: New test.
2973 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
2974 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
2975 * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
2976 * testsuite/23_containers/array/cons/deduction.cc: New test.
2977 * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
2978 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
2980 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
2981 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2983 * testsuite/26_numerics/valarray/deduction.cc: New test.
2984 * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
2985 * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
2986 * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
2988 2017-03-20 François Dumont <fdumont@gcc.gnu.org>
2990 * include/bits/stl_deque.h (deque): Access allocator value_type only if
2991 concept checks are enabled.
2992 * include/bits/stl_stack.h (stack): Likewise.
2993 * include/bits/stl_vector.h (vector): Likewise.
2994 * include/bits/stl_list.h (list): Likewise and check
2995 _SGIAssignableConcept only in C++03.
2996 * include/bits/stl_map.h (map): Likewise.
2997 * include/bits/stl_set.h (set): Likewise.
2998 * include/bits/stl_multimap.h (multimap): Likewise.
2999 * include/bits/stl_multiset.h (multiset): Likewise.
3000 * include/bits/stl_queue.h (queue, priority_queue): Likewise.
3002 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
3004 * doc/xml/manual/appendix_contributing.xml: Convert link to
3006 Update link to the C++ standard at ansi.org.
3008 * doc/xml/faq.xml: Remove information redundant with the above;
3009 instead add a reference.
3011 2017-03-17 Jonathan Wakely <jwakely@redhat.com>
3013 * src/c++11/codecvt.cc (range): Add non-type template parameter and
3014 define oerloaded operators for reading and writing code units.
3015 (range<Elem, false>): Define partial specialization for accessing
3016 wide characters in potentially unaligned byte ranges.
3017 (ucs2_span(const char16_t*, const char16_t*, ...))
3018 (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
3019 to range<const char16_t, false> in order to avoid unaligned reads.
3020 (__codecvt_utf16_base<char16_t>::do_out)
3021 (__codecvt_utf16_base<char32_t>::do_out)
3022 (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
3023 unaligned data to avoid unaligned writes.
3024 (__codecvt_utf16_base<char16_t>::do_in)
3025 (__codecvt_utf16_base<char32_t>::do_in)
3026 (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
3027 error if there are unprocessable trailing bytes.
3028 (__codecvt_utf16_base<char16_t>::do_length)
3029 (__codecvt_utf16_base<char32_t>::do_length)
3030 (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
3031 range<const char16_t, false> to span functions.
3032 * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
3034 2017-03-16 Jonathan Wakely <jwakely@redhat.com>
3037 * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
3040 * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
3041 (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
3042 char16_t to work with UTF-16 instead of UTF-8.
3043 * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
3045 * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
3046 (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
3047 (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
3048 (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
3049 (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
3050 (__codecvt_utf8_utf16_base<char32_t>)
3051 (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
3052 do_max_length() return values.
3053 * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
3054 * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
3055 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
3058 * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
3060 * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
3061 for manipulating codecvt_mode values.
3062 (read_utf16_bom): Compare input to BOM constants instead of integral
3063 constants that depend on endianness. Take mode parameter by
3064 reference and adjust it, to distinguish between no BOM present and
3065 UTF-16BE BOM present.
3066 (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
3067 (surrogates): New enumeration type.
3068 (utf16_in, utf16_out): Add surrogates parameter to choose between
3069 UTF-16 and UCS2 behaviour.
3070 (utf16_span, ucs2_span): Use std::min not std::max.
3071 (ucs2_out): Use std::min not std::max. Disallow surrogate pairs.
3072 (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
3073 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
3074 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
3077 * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
3078 as a surrogate pair.
3079 (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
3080 for internal representation.
3081 (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
3082 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
3085 * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
3086 (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
3087 invalid instantiations using function types for _Compare argument.
3088 * testsuite/25_algorithms/make_heap/80064.cc: New test.
3091 * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
3092 for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
3094 2017-03-15 Ville Voutilainen <ville.voutilainen@gmail.com>
3096 Implement LWG 2857, {variant,optional,any}::emplace should
3097 return the constructed value.
3098 * include/std/any (emplace(_Args&&...)): Change the return type and
3099 return a reference to the constructed value.
3100 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
3101 * include/std/optional (emplace(_Args&&...)): Likewise.
3102 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
3103 * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
3104 (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
3105 (emplace<_Np>(_Args&&...)): Likewise.
3106 (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
3107 * testsuite/20_util/any/assign/emplace.cc: Add tests for
3108 checking the return value of emplace.
3109 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
3110 * testsuite/20_util/optional/assignment/6.cc: Add tests for
3111 checking the return value of emplace.
3112 * testsuite/20_util/variant/run.cc: Likewise.
3114 2017-03-15 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
3117 * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
3119 (push_heap): Remove the wrong checking using is_heap.
3120 (make_heap): Remove the assertion using is_heap.
3121 * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
3123 (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
3126 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
3129 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
3131 * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
3134 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
3136 * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
3138 * config.h.in: Regenerate.
3139 * configure: Regenerate.
3140 * doc/Makefile.in: Regenerate.
3142 2017-03-14 Jonathan Wakely <jwakely@redhat.com>
3145 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
3146 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
3147 with a constrained template.
3148 [!_GLIBCXX_USE_CXX11_ABI]
3149 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
3150 * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
3151 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
3153 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
3156 * include/bits/list.tcc (merge(list&&)): Use const for the size_t
3158 (merge(list&&, _StrictWeakOrdering)): Likewise.
3159 * testsuite/23_containers/list/operations/80034.cc: New.
3161 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
3163 Implement LWG 2806, Base class of bad_optional_access.
3164 * include/std/optional (bad_optional_access):
3165 Derive from std::exception.
3166 (bad_optional_access::bad_optional_access): Adjust.
3167 (bad_optional_access::what): New.
3168 (__throw_bad_optional_access(const char*)):
3169 Remove the parameter and adjust calls.
3170 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
3171 * testsuite/20_util/optional/typedefs.cc: Likewise.
3173 2017-03-12 Ville Voutilainen <ville.voutilainen@gmail.com>
3175 Implement LWG 2934, optional<const T> doesn't compare with T.
3176 * include/std/optional
3177 (operator==(const optional<_Tp>&, const optional<_Tp>&)):
3178 Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
3179 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
3180 Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
3181 (operator<(const optional<_Tp>&, const optional<_Tp>&)):
3182 Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
3183 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
3184 Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
3185 (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
3186 Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
3187 (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
3188 Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
3189 (operator==(const optional<_Tp>&, const _Tp&)):
3190 Turn into operator==(const optional<_Tp>&, const _Up&).
3191 (operator==(const _Tp&, const optional<_Tp>&)):
3192 Turn into operator==(const _Up&, const optional<_Tp>&).
3193 (operator!=(const optional<_Tp>&, const _Tp&)):
3194 Turn into operator!=(const optional<_Tp>&, const _Up&).
3195 (operator!=(const _Tp&, const optional<_Tp>&)):
3196 Turn into operator!=(const _Up&, const optional<_Tp>&).
3197 (operator<(const optional<_Tp>&, const _Tp&)):
3198 Turn into operator<(const optional<_Tp>&, const _Up&).
3199 (operator<(const _Tp&, const optional<_Tp>&)):
3200 Turn into operator<(const _Up&, const optional<_Tp>&).
3201 (operator>(const optional<_Tp>&, const _Tp&)):
3202 Turn into operator>(const optional<_Tp>&, const _Up&).
3203 (operator>(const _Tp&, const optional<_Tp>&)):
3204 Turn into operator>(const _Up&, const optional<_Tp>&).
3205 (operator<=(const optional<_Tp>&, const _Tp&)):
3206 Turn into operator<=(const optional<_Tp>&, const _Up&).
3207 (operator<=(const _Tp&, const optional<_Tp>&)):
3208 Turn into operator<=(const _Up&, const optional<_Tp>&).
3209 (operator>=(const optional<_Tp>&, const _Tp&)):
3210 Turn into operator>=(const optional<_Tp>&, const _Up&).
3211 (operator>=(const _Tp&, const optional<_Tp>&)):
3212 Turn into operator>=(const _Up&, const optional<_Tp>&).
3213 * testsuite/20_util/optional/relops/7.cc: New.
3215 2017-03-10 Jonathan Wakely <jwakely@redhat.com>
3217 * testsuite/17_intro/names.cc: Undefine macros that clash with
3218 identifiers in AIX system headers.
3220 * include/bits/invoke.h (__invoke): Use __invoke_result instead of
3221 result_of, and __is_nothrow_invocable instead of
3222 __is_nothrow_callable.
3223 * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
3224 instead of __is_callable.
3225 * include/std/functional (invoke): use invoke_result_t instead of
3226 result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
3227 (_Not_fn): Use __invoke_result instead of result_of.
3228 * include/std/type_traits (__result_of_memobj, __result_of_memfun):
3229 Remove partial specializations for reference_wrapper types.
3230 (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
3231 (__invoke_result): Define replacement for result_of and then use it to
3233 (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
3234 with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
3236 (invoke_result, invoke_result_t): Define for C++17.
3237 (is_callable, is_nothrow_callable): Replace with is_invocable,
3238 is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
3239 (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
3240 is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
3241 * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
3242 instead of is_nothrow_callable_v.
3243 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
3245 * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
3246 instead of is_callable.
3247 * testsuite/20_util/is_callable/*: Rename directory and adjust tests
3249 * testsuite/20_util/is_nothrow_callable/*: Likewise.
3250 * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
3252 * testsuite/20_util/variant/hash.cc: Likewise.
3254 2017-03-10 George Lander <george.lander@arm.com>
3256 * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
3257 _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
3258 * configure: Regenerate.
3260 2017-03-09 Jonathan Wakely <jwakely@redhat.com>
3262 * include/std/functional (_Not_fn): Define macro to simplify
3263 repetitive function definitions.
3265 * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
3266 * include/c_global/cstddef (std::byte): Define for C++17.
3267 * testsuite/18_support/byte/global_neg.cc: New test.
3268 * testsuite/18_support/byte/ops.cc: New test.
3269 * testsuite/18_support/byte/requirements.cc: New test.
3271 2017-03-05 Jonathan Wakely <jwakely@redhat.com>
3273 * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
3274 * doc/html/*: Regenerate.
3275 * include/std/mutex (scoped_lock): Implement new C++17 template.
3276 * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
3277 * testsuite/30_threads/scoped_lock/requirements/
3278 explicit_instantiation.cc: New test.
3279 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
3281 2017-03-02 Gerald Pfeifer <gerald@pfeifer.com>
3282 François Dumont <frs.dumont@gmail.com>
3283 Jonathan Wakely <jwakely@redhat.com>
3285 * doc/xml/manual/debug_mode.xml: Update and simplify note
3286 on link- and run-time coexistence.
3288 2017-03-02 Jonathan Wakely <jwakely@redhat.com>
3290 * testsuite/17_intro/headers/names.cc: Rename to ...
3291 * testsuite/17_intro/names.cc: ... here.
3294 * include/bits/hashtable_policy.h (__clp2): Use reserved names for
3295 parameters and local variables.
3296 * include/bits/ios_base.h (make_error_code, make_error_condition):
3298 * include/bits/list.tcc (list::sort): Likewise.
3299 * include/bits/mask_array.h (mask_array): Likewise.
3300 * include/bits/regex.h (regex_token_iterator): Likewise.
3301 * include/bits/slice_array.h (slice_array): Likewise.
3302 * include/bits/stl_algo.h (__sample): Likewise.
3303 * include/std/memory (undeclare_no_pointers): Likewise.
3304 * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
3306 * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
3307 * testsuite/17_intro/headers/names.cc: New test.
3310 * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
3311 result_of that loses top-level cv-qualifiers.
3312 * testsuite/20_util/bind/79798.cc: New test.
3314 2017-03-01 Gerald Pfeifer <gerald@pfeifer.com>
3316 * doc/xml/manual/documentation_hacking.xml: Tweak link to
3319 2017-02-23 Jonathan Wakely <jwakely@redhat.com>
3321 * include/experimental/iterator: Include <iterator>.
3322 * testsuite/experimental/iterator/requirements.cc: Check for contents
3325 2017-02-19 Dinka Ranns <dinka.ranns@googlemail.com>
3327 C++17 GB50 resolution
3328 * include/std/chrono (duration::operator++()): Add
3329 _GLIBCXX17_CONSTEXPR.
3330 (duration::operator++(int)): Likewise.
3331 (duration::operator--()): Likewise.
3332 (duration::operator--(int)): Likewise.
3333 (duration::operator+=(const duration&)): Likewise.
3334 (duration::operator-=(const duration&)): Likewise.
3335 (duration::operator*=(const rep&)): Likewise.
3336 (duration::operator/=(const rep&)): Likewise.
3337 (duration::operator%=(const rep&)): Likewise.
3338 (duration::operator%=(const duration&)): Likewise.
3339 (time_point::operator+=(const duration&)): Likewise.
3340 (time_point::operator-=(const duration&)): Likewise.
3341 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
3342 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
3343 * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
3345 2017-02-19 Gerald Pfeifer <gerald@pfeifer.com>
3347 * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
3349 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
3351 * doc/xml/manual/io.xml: Update link to groups.google.com.
3352 Tweak link description.
3354 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
3356 * doc/xml/manual/profile_mode.xml: Fix link.
3358 2017-02-16 Gerald Pfeifer <gerald@pfeifer.com>
3360 * doc/xml/manual/policy_data_structures.xml: Simplify and
3361 standardize references to boost.org.
3362 * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
3363 * doc/xml/manual/shared_ptr.xml: Ditto.
3365 2017-02-16 Jonathan Wakely <jwakely@redhat.com>
3368 * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
3369 written to buffer, not length remaining in buffer.
3371 2017-02-15 Tim Shen <timshen@google.com>
3374 * include/std/variant (operator<(), operator>(), operator<=(),
3375 operator>=(), operator==(), operator!=()): Implement P0393R3.
3376 * testsuite/20_util/variant/compile.cc: Adjust tests.
3377 * testsuite/20_util/variant/run.cc: Adjust tests.
3379 2017-02-15 Tim Shen <timshen@google.com>
3382 * include/std/variant (visit()): Forward variant types to the return
3383 type detection code.
3384 * testsuite/20_util/variant/compile.cc: Add test cases.
3386 2017-02-13 H.J. Lu <hongjiu.lu@intel.com>
3389 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
3391 2017-02-13 Jakub Jelinek <jakub@redhat.com>
3394 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3395 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
3396 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
3397 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
3398 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
3399 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
3400 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
3401 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
3402 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
3404 2017-02-13 Jonathan Wakely <jwakely@redhat.com>
3407 * include/std/future (__future_base::_Task_state::_M_run)
3408 (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
3409 result_of expressions.
3410 * testsuite/30_threads/packaged_task/79486.cc: New.
3412 2017-02-11 Jonathan Wakely <jwakely@redhat.com>
3415 * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
3416 (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
3417 __is_callable check.
3418 * testsuite/20_util/shared_ptr/cons/79467.cc: New.
3420 * include/bits/atomic_base.h: Re-indent.
3422 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
3424 * doc/xml/manual/profile_mode.xml: Update a paper reference.
3426 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
3428 * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
3430 2017-02-08 Jonathan Wakely <jwakely@redhat.com>
3432 * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
3434 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
3435 broken links to texts that are no longer online.
3436 * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
3438 * doc/xml/manual/using.xml: Update links to memory model information.
3439 * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
3440 Standard-Library Exception Safety".
3441 * doc/html/*: Regenerate.
3443 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
3445 * doc/xml/manual/profile_mode.xml: Unbreak link to
3446 "Optimizing Sorting with Machine Learning Algorithms".
3448 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
3450 * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
3452 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
3454 * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
3457 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
3459 * doc/html/ext/lwg-active.html: Remove.
3460 * doc/html/ext/lwg-closed.html: Ditto.
3461 * doc/html/ext/lwg-defects.html: Ditto.
3463 * doc/Makefile.am (xml_extradir): Remove.
3465 (stamp-html-docbook-lwg): Remove recipe...
3466 (stamp-html-docbook-data): ...and its use here.
3467 * doc/Makefile.in: Regenerate.
3469 * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
3470 the relationship to the upstream working group.
3471 Replace a local link to ../ext/lwg-active.html by the upstream one.
3472 Replace all reference to ../ext/lwg-defects.html by a new entity
3473 &DR; which refers to the upstream address.
3475 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
3477 * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
3479 2017-02-06 Jonathan Wakely <jwakely@redhat.com>
3482 * testsuite/20_util/duration/literals/range.cc: Prune extra output
3485 2017-02-06 Gerald Pfeifer <gerald@pfeifer.com>
3487 * doc/xml/manual/documentation_hacking.xml: Update URL of the
3488 DocBook Element Reference. Use that term as link description
3489 instead of "online".
3490 epubcheck has moved to GitHub.
3491 Remove obsolete link to DocBook Publishing Tools.
3493 2017-02-03 Jonathan Wakely <jwakely@redhat.com>
3496 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
3497 so new ios::failure can be caught even when old ABI is the default.
3498 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
3499 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
3500 exceptions_failbit.cc: Likewise.
3501 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
3502 exceptions_failbit.cc: Likewise.
3503 * testsuite/27_io/basic_istream/extractors_other/char/
3504 exceptions_null.cc: Likewise.
3505 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
3506 exceptions_null.cc: Likewise.
3507 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
3508 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
3509 * testsuite/27_io/basic_ostream/inserters_other/char/
3510 exceptions_null.cc: Likewise.
3511 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
3512 exceptions_null.cc: Likewise.
3513 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
3516 * src/c++11/Makefile.am: Add new files.
3517 * src/c++11/Makefile.in: Regenerate.
3518 * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
3519 (operator<<, operator>>, getline): Move explicit instantiations to ...
3520 * src/c++11/cow-string-io-inst.cc: ... new file.
3521 * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
3522 (operator<<, operator>>, getline): Move explicit instantiations to ...
3523 * src/c++11/cow-wstring-io-inst.cc: ... new file.
3524 * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
3525 (__throw_future_error, __throw_bad_function_call):
3526 (__throw_regex_error): Move functions for C++11 exceptions to the
3527 files that define the exception types.
3528 * src/c++11/functional.cc (__throw_bad_function_call): Move here.
3529 * src/c++11/future.cc (__throw_future_error): Likewise.
3530 * src/c++11/ios.cc (__throw_ios_failure): Likewise.
3531 * src/c++11/regex.cc (__throw_regex_error): Likewise.
3532 * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
3533 representation directly instead of calling __int_to_char.
3534 * src/c++11/sso_string.cc (__sso_string): New file for definition
3535 of __sso_string type.
3536 * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
3537 explicit instantiations of narrow string I/O functions.
3538 * src/c++11/system_error.cc (__throw_system_error): Move here.
3539 (__sso_string): Move to new file.
3540 * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
3541 explicit instantiations of wide string I/O functions.
3542 * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
3543 (operator>>, getline): Remove explicit instantiations from here.
3545 2017-02-02 H.J. Lu <hongjiu.lu@intel.com>
3547 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
3549 2017-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3551 * configure.host: Separate Solaris/SPARC and x86 baselines.
3552 * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
3553 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
3554 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
3555 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
3557 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
3558 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
3559 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
3560 * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
3561 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
3562 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
3563 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
3565 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
3566 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
3567 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
3569 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
3570 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
3571 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
3572 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
3573 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
3574 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
3576 2017-02-01 Jonathan Wakely <jwakely@redhat.com>
3579 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
3581 (_Iter_comp_to_iter): Likewise.
3582 * testsuite/25_algorithms/search/78346.cc: New test.
3585 * config/abi/pre/gnu.ver: Remove recently added symbols.
3586 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
3587 (basic_string::_M_copy_assign): Remove.
3588 (basic_string::operator=(const basic_string&)): Don't dispatch to
3589 _M_copy_assign. If source object is small just deallocate, otherwise
3590 perform new allocation before making any changes.
3591 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
3592 (basic_string::_M_copy_assign(const basic_string&, true_type)):
3594 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
3595 Test cases where the allocators are equal or the string is small.
3596 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
3599 2017-01-30 Ville Voutilainen <ville.voutilainen@gmail.com>
3601 Implement LWG 2825, LWG 2756 breaks class template argument
3602 deduction for optional.
3603 * include/std/optional: Add a deduction guide.
3604 * testsuite/20_util/optional/cons/deduction_guide.cc: New.
3606 2017-01-27 Jonathan Wakely <jwakely@redhat.com>
3609 * config/abi/pre/gnu.ver: Add new symbols.
3610 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
3611 (basic_string::_M_copy_assign): New overloaded functions to perform
3613 (basic_string::operator=(const basic_string&)): Dispatch to
3615 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
3616 (basic_string::_M_copy_assign(const basic_string&, true_type)):
3617 Define, performing rollback on exception.
3618 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
3619 Test exception-safety guarantee.
3620 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
3622 * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
3625 2017-01-26 Jonathan Wakely <jwakely@redhat.com>
3628 * include/tr1/complex (conj): Remove using-declaration and restore
3629 overloads, reverting previous change.
3631 * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
3633 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
3634 Mark as unsupported in C++98 mode.
3635 * testsuite/23_containers/queue/requirements/constructible.cc:
3637 * testsuite/23_containers/stack/requirements/constructible.cc:
3639 * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
3642 * include/bits/c++config (literals::string_view_literals::__7): Add.
3643 Only declare versioned namespaces for the relevant C++ dialects.
3644 * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
3645 Add versioning macros.
3646 * include/experimental/bits/lfts_config.h:
3647 (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
3648 * include/experimental/string_view (fundamentals_v2::__detail):
3649 Add versioning macros.
3650 (fundamentals_v2::__detail::__identity): Remove.
3651 (fundamentals_v2::__detail::__idt): Use common_type instead of
3652 __detail::__identity.
3653 * include/std/string_view (__detail::__identity, __detail::__idt):
3655 (literals::string_view_literals): Fix nesting of versioning macros.
3658 * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
3659 [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
3660 && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
3661 Retrieve original pointer value allocated by malloc.
3662 * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
3663 && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
3664 && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
3665 Define, adjusting pointer value allocated by malloc and storing for
3666 retrieval by operator delete.
3668 2017-01-26 Jakub Jelinek <jakub@redhat.com>
3670 * libsupc++/eh_atomics.h: Update copyright years.
3671 * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
3673 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
3677 * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
3678 (proj(T), conj(T)): Change return types per DR 1522.
3679 * include/tr1/complex (conj): Remove overloads and use std::conj.
3680 * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
3681 * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
3682 * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
3683 real(T) and imag(T). Allow testing for C++11 too.
3685 2017-01-24 Jonathan Wakely <jwakely@redhat.com>
3688 * include/experimental/string_view (operator==): Check sizes first.
3689 * include/std/string_view (operator==): Likewise.
3691 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
3693 * testsuite/experimental/array/make_array.cc: Restore <functional>
3696 2017-01-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
3698 * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
3700 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
3703 * include/experimental/array (__make_array_elem): New class template
3704 and partial specialization.
3705 (__is_reference_wrapper): Move into __make_array_elem specialization.
3706 (make_array): Use __make_array_elem to determine element type and move
3707 static assertion into specialization. Qualify std::forward call.
3708 (to_array): Add exception specifiation.
3709 * testsuite/experimental/array/make_array.cc: Test argument types
3710 without a common type.
3711 * testsuite/experimental/array/neg.cc: Adjust expected error message.
3713 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
3715 * doc/xml/manual/debug.xml: code.google.com uses https now.
3717 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
3719 * doc/xml/manual/test.xml: Fix link into gccint online manual.
3721 2017-01-21 Ville Voutilainen <ville.voutilainen@gmail.com>
3723 Make poisoned hashes SFINAE away the call operator of the hash.
3724 * include/bits/functional_hash.h
3725 (__poison_hash::__enable_hash_call): New.
3726 * include/std/optional (__optional_hash_call_base): New.
3727 (hash<optional<_Tp>>): Derive from the new base,
3728 move the hash function into that base.
3729 * include/std/variant (__variant_hash_call_base_impl): New.
3730 (__variant_hash_call_base): Likewise.
3731 (hash<variant<_Types...>>): Derive from the new base,
3732 move the hash function into that base.
3733 * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
3734 * testsuite/20_util/variant/hash.cc: Likewise.
3736 2017-01-20 Joe Seymour <joe.s@somniumtech.com>
3738 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
3739 * configure: Regenerate.
3741 2017-01-20 Jonathan Wakely <jwakely@redhat.com>
3744 * include/bits/random.h (uniform_real_distribution::param_type)
3745 (normal_distribution::param_type, lognormal_distribution::param_type)
3746 (gamma_distribution::param_type, chi_squared_distribution::param_type)
3747 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
3748 (student_t_distribution::param_type)
3749 (bernoulli_distribution::param_type, binomial_distribution::param_type)
3750 (geometric_distribution::param_type)
3751 (negative_binomial_distribution::param_type)
3752 (poisson_distribution::param_type)
3753 (exponential_distribution::param_type)
3754 (weibull_distribution::param_type)
3755 (extreme_value_distribution::param_type)
3756 (discrete_distribution::param_type)
3757 (piecewise_constant_distribution::param_type)
3758 (piecewise_linear_distribution::param_type): Define operator!=.
3759 * include/bits/uniform_int_dist.h
3760 (uniform_int_distribution::param_type): Likewise.
3761 * include/ext/random (beta_distribution::param_type)
3762 (rice_distribution::param_type, nakagami_distribution::param_type)
3763 (pareto_distribution::param_type, k_distribution::param_type)
3764 (arcsine_distribution::param_type, hoyt_distribution::param_type)
3765 (triangular_distribution::param_type)
3766 (von_mises_distribution::param_type)
3767 (hypergeometric_distribution::param_type)
3768 (logistic_distribution::param_type)
3769 (uniform_on_sphere_distribution::param_type)
3770 (uniform_inside_sphere_distribution::param_type): Likewise.
3771 * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
3772 Test construction with param_type.
3773 * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
3775 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
3777 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
3779 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
3781 * testsuite/26_numerics/random/extreme_value_distribution/cons/
3783 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
3785 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
3787 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
3789 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
3791 * testsuite/26_numerics/random/negative_binomial_distribution/cons/
3793 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
3795 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
3797 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
3799 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
3801 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
3803 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
3805 * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
3806 * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
3807 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
3808 * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
3810 * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
3811 * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
3812 * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
3813 * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
3814 * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
3815 * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
3816 * testsuite/ext/random/triangular_distribution/cons/parms.cc:
3818 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
3820 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
3823 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
3824 (__allocator_traits_base::__size_type): Remove.
3825 (allocator_traits::_Ptr): New class template to detect const and void
3826 pointer types without instantiating pointer_traits::rebind
3828 (allocator_traits::_Diff): Likewise for detecting difference_type.
3829 (allocator_traits::_Size): New class template to detect size_type
3830 without instantiating make_unsigned unnecessarily.
3831 * include/bits/ptr_traits.h (pointer_traits::element_type): Use
3832 __detected_or_t instead of __detected_or_t_.
3833 * include/std/type_traits (__detected_or_t_): Remove.
3834 * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
3838 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
3839 Replace with class template using void_t.
3840 (__alloc_rebind): Define in terms of
3841 __allocator_traits_base::__rebind.
3842 (allocator_traits): Remove unconditional static_assert for
3844 * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
3845 (pointer_traits::__rebind): Replace with class template using void_t.
3846 (pointer_traits::rebind): Define in terms of __rebind.
3847 (pointer_traits): Remove unconditional static_assert for rebind.
3848 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
3849 * testsuite/20_util/pointer_traits/rebind.cc: New test.
3852 * include/experimental/any (__any_caster): Avoid instantiating
3853 manager function for types that can't be stored in any.
3854 * include/std/any (__any_caster): Likewise.
3855 * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
3856 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
3859 * include/bits/stl_algo.h (is_partitioned): Use increment instead of
3862 2017-01-19 Jonathan Wakely <jwakely@redhat.com>
3865 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
3867 (__enable_shared_from_this): Declare __shared_ptr as a friend.
3868 * testsuite/ext/shared_ptr/1.cc: New test.
3871 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
3873 * testsuite/25_algorithms/is_partitioned/2.cc: New test.
3875 * doc/xml/manual/abi.xml: Fix typo.
3876 * doc/html/manual/abi.html: Likewise.
3879 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
3880 converting constructors from _Iter_less_iter.
3881 (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
3883 (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
3884 (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
3885 * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
3886 (__make_heap, __sort_heap): Change _Compare parameters to references.
3887 (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
3888 (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
3889 functions as lvalues.
3890 (is_heap): Call __is_heap_until directly to avoid copying __comp.
3891 * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
3892 count copies during construction with empty sequence.
3895 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
3896 (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
3897 * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
3899 * testsuite/25_algorithms/make_heap/movable.cc: New test.
3902 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
3903 (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
3904 _GLIBCXX_MOVE when passing comparison function to other functions.
3905 (is_heap_until, is_heap): Use std::move when passing comparison
3907 * testsuite/23_containers/priority_queue/67085.cc: New test.
3910 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
3911 macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
3912 Document that the deprecated _GLIBCXX_VERSION macro was removed for
3914 * doc/html/*: Regenerate.
3915 * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
3916 * include/Makefile.in: Regenerate.
3917 * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
3918 * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
3921 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
3924 * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
3925 aligned buffer instead of default-initialized variable.
3926 * testsuite/29_atomics/atomic/69301.cc: New test.
3927 * include/experimental/memory (observer_ptr::release): Use reserved
3929 * include/ext/pointer.h (_Pointer_adapter::operator++(int))
3930 (_Pointer_adapter::operator--(int)): Likewise.
3933 * include/experimental/random (randint): Use temporary instead of
3934 thread_local static.
3936 2017-01-17 Joshua Conner <joshconner@google.com>
3938 * crossconfig.m4: Add fuchsia OS.
3939 * configure: Regenerate.
3941 2017-01-17 Jonathan Wakely <jwakely@redhat.com>
3944 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
3945 __GLIBCXX__ macro is not useful. Remove redundant date information
3946 and link to the GCC release timeline.
3947 (abi.versioning.active): Move partial sentence into the previous
3949 * doc/html/*: Regenerate.
3952 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
3953 of remove_reference.
3954 * testsuite/18_support/nested_exception/79114.cc: New test.
3956 2017-01-17 Jakub Jelinek <jakub@redhat.com>
3959 * configure.ac: Add GCC_BASE_VER.
3960 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
3961 get version from BASE-VER file.
3962 * po/Makefile.in: Regenerated.
3963 * libsupc++/Makefile.in: Regenerated.
3964 * testsuite/Makefile.in: Regenerated.
3965 * src/Makefile.in: Regenerated.
3966 * configure: Regenerated.
3967 * Makefile.in: Regenerated.
3968 * include/Makefile.in: Regenerated.
3969 * doc/Makefile.in: Regenerated.
3970 * python/Makefile.in: Regenerated.
3971 * src/c++11/Makefile.in: Regenerated.
3972 * src/c++98/Makefile.in: Regenerated.
3973 * src/filesystem/Makefile.in: Regenerated.
3975 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
3978 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
3980 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
3981 for test, so new ios::failure can be caught.
3982 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
3983 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
3984 exceptions_failbit.cc: Likewise.
3985 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
3986 exceptions_failbit.cc: Likewise.
3987 * testsuite/27_io/basic_istream/extractors_other/char/
3988 exceptions_null.cc: Likewise.
3989 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
3990 exceptions_null.cc: Likewise.
3991 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
3992 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
3993 * testsuite/27_io/basic_ostream/inserters_other/char/
3994 exceptions_null.cc: Likewise.
3995 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
3996 exceptions_null.cc: Likewise.
3997 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
4000 * include/bits/locale_classes.h (locale::facet::__shim): Change from
4001 private to protected.
4002 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
4003 make locale::facet::__shim accessible.
4005 2017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
4008 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
4009 (merge(list&&, _StrictWeakOrdering)): Likewise.
4010 * testsuite/23_containers/list/operations/78389.cc: Add
4011 better test for the sizes.
4013 2017-01-14 Jonathan Wakely <jwakely@redhat.com>
4015 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
4016 Skip test when -D_GLIBCXX_PROFILE mode is included in options.
4017 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
4018 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
4020 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
4021 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
4022 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
4023 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
4024 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
4026 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
4028 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
4030 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
4032 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
4034 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
4035 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
4036 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
4037 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
4038 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
4039 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
4040 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
4041 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
4042 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
4043 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
4044 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
4045 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
4046 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
4048 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
4051 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
4052 retry fclose on EINTR.
4054 * include/profile/base.h: Remove unused header that leads to header
4055 cycle in C++17 mode.
4058 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
4059 Make _If_sv private.
4060 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
4061 basic_string_view arguments.
4064 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
4065 redundant option from cxxflags.
4066 (check_effective_target_cxx11-abi): Define.
4067 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
4069 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
4070 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
4072 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
4074 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
4075 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
4077 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
4079 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
4080 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
4082 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
4084 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
4086 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
4088 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
4090 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
4092 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
4094 * testsuite/23_containers/list/61347.cc: Likewise.
4095 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
4096 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
4098 2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
4101 * include/bits/list.tcc (merge(list&&)):
4102 Adjust list sizes if the comparator throws.
4103 (merge(list&&, _StrictWeakOrdering)): Likewise.
4104 (sort()): Splice elements back from the scratch buffers
4105 if the comparator throws.
4106 (sort(_StrictWeakOrdering)): Likewise.
4107 * testsuite/23_containers/list/operations/78389.cc: New.
4109 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
4111 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
4112 XFAIL for C++17 until node reinsertion supports fancy pointers.
4115 * testsuite/20_util/add_pointer/value.cc: Test forming function
4118 2017-01-13 Michael Brune <lucdanton@free.fr>
4121 * include/std/type_traits (__is_referenceable): Handle noexcept
4124 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
4127 * include/bits/stl_queue.h (queue, priority_queue): Remove default
4128 member-initializers and define default constructors as templates with
4130 * include/bits/stl_stack.h (stack): Likewise.
4131 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
4133 * testsuite/23_containers/priority_queue/requirements/
4134 explicit_instantiation/1.cc: Test more instantiations.
4135 * testsuite/23_containers/priority_queue/requirements/
4136 explicit_instantiation/1_c++98.cc: Likewise.
4137 * testsuite/23_containers/queue/requirements/constructible.cc: New.
4138 * testsuite/23_containers/stack/requirements/constructible.cc: New.
4141 * doc/xml/manual/intro.xml: Document LWG 2781 change.
4142 * doc/html/*: Regenerate.
4143 * include/std/functional (_Function_base::_Ref_manager): Remove.
4144 (_Function_handler): Remove partial specializations for
4146 (function::target): Remove special case for const qualification.
4147 * testsuite/20_util/function/6.cc: Adjust tests for target type.
4148 * testsuite/20_util/function/7.cc: Likewise.
4149 * testsuite/20_util/function/8.cc: Likewise.
4151 2017-01-11 Jonathan Wakely <jwakely@redhat.com>
4154 * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
4155 (map::equal_range): Fix return type of heterogeneous overloads.
4156 * include/bits/stl_multimap.h (multimap::lower_bound)
4157 (multimap::upper_bound, multimap::equal_range): Likewise.
4158 * include/bits/stl_multiset.h (multiset::lower_bound)
4159 (multiset::upper_bound, multiset::equal_range): Likewise.
4160 * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
4161 (set::equal_range): Likewise.
4162 * testsuite/23_containers/map/operations/2.cc
4163 * testsuite/23_containers/multimap/operations/2.cc
4164 * testsuite/23_containers/multiset/operations/2.cc
4165 * testsuite/23_containers/set/operations/2.cc
4168 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
4169 the heterogeneous comparison can only find one match.
4170 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
4171 * testsuite/23_containers/map/operations/2.cc: Test count works with
4172 comparison function that just partitions rather than sorting.
4173 * testsuite/23_containers/set/operations/2.cc: Likewise.
4175 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
4177 Reduce the size of variant, it doesn't need an index of
4178 type size_t internally.
4179 * include/std/variant (parse_numbers.h): New include.
4180 (__select_index): New.
4181 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
4182 _index_type for comparison with variant_npos.
4183 (_Variant_storage<false, _Types...>::__index_type): New.
4184 (_Variant_storage<false, _Types...>::_M_index): Change the
4185 type from size_t to __index_type.
4186 (_Variant_storage<true, _Types...>::__index_type): New.
4187 (_Variant_storage<true, _Types...>::_M_index): Change the
4188 type from size_t to __index_type.
4189 (_Variant_base::_M_valid): Use _Storage::__index_type
4190 for comparison with variant_npos.
4191 (variant::index): Use _Base::_Storage::__index_type
4192 for comparison with variant_npos.
4193 * testsuite/20_util/variant/index_type.cc: New.
4195 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
4197 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
4198 effective target selector to prevent running in C++17 mode.
4201 * include/bits/stl_queue.h (queue::c): Add default member initializer.
4202 (queue::queue()): Add constructor and define as defaulted.
4203 (queue::queue(_Sequence&&)): Remove default argument.
4204 (priority_queue::c, priority_queue::comp): Add default member
4206 (priority_queue::priority_queue()): Add constructor and define as
4208 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
4209 Remove default argument for first parameter.
4210 * include/bits/stl_stack.h (stack::c): Add default member initializer.
4211 (stack::stack()): Add constructor and define as defaulted.
4212 (stack::stack(const _Sequence&)): Remove default argument.
4213 * testsuite/23_containers/priority_queue/requirements/
4214 explicit_instantiation/1.cc: Test explicit instantiation with
4215 non-DefaultConstructible sequence.
4216 * testsuite/23_containers/priority_queue/77528.cc: New test.
4217 * testsuite/23_containers/priority_queue/requirements/
4218 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
4219 * testsuite/23_containers/queue/77528.cc: New test.
4220 * testsuite/23_containers/queue/requirements/explicit_instantiation/
4221 1.cc: Test explicit instantiation with non-DefaultConstructible
4223 * testsuite/23_containers/queue/requirements/explicit_instantiation/
4224 1_c++0x.cc: Replace with 1_c++98.cc.
4225 * testsuite/23_containers/stack/77528.cc: New test.
4226 * testsuite/23_containers/stack/requirements/explicit_instantiation/
4227 1.cc: Test explicit instantiation with non-DefaultConstructible
4229 * testsuite/23_containers/stack/requirements/explicit_instantiation/
4230 1_c++0x.cc: Replace with 1_c++98.cc.
4232 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
4234 * include/bits/locale_facets_nonio.tcc
4235 (time_get::_M_extract_via_format): Avoid compilation errors with
4236 non-standard struct tm.
4238 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
4239 Jonathan Wakely <jwakely@redhat.com>
4241 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
4242 (is_specialization, strip_versioned_namespace): New helpers functions
4243 to work with symbols in the versioned namespace.
4244 (Printer.add_version): Add second name using versioned namespace.
4245 (add_one_template_type_printer, add_one_type_printer): Add second
4246 type printers using versioned namespace.
4247 (register_type_printers): Add template type printer for basic_string.
4248 (build_libstdcxx_dictionary): Remove dead code.
4249 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
4250 versioned namespace.
4251 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
4253 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
4255 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
4258 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
4259 functions separately on darwin and if they're missing define
4260 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
4261 * config.h.in: Regenerate.
4262 * configure: Regenerate.
4263 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
4264 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
4266 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
4267 to detect correct thread_local destructors.
4268 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
4271 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
4272 Aditya Kumar <hiraditya@msn.com>
4275 * include/bits/basic_string.tcc
4276 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
4278 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
4280 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
4281 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
4283 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
4284 Include <cassert> header.
4287 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
4288 * configure: Regenerate.
4290 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
4291 Jonathan Wakely <jwakely@redhat.com>
4293 * include/std/variant (variant, swap): Replace __and_ usage with fold
4296 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4299 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
4300 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
4301 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
4302 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
4304 * aclocal.m4: Regenerate.
4305 * configure: Regenerate.
4306 * Makefile.in, doc/Makefile.in, include/Makefile.in,
4307 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
4308 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
4309 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
4311 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
4313 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
4316 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
4317 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
4318 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
4319 move function objects.
4320 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
4321 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
4322 * testsuite/25_algorithms/sort/78991.cc: New test.
4324 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
4326 * include/bits/std_function.h (function::_Signature_type): Remove.
4327 (function::function(_Functor)): Adjust.
4329 2017-01-05 Tim Shen <timshen@google.com>
4332 * include/std/variant (__gen_vtable_impl): rename __unused to
4333 __dimensions to avoid naming conflict.
4335 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
4338 * config.h.in: Regenerate.
4339 * configure: Likewise.
4340 * configure.ac: Check for __cxa_thread_atexit.
4341 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
4342 Don't define __cxa_thread_atexit if libc provides it.
4344 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
4346 Implement 2801, Default-constructibility of unique_ptr.
4347 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
4348 (unique_ptr::_DeleterConstraint): Likewise.
4349 (unique_ptr()): Constrain.
4350 (unique_ptr(pointer)): Likewise.
4351 (unique_ptr(nullptr_t)): Likewise.
4352 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
4353 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
4354 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
4355 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
4356 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
4357 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
4358 * testsuite/20_util/unique_ptr/cons/default.cc: New.
4359 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
4361 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
4362 Jonathan Wakely <jwakely@redhat.com>
4365 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
4366 * config.h.in: Regenerate.
4367 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
4368 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
4369 exports for exception_ptr, nested_exception, and future conditional.
4370 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
4371 exports for exception_ptr, nested_exception, and future conditional.
4372 * configure: Regenerate.
4373 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
4374 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
4375 * libsupc++/eh_atomics.h: New file for internal use only.
4376 (__eh_atomic_inc, __eh_atomic_dec): New.
4377 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
4378 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
4379 (rethrow_exception): Use eh_atomics.h reference counting helpers.
4380 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
4381 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
4382 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
4383 * libsupc++/exception_ptr.h: Likewise.
4384 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
4385 * libsupc++/nested_exception.cc: Remove check for
4386 ATOMIC_INT_LOCK_FREE.
4387 * libsupc++/nested_exception.h: Likewise.
4388 * src/c++11/future.cc: Likewise.
4389 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
4390 * testsuite/18_support/nested_exception/*: Likewise.
4391 * testsuite/30_threads/async/*: Likewise.
4392 * testsuite/30_threads/future/*: Likewise.
4393 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
4394 * testsuite/30_threads/packaged_task/*: Likewise.
4395 * testsuite/30_threads/promise/*: Likewise.
4396 * testsuite/30_threads/shared_future/*: Likewise.
4398 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
4400 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
4401 defaults to https; adjust reference.
4403 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
4406 * include/std/thread (thread(const thread&&)): Add deleted
4408 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
4410 * doc/xml/manual/spine.xml: Update copyright years.
4411 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
4412 * doc/xml/manual/test.xml: Likewise.
4413 * doc/html/*: Regenerate.
4415 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
4417 * doc/xml/faq.xml: Update address of C++ ABI link.
4418 * doc/xml/manual/abi.xml: Ditto.
4420 2017-01-01 Jakub Jelinek <jakub@redhat.com>
4422 Update copyright years.
4424 Copyright (C) 2017 Free Software Foundation, Inc.
4426 Copying and distribution of this file, with or without modification,
4427 are permitted in any medium without royalty provided the copyright
4428 notice and this notice are preserved.