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