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