PR target/82524
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob9a512b15b100f91f728f5b0a624799077425826f
1 2017-10-10  Jonathan Wakely  <jwakely@redhat.com>
3         * include/bits/streambuf_iterator.h (istreambuf_iterator::equal):
4         Update comment about NAD issue.
6         PR libstdc++/59087
7         PR libstdc++/82417
8         * include/c_compatibility/complex.h [!C++98 && __STRICT_ANSI__]: Do
9         not include C library's <complex.h>.
10         * testsuite/26_numerics/complex/c99.cc: Depend on __STRICT_ANSI__.
11         * testsuite/26_numerics/headers/complex.h/std_c++11.h: New test.
12         * testsuite/26_numerics/headers/complex.h/std_gnu++11.h: New test.
13         * testsuite/26_numerics/headers/complex.h/std_c++98.h: New test.
15 2017-10-05  Jonathan Wakely  <jwakely@redhat.com>
17         * testsuite/20_util/to_chars/1.cc: Add dg-require-string-conversions.
19 2017-10-04  Petr Ovtchenkov  <ptr@void-ptr.info>
20             François Dumont  <fdumont@gcc.gnu.org>
22         * include/bits/streambuf_iterator.h
23         (istreambuf_iterator<>::operator*()): Do not capture iterator state
24         in Debug assertion.
25         (istreambuf_iterator<>::operator++()): Likewise and remove _M_sbuf check.
26         (istreambuf_iterator<>::operator++(int)): Likewise.
27         (istreambuf_iterator<>::_M_get()): Remove _M_c assignment.
28         (istreambuf_iterator<>::_S_is_eof()): New.
29         (istreambuf_iterator<>::_M_at_eof()): Adapt, use latter.
30         (find(istreambuf_iterator<>, istreambuf_iterator<>, _CharT)):
31         Return an iterator with _M_c set to eof to capture streambuf state
32         on evaluation.
33         (testsuite/24_iterators/istreambuf_iterator/2.cc): Add checks.
35 2017-10-03  Jakub Jelinek  <jakub@redhat.com>
37         * include/std/charconv (__unsigned_least_t): Fix number of closing >s for
38         !_GLIBCXX_USE_INT128.
40 2017-10-02  Jonathan Wakely  <jwakely@redhat.com>
42         * include/Makefile.am: Add new <charconv> header.
43         * include/Makefile.in: Regenerate.
44         * include/precompiled/stdc++.h: Include <charconv>.
45         * include/std/charconv: New file.
46         (to_chars_result, to_chars, from_chars_result, from_chars): Define.
47         * testsuite/20_util/from_chars/1.cc: New test.
48         * testsuite/20_util/from_chars/1_neg.cc: New test.
49         * testsuite/20_util/from_chars/2.cc: New test.
50         * testsuite/20_util/from_chars/requirements.cc: New test.
51         * testsuite/20_util/to_chars/1.cc: New test.
52         * testsuite/20_util/to_chars/1_neg.cc: New test.
53         * testsuite/20_util/to_chars/2.cc: New test.
54         * testsuite/20_util/to_chars/requirements.cc: New test.
56 2017-09-27  François Dumont  <fdumont@gcc.gnu.org>
58         * testsuite/22_locale/money_get/get/char/22131.cc: Make test less
59         istreambuf_iterator implementation dependent.
60         * testsuite/22_locale/money_get/get/wchar_t/22131.cc: Likewise.
62 2017-09-25  Uros Bizjak  <ubizjak@gmail.com>
64         PR c/81854
65         * src/c++98/complex_io.cc (_GLIBCXX_LDBL_COMPAT): Declare alias
66         target as a C++ function with no prototype.
68 2017-09-21  Jonathan Wakely  <jwakely@redhat.com>
70         * testsuite/25_algorithms/clamp/1.cc: Fix order of arguments and
71         expected results when using predicate defining reverse order.
72         * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
74 2017-09-20  Jonathan Wakely  <jwakely@redhat.com>
76         PR libstdc++/79162
77         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
78         (basic_string::_If_sv): Remove from the overload set when the
79         argument is derived from basic_string.
81         PR libstdc++/79162
82         * include/bits/basic_string.h (basic_string::_If_sv): Remove from the
83         overload set when the argument is derived from basic_string.
84         * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: New
85         test.
86         * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
87         New test.
89         * testsuite/24_iterators/range_access_cpp17.cc: Fix order of dg-do
90         and dg-options directives. Fix invalid test.
92         PR libstdc++/81469
93         * libsupc++/exception (uncaught_exception): Deprecate for C++17.
94         * testsuite/18_support/exception_ptr/62258.cc: Add -Wno-deprecated.
95         * testsuite/18_support/uncaught_exception/14026.cc: Likewise.
97         * include/bits/c++config (_GLIBCXX17_DEPRECATED): Define.
98         * include/bits/functional_hash.h (__hash_base::result_type)
99         (__hash_base::argument_type): Add _GLIBCXX17_DEPRECATED.
100         * include/std/optional (hash<optional<T>>::result_type)
101         (hash<optional<T>>::argument_type): Add deprecated attribute.
102         (__is_fast_hash<hash<optional<T>>>): Add partial specialization.
103         * include/std/variant (hash<variant<Types...>>::result_type)
104         (hash<variant<Types...>>::argument_type): Add deprecated attribute.
105         (__is_fast_hash<hash<variant<Types...>>>): Add partial specialization.
107         * libsupc++/exception_ptr.h (copy_exception): Remove deprecated
108         non-standard function.
110         PR libstdc++/82262
111         * include/std/optional (__optional_hash_call_base): Add template
112         parameter for remove_const_t<_Tp> and use it consistently.
113         * testsuite/20_util/optional/hash.cc: Test optional<const T>.
115 2017-09-19  Jonathan Wakely  <jwakely@redhat.com>
117         PR libstdc++/71500
118         * include/bits/regex_executor.tcc
119         (_Backref_matcher<BidIt, regex_traits<C>>::_M_apply): Use
120         std::__equal4 instead of C++14 4-iterator overloads of std::equal.
121         * include/bits/stl_algobase.h (__equal4): New functions implementing
122         4-iterator overloads of std::equal for use in C++11.
123         (equal(It1, It1, It2, It2), equal(It1, It1, It2, It2, BinaryPred)):
124         Move function bodies to new __equal4 functions.
125         * testsuite/28_regex/simple_c++11.cc: New.
127         PR libstdc++/82254
128         * include/std/type_traits (__is_invocable): Add partial specialization
129         for INVOKE<void> case and remove is_void<R> check from partial
130         specialization for INVOKE<R> case.
131         (__is_nt_invocable_impl): New helper for is_nothrow_invocable_r.
132         (is_nothrow_invocable_r): Use __is_nt_invocable_impl.
133         * testsuite/20_util/is_nothrow_invocable/value.cc: Add tests for
134         conversions that can throw or fail to convert. Use static assert
135         strings to explain negative results.
136         * testsuite/20_util/is_nothrow_invocable/value_ext.cc: Use
137         is_nothrow_constructible in is_nt_invocable_conv.
139 2017-09-18  Jonathan Wakely  <jwakely@redhat.com>
141         PR libstdc++/81468
142         * testsuite/20_util/duration/cons/dr1177.cc: Fix incorrect test and
143         improve static assertion messages.
145         * include/std/utility (_Itup_cat, _Make_integer_sequence): Remove.
146         (_Build_index_tuple, make_integer_sequence): Use built-in to generate
147         pack expansion.
149         PR libstdc++/71187
150         * include/std/type_traits (__declval): New function to deduce return
151         type of declval.
152         (__declval_protector::_delegate): Remove.
153         (declval): Use __declval instead of add_rvalue_reference and
154         __declval_protector::__delegate.
155         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
156         lineno.
157         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
158         Likewise.
159         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
160         Likewise.
162 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
164         * testsuite/libstdc++-prettyprinters/cxx17.cc: Use -std=c++17 or
165         -std=gnu++17 instead of -std=c++1z or -std=gnu++1z.  Use c++17 instead
166         of c++1z and c++17_only instead of c++1z_only.  Adjust expected
167         diagnostics and comments refering to 1z to 17.
168         * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
169         * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
170         * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
171         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
172         * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
173         Likewise.
174         * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
175         * testsuite/18_support/launder/1.cc (test02): Likewise.
176         * testsuite/18_support/launder/requirements_neg.cc: Likewise.
177         * testsuite/18_support/launder/requirements.cc: Likewise.
178         * testsuite/18_support/byte/requirements.cc: Likewise.
179         * testsuite/18_support/byte/ops.cc: Likewise.
180         * testsuite/18_support/byte/global_neg.cc: Likewise.
181         * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
182         Likewise.
183         * testsuite/27_io/types/4.cc: Likewise.
184         * testsuite/25_algorithms/sample/81221.cc: Likewise.
185         * testsuite/25_algorithms/sample/1.cc: Likewise.
186         * testsuite/25_algorithms/sample/2.cc: Likewise.
187         * testsuite/25_algorithms/search/searcher.cc: Likewise.
188         * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
189         * testsuite/experimental/filesystem/path/construct/string_view.cc:
190         Likewise.
191         * testsuite/24_iterators/range_access_cpp17.cc: Likewise.
192         * testsuite/24_iterators/container_access.cc: Likewise.
193         * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
194         * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
195         * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
196         * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
197         * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
198         * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
199         * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
200         * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
201         * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
202         * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
203         * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
204         * testsuite/20_util/shared_ptr/cons/array.cc: Likewise.
205         * testsuite/20_util/shared_ptr/observers/array.cc (struct A): Likewise.
206         * testsuite/20_util/pair/cons/deduction.cc: Likewise.
207         * testsuite/20_util/variant/deduction.cc: Likewise.
208         * testsuite/20_util/tuple/78939.cc: Likewise.
209         * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
210         * testsuite/20_util/void_t/1.cc: Likewise.
211         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Likewise.
212         * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
213         * testsuite/20_util/addressof/requirements/constexpr.cc: Likewise.
214         * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
215         * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
216         Likewise.
217         * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
218         Likewise.
219         * testsuite/20_util/has_unique_object_representations/value.cc:
220         Likewise.
221         * testsuite/20_util/time_point/arithmetic/constexpr.cc: Likewise.
222         * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
223         * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
224         * testsuite/20_util/function/cons/deduction.cc: Likewise.
225         * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
226         Likewise.
227         * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
228         * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
229         Likewise.
230         * testsuite/20_util/is_aggregate/value.cc: Likewise.
231         * testsuite/26_numerics/lcm/1.cc: Likewise.
232         * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
233         * testsuite/26_numerics/gcd/1.cc: Likewise.
234         * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
235         * testsuite/26_numerics/valarray/deduction.cc: Likewise.
236         * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Likewise.
237         * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
238         * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
239         Likewise.
240         * testsuite/23_containers/array/cons/deduction.cc: Likewise.
241         * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
242         * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
243         Likewise.
244         * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
245         * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
246         Likewise.
247         * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
248         Likewise.
249         * testsuite/23_containers/list/cons/deduction.cc: Likewise.
250         * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
251         Likewise.
252         * testsuite/23_containers/forward_list/cons/deduction.cc: Likewise.
253         * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Likewise.
254         * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
255         Likewise.
256         * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
257         * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
258         Likewise.
259         * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
260         * testsuite/21_strings/basic_string/cons/char/deduction.cc: Likewise.
261         * testsuite/21_strings/basic_string/cons/char/79162.cc: Likewise.
262         * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
263         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
264         Likewise.
265         * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: Likewise.
266         * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
267         Likewise.
268         * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
269         Likewise.
270         * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
271         Likewise.
272         * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
273         Likewise.
274         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
275         Likewise.
276         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
277         Likewise.
279 2017-09-13  Jonathan Wakely  <jwakely@redhat.com>
281         PR libstdc++/81468
282         * include/std/chrono (__enable_if_is_duration)
283         (__disable_if_is_duration): New alias templates to simplify SFINAE.
284         (duration_cast, floor, ceil): Use __enable_if_is_duration.
285         (duration::__is_float, duration::__is_harmonic): New alias templates
286         to simplify SFINAE.
287         (duration::duration(const _Rep2&)): Use _Require, __is_float and
288         __is_harmonic.
289         (duration::duration(const duration<_Rep2, _Period2>&)): Likewise.
290         (__common_rep_type): Remove, replace with ...
291         (__common_rep_t): New alias template.
292         (operator*, operator/, operator%): Use __common_rep_t and
293         __disable_if_is_duration.
294         (time_point::time_point(const time_point<clock, _Dur2>&)): Add missing
295         constraint from LWG DR 1177.
296         * testsuite/20_util/duration/cons/dr1177.cc: New.
297         * testsuite/20_util/duration/literals/range.cc: Update dg-error line.
298         * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
299         * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
300         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
301         * testsuite/20_util/time_point/cons/81468.cc: New.
303         * doc/doxygen/mainpage.html: Fix broken URLs.
305         PR libstdc++/81835
306         * doc/xml/manual/extensions.xml: Replace unstable URL.
307         * doc/html/manual/ext_demangling.html: Regenerate.
308         * libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL.
310         * include/bits/allocated_ptr.h (__allocated_ptr::get): Use
311         __to_address.
312         (__allocated_ptr::_S_raw_ptr): Remove.
313         * include/bits/forward_list.h (_Fwd_list_base::_M_get_node): Use
314         __to_address.
315         * include/bits/hashtable_policy.h (_Hashtable_alloc): Likewise.
316         * include/bits/ptr_traits.h (__to_address): Define new function
317         template.
318         * include/bits/shared_ptr_base.h (__shared_ptr): Use __to_address.
319         (__shared_ptr::_S_raw_ptr): Remove.
320         * include/bits/stl_vector.h [__cplusplus >= 201103L]
321         (vector::_M_data_ptr): Use __to_address.
322         [__cplusplus < 201103L] (vector::_M_data_ptr): Don't dereference
323         possibly invalid pointers.
324         * include/ext/alloc_traits.h (__alloc_traits::construct)
325         (__alloc_traits::destroy): Use __to_address.
327 2017-09-12  Jonathan Wakely  <jwakely@redhat.com>
329         PR libstdc++/79433
330         * include/Makefile.am: Remove <bits/c++14_warning.h>.
331         * include/Makefile.in: Regenerate.
332         * include/bits/c++14_warning.h: Remove.
333         * include/experimental/algorithm: Do not include <c++14_warning.h>.
334         * include/experimental/any: Likewise.
335         * include/experimental/array: Likewise.
336         * include/experimental/bits/erase_if.h: Likewise.
337         * include/experimental/bits/lfts_config.h: Likewise.
338         * include/experimental/bits/shared_ptr.h: Likewise.
339         * include/experimental/bits/string_view.tcc: Likewise.
340         * include/experimental/chrono: Likewise.
341         * include/experimental/deque: Likewise.
342         * include/experimental/filesystem: Do not include <c++0x_warning.h>.
343         * include/experimental/forward_list: Do not include <c++14_warning.h>.
344         * include/experimental/functional: Likewise.
345         * include/experimental/iterator: Likewise.
346         * include/experimental/list: Likewise.
347         * include/experimental/map: Likewise.
348         * include/experimental/memory: Likewise.
349         * include/experimental/numeric: Likewise.
350         * include/experimental/optional: Likewise.
351         * include/experimental/propagate_const: Likewise.
352         * include/experimental/ratio: Likewise.
353         * include/experimental/regex: Likewise.
354         * include/experimental/set: Likewise.
355         * include/experimental/string: Likewise.
356         * include/experimental/string_view: Likewise.
357         * include/experimental/system_error: Likewise.
358         * include/experimental/tuple: Likewise.
359         * include/experimental/type_traits: Likewise.
360         * include/experimental/unordered_map: Likewise.
361         * include/experimental/unordered_set: Likewise.
362         * include/experimental/vector: Likewise.
363         * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error
364         line number.
365         * testsuite/experimental/array/neg.cc: Likewise.
366         * testsuite/experimental/propagate_const/assignment/move_neg.cc:
367         Likewise.
368         * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
369         * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
370         * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
371         * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
372         * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
374         PR libstdc++/79433
375         * doc/xml/manual/status_cxx2017.xml: Update feature-test macros.
376         * doc/html/*: Regenerate.
377         * include/Makefile.am: Remove <bits/c++17_warning.h>.
378         * include/Makefile.in: Regenerate.
379         * include/bits/c++17_warning.h: Remove.
380         * include/bits/string_view.tcc: Do not include <bits/c++17_warning.h>
381         for pre-C++17 modes.
382         * include/std/any: Likewise.
383         (__cpp_lib_any): Define.
384         * include/std/mutex (__cpp_lib_scoped_lock): Adjust value as per new
385         SD-6 draft.
386         * include/std/numeric (__cpp_lib_gcd_lcm): Define as per new SD-6
387         draft.
388         * include/std/optional: Do not include <bits/c++17_warning.h>.
389         (__cpp_lib_optional): Define.
390         * include/std/shared_mutex: Do not include <bits/c++14_warning.h>.
391         * include/std/string_view: Do not include <bits/c++17_warning.h>.
392         (__cpp_lib_string_view): Define.
393         * include/std/variant: Do not include <bits/c++17_warning.h>.
394         (__cpp_lib_variant): Define.
395         * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error line
396         numbers.
397         * testsuite/26_numerics/gcd/1.cc: Test for __cpp_lib_gcd_lcm.
398         * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
399         numbers.
400         * testsuite/26_numerics/lcm/1.cc: Test for __cpp_lib_gcd_lcm.
401         * testsuite/26_numerics/lcm/lcm_neg.cc: Adjust dg-error line
402         numbers.
403         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Adjust
404         expected value of __cpp_lib_scoped_lock.
406         PR libstdc++/70483
407         * include/experimental/bits/string_view.tcc (basic_string_view::find)
408         (basic_string_view::rfind, basic_string_view::find_first_of)
409         (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
410         (basic_string_view::find_last_not_of): Add constexpr specifier.
411         * include/experimental/string_view (basic_string_view::remove_prefix)
412         (basic_string_view::remove_suffix, basic_string_view::swap)
413         (basic_string_view::compare, basic_string_view::find)
414         (basic_string_view::rfind, basic_string_view::find_first_of)
415         (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
416         (basic_string_view::find_last_not_of, operator==, operator!=)
417         (operator<, operator>, operator<=, operator>=): Likewise.
418         * testsuite/experimental/string_view/operations/compare/char/70483.cc:
419         New.
421 2017-09-11  Jonathan Wakely  <jwakely@redhat.com>
423         PR libstdc++/70483
424         * include/bits/string_view.tcc (basic_string_view::find)
425         (basic_string_view::rfind, basic_string_view::find_first_of)
426         (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
427         (basic_string_view::find_last_not_of): Add constexpr specifier.
428         * include/std/string_view (basic_string_view::operator=)
429         (basic_string_view::rbegin, basic_string_view::rend)
430         (basic_string_view::crbegin, basic_string_view::crend)
431         (basic_string_view::remove_prefix, basic_string_view::remove_suffix)
432         (basic_string_view::swap, basic_string_view::compare)
433         (basic_string_view::find, basic_string_view::rfind)
434         (basic_string_view::find_first_of, basic_string_view::find_last_of)
435         (basic_string_view::find_first_not_of)
436         (basic_string_view::find_last_not_of, basic_string_view::_M_check)
437         (basic_string_view::_M_limit, operator==, operator!=, operator<)
438         (operator>, operator<=, operator>=): Likewise.
439         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
440         char/1.cc: Repeat tests in constexpr context.
441         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
442         wchar_t/1.cc: Likewise.
443         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
444         char/1.cc: Likewise.
445         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
446         wchar_t/1.cc: Likewise.
447         * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
448         Likewise.
449         * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
450         Likewise.
451         * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
452         Likewise.
453         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
454         Likewise.
455         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
456         Likewise.
457         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
458         Likewise.
459         * testsuite/21_strings/basic_string_view/operators/char/2.cc:
460         Likewise.
461         * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
462         Likewise.
463         * testsuite/21_strings/basic_string_view/range_access/char/1.cc: Test
464         cbegin, cend, rbegin, rend, crbegin and crend.
465         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
466         Likewise.
467         * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
468         Remove trailing whitespace.
469         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
470         1.cc: Likewise.
471         * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
472         New.
473         * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
474         New.
475         * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
476         New.
477         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
478         2.cc: New.
480 2017-09-11  Tim Shen  <timshen@google.com>
482         PR libstdc++/71500
483         * include/bits/regex_executor.tcc: Support icase in regex_traits<...>
484         for back reference matches.
485         * testsuite/28_regex/regression.cc: Test case.
487 2017-09-11  Jonathan Wakely  <jwakely@redhat.com>
489         * testsuite/21_strings/basic_string/lwg2946.cc: Adjust for
490         compatibility with old COW std::string.
492 2017-09-09  Gerald Pfeifer  <gerald@pfeifer.com>
494         * doc/xml/manual/allocator.xml: Adjust link for Hoard.
495         * doc/html/manual/memory.html: Regenerate.
497 2017-09-04  Daniel Kruegler  <daniel.kruegler@gmail.com>
499         PR libstdc++/79162
500         Implement LWG 2946, LWG 2758's resolution missed further corrections
501         * include/bits/basic_string.h (basic_string::compare): Add missing
502         required noexcept specifications.
503         (basic_string): Introduce internal _S_to_string_view and __sv_wrapper
504         for implicit string_view conversion.
505         (basic_string::basic_string): Fix explicit string_view conversion by
506         implicit conversion using _S_to_string_view and __sv_wrapper.
507         (basic_string): Introduce internal basic_string(__sv_wrapper, Alloc)
508         constructor.
509         (basic_string): Fix operator=(T) template by operator=(const T&)
510         template for uncopyable types (PR 79162).
511         (basic_string::operator+=, basic_string::append, basic_string::assign)
512         (basic_string::insert, basic_string::replace, basic_string::find)
513         (basic_string::rfind, basic_string::find_first_of)
514         (basic_string::find_last_of, basic_string::find_first_not_of)
515         (basic_string::find_last_not_of, basic_string::compare): Replace
516         __sv_type argument by template const T& (LWG 2946) and correct
517         documentation describing __sv_type argument.
518         (basic_string::find, basic_string::rfind, basic_string::find_first_of)
519         (basic_string::find_last_of, basic_string::find_first_not_of)
520         (basic_string::find_last_not_of, basic_string::compare): Replace
521         unconditional noexcept specification by conditional noexcept
522         specification to partially balance the removal of noexcept by LWG 2946.
523         * testsuite/21_strings/basic_string/79162.cc: New.
524         * testsuite/21_strings/basic_string/lwg2946.cc: New.
526 2017-08-31  Jonathan Wakely  <jwakely@redhat.com>
528         PR c++/82039
529         * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
530         Adjust null pointer constant to avoid warning.
532 2017-08-24  François Dumont  <fdumont@gcc.gnu.org>
534         * include/bits/stl_list.h
535         [!_GLIBCXX_INLINE_VERSION](_List_base<>::_S_distance): Remove.
536         (_List_impl(_Node_alloc_type&&, _List_impl&&)): New.
537         (_List_base(_Node_alloc_type&&, _List_base&&)): New, use latter.
538         [!_GLIBCXX_INLINE_VERSION](_List_base(_Node_alloc_type&&,_List_base&&)):
539         Remove.
540         (_List_base(_Node_alloc_type&&)): New.
541         [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_distance): Remove.
542         [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_node_count): Remove.
543         (list<>::_M_node_count): New.
544         (list<>::size()): Adapt to call latter.
545         (list<>::_S_distance(const_iterator, const_iterator)): New.
546         (list<>::splice(iterator, list&, const_iterator, const_iterator)):
547         Adapt to call latter.
548         (list(list&&, const allocator_type&, true_type)): New.
549         (list(list&&, const allocator_type&, false_type)): New.
550         (list(list&&, const allocator_type&)): Adapt to call latters.
552 2017-08-21  Jonathan Wakely  <jwakely@redhat.com>
554         PR libstdc++/81912
555         * include/bits/stl_iterator_base_types.h (__iterator_category): Add
556         constexpr for C++11 and later.
557         * testsuite/24_iterators/container_access.cc: Add target selector.
558         * testsuite/24_iterators/range_access.cc: Fix clause number in
559         comment.
560         * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
561         * testsuite/24_iterators/range_access_cpp17.cc: New.
563 2017-08-21  Richard Biener  <rguenther@suse.de>
565         * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Run all
566         tests with -flto as well if supported.
568 2017-08-20  Martin Sebor  <msebor@redhat.com>
570         PR c/81854
571         * src/c++98/compatibility.cc (_GLIBCXX_3_4_SYMVER): Declare alias
572         target as a C++ function with no prototype.
573         (_GLIBCXX_3_4_5_SYMVER): Ditto.
575 2017-08-20  John David Anglin  <danglin@gcc.gnu.org>
577         PR testsuite/81056
578         * testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__.
580 2017-08-18  Jonathan Wakely  <jwakely@redhat.com>
582         * include/bits/hashtable_policy.h (_ReuseOrAllocNode): Remove
583         __value_alloc_type and __value_alloc_traits typedefs.
584         (_ReuseOrAllocNode::operator()): Call construct and destroy on the
585         node allocator.
586         (_Hashtable_alloc): Simplify __value_alloc_traits typedef.
587         (_Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&&...)): Call
588         construct on the node allocator.
589         (_Hashtable_alloc<_NodeAlloc>::_M_deallocate_node(__node_type*)): Call
590         destroy on the node allocator.
592         PR libstdc++/81891
593         * include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
594         size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
595         const _ExtractKey&, const allocator_type&)): Let destructor do clean
596         up if an exception is thrown.
597         * testsuite/23_containers/unordered_map/cons/81891.cc: New.
599 2017-08-11  Jonathan Wakely  <jwakely@redhat.com>
601         PR libstdc++/81808
602         * testsuite/27_io/basic_fstream/53984.cc: Adjust test for targets
603         that allow opening a directory as a FILE and reading from it.
605 2017-08-09  Jonathan Wakely  <jwakely@redhat.com>
607         * include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP):
608         Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use
609         __is_identifier to set it.
611 2017-08-09  Katsuhiko Nishimra  <ktns.87@gmail.com>
613         * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
614         __is_identifier instead of __has_builtin.
616 2017-08-09  Jonathan Wakely  <jwakely@redhat.com>
618         PR libstdc++/79820
619         PR libstdc++/81751
620         * config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)):
621         Call fflush on the stream instead of calling sync() while _M_cfile is
622         null. Restore original value of errno.
623         * testsuite/ext/stdio_filebuf/char/79820.cc: New.
624         * testsuite/ext/stdio_filebuf/char/81751.cc: New.
626 2017-07-31  Marek Polacek  <polacek@redhat.com>
628         PR libstdc++/81599
629         * include/bits/stl_stack.h: Fix typo.
631 2017-07-26  Jonathan Wakely  <jwakely@redhat.com>
633         * testsuite/27_io/basic_fstream/53984.cc: Fix test.
635 2017-07-26  Paolo Carlini  <paolo.carlini@oracle.com>
637         * testsuite/27_io/basic_fstream/53984.cc: Fix typo in dg-require
638         directive.
640 2017-07-25  Jonathan Wakely  <jwakely@redhat.com>
642         PR libstdc++/53984
643         * include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment.
644         * include/bits/istream.tcc (basic_istream::sentry): Handle exceptions
645         during construction.
646         * include/std/istream: Adjust comments for formatted input functions
647         and unformatted input functions.
648         * testsuite/27_io/basic_fstream/53984.cc: New.
649         * testsuite/27_io/basic_istream/sentry/char/53984.cc: New.
651         * include/bits/ios_base.h (ios_base::io_state, ios_base::open_mode)
652         (ios_base::seek_dir): Remove for C++17.
653         * include/std/streambuf (basic_streambuf::stossc): Remove for C++17.
654         Add deprecated attribute for C++11 and C++14.
655         * testsuite/27_io/types/1.cc: Don't run for C++17 and later.
656         * testsuite/27_io/types/4.cc: New.
658 2017-07-23  Michael Collison  <michael.collison@arm.com>
660         Add optimized implementation of mersenne twister for aarch64
661         * config/cpu/aarch64/opt/ext/opt_random.h: New file.
662         (__arch64_recursion): New function.
663         (__aarch64_lsr_128): New function.
664         (__aarch64_lsl_128): New function.
665         (operator==): New function.
666         (simd_fast_mersenne_twister_engine): Implement
667         method _M_gen_rand.
668         * config/cpu/aarch64/opt/bits/opt_random.h: New file.
669         * include/ext/random: (simd_fast_mersenne_twister_engine):
670         add _M_state private array.
672 2017-07-23  François Dumont  <fdumont@gcc.gnu.org>
674         PR libstdc++/81064
675         * include/bits/algorithmfwd.h: Reorganize versioned namespace.
676         * include/bits/basic_string.h: Likewise.
677         * include/bits/c++config: Likewise.
678         * include/bits/deque.tcc: Likewise.
679         * include/bits/forward_list.h: Likewise.
680         * include/bits/forward_list.tcc: Likewise.
681         * include/bits/hashtable_policy.h: Likewise.
682         * include/bits/list.tcc: Likewise.
683         * include/bits/move.h: Likewise.
684         * include/bits/quoted_string.h: Likewise.
685         * include/bits/random.h: Likewise.
686         * include/bits/random.tcc: Likewise.
687         * include/bits/regex.h: Likewise.
688         * include/bits/regex.tcc: Likewise.
689         * include/bits/regex_automaton.h: Likewise.
690         * include/bits/regex_automaton.tcc: Likewise.
691         * include/bits/regex_compiler.h: Likewise.
692         * include/bits/regex_compiler.tcc: Likewise.
693         * include/bits/regex_constants.h: Likewise.
694         * include/bits/regex_error.h: Likewise.
695         * include/bits/regex_executor.h: Likewise.
696         * include/bits/regex_executor.tcc: Likewise.
697         * include/bits/regex_scanner.h: Likewise.
698         * include/bits/regex_scanner.tcc: Likewise.
699         * include/bits/specfun.h: Likewise.
700         * include/bits/stl_algo.h: Likewise.
701         * include/bits/stl_algobase.h: Likewise.
702         * include/bits/stl_bvector.h: Likewise.
703         * include/bits/stl_deque.h: Likewise.
704         * include/bits/stl_iterator.h: Likewise.
705         * include/bits/stl_iterator_base_funcs.h: Likewise.
706         * include/bits/stl_list.h: Likewise.
707         * include/bits/stl_map.h: Likewise.
708         * include/bits/stl_multimap.h: Likewise.
709         * include/bits/stl_multiset.h: Likewise.
710         * include/bits/stl_relops.h: Likewise.
711         * include/bits/stl_set.h: Likewise.
712         * include/bits/stl_vector.h: Likewise.
713         * include/bits/uniform_int_dist.h: Likewise.
714         * include/bits/unordered_map.h: Likewise.
715         * include/bits/unordered_set.h: Likewise.
716         * include/bits/vector.tcc: Likewise.
717         * include/c_global/cmath: Likewise.
718         * include/c_std/cmath: Likewise.
719         * include/decimal/decimal: Likewise.
720         * include/decimal/decimal.h: Likewise.
721         * include/experimental/algorithm: Likewise.
722         * include/experimental/any: Likewise.
723         * include/experimental/array: Likewise.
724         * include/experimental/bits/erase_if.h: Likewise.
725         * include/experimental/bits/fs_dir.h: Likewise.
726         * include/experimental/bits/fs_fwd.h: Likewise.
727         * include/experimental/bits/fs_ops.h: Likewise.
728         * include/experimental/bits/fs_path.h: Likewise.
729         * include/experimental/bits/lfts_config.h: Likewise.
730         * include/experimental/bits/shared_ptr.h: Likewise.
731         * include/experimental/bits/string_view.tcc: Likewise.
732         * include/experimental/chrono: Likewise.
733         * include/experimental/deque: Likewise.
734         * include/experimental/filesystem: Likewise.
735         * include/experimental/forward_list: Likewise.
736         * include/experimental/functional: Likewise.
737         * include/experimental/iterator: Likewise.
738         * include/experimental/list: Likewise.
739         * include/experimental/map: Likewise.
740         * include/experimental/memory: Likewise.
741         * include/experimental/memory_resource: Likewise.
742         * include/experimental/numeric: Likewise.
743         * include/experimental/optional: Likewise.
744         * include/experimental/propagate_const: Likewise.
745         * include/experimental/random: Likewise.
746         * include/experimental/ratio: Likewise.
747         * include/experimental/regex: Likewise.
748         * include/experimental/set: Likewise.
749         * include/experimental/source_location: Likewise.
750         * include/experimental/string: Likewise.
751         * include/experimental/string_view: Likewise.
752         * include/experimental/system_error: Likewise.
753         * include/experimental/tuple: Likewise.
754         * include/experimental/type_traits: Likewise.
755         * include/experimental/unordered_map: Likewise.
756         * include/experimental/unordered_set: Likewise.
757         * include/experimental/utility: Likewise.
758         * include/experimental/vector: Likewise.
759         * include/ext/bitmap_allocator.h: Likewise.
760         * include/ext/codecvt_specializations.h: Likewise.
761         * include/ext/rope: Likewise.
762         * include/ext/typelist.h: Likewise.
763         * include/std/chrono: Likewise.
764         * include/std/complex: Likewise.
765         * include/std/functional: Likewise.
766         * include/std/numeric: Likewise.
767         * include/std/string_view: Likewise.
768         * include/std/thread: Likewise.
769         * include/std/variant: Likewise.
770         * include/tr1/array: Likewise.
771         * include/tr1/bessel_function.tcc: Likewise.
772         * include/tr1/beta_function.tcc: Likewise.
773         * include/tr1/cmath: Likewise.
774         * include/tr1/complex: Likewise.
775         * include/tr1/ell_integral.tcc: Likewise.
776         * include/tr1/exp_integral.tcc: Likewise.
777         * include/tr1/functional: Likewise.
778         * include/tr1/functional_hash.h: Likewise.
779         * include/tr1/gamma.tcc: Likewise.
780         * include/tr1/hashtable.h: Likewise.
781         * include/tr1/hashtable_policy.h: Likewise.
782         * include/tr1/hypergeometric.tcc: Likewise.
783         * include/tr1/legendre_function.tcc: Likewise.
784         * include/tr1/modified_bessel_func.tcc: Likewise.
785         * include/tr1/poly_hermite.tcc: Likewise.
786         * include/tr1/poly_laguerre.tcc: Likewise.
787         * include/tr1/random.h: Likewise.
788         * include/tr1/random.tcc: Likewise.
789         * include/tr1/regex: Likewise.
790         * include/tr1/riemann_zeta.tcc: Likewise.
791         * include/tr1/shared_ptr.h: Likewise.
792         * include/tr1/special_function_util.h: Likewise.
793         * include/tr1/tuple: Likewise.
794         * include/tr1/type_traits: Likewise.
795         * include/tr1/unordered_map.h: Likewise.
796         * include/tr1/unordered_set.h: Likewise.
797         * include/tr1/utility: Likewise.
798         * include/tr2/bool_set: Likewise.
799         * include/tr2/bool_set.tcc: Likewise.
800         * include/tr2/dynamic_bitset: Likewise.
801         * include/tr2/dynamic_bitset.tcc: Likewise.
802         * include/tr2/ratio: Likewise.
803         * include/tr2/type_traits: Likewise.
804         * src/c++11/chrono.cc: Likewise.
805         * src/c++11/compatibility-c++0x.cc: Likewise.
806         * src/c++11/compatibility-chrono.cc: Likewise.
807         * src/c++11/cxx11-shim_facets.cc: Likewise.
808         * src/c++11/hashtable_c++0x.cc: Likewise.
809         * src/c++11/placeholders.cc: Likewise.
810         * src/c++11/thread.cc: Likewise.
811         * src/c++98/bitmap_allocator.cc: Likewise.
812         * src/c++98/hashtable_tr1.cc: Likewise.
813         * src/c++98/list.cc: Likewise.
814         * src/shared/hashtable-aux.cc: Likewise.
815         * testsuite/20_util/duration/literals/range.cc: Adapt line number.
816         * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
817         * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
818         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
819         * testsuite/20_util/forward/c_neg.cc: Likewise.
820         * testsuite/20_util/forward/f_neg.cc: Likewise.
821         * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
822         * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
823         * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
824         * python/libstdcxx/v6/printers.py: Adapt.
826 2017-07-20  Jonathan Wakely  <jwakely@redhat.com>
828         * config/allocator/malloc_allocator_base.h [__SANITIZE_ADDRESS__]
829         (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
830         * config/allocator/new_allocator_base.h [__SANITIZE_ADDRESS__]
831         (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
832         * doc/xml/manual/using.xml (_GLIBCXX_SANITIZE_VECTOR): Document macro.
833         * include/bits/stl_vector.h [_GLIBCXX_SANITIZE_VECTOR]
834         (_Vector_impl::_Asan, _Vector_impl::_Asan::_Reinit)
835         (_Vector_impl::_Asan::_Grow, _GLIBCXX_ASAN_ANNOTATE_REINIT)
836         (_GLIBCXX_ASAN_ANNOTATE_GROW, _GLIBCXX_ASAN_ANNOTATE_GREW)
837         (_GLIBCXX_ASAN_ANNOTATE_SHRINK, _GLIBCXX_ASAN_ANNOTATE_BEFORE_DEALLOC):
838         Define annotation helper types and macros.
839         (vector::~vector, vector::push_back, vector::pop_back)
840         (vector::_M_erase_at_end): Add annotations.
841         * include/bits/vector.tcc (vector::reserve, vector::emplace_back)
842         (vector::insert, vector::_M_erase, vector::operator=)
843         (vector::_M_fill_assign, vector::_M_assign_aux)
844         (vector::_M_insert_rval, vector::_M_emplace_aux)
845         (vector::_M_insert_aux, vector::_M_realloc_insert)
846         (vector::_M_fill_insert, vector::_M_default_append)
847         (vector::_M_shrink_to_fit, vector::_M_range_insert): Annotate.
849 2017-07-19  Jonathan Wakely  <jwakely@redhat.com>
851         PR libstdc++/81476
852         * include/bits/vector.tcc (vector::_M_range_insert<_InputIterator>):
853         Only insert elements one-by-one when inserting at the end.
854         * testsuite/performance/23_containers/insert/81476.cc: New.
856 2017-07-19  Volker Reichelt  <v.reichelt@netcologne.de>
858         * libsupc++/new (bad_array_new_length): Remove redundant
859         semicolon after in-class member function definition.
860         * include/bits/locale_facets.h (ctype_byname, num_put): Likewise.
861         * include/bits/locale_facets_nonio.h (time_put_byname): Likewise.
862         * include/bits/random.h (mersenne_twister_engine): Likewise.
863         * include/tr1/random.h (mersenne_twister): Likewise
864         * include/ext/random (simd_fast_mersenne_twister_engine): Likewise.
865         * include/ext/rope (char_producer, _Rope_char_consumer,
866         _Rope_self_destruct_ptr, _Rope_const_iterator, _Rope_iterator):
867         Likewise.
868         * include/ext/ropeimpl.h (_Rope_flatten_char_consumer,
869         _Rope_insert_char_consumer): Likewise.
871 2017-07-19  Jonathan Wakely  <jwakely@redhat.com>
873         * include/bits/fstream.tcc (basic_filebuf::xsgetn)
874         (basic_filebuf::xsputn, basic_filebuf::seekoff): Fix indentation.
876         * testsuite/util/testsuite_iterators.h: Fix indentation.
878         * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: Add dg-require.
880 2017-07-18  Jonathan Wakely  <jwakely@redhat.com>
882         PR libstdc++/81395
883         * include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer
884         pointers for write mode after reading.
885         * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New.
887 2017-07-18  François Dumont  <fdumont@gcc.gnu.org>
889         * include/bits/stl_list.h
890         (struct _List_node_header): New.
891         (_List_impl()): Fix noexcept qualification.
892         (_List_impl(_List_impl&&)): New, default.
893         (_List_base()): Default.
894         (_List_base(_List_base&&)): Default.
895         (_List_base::_M_move_nodes): Adapt to use
896         _List_node_header._M_move_nodes.
897         (_List_base::_M_init): Likewise.
898         (list<>()): Default.
899         (list<>(list&&)): Default.
900         (list<>::_M_move_assign(list&&, true_type)): Use _M_move_nodes.
901         (__distance(_List_const_iterator<>, _List_const_iterator<>,
902         input_iterator_tag)): Adapt.
903         * testsuite/23_containers/list/allocator/default_init.cc: New.
905 2017-07-15  Jonathan Wakely  <jwakely@redhat.com>
907         * include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter
908         as per P0739R0.
909         * testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments.
910         * testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction
911         with std::adopt_lock_t.
912         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check
913         feature-test macro.
915 2017-07-14  Jason Merrill  <jason@redhat.com>
916             Jonathan Wakely  <jwakely@redhat.com>
918         * include/std/variant (variant::variant(_Tp&&)): Constrain to remove
919         the constructor for empty variants from the candidate functions
920         during class template argument deduction.
921         * testsuite/20_util/variant/deduction.cc: New.
923 2017-07-11  Jonathan Wakely  <jwakely@redhat.com>
925         * doc/xml/faq.xml: Update several old entries. Improve
926         cross-references.
927         * doc/xml/manual/intro.xml: Add anchors to each DR.
928         * doc/html/*: Regenerate.
930 2017-07-10  Jonathan Wakely  <jwakely@redhat.com>
932         * testsuite/abi/pr42230.cc: Add header for std::free.
934         PR libstdc++/81381
935         * include/bits/sstream.tcc (basic_stringbuf::overflow)
936         (basic_stringbuf::basic_stringbuf(const __string_type&, ios::mode))
937         (basic_stringbuf::str()): Construct new strings with an allocator.
938         * testsuite/27_io/basic_stringbuf/cons/81381.cc: New.
940         PR libstdc++/81338
941         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
942         Declare basic_stringbuf to be a friend.
943         * include/bits/sstream.tcc (basic_stringbuf::overflow)
944         [_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
945         * include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
946         length to buffer length.
947         * testsuite/27_io/basic_stringstream/assign/81338.cc: New.
949 2017-07-06  Jonathan Wakely  <jwakely@redhat.com>
951         * testsuite/20_util/specialized_algorithms/memory_management_tools/
952         1.cc: Free memory.
953         * testsuite/22_locale/locale/cons/5.cc: Remove redundant restoration
954         of original environment and free memory.
956         * testsuite/abi/pr42230.cc: Free memory.
957         * testsuite/util/testsuite_abi.cc (demangle): Return std::string
958         instead of pointer that might need freeing.
959         * testsuite/util/testsuite_abi.h (demangle): Likewise.
960         * testsuite/util/testsuite_hooks.cc (verify_demangle): Free memory.
962         * include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add
963         deleted overload to prevent dangling references to rvalues.
964         * include/experimental/memory_resource
965         (polymorphic_allocator::construct): Do not call __use_alloc with
966         rvalue arguments.
968 2017-06-27  Tim Shen  <timshen@google.com>
970         PR libstdc++/80187
971         * include/std/variant (variant::variant, variant::~variant,
972         variant::operator=): Implement triviality forwarding for four
973         special member functions.
974         * testsuite/20_util/variant/compile.cc: Tests.
976 2017-06-27  Jonathan Wakely  <jwakely@redhat.com>
978         PR libstdc++/81221
979         * testsuite/25_algorithms/sample/81221.cc: Disable except for
980         check-parallel.
982         PR libstdc++/81221
983         * include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not
984         std.
985         * testsuite/25_algorithms/sample/81221.cc: New.
987 2017-06-22  Jonathan Wakely  <jwakely@redhat.com>
989         PR libstdc++/81173
990         * include/bits/stl_bvector.h (vector<bool>::_M_initialize_value):
991         Do not pass null pointer to memset.
993 2017-06-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
995         PR libstdc++/80675
996         PR libstdc++/80940
997         * include/std/istream:
998         (__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
999         (__do_is_convertible_to_basic_istream_impl): Likewise.
1000         (__is_convertible_to_basic_istream_impl): Likewise.
1001         (__is_convertible_to_basic_istream): Use the new base.
1002         (__rvalue_istream_type): New.
1003         (operator>>(_Istream&&, _Tp&&)): Use the new helper alias
1004         for the SFINAE check, convert to the helper alias type before
1005         doing the actual extraction.
1006         * include/std/ostream:
1007         (__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
1008         (__do_is_convertible_to_basic_ostream_impl): Likewise.
1009         (__is_convertible_to_basic_ostream_impl): Likewise.
1010         (__is_convertible_to_basic_ostream): Use the new base.
1011         (__rvalue_ostream_type): New.
1012         (operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
1013         for the SFINAE check, convert to the helper alias type before
1014         doing the actual insertion.
1015         * testsuite/27_io/rvalue_streams-2.cc: Add new tests.
1017 2017-06-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1019         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1021 2017-06-21  Jonathan Wakely  <jwakely@redhat.com>
1023         PR libstdc++/81092
1024         * configure: Regenerate.
1026 2017-06-20  Uros Bizjak  <ubizjak@gmail.com>
1028         * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1030 2017-06-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1032         * testsuite/20_util/variant/index_type.cc: Allow for all ilp32 and
1033         lp64 targets.
1035 2017-06-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1037         * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
1038         * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
1039         * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
1040         * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
1041         * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
1042         * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
1043         Likewise.
1044         * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
1045         * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
1046         Likewise.
1048 2017-06-18  H.J. Lu  <hongjiu.lu@intel.com>
1050         PR libstdc++/81092
1051         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
1053 2017-06-18  Andreas Schwab  <schwab@linux-m68k.org>
1055         PR libstdc++/81092
1056         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1058 2017-06-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1060         * testsuite: Remove dg-skip-if, dg-xfail-if, dg-xfail-run-if
1061         default args.
1063 2017-06-17  Jonathan Wakely  <jwakely@redhat.com>
1065         PR libstdc++/80893
1066         * testsuite/23_containers/vector/bool/80893.cc: Add { target c++11 }.
1068 2017-06-16  Jonathan Wakely  <jwakely@redhat.com>
1070         * include/bits/shared_ptr.h (get_deleter): Add overload matching
1071         standard signature.
1072         * include/bits/shared_ptr_base.h (__shared_ptr): Declare new
1073         get_deleter overload as a friend.
1074         * testsuite/20_util/shared_ptr/misc/get_deleter.cc: New.
1076 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
1078         PR libstdc++/81092
1079         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1080         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
1081         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
1083 2017-06-16  Jonathan Wakely  <jwakely@redhat.com>
1085         * include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
1086         * testsuite/22_locale/conversions/buffer/2.cc: New.
1088         PR libstdc++/81092
1089         * acinclude.m4: Bump libtool_VERSION.
1090         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1091         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1092         * config/abi/pre/gnu.ver: Add wstring constructor symbols to
1093         GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol
1094         to new GLIBCXX_3.4.25 version.
1095         * doc/xml/manual/abi.xml: Document new versions.
1096         * doc/html/*: Regenerate.
1097         * testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
1098         constructors to ensure required symbols are exported.
1099         * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
1100         * testsuite/util/testsuite_abi.cc: Add new version.
1102         * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
1103         return statement.
1104         * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1105         Return void.
1106         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1107         Likewise.
1108         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
1109         missing return statements.
1110         * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
1111         Likewise.
1112         * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
1113         Return void.
1114         * testsuite/special_functions/14_expint/pr68397.cc: Likewise.
1116 2017-06-16  François Dumont  <fdumont@gcc.gnu.org>
1118         * include/bits/stl_bvector.h
1119         (__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)):
1120         Change signature.
1121         (std::fill(_Bit_iterator, _Bit_iterator, bool)): Adapt.
1122         (_Bvector_impl_data): New.
1123         (_Bvector_impl): Inherits from latter.
1124         (_Bvector_impl(_Bit_alloc_type&&)): Delete.
1125         (_Bvector_impl(_Bvector_impl&&)): New, default.
1126         (_Bvector_base()): Default.
1127         (_Bvector_base(_Bvector_base&&)): Default.
1128         (_Bvector_base::_M_move_data(_Bvector_base&&)): New.
1129         (vector(vector&&, const allocator_type&)): Use latter.
1130         (vector<bool>::operator=(vector&&)): Likewise.
1131         (vector<bool>::vector()): Default.
1132         (vector<bool>::vector(vector&&)): Default.
1133         (vector<bool>::assign(_InputIterator, _InputIterator)): Use
1134         _M_assign_aux.
1135         (vector<bool>::assign(initializer_list<bool>)): Likewise.
1136         (vector<bool>::_M_initialize_value(bool)): New.
1137         (vector<bool>(size_type, const bool&, const allocator_type&)): Use
1138         latter.
1139         (vector<bool>::_M_initialize_dispatch(_Integer, _Integer, __true_type)):
1140         Likewise.
1141         (vector<bool>::_M_fill_assign(size_t, bool)): Likewise.
1143 2017-06-15  François Dumont  <fdumont@gcc.gnu.org>
1145         * src/c++98/tree.cc  [!_GLIBCXX_INLINE_VERSION]
1146         (_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete.
1148 2017-06-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1150         * testsuite: Add dg-require-effective-target pthread to -pthread
1151         tests.
1152         Remove explicit target lists from dg-do and dg-options.
1154         * testsuite/30_threads/async/forced_unwind.cc: Remove explit
1155         target list from dg-options.
1156         * testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise.
1158         * 30_threads/shared_mutex/cons/1.cc: Likewise.
1159         Pass -pthread for all targets.
1160         * 30_threads/shared_mutex/try_lock/1.cc: Likewise.
1161         * 30_threads/shared_mutex/try_lock/2.cc: Likewise.
1162         * 30_threads/shared_mutex/unlock/1.cc: Likewise.
1164         * testsuite/30_threads/this_thread/57060.cc: Require c++11 via
1165         dg-require-effective-target.
1167 2017-06-14  Jonathan Wakely  <jwakely@redhat.com>
1169         * doc/xml/manual/test.xml: Correct instructions on running tests.
1170         * testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to
1171         pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
1172         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1173         Likewise.
1174         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise.
1175         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
1176         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
1177         exceptions_failbit.cc: Likewise.
1178         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
1179         exceptions_failbit.cc: Likewise.
1180         * testsuite/27_io/basic_istream/extractors_other/char/
1181         exceptions_null.cc: Likewise.
1182         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
1183         exceptions_null.cc: Likewise.
1184         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
1185         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
1186         * testsuite/27_io/basic_ostream/inserters_other/char/
1187         exceptions_null.cc: Likewise.
1188         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
1189         exceptions_null.cc: Likewise.
1190         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
1192 2017-06-12  Pedro Alves  <palves@redhat.com>
1194         * doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
1195         char_traits status.
1196         * doc/html/*: Regenerate.
1198         * include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
1199         not already defined.
1200         (__cpp_lib_constexpr_char_traits): Uncomment.
1201         (__constant_string_p, __constant_char_array_p): New.
1202         (std::char_traits<char>, std::char_traits<wchar_t>): Add
1203         _GLIBCXX17_CONSTEXPR on compare, length and find and use
1204         __constant_string_p, __constant_char_array_p and
1205         __builtin_constant_p to defer to __gnu_cxx::char_traits at compile
1206         time.
1208         * testsuite/21_strings/char_traits/requirements/
1209         constexpr_functions_c++17.cc: Uncomment
1210         __cpp_lib_constexpr_char_traits tests.  Uncomment
1211         test_compare<char>, test_length<char>, test_find<char>,
1212         test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
1213         static_assert tests.
1215 2017-06-12  François Dumont  <fdumont@gcc.gnu.org>
1217         * include/bits/stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator
1218         default init.
1219         * testsuite/util/testsuite_allocator.h
1220         (__gnu_test::default_init_allocator<>) New.
1221         * testsuite/23_containers/set/allocator/default_init.cc: New.
1222         * testsuite/23_containers/map/allocator/default_init.cc: New.
1224 2017-06-12  Jonathan Wakely  <jwakely@redhat.com>
1226         PR libstdc++/55917
1227         * src/c++11/thread.cc (execute_native_thread_routine): Remove
1228         try-block so that exceptions propagate out of the thread and terminate
1229         is called by the exception-handling runtime.
1230         (execute_native_thread_routine_compat): Likewise.
1231         * testsuite/30_threads/thread/cons/terminate.cc: New.
1233 2017-06-09  Jonathan Wakely  <jwakely@redhat.com>
1235         * doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
1236         * include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
1237         (LWG 2802).
1238         * include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
1239         (_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
1240         * testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
1242         * include/bits/forward_list.h (forward_list): Add deduction guide.
1243         * include/bits/stl_deque.h (deque): Likewise.
1244         * include/bits/stl_list.h (list): Likewise.
1245         * include/bits/stl_vector.h (vector): Likewise.
1246         * testsuite/23_containers/deque/cons/deduction.cc: New.
1247         * testsuite/23_containers/forward_list/cons/deduction.cc: New.
1248         * testsuite/23_containers/list/cons/deduction.cc: New.
1249         * testsuite/23_containers/vector/cons/deduction.cc: New.
1251 2017-06-08  Jonathan Wakely  <jwakely@redhat.com>
1253         PR libstdc++/81017
1254         * include/bits/std_function.h (function::function(function&&))
1255         (function::operator=(funtion&&)): Add noexcept.
1256         * testsuite/20_util/function/assign/move.cc: Check for noexcept.
1257         * testsuite/20_util/function/cons/move.cc: Likewise.
1259 2017-06-07  Jonathan Wakely  <jwakely@redhat.com>
1261         * include/bits/regex.h (basic_regex): Add deduction guide from P0433.
1262         * testsuite/28_regex/basic_regex/ctors/deduction.cc: New.
1264         PR libstdc++/81002
1265         * include/bits/regex.h (basic_regex): Adjust call to __compile_nfa
1266         so iterator type is deduced.
1267         * include/bits/regex_compiler.h (__compile_nfa): Reorder template
1268         parameters to allow iterator type to be deduced.
1269         * testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
1271         * include/bits/alloc_traits.h (__is_allocator, _RequireAllocator):
1272         New trait and alias for detecting Allocator-like types.
1273         * include/bits/basic_string.h (basic_string): Add deduction guide
1274         from P0433.
1275         * include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): Add template
1276         parameter with default template argument that causes substitution
1277         failures for types that cannot be allocators.
1278         * testsuite/21_strings/basic_string/cons/char/deduction.cc: New.
1279         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: New.
1281 2017-06-02  Jonathan Wakely  <jwakely@redhat.com>
1283         PR libstdc++/80939
1284         * include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
1285         (__erased_hash): Remove constexpr specifier and qualify calls to
1286         __ref_cast.
1287         (__erased_dtor): Remove constexpr specifier and use _Destroy.
1289 2017-06-05  Jonathan Wakely  <jwakely@redhat.com>
1291         * include/bits/stl_iterator_base_funcs.h
1292         (__advance<_RandomAccessIterator, _Distance>): Optimize for next/prev
1293         cases where incrementing or decrementing a single step.
1295         * include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
1296         (__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
1297         specifiers as per LWG 2873 and LWG 2942.
1298         * testsuite/20_util/owner_less/noexcept.cc: New.
1299         * testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
1300         noexcept guarantees.
1301         * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
1303 2017-06-03  Andreas Schwab  <schwab@linux-m68k.org>
1305         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
1307 2017-06-03  Eric Botcazou  <ebotcazou@adacore.com>
1309         * src/filesystem/dir.cc (fs::_Dir::advance): Use std::exchange.
1311 2017-06-02  Jonathan Wakely  <jwakely@redhat.com>
1313         PR libstdc++/80624
1314         * doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
1315         * include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
1316         Transform eof value to U+FFFD.
1317         * testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
1318         * testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
1319         * testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.
1321         * libsupc++/Makefile.am: Remove custom targets for files that need to
1322         be compiled as C++11 or C++14.
1323         * libsupc++/Makefile.in: Regenerate.
1324         * libsupc++/del_ops.cc: Use pragma to disable -Wsized-deallocation
1325         warnings.
1326         * libsupc++/del_opvs.cc: Likewise.
1328 2017-06-02  Richard Biener  <rguenther@suse.de>
1329         Markus Eisenmann  <meisenmann.lba@fh-salzburg.ac.at>
1331         PR libstdc++/80721
1332         * libsupc++/eh_alloc.cc (pool::free): Keep list properly
1333         sorted and add missing freelist item merging cases.
1335 2017-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1337         (GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
1338         Remove *-solaris* section.
1339         * configure: Regenerate.
1341 2017-05-31  Jonathan Wakely  <jwakely@redhat.com>
1343         PR libstdc++/80893
1344         * include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
1345         null pointer dereference when size is zero.
1346         * testsuite/23_containers/vector/bool/80893.cc: New.
1347         * testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
1348         Add non-explicit constructor from nullptr.
1349         (PointerBase::derived() const): Add const-qualified overload.
1351 2017-05-20  Tim Shen  <timshen@google.com>
1353         PR libstdc++/80737
1354         * include/std/variant(variant::variant): SFINAE on is_same first.
1355         * testsuite/20_util/variant/any.cc: test case.
1357 2017-05-24  Jonathan Wakely  <jwakely@redhat.com>
1359         * src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__
1360         instead of fixed number of bits.
1362 2017-05-24  Andreas Schwab  <schwab@suse.de>
1364         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1365         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
1367 2017-05-23  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
1368             Jonathan Wakely  <jwakely@redhat.com>
1370         PR libstdc++/67578
1371         * acinclude.m4: Bump libtool_VERSION.
1372         * config/abi/pre/gnu.ver: Create GLIBCXX_3.4.24 with new symbol.
1373         * config.h.in: Regenerate.
1374         * configure: Regenerate.
1375         * configure.ac: Add test for <linux/random.h>.
1376         * doc/xml/manual/abi.xml: Document new library version.
1377         * include/bits/random.h (random_device::entropy)
1378         [_GLIBCXX_USE_RANDOM_TR1]: Add call to new _M_getentropy member.
1379         (random_device::_M_getentropy): Declare.
1380         * src/c++11/random.cc (random_device::_M_getentropy): Define.
1381         * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.24 to known
1382         versions, and make it the latest version.
1384 2017-05-23  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
1386         PR libstdc++/67214
1387         * include/bits/locale_facets.tcc (num_get::_M_extract_int): Add
1388         explicit conversion to avoid signed overflow.
1390 2017-05-19  Jonathan Wakely  <jwakely@redhat.com>
1392         PR libstdc++/80796
1393         * include/bits/stl_algo.h (search): Add new overload for C++17.
1394         * testsuite/25_algorithms/search/searcher.cc: New.
1396 2017-05-18  Jonathan Wakely  <jwakely@redhat.com>
1398         PR libstdc++/80478
1399         * include/std/functional (_Mem_fn_traits_base): Add specializations
1400         for noexcept member function types.
1401         * testsuite/20_util/function_objects/mem_fn/80478.cc: New test.
1403 2017-05-18  Jonathan Wakely  <jwakely@redhat.com>
1405         * doc/xml/manual/policy_data_structures.xml: Fix typo.
1406         * doc/xml/manual/test_policy_data_structures.xml: Likewise.
1407         * doc/html/*: Regenerate.
1409         * doc/xml/manual/abi.xml: Document latest library versions.
1410         * doc/xml/manual/build_hacking.xml: Document requirement to update
1411         abi.xml when bumping library versions.
1412         * doc/html/*: Regenerate.
1414 2017-05-17  Jonathan Wakely  <jwakely@redhat.com>
1416         * include/bits/refwrap.h: Fix Doxygen warning.
1417         * include/bits/specfun.h: Likewise.
1418         * include/bits/std_function.h: Likewise.
1419         * include/bits/stl_algo.h (set_union, set_intersection)
1420         (set_difference, set_symmetric_difference): Add Doxygen @param tags
1421         for output iterator parameters.
1422         * include/bits/stl_iterator.h (inserter): Add Doxygen @param tag for
1423         iterator parameter.
1424         * include/std/mutex (try_lock, lock): Change Mutex to Lockable in
1425         Doxygen comments.
1427 2017-05-17  Ville Voutilainen  <ville.voutilainen@gmail.com>
1429         Implement new C++ intrinsics __is_assignable and __is_constructible.
1430         * include/std/type_traits (__do_is_static_castable_impl): Remove.
1431         (__is_static_castable_impl, __is_static_castable_safe): Likewise.
1432         (__is_static_castable, __do_is_direct_constructible_impl): Likewise.
1433         (__is_direct_constructible_impl): Likewise.
1434         (__is_direct_constructible_new_safe): Likewise.
1435         (__is_base_to_derived_ref, __is_lvalue_to_rvalue_ref): Likewise.
1436         (__is_direct_constructible_ref_cast): Likewise.
1437         (__is_direct_constructible_new, __is_direct_constructible): Likewise.
1438         (__do_is_nary_constructible_impl): Likewise.
1439         (__is_nary_constructible_impl, __is_nary_constructible): Likewise.
1440         (__is_constructible_impl): Likewise.
1441         (is_constructible): Call the intrinsic.
1442         (__is_assignable_helper): Remove.
1443         (is_assignable): Call the intrinsic.
1444         (is_trivially_constructible): Likewise.
1445         (__is_trivially_copy_constructible_impl): New.
1446         (is_trivially_copy_constructible): Use it.
1447         (__is_trivially_move_constructible_impl): New.
1448         (is_trivially_move_constructible): Use it.
1449         (is_trivially_assignable): Call the intrinsic.
1450         (__is_trivially_copy_assignable_impl): New.
1451         (is_trivially_copy_assignable): Use it.
1452         (__is_trivially_move_assignable_impl): New.
1453         (is_trivially_move_assignable): Use it.
1454         (testsuite/20_util/declval/requirements/1_neg.cc): Adjust.
1455         (testsuite/20_util/is_trivially_copy_assignable/value.cc):
1456         Add test for void.
1457         (testsuite/20_util/is_trivially_copy_constructible/value.cc): Likewise.
1458         (testsuite/20_util/is_trivially_move_assignable/value.cc): Likewise.
1459         (testsuite/20_util/is_trivially_move_constructible/value.cc): Likewise.
1460         (testsuite/20_util/make_signed/requirements/typedefs_neg.cc): Adjust.
1461         (testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc):
1462         Likewise.
1464 2017-05-16  Jonathan Wakely  <jwakely@redhat.com>
1466         * testsuite/experimental/source_location/1.cc: Change expected result
1467         for source_location::current() used in default member initializer.
1469         * doc/xml/manual/status_cxx2017.xml: Update status table.
1470         * doc/html/*: Regenerate.
1471         * include/Makefile.am: Add new header.
1472         * include/Makefile.in: Regenerate.
1473         * include/experimental/source_location: New header implementing N4519.
1474         * testsuite/experimental/source_location/1.cc: New test.
1476         PR libstdc++/80285
1477         * include/bits/shared_ptr_base.h [!__cpp_rtti] (type_info): Declare
1478         outside versioned namespace.
1480         * configure: Regenerate.
1482 2017-05-16  Marc Glisse  <marc.glisse@inria.fr>
1484         * include/std/optional (_Optional_base::_M_get): Check precondition.
1485         * testsuite/20_util/optional/cons/value_neg.cc: Update line numbers.
1487 2017-05-16  Jonathan Wakely  <jwakely@redhat.com>
1489         * doc/xml/manual/appendix_contributing.xml: Link to test docs and
1490         note higher DejaGnu version requirement.
1491         * doc/html/*: Regenerate.
1493         * doc/xml/manual/appendix_contributing.xml: Link to the list of bad
1494         identifiers.
1495         * doc/html/*: Regenerate.
1497 2017-05-15  Jonathan Wakely  <jwakely@redhat.com>
1499         PR libstdc++/80761
1500         * include/bits/node_handle.h (_Node_insert_return): Reorder members.
1501         (tuple_size, tuple_element): Remove partial specializations.
1502         * include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
1503         const_iterator for std::set.
1504         * testsuite/23_containers/map/modifiers/extract.cc: New.
1505         * testsuite/23_containers/set/modifiers/extract.cc: New.
1506         * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
1507         * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
1509 2017-05-12  Jonathan Wakely  <jwakely@redhat.com>
1511         PR libstdc++/78939
1512         * include/std/utility (tuple_size<cv T>): Only define partial
1513         specializations when tuple_size<T>::value is valid.
1514         * testsuite/20_util/tuple/78939.cc: New.
1515         * testsuite/20_util/tuple/cv_tuple_size_neg.cc: New.
1517 2017-05-11  François Dumont  <fdumont@gcc.gnu.org>
1519         * include/bits/stl_tree.h [_GLIBCXX_INLINE_VERSION]
1520         (_Rb_tree_impl<>): Remove _Is_pod_comparator
1521         template parameter.
1523         * include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
1524         (__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
1525         (__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
1526         Remove.
1527         (__gnu_debug::_Error_formatter::_M_format_word): Remove.
1528         (__gnu_debug::_Error_formatter::_M_print_word): Remove.
1529         (__gnu_debug::_Error_formatter::_M_print_string): Remove.
1530         (__gnu_debug::_Error_formatter::_M_get_max_length): Remove.
1531         * src/c++11/debug.cc: Adapt.
1532         * config/abi/pre/gnu-versioned-namespace.ver: Adapt.
1534 2017-05-11  Jonathan Wakely  <jwakely@redhat.com>
1536         * doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
1537         * doc/xml/manual/mt_allocator.xml: Likewise.
1538         * doc/html/*: Regenerate.
1540         PR libstdc++/80285
1541         * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Define
1542         function to get unique fake std::type_info reference.
1543         (_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Compare to
1544         _S_ti() fake reference.
1545         (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Share
1546         single implementation with or without RTTI enable.
1547         [!__cpp_rtti]: Pass fake reference to _M_get_deleter.
1548         * testsuite/20_util/shared_ptr/creation/alloc.cc: Change expected
1549         allocation and deallocation counts.
1550         * testsuite/20_util/shared_ptr/creation/single_allocation.cc: New.
1551         * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
1552         New.
1554 2017-05-10  François Dumont  <fdumont@gcc.gnu.org>
1556         Bump version namespace.
1557         * config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
1558         from __7 to __8. Bump GLIBCXX_7.0 to GLIBCXX_8.0.
1559         * acinclude.m4 (libtool_VERSION): Bump to 8:0:0.
1560         * include/bits/c++config: Adapt.
1561         * include/bits/regex.h: Adapt.
1562         * include/experimental/bits/fs_fwd.h: Adapt.
1563         * include/experimental/bits/lfts_config.h: Adapt.
1564         * include/std/variant: Adapt.
1565         * python/libstdcxx/v6/printers.py: Adapt.
1566         * testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
1568         * include/bits/stl_algobase.h (std::__iter_swap<false>): Remove
1569         _GLIBCXX_MOVE usage.
1571 2017-05-09  Jason Merrill  <jason@redhat.com>
1573         * testsuite/24_iterators/container_access.cc (test03): Make il3 static.
1575 2017-05-08  Jonathan Wakely  <jwakely@redhat.com>
1577         * include/std/optional: Use a separate static_assert per condition.
1578         * testsuite/20_util/optional/cons/value_neg.cc: Update dg-error line
1579         numbers.
1581         * doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
1582         * doc/html/*: Regenerate.
1584 2017-05-02  Hugo Beauzée-Luyssen <hugo@beauzee.fr>
1586         PR libstdc++/69506
1587         * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
1589 2017-04-29  François Dumont  <fdumont@gcc.gnu.org>
1591         * testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
1592         by a note-test.
1594 2017-04-28  Jonathan Wakely  <jwakely@redhat.com>
1596         PR libstdc++/80553
1597         * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
1598         assertions to ensure type is destructible.
1599         (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
1600         * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
1601         Move to stl_construct.h.
1602         * testsuite/20_util/specialized_algorithms/memory_management_tools/
1603         destroy_neg.cc: New test.
1604         * testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
1606         * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
1607         superfluous "" in dg-error.
1609 2017-04-28  Tom de Vries  <tom@codesourcery.com>
1611         * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
1612         superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
1614 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
1616         * include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
1617         (PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
1618         * testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
1619         Likewise.
1621 2017-04-26  Jonathan Wakely  <jwakely@redhat.com>
1623         * testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
1624         comment. Ensure first test works because allocator type propagates and
1625         not because is_always_equal is true.
1626         * testsuite/23_containers/vector/52591.cc: Likewise. Restore original
1627         testcase that instantiates the move-assignment operator.
1629 2017-04-24  Jonathan Wakely  <jwakely@redhat.com>
1631         PR libstdc++/80506
1632         * include/bits/random.tcc (gamma_distribution::operator()): Fix magic
1633         number used in loop condition.
1635         PR libstdc++/80504
1636         * include/bits/refwrap.h (ref, cref): Qualify calls.
1637         * testsuite/20_util/reference_wrapper/80504.cc: New test.
1639         PR libstdc++/80493
1640         * include/experimental/optional (optional::swap): Fix exception
1641         specification.
1643 2017-04-21  Jonathan Wakely  <jwakely@redhat.com>
1645         PR libstdc++/80316
1646         * include/std/future (_State_baseV2::_Setter::operator()): Remove
1647         _S_check calls that are done after the pointer to the shared state is
1648         already dereferenced.
1649         (_State_baseV2::_Setter<_Res, void>): Define specialization for void
1650         as partial specialization so it can be defined within the definition
1651         of _State_baseV2.
1652         (_State_baseV2::__setter): Call _S_check.
1653         (_State_baseV2::__setter(promise<void>*)): Add overload for use by
1654         promise<void>::set_value and promise<void>::set_value_at_thread_exit.
1655         (promise<T>, promise<T&>, promise<void>): Make _State a friend.
1656         (_State_baseV2::_Setter<void, void>): Remove explicit specialization.
1657         (promise<void>::set_value, promise<void>::set_value_at_thread_exit):
1658         Use new __setter overload.
1659         * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
1660         * testsuite/30_threads/promise/members/set_exception.cc: Test
1661         promise<T&> and promise<void> specializations.
1662         * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
1663         Test for no_state error condition.
1664         * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
1666         * include/backward/auto_ptr.h: Ignore deprecated warnings from use
1667         of auto_ptr.
1668         * include/bits/shared_ptr.h: Likewise.
1669         * include/bits/shared_ptr_base.h: Likewise.
1670         * include/bits/unique_ptr.h: Likewise.
1671         * libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
1672         dg-error lineno.
1673         * libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
1674         * libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
1675         Likewise.
1676         * libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
1677         Likewise.
1679 2017-04-20  Edward Smith-Rowland  <3dw4rd@verizon.net>
1681         PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
1682         * include/tr1/exp_integral.tcc: Increase iteration limits.
1683         * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
1684         pr68397.cc: New test.
1685         * testsuite/special_functions/14_expint/pr68397.cc: New test.
1687 2017-04-20  Jonathan Wakely  <jwakely@redhat.com>
1689         PR libstdc++/79862
1690         * include/std/atomic [!_GLIBCXX_USE_C99_STDINT_TR1] (atomic_int8_t)
1691         (atomic_uint8_t, atomic_int16_t, atomic_uint16_t, atomic_int32_t,
1692         (atomic_uint32_t, atomic_int64_t, atomic_uint64_t)
1693         (atomic_int_least8_t, atomic_uint_least8_t, atomic_int_least16_t)
1694         (atomic_uint_least16_t, atomic_int_least32_t, atomic_uint_least32_t)
1695         (atomic_int_least64_t, atomic_uint_least64_t, atomic_int_fast8_t)
1696         (atomic_uint_fast8_t, atomic_int_fast16_t, atomic_uint_fast16_t)
1697         (atomic_int_fast32_t, atomic_uint_fast32_t, atomic_int_fast64_t)
1698         (atomic_uint_fast64_t, atomic_intmax_t, atomic_uintmax_t): Don't
1699         define.
1701 2017-04-19  Jonathan Wakely  <jwakely@redhat.com>
1703         * doc/xml/manual/abi.xml: Rephrase one of the references to the
1704         Itanium C++ ABI.
1705         * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
1706         * doc/html/*: Regenerate.
1708         * libsupc++/new: Update comment on #endif directive.
1710         PR libstdc++/80448
1711         * include/experimental/bits/fs_dir.h (directory_iterator)
1712         (recursive_directory_iterator): Remove noexcept from defaulted
1713         constructors.
1715         PR libstdc++/80446
1716         * include/std/type_traits (is_aggregate): Change __has_builtin checks.
1717         * libsupc++/new (launder): Likewise.
1719 2017-04-18  Jonathan Wakely  <jwakely@redhat.com>
1721         * include/std/functional (default_searcher, __boyer_moore_array_base)
1722         (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
1723         (boyer_moore_horspool_searcher): Remove redundant namespace
1724         qualification.
1725         (default_searcher::operator()): Construct return value early and
1726         advance second member in-place.
1727         (boyer_moore_horspool_searcher::operator()): Increment random access
1728         iterator directly instead of using std::next.
1729         (boyer_moore_searcher::operator()): Fix return value.
1730         * testsuite/20_util/function_objects/searchers.cc: Check both parts
1731         of return values.
1733 2017-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
1735         * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
1736         * doc/xml/manual/abi.xml. Ditto (thrice).
1738 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
1740         * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
1741         * doc/html/*: Regenerate.
1743         * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
1744         that no longer fail.
1746         * include/bits/ios_base.h: Correct comment.
1747         * testsuite/util/testsuite_hooks.h: Likewise.
1749         * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1750         * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
1751         directories for debug, parallel and profile headers.
1752         * doc/html/*: Regenerate.
1754         * include/bits/char_traits.h (__gnu_cxx::char_traits): Add
1755         _GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
1756         (std::char_traits<char>, std::char_traits<wchar_t>): Add
1757         _GLIBCXX17_CONSTEXPR on assign.
1758         (std::char_traits<char16_t>, std::char_traits<char32_t>): Add
1759         _GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
1760         * testsuite/21_strings/char_traits/requirements/
1761         constexpr_functions_c++17.cc: New test.
1763 2017-04-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
1765         PR libstdc++/79141
1766         * include/bits/stl_pair.h (__nonesuch_no_braces): New.
1767         (operator=(typename conditional<
1768         __and_<is_copy_assignable<_T1>,
1769         is_copy_assignable<_T2>>::value,
1770         const pair&, const __nonesuch&>::type)): Change __nonesuch
1771         to __nonesuch_no_braces.
1772         (operator=(typename conditional<
1773         __not_<__and_<is_copy_assignable<_T1>,
1774         is_copy_assignable<_T2>>>::value,
1775         const pair&, const __nonesuch&>::type)): Likewise.
1776         (operator=(typename conditional<
1777         __and_<is_move_assignable<_T1>,
1778         is_move_assignable<_T2>>::value,
1779         pair&&, __nonesuch&&>::type)): Likewise.
1780         * testsuite/20_util/pair/79141.cc: New.
1782 2017-04-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
1784         Implement std::is_aggregate.
1785         * include/std/type_traits (is_aggregate, is_aggregate_v): New.
1786         * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
1787         New.
1788         * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
1789         * testsuite/20_util/is_aggregate/value.cc: Likewise.
1791 2017-03-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
1793         Adjust optional's pretty printer for LWG 2900.
1794         * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
1795         Look at the nested payload in case of non-experimental optional.
1797 2017-03-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
1799         Implement LWG 2900, The copy and move constructors
1800         of optional are not constexpr.
1801         * include/std/optional (_Optional_payload): New.
1802         (_Optional_base): Remove the bool parameter.
1803         (_Optional_base<_Tp, false>): Remove.
1804         (_Optional_base()): Adjust.
1805         (_Optional_base(nullopt_t)): Likewise.
1806         (_Optional_base(in_place_t, _Args&&...)): Likewise.
1807         (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
1808         Likewise.
1809         (_Optional_base(const _Optional_base&)): Likewise.
1810         (_Optional_base(_Optional_base&&)): Likewise.
1811         (operator=(const _Optional_base&)): Likewise.
1812         (operator=(_Optional_base&&)): Likewise.
1813         (~_Optional_base()): Remove.
1814         (_M_is_engaged()): Adjust.
1815         (_M_get()): Likewise.
1816         (_M_construct(_Args&&...)): Likewise.
1817         (_M_destruct()): Likewise.
1818         (_M_reset()): Likewise.
1819         (_Optional_base::_Empty_byte): Remove.
1820         (_Optional_base::_M_empty): Remove.
1821         (_Optional_base::_M_payload): Adjust.
1822         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1823         * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
1825 2017-03-28  Jonathan Wakely  <jwakely@redhat.com>
1827         PR libstdc++/80137
1828         * include/bits/random.tcc (generate_canonical): Use std::nextafter
1829         or numeric_limits::epsilon() to reduce out-of-range values.
1830         * testsuite/26_numerics/random/uniform_real_distribution/operators/
1831         64351.cc: Verify complexity requirement is met.
1833         * doc/xml/manual/abi.xml: Add xml:id anchor.
1834         * doc/xml/manual/using.xml (manual.intro.using.macros): Document
1835         _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
1836         (concurrency.io.structure): Add markup.
1837         * doc/html/*: Regenerate.
1839         PR libstdc++/80229
1840         * include/bits/shared_ptr_base.h
1841         (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
1842         non-const and then use remove_cv to get unqualified type.
1843         * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
1844         cast away constness on object created const.
1845         * testsuite/20_util/shared_ptr/cons/80229.cc: New test.
1847 2017-03-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
1849         PR libstdc++/80183
1850         * include/bits/stl_tree.h:
1851         (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
1853 2017-03-23  Jonathan Wakely  <jwakely@redhat.com>
1855         * testsuite/23_containers/array/tuple_interface/
1856         tuple_element_debug_neg.cc: Adjust dg-error.
1857         * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
1858         define a valid strict weak ordering.
1859         * testsuite/23_containers/priority_queue/67085.cc: Disable test for
1860         Debug Mode, due to debug checks making extra copies of predicate.
1861         * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
1862         Likewise.
1864         * doc/xml/faq.xml: Add link.
1865         * doc/xml/manual/backwards_compatibility.xml: Remove outdated
1866         information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
1867         * doc/xml/manual/io.xml: Update broken link.
1868         * doc/html/*: Regenerate.
1870 2017-03-23  Daniel Kruegler  <daniel.kruegler@gmail.com>
1872         Implement LWG 2686, Why is std::hash specialized for error_code,
1873         but not error_condition?
1874         * include/std/system_error (hash<error_condition>): Define for C++17.
1875         * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
1876         Instantiate test for error_condition.
1877         * testsuite/20_util/hash/requirements/explicit_instantiation.cc
1878         (hash<error_condition>): Instantiate hash<error_condition>.
1880         * include/bits/c++config (_GLIBCXX17_INLINE): Define.
1881         * include/bits/regex_constants.h (All std::regex_constants constants):
1882         Add _GLIBCXX17_INLINE as per P0607R0.
1883         * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
1884         Likewise.
1885         * include/bits/stl_pair.h (piecewise_construct): Likewise.
1886         * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
1887         (__is_uses_allocator_constructible_v)
1888         (__is_nothrow_uses_allocator_constructible_v): Likewise.
1889         * include/std/chrono (treat_as_floating_point_v): Likewise.
1890         * include/std/functional (is_bind_expression_v, is_placeholder_v):
1891         Likewise.
1892         * include/std/optional (nullopt): Likewise.
1893         * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
1894         ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
1895         * include/std/system_error (is_error_code_enum_v)
1896         (is_error_condition_enum_v): Likewise.
1897         * include/std/tuple (tuple_size_v, ignore): Likewise.
1898         (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
1899         constexpr as per LWG 2933.
1900         * include/std/type_traits (All variable templates): Add
1901         _GLIBCXX17_INLINE as per P0607R0.
1902         * include/std/variant (variant_size_v, variant_npos, __index_of_v)
1903         (__tuple_count_v, __exactly_once): Likewise.
1904         * testsuite/18_support/headers/new/synopsis.cc
1905         (hardware_destructive_interference_size)
1906         (hardware_constructive_interference_size): Likewise for commented-out
1907         variables.
1908         * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
1909         test function for constexpr std::ignore (LWG 2773).
1910         * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
1911         test for LWG 2933.
1913 2017-03-22  Jonathan Wakely  <jwakely@redhat.com>
1915         * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
1916         guides for C++17.
1917         * include/bits/std_function.h (function): Likewise.
1918         * include/bits/stl_pair.h (pair): Likewise.
1919         * include/debug/array (__gnu_debug::array): Likewise.
1920         * include/std/array (array): Likewise.
1921         * include/std/functional (make_default_searcher)
1922         (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
1923         Remove generator functions.
1924         * include/std/tuple (tuple): Add deduction guides.
1925         * include/std/valarray (valarray): Likewise.
1926         * testsuite/20_util/function_objects/searchers.cc: Adjust to use
1927         class template argument deduction instead of generator functions.
1928         * testsuite/20_util/function/cons/deduction.cc: New test.
1929         * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
1930         * testsuite/20_util/optional/cons/deduction.cc: ... here.
1931         * testsuite/20_util/pair/cons/deduction.cc: New test.
1932         * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
1933         * testsuite/20_util/tuple/cons/deduction.cc: New test.
1934         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
1935         * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
1936         * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
1937         * testsuite/23_containers/array/cons/deduction.cc: New test.
1938         * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
1939         * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
1940         Adjust dg-error.
1941         * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
1942         * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
1943         Likewise.
1944         * testsuite/26_numerics/valarray/deduction.cc: New test.
1945         * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
1946         * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
1947         * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
1949 2017-03-20  François Dumont  <fdumont@gcc.gnu.org>
1951         * include/bits/stl_deque.h (deque): Access allocator value_type only if
1952         concept checks are enabled.
1953         * include/bits/stl_stack.h (stack): Likewise.
1954         * include/bits/stl_vector.h (vector): Likewise.
1955         * include/bits/stl_list.h (list): Likewise and check
1956         _SGIAssignableConcept only in C++03.
1957         * include/bits/stl_map.h (map): Likewise.
1958         * include/bits/stl_set.h (set): Likewise.
1959         * include/bits/stl_multimap.h (multimap): Likewise.
1960         * include/bits/stl_multiset.h (multiset): Likewise.
1961         * include/bits/stl_queue.h (queue, priority_queue): Likewise.
1963 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
1965         * doc/xml/manual/appendix_contributing.xml: Convert link to
1966         ansi.org to https.
1967         Update link to the C++ standard at ansi.org.
1969         * doc/xml/faq.xml: Remove information redundant with the above;
1970         instead add a reference.
1972 2017-03-17  Jonathan Wakely  <jwakely@redhat.com>
1974         * src/c++11/codecvt.cc (range): Add non-type template parameter and
1975         define oerloaded operators for reading and writing code units.
1976         (range<Elem, false>): Define partial specialization for accessing
1977         wide characters in potentially unaligned byte ranges.
1978         (ucs2_span(const char16_t*, const char16_t*, ...))
1979         (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
1980         to range<const char16_t, false> in order to avoid unaligned reads.
1981         (__codecvt_utf16_base<char16_t>::do_out)
1982         (__codecvt_utf16_base<char32_t>::do_out)
1983         (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
1984         unaligned data to avoid unaligned writes.
1985         (__codecvt_utf16_base<char16_t>::do_in)
1986         (__codecvt_utf16_base<char32_t>::do_in)
1987         (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
1988         error if there are unprocessable trailing bytes.
1989         (__codecvt_utf16_base<char16_t>::do_length)
1990         (__codecvt_utf16_base<char32_t>::do_length)
1991         (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
1992         range<const char16_t, false> to span functions.
1993         * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
1995 2017-03-16  Jonathan Wakely  <jwakely@redhat.com>
1997         PR libstdc++/79980
1998         * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
2000         PR libstdc++/80041
2001         * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
2002         (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
2003         char16_t to work with UTF-16 instead of UTF-8.
2004         * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
2006         * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
2007         (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
2008         (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
2009         (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
2010         (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
2011         (__codecvt_utf8_utf16_base<char32_t>)
2012         (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
2013         do_max_length() return values.
2014         * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
2015         * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
2016         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
2018         PR libstdc++/79980
2019         * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
2020         error path.
2021         * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
2022         for manipulating codecvt_mode values.
2023         (read_utf16_bom): Compare input to BOM constants instead of integral
2024         constants that depend on endianness.  Take mode parameter by
2025         reference and adjust it, to distinguish between no BOM present and
2026         UTF-16BE BOM present.
2027         (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
2028         (surrogates): New enumeration type.
2029         (utf16_in, utf16_out): Add surrogates parameter to choose between
2030         UTF-16 and UCS2 behaviour.
2031         (utf16_span, ucs2_span): Use std::min not std::max.
2032         (ucs2_out): Use std::min not std::max.  Disallow surrogate pairs.
2033         (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
2034         * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
2035         * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
2037         PR libstdc++/79511
2038         * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
2039         as a surrogate pair.
2040         (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
2041         for internal representation.
2042         (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
2043         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
2045         PR libstdc++/80064
2046         * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
2047         (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
2048         invalid instantiations using function types for _Compare argument.
2049         * testsuite/25_algorithms/make_heap/80064.cc: New test.
2051         PR libstdc++/67440
2052         * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
2053         for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
2055 2017-03-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
2057         Implement LWG 2857, {variant,optional,any}::emplace should
2058         return the constructed value.
2059         * include/std/any (emplace(_Args&&...)): Change the return type and
2060         return a reference to the constructed value.
2061         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2062         * include/std/optional (emplace(_Args&&...)): Likewise.
2063         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2064         * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
2065         (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
2066         (emplace<_Np>(_Args&&...)): Likewise.
2067         (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
2068         * testsuite/20_util/any/assign/emplace.cc: Add tests for
2069         checking the return value of emplace.
2070         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2071         * testsuite/20_util/optional/assignment/6.cc: Add tests for
2072         checking the return value of emplace.
2073         * testsuite/20_util/variant/run.cc: Likewise.
2075 2017-03-15  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
2077         PR libstdc++/62045
2078         * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
2079         (is_heap): Remove.
2080         (push_heap): Remove the wrong checking using is_heap.
2081         (make_heap): Remove the assertion using is_heap.
2082         * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
2083         (modify): Ditto.
2084         (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
2085         calling make_heap.
2087 2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
2089         PR libstdc++/62045
2090         * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
2091         New test.
2092         * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
2093         error in comment.
2095 2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
2097         * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
2098         comment.
2099         * config.h.in: Regenerate.
2100         * configure: Regenerate.
2101         * doc/Makefile.in: Regenerate.
2103 2017-03-14  Jonathan Wakely  <jwakely@redhat.com>
2105         PR libstdc++/79162
2106         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2107         (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
2108         with a constrained template.
2109         [!_GLIBCXX_USE_CXX11_ABI]
2110         (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
2111         * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
2112         * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
2114 2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
2116         PR libstdc++/80034
2117         * include/bits/list.tcc (merge(list&&)): Use const for the size_t
2118         in the catch-block.
2119         (merge(list&&, _StrictWeakOrdering)): Likewise.
2120         * testsuite/23_containers/list/operations/80034.cc: New.
2122 2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
2124         Implement LWG 2806, Base class of bad_optional_access.
2125         * include/std/optional (bad_optional_access):
2126         Derive from std::exception.
2127         (bad_optional_access::bad_optional_access): Adjust.
2128         (bad_optional_access::what): New.
2129         (__throw_bad_optional_access(const char*)):
2130         Remove the parameter and adjust calls.
2131         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
2132         * testsuite/20_util/optional/typedefs.cc: Likewise.
2134 2017-03-12  Ville Voutilainen  <ville.voutilainen@gmail.com>
2136         Implement LWG 2934, optional<const T> doesn't compare with T.
2137         * include/std/optional
2138         (operator==(const optional<_Tp>&, const optional<_Tp>&)):
2139         Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
2140         (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2141         Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
2142         (operator<(const optional<_Tp>&, const optional<_Tp>&)):
2143         Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
2144         (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2145         Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
2146         (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
2147         Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
2148         (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
2149         Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
2150         (operator==(const optional<_Tp>&, const _Tp&)):
2151         Turn into operator==(const optional<_Tp>&, const _Up&).
2152         (operator==(const _Tp&, const optional<_Tp>&)):
2153         Turn into operator==(const _Up&, const optional<_Tp>&).
2154         (operator!=(const optional<_Tp>&, const _Tp&)):
2155         Turn into operator!=(const optional<_Tp>&, const _Up&).
2156         (operator!=(const _Tp&, const optional<_Tp>&)):
2157         Turn into operator!=(const _Up&, const optional<_Tp>&).
2158         (operator<(const optional<_Tp>&, const _Tp&)):
2159         Turn into operator<(const optional<_Tp>&, const _Up&).
2160         (operator<(const _Tp&, const optional<_Tp>&)):
2161         Turn into operator<(const _Up&, const optional<_Tp>&).
2162         (operator>(const optional<_Tp>&, const _Tp&)):
2163         Turn into operator>(const optional<_Tp>&, const _Up&).
2164         (operator>(const _Tp&, const optional<_Tp>&)):
2165         Turn into operator>(const _Up&, const optional<_Tp>&).
2166         (operator<=(const optional<_Tp>&, const _Tp&)):
2167         Turn into operator<=(const optional<_Tp>&, const _Up&).
2168         (operator<=(const _Tp&, const optional<_Tp>&)):
2169         Turn into operator<=(const _Up&, const optional<_Tp>&).
2170         (operator>=(const optional<_Tp>&, const _Tp&)):
2171         Turn into operator>=(const optional<_Tp>&, const _Up&).
2172         (operator>=(const _Tp&, const optional<_Tp>&)):
2173         Turn into operator>=(const _Up&, const optional<_Tp>&).
2174         * testsuite/20_util/optional/relops/7.cc: New.
2176 2017-03-10  Jonathan Wakely  <jwakely@redhat.com>
2178         * testsuite/17_intro/names.cc: Undefine macros that clash with
2179         identifiers in AIX system headers.
2181         * include/bits/invoke.h (__invoke): Use __invoke_result instead of
2182         result_of, and __is_nothrow_invocable instead of
2183         __is_nothrow_callable.
2184         * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
2185         instead of __is_callable.
2186         * include/std/functional (invoke): use invoke_result_t instead of
2187         result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
2188         (_Not_fn): Use __invoke_result instead of result_of.
2189         * include/std/type_traits (__result_of_memobj, __result_of_memfun):
2190         Remove partial specializations for reference_wrapper types.
2191         (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
2192         (__invoke_result): Define replacement for result_of and then use it to
2193         define result_of.
2194         (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
2195         with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
2196         respectively.
2197         (invoke_result, invoke_result_t): Define for C++17.
2198         (is_callable, is_nothrow_callable): Replace with is_invocable,
2199         is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
2200         (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
2201         is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
2202         * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
2203         instead of is_nothrow_callable_v.
2204         * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
2205         main function.
2206         * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
2207         instead of is_callable.
2208         * testsuite/20_util/is_callable/*: Rename directory and adjust tests
2209         to use new traits.
2210         * testsuite/20_util/is_nothrow_callable/*: Likewise.
2211         * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
2212         is_callable.
2213         * testsuite/20_util/variant/hash.cc: Likewise.
2215 2017-03-10  George Lander  <george.lander@arm.com>
2217         * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
2218         _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
2219         * configure: Regenerate.
2221 2017-03-09  Jonathan Wakely  <jwakely@redhat.com>
2223         * include/std/functional (_Not_fn): Define macro to simplify
2224         repetitive function definitions.
2226         * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
2227         * include/c_global/cstddef (std::byte): Define for C++17.
2228         * testsuite/18_support/byte/global_neg.cc: New test.
2229         * testsuite/18_support/byte/ops.cc: New test.
2230         * testsuite/18_support/byte/requirements.cc: New test.
2232 2017-03-05  Jonathan Wakely  <jwakely@redhat.com>
2234         * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
2235         * doc/html/*: Regenerate.
2236         * include/std/mutex (scoped_lock): Implement new C++17 template.
2237         * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
2238         * testsuite/30_threads/scoped_lock/requirements/
2239         explicit_instantiation.cc: New test.
2240         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
2242 2017-03-02  Gerald Pfeifer  <gerald@pfeifer.com>
2243             François Dumont  <frs.dumont@gmail.com>
2244             Jonathan Wakely  <jwakely@redhat.com>
2246         * doc/xml/manual/debug_mode.xml: Update and simplify note
2247         on link- and run-time coexistence.
2249 2017-03-02  Jonathan Wakely  <jwakely@redhat.com>
2251         * testsuite/17_intro/headers/names.cc: Rename to ...
2252         * testsuite/17_intro/names.cc: ... here.
2254         PR libstdc++/79789
2255         * include/bits/hashtable_policy.h (__clp2): Use reserved names for
2256         parameters and local variables.
2257         * include/bits/ios_base.h (make_error_code, make_error_condition):
2258         Likewise.
2259         * include/bits/list.tcc (list::sort): Likewise.
2260         * include/bits/mask_array.h (mask_array): Likewise.
2261         * include/bits/regex.h (regex_token_iterator): Likewise.
2262         * include/bits/slice_array.h (slice_array): Likewise.
2263         * include/bits/stl_algo.h (__sample): Likewise.
2264         * include/std/memory (undeclare_no_pointers): Likewise.
2265         * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
2266         Likewise.
2267         * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
2268         * testsuite/17_intro/headers/names.cc: New test.
2270         PR libstdc++/79798
2271         * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
2272         result_of that loses top-level cv-qualifiers.
2273         * testsuite/20_util/bind/79798.cc: New test.
2275 2017-03-01  Gerald Pfeifer  <gerald@pfeifer.com>
2277         * doc/xml/manual/documentation_hacking.xml: Tweak link to
2278         doxygen.org.
2280 2017-02-23  Jonathan Wakely  <jwakely@redhat.com>
2282         * include/experimental/iterator: Include <iterator>.
2283         * testsuite/experimental/iterator/requirements.cc: Check for contents
2284         of <iterator>.
2286 2017-02-19  Dinka Ranns  <dinka.ranns@googlemail.com>
2288         C++17 GB50 resolution
2289         * include/std/chrono (duration::operator++()): Add
2290         _GLIBCXX17_CONSTEXPR.
2291         (duration::operator++(int)): Likewise.
2292         (duration::operator--()): Likewise.
2293         (duration::operator--(int)): Likewise.
2294         (duration::operator+=(const duration&)): Likewise.
2295         (duration::operator-=(const duration&)): Likewise.
2296         (duration::operator*=(const rep&)): Likewise.
2297         (duration::operator/=(const rep&)): Likewise.
2298         (duration::operator%=(const rep&)): Likewise.
2299         (duration::operator%=(const duration&)): Likewise.
2300         (time_point::operator+=(const duration&)): Likewise.
2301         (time_point::operator-=(const duration&)): Likewise.
2302         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
2303         * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
2304         * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
2306 2017-02-19  Gerald Pfeifer  <gerald@pfeifer.com>
2308         * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
2310 2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
2312         * doc/xml/manual/io.xml: Update link to groups.google.com.
2313         Tweak link description.
2315 2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
2317         * doc/xml/manual/profile_mode.xml: Fix link.
2319 2017-02-16  Gerald Pfeifer  <gerald@pfeifer.com>
2321         * doc/xml/manual/policy_data_structures.xml: Simplify and
2322         standardize references to boost.org.
2323         * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
2324         * doc/xml/manual/shared_ptr.xml: Ditto.
2326 2017-02-16  Jonathan Wakely  <jwakely@redhat.com>
2328         PR libstdc++/60936
2329         * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
2330         written to buffer, not length remaining in buffer.
2332 2017-02-15  Tim Shen  <timshen@google.com>
2334         PR libstdc++/78723
2335         * include/std/variant (operator<(), operator>(), operator<=(),
2336         operator>=(), operator==(), operator!=()): Implement P0393R3.
2337         * testsuite/20_util/variant/compile.cc: Adjust tests.
2338         * testsuite/20_util/variant/run.cc: Adjust tests.
2340 2017-02-15  Tim Shen  <timshen@google.com>
2342         PR libstdc++/79513
2343         * include/std/variant (visit()): Forward variant types to the return
2344         type detection code.
2345         * testsuite/20_util/variant/compile.cc: Add test cases.
2347 2017-02-13  H.J. Lu  <hongjiu.lu@intel.com>
2349         PR libstdc++/79348
2350         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
2352 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
2354         PR libstdc++/79348
2355         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2356         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
2357         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
2358         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
2359         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
2360         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
2361         * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
2362         * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
2363         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
2365 2017-02-13  Jonathan Wakely  <jwakely@redhat.com>
2367         PR libstdc++/79486
2368         * include/std/future (__future_base::_Task_state::_M_run)
2369         (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
2370         result_of expressions.
2371         * testsuite/30_threads/packaged_task/79486.cc: New.
2373 2017-02-11  Jonathan Wakely  <jwakely@redhat.com>
2375         PR libstdc++/79467
2376         * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
2377         (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
2378         __is_callable check.
2379         * testsuite/20_util/shared_ptr/cons/79467.cc: New.
2381         * include/bits/atomic_base.h: Re-indent.
2383 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
2385         * doc/xml/manual/profile_mode.xml: Update a paper reference.
2387 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
2389         * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
2391 2017-02-08  Jonathan Wakely  <jwakely@redhat.com>
2393         * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
2394         name.
2395         * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
2396         broken links to texts that are no longer online.
2397         * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
2398         LCPC 2006 paper.
2399         * doc/xml/manual/using.xml: Update links to memory model information.
2400         * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
2401         Standard-Library Exception Safety".
2402         * doc/html/*: Regenerate.
2404 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
2406         * doc/xml/manual/profile_mode.xml: Unbreak link to
2407         "Optimizing Sorting with Machine Learning Algorithms".
2409 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
2411         * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
2413 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
2415         * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
2416         Migration Guide".
2418 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
2420         * doc/html/ext/lwg-active.html: Remove.
2421         * doc/html/ext/lwg-closed.html: Ditto.
2422         * doc/html/ext/lwg-defects.html: Ditto.
2424         * doc/Makefile.am (xml_extradir): Remove.
2425         (xml_extra): Ditto.
2426         (stamp-html-docbook-lwg): Remove recipe...
2427         (stamp-html-docbook-data): ...and its use here.
2428         * doc/Makefile.in: Regenerate.
2430         * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
2431         the relationship to the upstream working group.
2432         Replace a local link to ../ext/lwg-active.html by the upstream one.
2433         Replace all reference to ../ext/lwg-defects.html by a new entity
2434         &DR; which refers to the upstream address.
2436 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
2438         * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
2440 2017-02-06  Jonathan Wakely  <jwakely@redhat.com>
2442         PR libstdc++/79323
2443         * testsuite/20_util/duration/literals/range.cc: Prune extra output
2444         at -O0.
2446 2017-02-06  Gerald Pfeifer  <gerald@pfeifer.com>
2448         * doc/xml/manual/documentation_hacking.xml: Update URL of the
2449         DocBook Element Reference.  Use that term as link description
2450         instead of "online".
2451         epubcheck has moved to GitHub.
2452         Remove obsolete link to DocBook Publishing Tools.
2454 2017-02-03  Jonathan Wakely  <jwakely@redhat.com>
2456         PR libstdc++/66145
2457         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
2458         so new ios::failure can be caught even when old ABI is the default.
2459         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2460         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
2461         exceptions_failbit.cc: Likewise.
2462         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2463         exceptions_failbit.cc: Likewise.
2464         * testsuite/27_io/basic_istream/extractors_other/char/
2465         exceptions_null.cc: Likewise.
2466         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
2467         exceptions_null.cc: Likewise.
2468         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2469         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2470         * testsuite/27_io/basic_ostream/inserters_other/char/
2471         exceptions_null.cc: Likewise.
2472         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2473         exceptions_null.cc: Likewise.
2474         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2476         PR libstdc++/60936
2477         * src/c++11/Makefile.am: Add new files.
2478         * src/c++11/Makefile.in: Regenerate.
2479         * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
2480         (operator<<, operator>>, getline): Move explicit instantiations to ...
2481         * src/c++11/cow-string-io-inst.cc: ... new file.
2482         * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
2483         (operator<<, operator>>, getline): Move explicit instantiations to ...
2484         * src/c++11/cow-wstring-io-inst.cc: ... new file.
2485         * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
2486         (__throw_future_error, __throw_bad_function_call):
2487         (__throw_regex_error): Move functions for C++11 exceptions to the
2488         files that define the exception types.
2489         * src/c++11/functional.cc (__throw_bad_function_call): Move here.
2490         * src/c++11/future.cc (__throw_future_error): Likewise.
2491         * src/c++11/ios.cc (__throw_ios_failure): Likewise.
2492         * src/c++11/regex.cc (__throw_regex_error): Likewise.
2493         * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
2494         representation directly instead of calling __int_to_char.
2495         * src/c++11/sso_string.cc (__sso_string): New file for definition
2496         of __sso_string type.
2497         * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
2498         explicit instantiations of narrow string I/O functions.
2499         * src/c++11/system_error.cc (__throw_system_error): Move here.
2500         (__sso_string): Move to new file.
2501         * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
2502         explicit instantiations of wide string I/O functions.
2503         * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
2504         (operator>>, getline): Remove explicit instantiations from here.
2506 2017-02-02  H.J. Lu  <hongjiu.lu@intel.com>
2508         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
2510 2017-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2512         * configure.host: Separate Solaris/SPARC and x86 baselines.
2513         * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
2514         * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
2515         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
2516         * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
2517         ... here.
2518         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
2519         * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
2520         * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
2521         * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
2522         * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
2523         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
2524         * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
2525         ... here.
2526         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
2527         * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
2528         * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
2530         * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
2531         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
2532         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
2533         * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
2534         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
2535         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
2537 2017-02-01  Jonathan Wakely  <jwakely@redhat.com>
2539         PR libstdc++/78346
2540         * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
2541         not its referent.
2542         (_Iter_comp_to_iter): Likewise.
2543         * testsuite/25_algorithms/search/78346.cc: New test.
2545         PR libstdc++/79254
2546         * config/abi/pre/gnu.ver: Remove recently added symbols.
2547         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2548         (basic_string::_M_copy_assign): Remove.
2549         (basic_string::operator=(const basic_string&)): Don't dispatch to
2550         _M_copy_assign. If source object is small just deallocate, otherwise
2551         perform new allocation before making any changes.
2552         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
2553         (basic_string::_M_copy_assign(const basic_string&, true_type)):
2554         Remove.
2555         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2556         Test cases where the allocators are equal or the string is small.
2557         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2558         Likewise.
2560 2017-01-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
2562         Implement LWG 2825, LWG 2756 breaks class template argument
2563         deduction for optional.
2564         * include/std/optional: Add a deduction guide.
2565         * testsuite/20_util/optional/cons/deduction_guide.cc: New.
2567 2017-01-27  Jonathan Wakely  <jwakely@redhat.com>
2569         PR libstdc++/79254
2570         * config/abi/pre/gnu.ver: Add new symbols.
2571         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2572         (basic_string::_M_copy_assign): New overloaded functions to perform
2573         copy assignment.
2574         (basic_string::operator=(const basic_string&)): Dispatch to
2575         _M_copy_assign.
2576         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
2577         (basic_string::_M_copy_assign(const basic_string&, true_type)):
2578         Define, performing rollback on exception.
2579         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2580         Test exception-safety guarantee.
2581         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2582         Likewise.
2583         * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
2584         std::swap visible.
2586 2017-01-26  Jonathan Wakely  <jwakely@redhat.com>
2588         PR libstdc++/70607
2589         * include/tr1/complex (conj): Remove using-declaration and restore
2590         overloads, reverting previous change.
2592         * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
2593         mode.
2594         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
2595         Mark as unsupported in C++98 mode.
2596         * testsuite/23_containers/queue/requirements/constructible.cc:
2597         Likewise.
2598         * testsuite/23_containers/stack/requirements/constructible.cc:
2599         Likewise.
2600         * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
2602         PR libstdc++/79243
2603         * include/bits/c++config (literals::string_view_literals::__7): Add.
2604         Only declare versioned namespaces for the relevant C++ dialects.
2605         * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
2606         Add versioning macros.
2607         * include/experimental/bits/lfts_config.h:
2608         (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
2609         * include/experimental/string_view (fundamentals_v2::__detail):
2610         Add versioning macros.
2611         (fundamentals_v2::__detail::__identity): Remove.
2612         (fundamentals_v2::__detail::__idt): Use common_type instead of
2613         __detail::__identity.
2614         * include/std/string_view (__detail::__identity, __detail::__idt):
2615         Likewise.
2616         (literals::string_view_literals): Fix nesting of versioning macros.
2618         PR libstdc++/79190
2619         * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
2620         [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
2621         && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
2622         Retrieve original pointer value allocated by malloc.
2623         * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
2624         && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
2625         && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
2626         Define, adjusting pointer value allocated by malloc and storing for
2627         retrieval by operator delete.
2629 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
2631         * libsupc++/eh_atomics.h: Update copyright years.
2632         * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
2634 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
2636         PR libstdc++/61791
2637         PR libstdc++/70607
2638         * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
2639         (proj(T), conj(T)): Change return types per DR 1522.
2640         * include/tr1/complex (conj): Remove overloads and use std::conj.
2641         * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
2642         * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
2643         * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
2644         real(T) and imag(T). Allow testing for C++11 too.
2646 2017-01-24  Jonathan Wakely  <jwakely@redhat.com>
2648         PR libstdc++/79206
2649         * include/experimental/string_view (operator==): Check sizes first.
2650         * include/std/string_view (operator==): Likewise.
2652 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
2654         * testsuite/experimental/array/make_array.cc: Restore <functional>
2655         inclusion.
2657 2017-01-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2659         * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
2661 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
2663         PR libstdc++/79195
2664         * include/experimental/array (__make_array_elem): New class template
2665         and partial specialization.
2666         (__is_reference_wrapper): Move into __make_array_elem specialization.
2667         (make_array): Use __make_array_elem to determine element type and move
2668         static assertion into specialization. Qualify std::forward call.
2669         (to_array): Add exception specifiation.
2670         * testsuite/experimental/array/make_array.cc: Test argument types
2671         without a common type.
2672         * testsuite/experimental/array/neg.cc: Adjust expected error message.
2674 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
2676         * doc/xml/manual/debug.xml: code.google.com uses https now.
2678 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
2680         * doc/xml/manual/test.xml: Fix link into gccint online manual.
2682 2017-01-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
2684         Make poisoned hashes SFINAE away the call operator of the hash.
2685         * include/bits/functional_hash.h
2686         (__poison_hash::__enable_hash_call): New.
2687         * include/std/optional (__optional_hash_call_base): New.
2688         (hash<optional<_Tp>>): Derive from the new base,
2689         move the hash function into that base.
2690         * include/std/variant (__variant_hash_call_base_impl): New.
2691         (__variant_hash_call_base): Likewise.
2692         (hash<variant<_Types...>>): Derive from the new base,
2693         move the hash function into that base.
2694         * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
2695         * testsuite/20_util/variant/hash.cc: Likewise.
2697 2017-01-20  Joe Seymour  <joe.s@somniumtech.com>
2699         * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
2700         * configure: Regenerate.
2702 2017-01-20  Jonathan Wakely  <jwakely@redhat.com>
2704         PR libstdc++/69240
2705         * include/bits/random.h (uniform_real_distribution::param_type)
2706         (normal_distribution::param_type, lognormal_distribution::param_type)
2707         (gamma_distribution::param_type, chi_squared_distribution::param_type)
2708         (cauchy_distribution::param_type, fisher_f_distribution::param_type)
2709         (student_t_distribution::param_type)
2710         (bernoulli_distribution::param_type, binomial_distribution::param_type)
2711         (geometric_distribution::param_type)
2712         (negative_binomial_distribution::param_type)
2713         (poisson_distribution::param_type)
2714         (exponential_distribution::param_type)
2715         (weibull_distribution::param_type)
2716         (extreme_value_distribution::param_type)
2717         (discrete_distribution::param_type)
2718         (piecewise_constant_distribution::param_type)
2719         (piecewise_linear_distribution::param_type): Define operator!=.
2720         * include/bits/uniform_int_dist.h
2721         (uniform_int_distribution::param_type): Likewise.
2722         * include/ext/random (beta_distribution::param_type)
2723         (rice_distribution::param_type, nakagami_distribution::param_type)
2724         (pareto_distribution::param_type, k_distribution::param_type)
2725         (arcsine_distribution::param_type, hoyt_distribution::param_type)
2726         (triangular_distribution::param_type)
2727         (von_mises_distribution::param_type)
2728         (hypergeometric_distribution::param_type)
2729         (logistic_distribution::param_type)
2730         (uniform_on_sphere_distribution::param_type)
2731         (uniform_inside_sphere_distribution::param_type): Likewise.
2732         * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
2733         Test construction with param_type.
2734         * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
2735         Likewise.
2736         * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
2737         Likewise.
2738         * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
2739         Likewise.
2740         * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
2741         Likewise.
2742         * testsuite/26_numerics/random/extreme_value_distribution/cons/
2743         parms.cc: Likewise.
2744         * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
2745         Likewise.
2746         * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
2747         Likewise.
2748         * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
2749         Likewise.
2750         * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
2751         Likewise.
2752         * testsuite/26_numerics/random/negative_binomial_distribution/cons/
2753         parms.cc: Likewise.
2754         * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
2755         Likewise.
2756         * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
2757         Likewise.
2758         * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
2759         Likewise.
2760         * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
2761         Likewise.
2762         * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
2763         Likewise.
2764         * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
2765         Likewise.
2766         * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
2767         * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
2768         * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
2769         * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
2770         Likewise.
2771         * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
2772         * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
2773         * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
2774         * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
2775         * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
2776         * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
2777         * testsuite/ext/random/triangular_distribution/cons/parms.cc:
2778         Likewise.
2779         * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
2780         parms.cc: Likewise.
2781         * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
2783         PR libstdc++/72792
2784         * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
2785         (__allocator_traits_base::__size_type): Remove.
2786         (allocator_traits::_Ptr): New class template to detect const and void
2787         pointer types without instantiating pointer_traits::rebind
2788         unnecessarily.
2789         (allocator_traits::_Diff): Likewise for detecting difference_type.
2790         (allocator_traits::_Size): New class template to detect size_type
2791         without instantiating make_unsigned unnecessarily.
2792         * include/bits/ptr_traits.h (pointer_traits::element_type): Use
2793         __detected_or_t instead of __detected_or_t_.
2794         * include/std/type_traits (__detected_or_t_): Remove.
2795         * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
2797         PR libstdc++/72792
2798         PR libstdc++/72793
2799         * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
2800         Replace with class template using void_t.
2801         (__alloc_rebind): Define in terms of
2802         __allocator_traits_base::__rebind.
2803         (allocator_traits): Remove unconditional static_assert for
2804         rebind_alloc.
2805         * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
2806         (pointer_traits::__rebind): Replace with class template using void_t.
2807         (pointer_traits::rebind): Define in terms of __rebind.
2808         (pointer_traits): Remove unconditional static_assert for rebind.
2809         * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
2810         * testsuite/20_util/pointer_traits/rebind.cc: New test.
2812         PR libstdc++/69321
2813         * include/experimental/any (__any_caster): Avoid instantiating
2814         manager function for types that can't be stored in any.
2815         * include/std/any (__any_caster): Likewise.
2816         * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
2817         * testsuite/experimental/any/misc/any_cast.cc: Likewise.
2819         PR libstdc++/64903
2820         * include/bits/stl_algo.h (is_partitioned): Use increment instead of
2821         std::advance.
2823 2017-01-19  Jonathan Wakely  <jwakely@redhat.com>
2825         PR libstdc++/79156
2826         * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
2827         Fix return type.
2828         (__enable_shared_from_this): Declare __shared_ptr as a friend.
2829         * testsuite/ext/shared_ptr/1.cc: New test.
2831         PR libstdc++/64903
2832         * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
2833         point.
2834         * testsuite/25_algorithms/is_partitioned/2.cc: New test.
2836         * doc/xml/manual/abi.xml: Fix typo.
2837         * doc/html/manual/abi.html: Likewise.
2839         PR libstdc++/67085
2840         * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
2841         converting constructors from _Iter_less_iter.
2842         (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
2843         _Iter_comp_iter.
2844         (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
2845         (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
2846         * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
2847         (__make_heap, __sort_heap): Change _Compare parameters to references.
2848         (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
2849         (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
2850         functions as lvalues.
2851         (is_heap): Call __is_heap_until directly to avoid copying __comp.
2852         * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
2853         count copies during construction with empty sequence.
2855         PR libstdc++/67085
2856         * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
2857         (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
2858         * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
2859         number of copies.
2860         * testsuite/25_algorithms/make_heap/movable.cc: New test.
2862         PR libstdc++/67085
2863         * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
2864         (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
2865         _GLIBCXX_MOVE when passing comparison function to other functions.
2866         (is_heap_until, is_heap): Use std::move when passing comparison
2867         function.
2868         * testsuite/23_containers/priority_queue/67085.cc: New test.
2870         PR libstdc++/78905
2871         * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
2872         macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
2873         Document that the deprecated _GLIBCXX_VERSION macro was removed for
2874         the 4.0.0 release.
2875         * doc/html/*: Regenerate.
2876         * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
2877         * include/Makefile.in: Regenerate.
2878         * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
2879         * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
2880         dg-error.
2882 2017-01-18  Jonathan Wakely  <jwakely@redhat.com>
2884         PR libstdc++/69301
2885         * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
2886         aligned buffer instead of default-initialized variable.
2887         * testsuite/29_atomics/atomic/69301.cc: New test.
2888         * include/experimental/memory (observer_ptr::release): Use reserved
2889         name.
2890         * include/ext/pointer.h (_Pointer_adapter::operator++(int))
2891         (_Pointer_adapter::operator--(int)): Likewise.
2893         PR libstdc++/68925
2894         * include/experimental/random (randint): Use temporary instead of
2895         thread_local static.
2897 2017-01-17  Joshua Conner  <joshconner@google.com>
2899         * crossconfig.m4: Add fuchsia OS.
2900         * configure: Regenerate.
2902 2017-01-17  Jonathan Wakely  <jwakely@redhat.com>
2904         PR libstdc++/69699
2905         * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
2906         __GLIBCXX__ macro is not useful. Remove redundant date information
2907         and link to the GCC release timeline.
2908         (abi.versioning.active): Move partial sentence into the previous
2909         paragraph.
2910         * doc/html/*: Regenerate.
2912         PR libstdc++/79114
2913         * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
2914         of remove_reference.
2915         * testsuite/18_support/nested_exception/79114.cc: New test.
2917 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
2919         PR other/79046
2920         * configure.ac: Add GCC_BASE_VER.
2921         * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
2922         get version from BASE-VER file.
2923         * po/Makefile.in: Regenerated.
2924         * libsupc++/Makefile.in: Regenerated.
2925         * testsuite/Makefile.in: Regenerated.
2926         * src/Makefile.in: Regenerated.
2927         * configure: Regenerated.
2928         * Makefile.in: Regenerated.
2929         * include/Makefile.in: Regenerated.
2930         * doc/Makefile.in: Regenerated.
2931         * python/Makefile.in: Regenerated.
2932         * src/c++11/Makefile.in: Regenerated.
2933         * src/c++98/Makefile.in: Regenerated.
2934         * src/filesystem/Makefile.in: Regenerated.
2936 2017-01-16  Jonathan Wakely  <jwakely@redhat.com>
2938         PR libstdc++/66145
2939         * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
2940         exceptions.
2941         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
2942         for test, so new ios::failure can be caught.
2943         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2944         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
2945         exceptions_failbit.cc: Likewise.
2946         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2947         exceptions_failbit.cc: Likewise.
2948         * testsuite/27_io/basic_istream/extractors_other/char/
2949         exceptions_null.cc: Likewise.
2950         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
2951         exceptions_null.cc: Likewise.
2952         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2953         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2954         * testsuite/27_io/basic_ostream/inserters_other/char/
2955         exceptions_null.cc: Likewise.
2956         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2957         exceptions_null.cc: Likewise.
2958         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2960         PR libstdc++/78702
2961         * include/bits/locale_classes.h (locale::facet::__shim): Change from
2962         private to protected.
2963         * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
2964         make locale::facet::__shim accessible.
2966 2017-01-16  Ville Voutilainen  <ville.voutilainen@gmail.com>
2968         PR libstdc++/78389
2969         * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
2970         (merge(list&&, _StrictWeakOrdering)): Likewise.
2971         * testsuite/23_containers/list/operations/78389.cc: Add
2972         better test for the sizes.
2974 2017-01-14  Jonathan Wakely  <jwakely@redhat.com>
2976         * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
2977         Skip test when -D_GLIBCXX_PROFILE mode is included in options.
2978         * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
2979         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
2980         Likewise.
2981         * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
2982         * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
2983         * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
2984         * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
2985         * testsuite/23_containers/unordered_map/modifiers/extract.cc:
2986         Likewise.
2987         * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
2988         Likewise.
2989         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
2990         Likewise.
2991         * testsuite/23_containers/unordered_set/modifiers/extract.cc:
2992         Likewise.
2993         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2994         Likewise.
2995         * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
2996         * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
2997         * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
2998         * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
2999         * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
3000         * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
3001         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
3002         * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
3003         * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
3004         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
3005         * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
3006         * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
3007         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
3009 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
3011         PR libstdc++/65411
3012         * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
3013         retry fclose on EINTR.
3015         * include/profile/base.h: Remove unused header that leads to header
3016         cycle in C++17 mode.
3018         PR libstdc++/79075
3019         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
3020         Make _If_sv private.
3021         [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
3022         basic_string_view arguments.
3024         PR libstdc++/79075
3025         * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
3026         redundant option from cxxflags.
3027         (check_effective_target_cxx11-abi): Define.
3028         * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
3029         effective target.
3030         * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
3031         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
3032         Likewise.
3033         * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
3034         Likewise.
3035         * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
3036         * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
3037         Likewise.
3038         * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
3039         Likewise.
3040         * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
3041         * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
3042         Likewise.
3043         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
3044         Likewise.
3045         * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
3046         Likewise.
3047         * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
3048         Likewise.
3049         * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
3050         Likewise.
3051         * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
3052         Likewise.
3053         * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
3054         Likewise.
3055         * testsuite/23_containers/list/61347.cc: Likewise.
3056         * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
3057         * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
3059 2017-01-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
3061         PR libstdc++/78389
3062         * include/bits/list.tcc (merge(list&&)):
3063         Adjust list sizes if the comparator throws.
3064         (merge(list&&, _StrictWeakOrdering)): Likewise.
3065         (sort()): Splice elements back from the scratch buffers
3066         if the comparator throws.
3067         (sort(_StrictWeakOrdering)): Likewise.
3068         * testsuite/23_containers/list/operations/78389.cc: New.
3070 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
3072         * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
3073         XFAIL for C++17 until node reinsertion supports fancy pointers.
3075         PR libstdc++/78361
3076         * testsuite/20_util/add_pointer/value.cc: Test forming function
3077         pointers.
3079 2017-01-13  Michael Brune  <lucdanton@free.fr>
3081         PR libstdc++/78361
3082         * include/std/type_traits (__is_referenceable): Handle noexcept
3083         function types.
3085 2017-01-12  Jonathan Wakely  <jwakely@redhat.com>
3087         PR libstdc++/77528
3088         * include/bits/stl_queue.h (queue, priority_queue): Remove default
3089         member-initializers and define default constructors as templates with
3090         constraints.
3091         * include/bits/stl_stack.h (stack): Likewise.
3092         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
3093         New.
3094         * testsuite/23_containers/priority_queue/requirements/
3095         explicit_instantiation/1.cc: Test more instantiations.
3096         * testsuite/23_containers/priority_queue/requirements/
3097         explicit_instantiation/1_c++98.cc: Likewise.
3098         * testsuite/23_containers/queue/requirements/constructible.cc: New.
3099         * testsuite/23_containers/stack/requirements/constructible.cc: New.
3101         PR libstdc++/66284
3102         * doc/xml/manual/intro.xml: Document LWG 2781 change.
3103         * doc/html/*: Regenerate.
3104         * include/std/functional (_Function_base::_Ref_manager): Remove.
3105         (_Function_handler): Remove partial specializations for
3106         reference_wrapper.
3107         (function::target): Remove special case for const qualification.
3108         * testsuite/20_util/function/6.cc: Adjust tests for target type.
3109         * testsuite/20_util/function/7.cc: Likewise.
3110         * testsuite/20_util/function/8.cc: Likewise.
3112 2017-01-11  Jonathan Wakely  <jwakely@redhat.com>
3114         PR libstdc++/78134
3115         * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
3116         (map::equal_range): Fix return type of heterogeneous overloads.
3117         * include/bits/stl_multimap.h (multimap::lower_bound)
3118         (multimap::upper_bound, multimap::equal_range): Likewise.
3119         * include/bits/stl_multiset.h (multiset::lower_bound)
3120         (multiset::upper_bound, multiset::equal_range): Likewise.
3121         * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
3122         (set::equal_range): Likewise.
3123         * testsuite/23_containers/map/operations/2.cc
3124         * testsuite/23_containers/multimap/operations/2.cc
3125         * testsuite/23_containers/multiset/operations/2.cc
3126         * testsuite/23_containers/set/operations/2.cc
3128         PR libstdc++/78273
3129         * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
3130         the heterogeneous comparison can only find one match.
3131         * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
3132         * testsuite/23_containers/map/operations/2.cc: Test count works with
3133         comparison function that just partitions rather than sorting.
3134         * testsuite/23_containers/set/operations/2.cc: Likewise.
3136 2017-01-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
3138         Reduce the size of variant, it doesn't need an index of
3139         type size_t internally.
3140         * include/std/variant (parse_numbers.h): New include.
3141         (__select_index): New.
3142         (_Variant_storage<false, _Types...>::_M_reset_impl): Use
3143         _index_type for comparison with variant_npos.
3144         (_Variant_storage<false, _Types...>::__index_type): New.
3145         (_Variant_storage<false, _Types...>::_M_index): Change the
3146         type from size_t to __index_type.
3147         (_Variant_storage<true, _Types...>::__index_type): New.
3148         (_Variant_storage<true, _Types...>::_M_index): Change the
3149         type from size_t to __index_type.
3150         (_Variant_base::_M_valid): Use _Storage::__index_type
3151         for comparison with variant_npos.
3152         (variant::index): Use _Base::_Storage::__index_type
3153         for comparison with variant_npos.
3154         * testsuite/20_util/variant/index_type.cc: New.
3156 2017-01-10  Jonathan Wakely  <jwakely@redhat.com>
3158         * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
3159         effective target selector to prevent running in C++17 mode.
3161         PR libstdc++/77528
3162         * include/bits/stl_queue.h (queue::c): Add default member initializer.
3163         (queue::queue()): Add constructor and define as defaulted.
3164         (queue::queue(_Sequence&&)): Remove default argument.
3165         (priority_queue::c, priority_queue::comp): Add default member
3166         initializers.
3167         (priority_queue::priority_queue()): Add constructor and define as
3168         defaulted.
3169         (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
3170         Remove default argument for first parameter.
3171         * include/bits/stl_stack.h (stack::c): Add default member initializer.
3172         (stack::stack()): Add constructor and define as defaulted.
3173         (stack::stack(const _Sequence&)): Remove default argument.
3174         * testsuite/23_containers/priority_queue/requirements/
3175         explicit_instantiation/1.cc: Test explicit instantiation with
3176         non-DefaultConstructible sequence.
3177         * testsuite/23_containers/priority_queue/77528.cc: New test.
3178         * testsuite/23_containers/priority_queue/requirements/
3179         explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
3180         * testsuite/23_containers/queue/77528.cc: New test.
3181         * testsuite/23_containers/queue/requirements/explicit_instantiation/
3182         1.cc: Test explicit instantiation with non-DefaultConstructible
3183         sequence.
3184         * testsuite/23_containers/queue/requirements/explicit_instantiation/
3185         1_c++0x.cc: Replace with 1_c++98.cc.
3186         * testsuite/23_containers/stack/77528.cc: New test.
3187         * testsuite/23_containers/stack/requirements/explicit_instantiation/
3188         1.cc: Test explicit instantiation with non-DefaultConstructible
3189         sequence.
3190         * testsuite/23_containers/stack/requirements/explicit_instantiation/
3191         1_c++0x.cc: Replace with 1_c++98.cc.
3193 2017-01-10  Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
3195         * include/bits/locale_facets_nonio.tcc
3196         (time_get::_M_extract_via_format): Avoid compilation errors with
3197         non-standard struct tm.
3199 2017-01-10  François Dumont  <fdumont@gcc.gnu.org>
3200             Jonathan Wakely  <jwakely@redhat.com>
3202         * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
3203         (is_specialization, strip_versioned_namespace): New helpers functions
3204         to work with symbols in the versioned namespace.
3205         (Printer.add_version): Add second name using versioned namespace.
3206         (add_one_template_type_printer, add_one_type_printer): Add second
3207         type printers using versioned namespace.
3208         (register_type_printers): Add template type printer for basic_string.
3209         (build_libstdcxx_dictionary): Remove dead code.
3210         * python/libstdcxx/v6/xmethods.py: Make all matchers look for
3211         versioned namespace.
3212         * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
3213         results.
3214         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
3216 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
3218         PR libstdc++/79017
3219         * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
3220         functions separately on darwin and if they're missing define
3221         _GLIBCXX_NO_C99_ROUNDING_FUNCS.
3222         * config.h.in: Regenerate.
3223         * configure: Regenerate.
3224         * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
3225         (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
3227         * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
3228         to detect correct thread_local destructors.
3229         * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
3230         Define.
3232 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
3233             Aditya Kumar  <hiraditya@msn.com>
3235         PR libstdc++/66414
3236         * include/bits/basic_string.tcc
3237         (basic_string::find(const CharT*, size_type, size_type)): Optimize.
3239 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
3241         * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
3242         * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
3244         * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
3245         Include <cassert> header.
3247         PR libstdc++/78968
3248         * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
3249         * configure: Regenerate.
3251 2017-01-06  Barrett Adair  <barrettellisadair@gmail.com>
3252             Jonathan Wakely  <jwakely@redhat.com>
3254         * include/std/variant (variant, swap): Replace __and_ usage with fold
3255         expressions.
3257 2017-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3259         PR go/78978
3260         * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
3261         * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
3262         GLIBCXX_CHECK_ASSEMBLER_HWCAP.
3263         * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
3264         HWCAP_FLAGS.
3265         * aclocal.m4: Regenerate.
3266         * configure: Regenerate.
3267         * Makefile.in, doc/Makefile.in, include/Makefile.in,
3268         libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
3269         src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
3270         src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
3272 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
3274         * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
3276         PR libstdc++/78991
3277         * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
3278         (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
3279         (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
3280         move function objects.
3281         (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
3282         (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
3283         * testsuite/25_algorithms/sort/78991.cc: New test.
3285 2017-01-05  Jonathan Wakely  <jwakely@redhat.com>
3287         * include/bits/std_function.h (function::_Signature_type): Remove.
3288         (function::function(_Functor)): Adjust.
3290 2017-01-05  Tim Shen  <timshen@google.com>
3292         PR libstdc++/78996
3293         * include/std/variant (__gen_vtable_impl): rename __unused to
3294         __dimensions to avoid naming conflict.
3296 2017-01-04  Jonathan Wakely  <jwakely@redhat.com>
3298         PR libstdc++/78968
3299         * config.h.in: Regenerate.
3300         * configure: Likewise.
3301         * configure.ac: Check for __cxa_thread_atexit.
3302         * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
3303         Don't define __cxa_thread_atexit if libc provides it.
3305 2017-01-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
3307         Implement 2801, Default-constructibility of unique_ptr.
3308         * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
3309         (unique_ptr::_DeleterConstraint): Likewise.
3310         (unique_ptr()): Constrain.
3311         (unique_ptr(pointer)): Likewise.
3312         (unique_ptr(nullptr_t)): Likewise.
3313         (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
3314         (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
3315         (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
3316         (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
3317         * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
3318         * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
3319         * testsuite/20_util/unique_ptr/cons/default.cc: New.
3320         * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
3322 2017-01-04  Pauli Nieminen  <suokkos@gmail.com>
3323             Jonathan Wakely  <jwakely@redhat.com>
3325         PR libstdc++/64735
3326         * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
3327         * config.h.in: Regenerate.
3328         * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
3329         (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
3330         exports for exception_ptr, nested_exception, and future conditional.
3331         [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
3332         exports for exception_ptr, nested_exception, and future conditional.
3333         * configure: Regenerate.
3334         * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
3335         * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
3336         * libsupc++/eh_atomics.h: New file for internal use only.
3337         (__eh_atomic_inc, __eh_atomic_dec): New.
3338         * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
3339         (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
3340         (rethrow_exception): Use eh_atomics.h reference counting helpers.
3341         * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
3342         * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
3343         * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
3344         * libsupc++/exception_ptr.h: Likewise.
3345         * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
3346         * libsupc++/nested_exception.cc: Remove check for
3347         ATOMIC_INT_LOCK_FREE.
3348         * libsupc++/nested_exception.h: Likewise.
3349         * src/c++11/future.cc: Likewise.
3350         * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
3351         * testsuite/18_support/nested_exception/*: Likewise.
3352         * testsuite/30_threads/async/*: Likewise.
3353         * testsuite/30_threads/future/*: Likewise.
3354         * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
3355         * testsuite/30_threads/packaged_task/*: Likewise.
3356         * testsuite/30_threads/promise/*: Likewise.
3357         * testsuite/30_threads/shared_future/*: Likewise.
3359 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
3361         * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
3362         defaults to https; adjust reference.
3364 2017-01-03  Jonathan Wakely  <jwakely@redhat.com>
3366         PR libstdc++/78956
3367         * include/std/thread (thread(const thread&&)): Add deleted
3368         constructor.
3369         * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
3371         * doc/xml/manual/spine.xml: Update copyright years.
3372         * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
3373         * doc/xml/manual/test.xml: Likewise.
3374         * doc/html/*: Regenerate.
3376 2017-01-01  Gerald Pfeifer  <gerald@pfeifer.com>
3378         * doc/xml/faq.xml: Update address of C++ ABI link.
3379         * doc/xml/manual/abi.xml: Ditto.
3381 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
3383         Update copyright years.
3385 Copyright (C) 2017 Free Software Foundation, Inc.
3387 Copying and distribution of this file, with or without modification,
3388 are permitted in any medium without royalty provided the copyright
3389 notice and this notice are preserved.