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