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