Add missing header for std::max_align_t
[official-gcc.git] / libstdc++-v3 / ChangeLog
blobd7a9dbb6ce3a1a70887b099965b7174ba09d947a
1 2018-07-25  Jonathan Wakely  <jwakely@redhat.com>
3         * include/experimental/memory_resource: Include <cstddef> header.
5         * acinclude.m4 (glibcxx_SUBDIRS): Add src/c++17.
6         * src/Makefile.am: Add comment.
7         * src/c++17/Makefile.in: Regenerate.
9         * include/Makefile.am: Add new <bits/unique_lock.h> header.
10         * include/Makefile.in: Regenerate.
11         * include/bits/std_mutex.h [!_GLIBCXX_USE_C99_STDINT_TR1] (mutex)
12         (lock_guard): Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
13         (unique_lock): Move definition to ...
14         * include/bits/unique_lock.h: New header.
15         [!_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock): Define unconditionally.
16         [_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock(mutex_type&, time_point))
17         (unique_lock(mutex_type&, duration), unique_lock::try_lock_until)
18         (unique_lock::try_lock_for): Define only when <chrono> is usable.
19         * include/std/condition_variable: Include <bits/unique_lock.h>.
20         * include/std/mutex: Likewise.
22 2018-07-24  Jonathan Wakely  <jwakely@redhat.com>
24         * config/abi/pre/gnu.ver: Export new symbols.
25         * configure: Regenerate.
26         * include/Makefile.am: Add new <memory_resource> header.
27         * include/Makefile.in: Regenerate.
28         * include/precompiled/stdc++.h: Include <memory_resource> for C++17.
29         * include/std/memory_resource: New header.
30         (memory_resource, polymorphic_allocator, new_delete_resource)
31         (null_memory_resource, set_default_resource, get_default_resource)
32         (pool_options, monotonic_buffer_resource): Define.
33         * src/Makefile.am: Add c++17 directory.
34         * src/Makefile.in: Regenerate.
35         * src/c++11/Makefile.am: Fix comment.
36         * src/c++17/Makefile.am: Add makefile for new sub-directory.
37         * src/c++17/Makefile.in: Generate.
38         * src/c++17/memory_resource.cc: New.
39         (newdel_res_t, null_res_t, constant_init, newdel_res, null_res)
40         (default_res, new_delete_resource, null_memory_resource)
41         (set_default_resource, get_default_resource): Define.
42         * testsuite/20_util/memory_resource/1.cc: New test.
43         * testsuite/20_util/memory_resource/2.cc: New test.
44         * testsuite/20_util/monotonic_buffer_resource/1.cc: New test.
45         * testsuite/20_util/monotonic_buffer_resource/allocate.cc: New test.
46         * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: New test.
47         * testsuite/20_util/monotonic_buffer_resource/release.cc: New test.
48         * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
49         New test.
50         * testsuite/20_util/polymorphic_allocator/1.cc: New test.
51         * testsuite/20_util/polymorphic_allocator/resource.cc: New test.
52         * testsuite/20_util/polymorphic_allocator/select.cc: New test.
53         * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
54         Define concrete memory resource for testing.
55         (__gnu_test::default_resource_mgr): Define RAII helper for changing
56         default resource.
58         PR libstdc++/86658
59         * include/bits/stl_algobase.h (__niter_wrap<_Iterator>): Pass unused
60         parameter by reference, to avoid copying invalid iterators.
61         * testsuite/25_algorithms/copy/86658.cc: New test.
63         * include/std/bit (__countl_zero, __countr_zero, __popcount): Use
64         local variables for number of digits instead of type aliases.
65         (__log2p1): Remove redundant branch also checked in __countl_zero.
67         * include/bits/uses_allocator.h (__is_erased_or_convertible): Reorder
68         conditions. Add comments.
69         * testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error line.
70         * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
71         * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
73         * include/bits/uses_allocator.h (__is_erased_or_convertible): Remove.
74         (__uses_allocator_helper): Check conditions directly instead of
75         using __is_erased_or_convertible.
77         * include/experimental/memory_resource: Adjust comments and
78         whitespace.
79         (__resource_adaptor_imp): Add second template parameter for type of
80         memory resource base class.
81         (memory_resource): Define default constructor, destructor, copy
82         constructor and copy assignment operator as defaulted.
84         PR libstdc++/70966
85         * include/experimental/memory_resource (__get_default_resource): Use
86         placement new to create an object with dynamic storage duration.
88 2018-07-23  Jonathan Wakely  <jwakely@redhat.com>
90         PR libstdc++/70940
91         * include/experimental/memory_resource
92         (__resource_adaptor_common::_AlignMgr::_M_unadjust): Add assertion.
93         (__resource_adaptor_common::__guaranteed_alignment): New helper to
94         give maximum alignment an allocator guarantees. Specialize for known
95         allocators using new and malloc.
96         (__resource_adaptor_imp::do_allocate): Use __guaranteed_alignment.
97         (__resource_adaptor_imp::do_deallocate): Likewise.
98         * testsuite/experimental/memory_resource/new_delete_resource.cc:
99         Check that new and delete are called with expected sizes.
101 2018-07-20  Jonathan Wakely  <jwakely@redhat.com>
103         PR libstdc++/86595
104         * include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add
105         noexcept.
107 2018-07-20  Fangrui Song  <maskray@google.com>
109         * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use
110         _GLIBCXX_VISIBILITY(default).
112 2018-07-20  Jonathan Wakely  <jwakely@redhat.com>
114         PR libstdc++/86603
115         * include/std/version: Move __cpp_lib_list_remove_return_type macro.
117 2018-07-19  Jonathan Wakely  <jwakely@redhat.com>
119         * include/std/type_traits (__is_member_object_pointer_helper): Use
120         __not_<is_function<_Tp>>::type instead of integral_constant.
121         (__is_member_function_pointer_helper): Likewise for
122         is_function<_Tp>::type.
123         (is_compund): Likewise for __not_<is_fundamental<_Tp>>::type.
124         (__do_is_nt_destructible_impl): Use __bool_constant and reindent.
125         (is_trivially_constructible): Remove redundant use of
126         is_constructible.
127         (__is_trivially_copy_assignable_impl): Remove redundant use of
128         is_copy_assignable.
129         (__is_trivially_move_assignable_impl): Remove redundant use of
130         is_move_assignable.
131         (is_trivially_destructible): Use __bool_constant.
132         * testsuite/20_util/is_trivially_assignable/value.cc: Add some more
133         tests for scalar types.
135 2018-07-19  Glen Joseph Fernandes  <glenjofe@gmail.com>
137         * include/bits/stl_algobase.h (__copy_move_a): Used
138         __is_trivially_copyable.
139         (__copy_move_backward_a): Likewise.
140         * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
141         New test.
143 2018-07-17  Jonathan Wakely  <jwakely@redhat.com>
145         PR libstdc++/86450
146         * acinclude.m4 (GLIBCXX_CHECK_COMPILER_FEATURES): Don't define WERROR.
147         (GLIBCXX_EXPORT_FLAGS): Use -Wabi=2 instead of -Wabi.
148         * configure: Regenerate.
149         * configure.ac: Change GLIBCXX_ENABLE_WERROR default to "no".
150         * doc/Makefile.in: Regenerate.
151         * fragment.am: Set WERROR_FLAG to -Werror instead of $(WERROR).
152         * include/Makefile.in: Regenerate.
153         * libsupc++/Makefile.in: Regenerate.
154         * po/Makefile.in: Regenerate.
155         * python/Makefile.in: Regenerate.
156         * src/Makefile.in: Regenerate.
157         * src/c++11/Makefile.in: Regenerate.
158         * src/c++11/debug.cc: Use diagnostic pragmas to suppress warnings
159         from -Wabi=2 that don't affect exported symbols.
160         * src/c++98/Makefile.in: Regenerate.
161         * src/filesystem/Makefile.in: Regenerate.
162         * testsuite/Makefile.in: Regenerate.
164         * src/c++11/compatibility-thread-c++0x.cc [_GLIBCXX_SHARED]
165         (_Async_state_common::_M_join): Simplify use of std::call_once and
166         corresponding explicit instantiation.
167         (_Maybe_wrap_member_pointer, _Bind_simple, _Bind_simple_helper)
168         (__bind_simple): Remove definitions and explicit instantiation that
169         are not required by exported symbols.
171 2018-07-16  Jonathan Wakely  <jwakely@redhat.com>
173         * scripts/create_testsuite_files: Fix typo in comment.
175         PR libstdc++/86537
176         * include/bits/shared_ptr.h (less<shared_ptr<_Tp>>): Remove
177         non-standard partial specialization.
178         * include/bits/shared_ptr_base.h (_Sp_less): Remove class definition.
179         (less<__shared_ptr<_Tp, _Lp>): Remove partial specialization.
180         * testsuite/20_util/shared_ptr/comparison/86537.cc: New test.
182 2018-07-16  Andreas Krebbel  <krebbel@linux.ibm.com>
184         * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
185         * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update.
186         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
188 2018-07-06  François Dumont  <fdumont@gcc.gnu.org>
190         * include/debug/functions.h (__gnu_debug::__check_string): Move...
191         * include/debug/string (__gnu_debug::__check_string): ... here.
192         (_GLIBCXX_DEBUG_VERIFY_STR_COND_AT): New.
193         (__glibcxx_check_string_n_constructor): New.
194         (__gnu_debug::basic_string<>(const _CharT*, size_type, const _Alloc&)):
195         Use latter.
196         (__glibcxx_check_string_constructor): New.
197         (__gnu_debug::basic_string<>(const _CharT*, const _Alloc&)):
198         Use latter.
199         * testsuite/21_strings/basic_string/debug/1_neg.cc: New.
200         * testsuite/21_strings/basic_string/debug/2_neg.cc: New.
202 2018-07-06  Jonathan Wakely  <jwakely@redhat.com>
204         PR libstdc++/84928 use std::move in <numeric> algorithms
205         * include/bits/stl_numeric.h (_GLIBCXX_MOVE_IF_20): Define macro to
206         conditionally move, according to __cplusplus value.
207         (accumulate, inner_product, partial_sum, adjacent_difference): Use
208         _GLIBCXX_MOVE_IF_20.
209         * testsuite/26_numerics/accumulate/lwg2055.cc: New test.
210         * testsuite/26_numerics/adjacent_difference/lwg2055.cc: New test.
211         * testsuite/26_numerics/inner_product/lwg2055.cc: New test.
212         * testsuite/26_numerics/partial_sum/lwg2055.cc: New test.
214         * config/abi/pre/gnu.ver: Use wildcards to combine related patterns.
216         P0935R0 Eradicating unnecessarily explicit default constructors
217         * config/abi/pre/gnu.ver: Tighten existing patterns and export new
218         default constructor symbols.
219         * include/std/sstream (basic_stringbuf, basic_istringstream)
220         (basic_ostringstream, basic_stringstream): Remove default arguments
221         from explicit constructors taking ios_base::openmode and add separate
222         non-explicit default constructors.
223         * testsuite/27_io/basic_istringstream/cons/default.cc: New.
224         * testsuite/27_io/basic_ostringstream/cons/default.cc: New.
225         * testsuite/27_io/basic_stringstream/cons/default.cc: New.
226         * testsuite/27_io/basic_stringbuf/cons/char/default.cc: New.
227         * testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: New.
229         * include/std/variant (__accepted_index): Use void_t.
231 2018-07-05  Jonathan Wakely  <jwakely@redhat.com>
233         PR libstdc++/85831
234         * config/abi/pre/gnu.ver: Export move constructors and move
235         assignment operators for std::logic_error and std::runtime_error.
236         * include/std/stdexcept: Use _GLIBCXX_NOTHROW instead of
237         _GLIBCXX_USE_NOEXCEPT.
238         (logic_error, runtime_error): Declare move constructors and move
239         assignment operators. When not declared already, define copy
240         constructors and copy assignment operators as explicit-defaulted.
241         (domain_error, invalid_argument, length_error, out_of_range)
242         (overflow_error, underflow_error): Define move constructors and move
243         assignment operators as explicitly-defaulted.
244         * libsupc++/exception.h (exception): Likewise.
245         * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Define
246         move constructors and move assignment operators as defaulted.
247         * testsuite/19_diagnostics/stdexcept.cc: Check that constructors and
248         assignment operators are defined.
250         * testsuite/21_strings/basic_string/cons/char/deduction.cc: XFAIL for
251         COW strings.
252         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
253         Likewise.
254         * testsuite/21_strings/basic_string/requirements/
255         explicit_instantiation/debug.cc: Likewise.
257         PR libstdc++/58265
258         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
259         (basic_string::assign(basic_string&&)): Add conditional noexcept
260         depending on the allocator's is_always_equal property (LWG 2063).
261         * testsuite/21_strings/basic_string/modifiers/assign/char/
262         move_assign.cc: Check for non-throwing exception specification.
263         * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
264         move_assign.cc: Likewise.
266         PR libstdc++/58265
267         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
268         [_GLIBCXX_FULLY_DYNAMIC_STRING==0] (basic_string::basic_string()):
269         Add GLIBCXX_NOEXCEPT.
270         (basic_string::operator=(basic_string&&)): Add _GLIBCXX_NOEXCEPT_IF
271         to depend on the allocator's is_always_equal property (LWG 2063).
272         (basic_string::swap(basic_string&)): Likewise.
273         * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]
274         (basic_string::swap(basic_string&)): Likewise.
275         * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
276         Check is_nothrow_move_assignable.
277         * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
278         Check is_nothrow_move_assignable.
279         * testsuite/21_strings/basic_string/cons/char/
280         noexcept_move_construct.cc: Likewise.
281         * testsuite/21_strings/basic_string/cons/wchar_t/
282         noexcept_move_construct.cc: Likewise.
284 2018-07-04  Jonathan Wakely  <jwakely@redhat.com>
286         P0646R1 Improving the Return Value of Erase-Like Algorithms I
287         * include/bits/forward_list.h (__cpp_lib_list_remove_return_type):
288         Define.
289         (forward_list::__remove_return_type): Define typedef as size_type or
290         void, according to __cplusplus value.
291         (_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
292         empty, according to __cplusplus value.
293         (forward_list::remove, forward_list::unique): Use typedef and macro
294         to change return type and add abi-tag for C++2a.
295         (forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
296         typedef to change return type for C++2a.
297         * include/bits/forward_list.tcc (_GLIBCXX20_ONLY): Define macro.
298         (forward_list::remove, forward_list::remove_if<Pred>)
299         (forward_list::unique<BinPred>): Return number of removed elements
300         for C++2a.
301         * include/bits/list.tcc (_GLIBCXX20_ONLY): Define macro.
302         (list::remove, list::unique, list::remove_if<Predicate>)
303         (list::unique<BinaryPredicate>): Return number of removed elements
304         for C++2a.
305         * include/bits/stl_list.h (__cpp_lib_list_remove_return_type): Define.
306         (list::__remove_return_type): Define typedef as size_type or
307         void, according to __cplusplus value.
308         (_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
309         empty, according to __cplusplus value.
310         (list::remove, list::unique): Use typedef and macro to change return
311         type and add abi-tag for C++2a.
312         (list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use
313         typedef to change return type for C++2a.
314         * include/std/version (__cpp_lib_list_remove_return_type): Define.
315         * testsuite/23_containers/forward_list/operations/
316         remove_cxx20_return.cc: New.
317         * testsuite/23_containers/forward_list/operations/
318         unique_cxx20_return.cc: New.
320         P0458R2 Checking for Existence of an Element in Associative Containers
321         * include/bits/stl_map.h (map::contains): Add for C++2a.
322         * include/bits/stl_multimap.h (multimap::contains): Likewise.
323         * include/bits/stl_multiset.h (multiset::contains): Likewise.
324         * include/bits/stl_set.h (set::contains): Likewise.
325         * include/bits/stl_tree.h (__has_is_transparent_t): Define alias.
326         (_Rb_tree::_M_find_tr, _Rb_tree::_M_count_tr)
327         (_Rb_tree::_M_lower_bound_tr, _Rb_tree::_M_upper_bound_tr)
328         (_Rb_tree::_M_equal_range_tr): Use __has_is_transparent_t.
329         * include/bits/unordered_map.h (unordered_map::contains)
330         (unordered_multimap::contains): Add for C++2a.
331         * include/bits/unordered_set.h (unordered_set::contains)
332         (unordered_multiset::contains): Likewise.
333         * testsuite/23_containers/map/operations/contains.cc: New.
334         * testsuite/23_containers/multimap/operations/contains.cc: New.
335         * testsuite/23_containers/multiset/operations/contains.cc: New.
336         * testsuite/23_containers/set/operations/contains.cc: New.
337         * testsuite/23_containers/unordered_map/operations/contains.cc: New.
338         * testsuite/23_containers/unordered_multimap/operations/contains.cc:
339         New.
340         * testsuite/23_containers/unordered_multiset/operations/contains.cc:
341         New.
342         * testsuite/23_containers/unordered_set/operations/contains.cc: New.
344 2018-07-04  François Dumont  <fdumont@gcc.gnu.org>
346         PR libstdc++/86272
347         * include/debug/string
348         (__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)):
349         Use __glibcxx_check_insert_range.
350         * 21_strings/basic_string/cons/char/1.cc: Adapt test to use
351         __gnu_debug::string when _GLIBCXX_DEBUG.
352         * 21_strings/basic_string/init-list.cc: Likewise.
353         * 21_strings/basic_string/modifiers/insert/char/1.cc: Likewise.
354         * 21_strings/basic_string/modifiers/insert/char/2.cc: Likewise.
355         * 21_strings/basic_string/modifiers/insert/char/83328.cc: Likewise.
356         * 21_strings/basic_string/types/1.cc: Likewise.
358 2018-07-04  Jonathan Wakely  <jwakely@redhat.com>
360         * testsuite/25_algorithms/make_heap/complexity.cc: Require effective
361         target for std::random_device.
362         * testsuite/26_numerics/random/random_device/cons/default.cc:
363         Likewise.
364         * testsuite/experimental/algorithm/sample-2.cc: Likewise.
365         * testsuite/experimental/algorithm/shuffle.cc: Likewise.
366         * testsuite/experimental/random/randint.cc: Likewise.
367         * testsuite/lib/libstdc++.exp
368         (check_effective_target_random_device): New proc.
370 2018-07-04  Jonathan Wakely  <jwakely@redhat.com>
371             Jakub Jelinek  <jakub@redhat.com>
373         * include/std/bit (__rotl, __rotr): Fix for non-power of two sizes.
375 2018-07-04  Jonathan Wakely  <jwakely@redhat.com>
377         PR libstdc++/86398
378         * include/std/type_traits (is_trivially_constructible): Check
379         is_constructible before __is_trivially_constructible.
380         * testsuite/20_util/is_trivially_constructible/value.cc: Add more
381         tests, including negative cases.
382         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use
383         zero for dg-error lineno.
384         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
385         Likewise.
387         * include/std/bit (__rotl, __rotr): Avoid branch.
388         (_If_is_unsigned_integer): Use remove_cv_t.
389         * testsuite/26_numerics/bit/bitops.count/popcount.cc: New.
391 2018-07-03  Jonathan Wakely  <jwakely@redhat.com>
393         P0556R3 Integral power-of-2 operations, P0553R2 Bit operations
394         * include/Makefile.am: Add new header.
395         * include/Makefile.in: Regenerate.
396         * include/precompiled/stdc++.h: Include new header.
397         * include/std/bit: New header.
398         (__rotl, __rotr, __countl_zero, __countl_one, __countr_zero)
399         (__countr_one, __popcount, __ispow2, __ceil2, __floor2, __log2p1):
400         Define for C++14.
401         [!__STRICT_ANSI__] (rotl, rotr, countl_zero, countl_one, countr_zero)
402         (countr_one, popcount): Define for C++2a. Also overload for std::byte.
403         (ispow2, ceil2, floor2, log2p1): Define for C++2a.
404         [!__STRICT_ANSI__] (ispow2, ceil2, floor2, log2p1): Overload for
405         std::byte.
406         * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: New.
407         * testsuite/26_numerics/bit/bit.pow.two/floor2.cc: New.
408         * testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: New.
409         * testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: New.
410         * testsuite/26_numerics/bit/bitops.rot/rotl.cc: New.
411         * testsuite/26_numerics/bit/bitops.rot/rotr.cc: New.
412         * testsuite/26_numerics/bit/bitops.count/countl_one.cc: New.
413         * testsuite/26_numerics/bit/bitops.count/countl_zero.cc: New.
414         * testsuite/26_numerics/bit/bitops.count/countr_one.cc: New.
415         * testsuite/26_numerics/bit/bitops.count/countr_zero.cc: New.
417         * include/bits/alloc_traits.h: Remove redundant preprocessor
418         condition.
420 2018-07-03  François Dumont  <fdumont@gcc.gnu.org>
422         * include/bits/stl_algobase.h (__niter_wrap): New.
423         (__copy_move_a2(_II, _II, _OI)): Use latter.
424         (__copy_move_backward_a2(_BI1, _BI1, _BI2)): Likewise.
425         (fill_n(_OI, _Size, const _Tp&)): Likewise.
426         (equal(_II1, _II1, _II2)): Use __glibcxx_requires_can_increment.
427         * include/debug/stl_iterator.h
428         (std::__niter_base(const __gnu_cxx::_Safe_iterator<
429         __gnu_cxx::__normal_iterator<>, _Sequence>&)): New declaration.
430         * include/debug/vector (__niter_base(const __gnu_cxx::_Safe_iterator<
431         __gnu_cxx::__normal_iterator<>, _Sequence>&)): New.
433 2018-07-02  Jonathan Wakely  <jwakely@redhat.com>
435         P0758R1 Implicit conversion traits
436         * include/std/type_traits [__cplusplus > 201703]
437         (__is_convertible_helper::__is_nothrow_type): Define new member.
438         (__is_convertible_helper<_From, _To, false>::__test_aux1): Add
439         noexcept.
440         (__is_convertible_helper<_From, _To, false>::__test_nothrow)
441         (__is_convertible_helper<_From, _To, false>::__is_nothrow_type): Add
442         new members.
443         (is_nothrow_convertible, is_nothrow_convertible_v): Define for C++2a.
444         * testsuite/20_util/is_nothrow_convertible/value.cc: New.
445         * testsuite/20_util/is_nothrow_convertible/requirements/
446         explicit_instantiation.cc: New.
447         * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
448         New.
450         P0887R1 The identity metafunction
451         * include/std/type_traits (type_identity, type_identity_t): Define
452         for C++2a.
453         * testsuite/20_util/type_identity/requirements/alias_decl.cc: New.
454         * testsuite/20_util/type_identity/requirements/
455         explicit_instantiation.cc:New.
456         * testsuite/20_util/type_identity/requirements/typedefs.cc: New.
458         * include/bits/regex.h (sub_match::operator string_type): Call str().
459         (sub_match::compare): Use _M_str() instead of str().
460         (sub_match::_M_compare): New public function.
461         (sub_match::__string_view): New helper type.
462         (sub_match::_M_str): New overloaded functions to avoid creating a
463         string_type object when not needed.
464         (operator==, operator!=, operator<, operator>, operator<=, operator>=):
465         Use sub_match::_M_compare instead of creating string_type objects.
466         Fix Doxygen comments.
467         * include/bits/regex_compiler.h (__has_contiguous_iter): Remove.
468         (__is_contiguous_normal_iter): Rename to __is_contiguous_iter and
469         simplify.
470         (__enable_if_contiguous_iter, __disable_if_contiguous_iter): Use
471         __enable_if_t.
472         * include/std/type_traits (__enable_if_t): Define for C++11.
473         * testsuite/28_regex/sub_match/compare.cc: New.
474         * testsuite/util/testsuite_iterators.h (remove_cv): Add transformation
475         trait.
476         (input_iterator_wrapper): Use remove_cv for value_type argument of
477         std::iterator base class.
479 2018-06-29  Jonathan Wakely  <jwakely@redhat.com>
481         * testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc:
482         Add whitespace to dejagnu directive.
483         * testsuite/23_containers/array/element_access/at_neg.cc: Likewise.
485 2018-06-27  François Dumont  <fdumont@gcc.gnu.org>
487         * include/bits/stl_vector.h
488         (struct _Vector_base<>::_Vector_impl_data): New.
489         (struct _Vector_base<>::_Vector_impl): Inherit from latter.
490         (_Vector_base<>::_Vector_impl::_M_swap_data): Move...
491         (_Vector_base<>::_Vector_impl_data::_M_swap_data): ...here.
492         (_Vector_base<>::_Vector_impl()): Add noexcept qualification.
493         (_Vector_base<>::_Vector_impl(_Vector_impl&&)): New.
494         (_Vector_base<>::_Vector_impl(_Tp_alloc_type&&, _Vector_impl&&)): New.
495         (_Vector_base(const allocator_type&, _Vector_base&&)): New, use latter.
496         (_Vector_base()): Default.
497         (_Vector_base(_Vector_base&&)): Default.
498         (_Vector_base(size_t)) [_GLIBCXX_INLINE_VERSION]: Delete.
499         (_Vector_base(_Tp_alloc_type&&)) [_GLIBCXX_INLINE_VERSION]: Delete.
500         (_Vector_base::_M_create_storage(size_t)): Make protected.
501         (vector()): Default.
502         (vector(vector&&)): Default.
503         (vector(vector&&, const allocator_type&, true_type)): New.
504         (vector(vector&&, const allocator_type&, false_type)): New.
505         (vector(vector&&, const allocator_type&)): Use latters.
506         (vector(_InputIte, _InputIte, const allocator_type&)): Call
507         _M_range_initialize directly.
508         * include/debug/vector
509         (vector(vector&&, const allocator_type&)): Add noexcept qualification.
510         * testsuite/23_containers/vector/allocator/default_init.cc: New.
511         * testsuite/23_containers/vector/cons/noexcept_move_construct.cc: Add
512         static assertions.
514 2018-06-27  Jonathan Wakely  <jwakely@redhat.com>
516         * include/bits/cpp_type_traits.h [__cplusplus >= 201703]
517         (__is_byte<byte>): Define specialization for std::byte.
519         PR libstdc++/86138
520         * include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0]
521         Declare explicit instantiations of COW empty reps and I/O functions.
523 2018-06-26  David Edelsohn  <dje.gcc@gmail.com>
525         * testsuite/experimental/algorithm/sample-2.cc: Add TLS DejaGNU
526         directives.
527         * testsuite/experimental/algorithm/shuffle.cc: Likewise.
529 2018-06-26  Jonathan Wakely  <jwakely@redhat.com>
531         * include/bits/regex.tcc (regex_iterator::operator==): Add missing
532         noexcept.
534 2018-06-25  Jonathan Wakely  <jwakely@redhat.com>
536         PR libstdc++/86112
537         * python/libstdcxx/v6/printers.py (add_one_template_type_printer):
538         Replace dict comprehension.
540         PR libstdc++/81092
541         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
543         PR libstdc++/86292
544         * include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
545         Add try-catch block.
546         * testsuite/23_containers/vector/cons/86292.cc: New.
548         * doc/xml/manual/status_cxx2017.xml: Document N4531 status.
550         * include/experimental/algorithm (sample, shuffle): Add new overloads
551         using per-thread random number engine.
552         * testsuite/experimental/algorithm/sample.cc: Simpify and reduce
553         dependencies by using __gnu_test::test_container.
554         * testsuite/experimental/algorithm/sample-2.cc: New.
555         * testsuite/experimental/algorithm/shuffle.cc: New.
557 2018-06-22  Jonathan Wakely  <jwakely@redhat.com>
559         * config/abi/pre/gnu.ver: Fix __cxx11::basic_string patterns for
560         different size_t mangling on 32-bit targets.
562         PR libstdc++/86280
563         * include/experimental/memory_resource
564         (__resource_adaptor_common::_AlignMgr::_M_token_size): Use type large
565         enough for result of left shift.
567         PR libstdc++/86138
568         * include/bits/basic_string.tcc:
569         [__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
570         (basic_string<char>::_Rep::_S_empty_rep_storage)
571         (basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
572         instantiation declarations.
573         [__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
574         explicit instantiation declarations.
575         * testsuite/21_strings/basic_string/cons/char/86138.cc: New.
576         * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.
578 2018-06-21  Jonathan Wakely  <jwakely@redhat.com>
580         PR libstdc++/83328
581         * acinclude.m4 (libtool_VERSION): Bump to 6:26:0.
582         * config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 and export new symbol.
583         * configure: Regenerate.
584         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
585         (basic_string::insert(const_iterator, initializer_list<C>)): Add.
586         [_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
587         (basic_string::insert(iterator, initializer_list<C>)): Suppress
588         definition.
589         * include/debug/string (basic_string::insert(iterator, C)): Change
590         first parameter to const_iterator.
591         (basic_string::insert(iterator, size_type, C)): Likewise. Change
592         return type to iterator.
593         (basic_string::insert(iterator, InputIterator, InputIterator)):
594         Likewise.
595         (basic_string::insert(iterator, initializer_list<C>)): Change first
596         parameter to const_iterator and return type to iterator.
597         * src/c++11/string-inst.cc: Extend comment.
598         * testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc:
599         New.
600         * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc:
601         New.
602         * testsuite/util/testsuite_abi.cc: Add new symbol version.
604         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
606         PR libstdc++/70940
607         * include/experimental/memory_resource
608         (__resource_adaptor_imp::do_deallocate): Add missing return.
609         * testsuite/experimental/memory_resource/new_delete_resource.cc: New.
610         * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
611         resource_adaptor with std::allocator, __gnu_cxx::new_allocator and
612         __gnu_cxx::malloc_allocator.
614         PR libstdc++/70940
615         * include/experimental/memory_resource (__resource_adaptor_common):
616         New base class.
617         (__resource_adaptor_common::_AlignMgr): Helper for obtaining aligned
618         pointer from unaligned, and vice versa.
619         (__resource_adaptor_imp::do_allocate): Use _AlignMgr to adjust
620         allocated pointer to meet alignment request.
621         (__resource_adaptor_imp::do_deallocate): Use _AlignMgr to retrieve
622         original pointer for deallocation.
623         (__resource_adaptor_imp::do_is_equal): Reformat.
624         (__resource_adaptor_imp::_S_aligned_size): Remove.
625         (__resource_adaptor_imp::_S_supported): Remove.
626         (new_delete_resource): Use __gnu_cxx::new_allocator.
627         * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
628         extended alignments and use debug_allocator to check for matching
629         allocate/deallocate pairs.
631 2018-06-21  François Dumont  <fdumont@gcc.gnu.org>
633         * include/debug/safe_iterator.h
634         (_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)):
635         Compare __x base iterator with a value-initialized iterator of the
636         same type.
638 2018-06-20  Jonathan Wakely  <jwakely@redhat.com>
640         PR libstdc++/70966
641         * include/experimental/memory_resource (__resource_adaptor_imp): Add
642         static assertions to enforce requirements on pointer types.
643         (__resource_adaptor_imp::get_allocator()): Add noexcept.
644         (new_delete_resource, null_memory_resource): Return address of an
645         object with dynamic storage duration.
646         (__null_memory_resource): Remove.
647         * testsuite/experimental/memory_resource/70966.cc: New.
649         * testsuite/20_util/duration/arithmetic/dr3050.cc: Add new test
650         missed from recent commit.
652 2018-06-19  Jonathan Wakely  <jwakely@redhat.com>
654         * include/std/utility: Remove unused <exception> header.
656 2018-06-18  Jonathan Wakely  <jwakely@redhat.com>
658         LWG 2975 ensure construct(pair<T,U>*, ...) used to construct pairs
659         * include/std/scoped_allocator (__not_pair): Define SFINAE helper.
660         (construct(_Tp*, _Args&&...)): Remove from overload set when _Tp is
661         a specialization of std::pair.
662         * testsuite/20_util/scoped_allocator/construct_pair.cc: Ensure
663         pair elements are constructed correctly.
665         LWG 2989 hide path iostream operators from normal lookup
666         * include/bits/fs_path.h (operator<<, operator>>): Define inline as
667         friends.
668         * testsuite/27_io/filesystem/path/io/dr2989.cc: New.
670         LWG 3050 Fix cv-qualification of convertibility constraints
671         * include/std/chrono (duration, operator*, operator/, operator%): Use
672         const-qualified type as source type in is_convertible constraints.
673         * testsuite/20_util/duration/arithmetic/dr3050.cc: New.
674         * testsuite/20_util/duration/cons/dr3050.cc: New.
675         * testsuite/20_util/duration/literals/range.cc: Rename to...
676         * testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
677         dg-error lineno.
679 2018-06-18  Maya Rashish  <coypu@sdf.org>
681         * crossconfig.m4: Handle OpenBSD just like NetBSD.
682         * configure: Rebuilt.
684 2018-06-18  Jonathan Wakely  <jwakely@redhat.com>
686         P0754R2 <version> header
687         * include/Makefile.am: Add new header.
688         * include/Makefile.in: Regenerate.
689         * include/bits/c++config: Change doxygen comment to suggest <version>
690         instead of <iosfwd>.
691         * include/precompiled/stdc++.h: Include <cwchar> and <cwctype>
692         unconditionally.  Add C++17 and C++20 headers.
693         * include/std/version: New header.
694         * testsuite/17_intro/headers/c++2017/all_attributes.cc: New.
695         * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: New.
696         * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: New.
697         * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: New.
698         * testsuite/17_intro/headers/c++2017/operator_names.cc: New.
699         * testsuite/17_intro/headers/c++2017/stdc++.cc: New.
700         * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
701         New.
702         * testsuite/17_intro/headers/c++2020/all_attributes.cc: New.
703         * testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: New.
704         * testsuite/17_intro/headers/c++2020/all_no_rtti.cc: New.
705         * testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: New.
706         * testsuite/17_intro/headers/c++2020/operator_names.cc: New.
707         * testsuite/17_intro/headers/c++2020/stdc++.cc: New.
708         * testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc:
709         New.
710         * testsuite/18_support/headers/version/macros.cc: New.
711         * testsuite/18_support/headers/version/macros.cc: New.
713         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Only check when
714         enable_libstdcxx_filesystem_ts = yes. Check for link, readlink and
715         symlink.
716         * config.h.in: Regenerate.
717         * configure: Regenerate.
718         * configure.ac: Remove AC_CHECK_FUNCS for link, readlink and symlink.
720         LWG 3035. std::allocator's constructors should be constexpr
721         * include/bits/allocator.h (allocator): Add constexpr to constructors
722         for C++2a. Replace dynamic exception specifications with NOTHROW
723         macro.
724         (allocator, operator==, operator!=): Replace USE_NOEXCEPT macro with
725         NOTHROW.
726         * include/bits/c++config (_GLIBCXX20_CONSTEXPR): Define.
727         * include/ext/malloc_allocator.h (malloc_allocator): Add constexpr
728         to constructors for C++2a.
729         * include/ext/new_allocator.h (new_allocator): Likewise.
731 2018-06-16  Jonathan Wakely  <jwakely@redhat.com>
733         LWG 3076 basic_string CTAD ambiguity
734         * doc/xml/manual/intro.xml: Document LWG 3076 change.
735         * include/bits/basic_string.h
736         [__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
737         (basic_string(const _CharT*, const _Alloc&)): Turn into a function
738         template constrained by _RequireAllocator.
739         (basic_string(size_type, _CharT, const _Alloc&)): Likewise.
740         * src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS):
741         Define.
742         * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
743         deduction
744         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
745         Likewise.
747 2018-06-15  Jonathan Wakely  <jwakely@redhat.com>
749         PR libstdc++/86169
750         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
751         (basic_string::data()): Unshare string.
752         * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
753         New.
755         * include/std/string_view (basic_string_view(const CharT*)): Remove
756         check for null pointer and add nonnull attribute.
757         (compare(const CharT*), compare(size_type, size_type, const CharT*))
758         (find(const CharT*, size_type), rfind(const CharT*, size_type))
759         (find_first_of(const CharT*, size_type))
760         (find_last_of(const CharT*, size_type))
761         (find_first_not_of(const CharT*, size_type))
762         (find_last_not_of(const CharT*, size_type)): Add nonnull attribute.
763         * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: New.
764         * testsuite/21_strings/basic_string_view/operations/compare/char/
765         nonnull.cc: New.
766         * testsuite/21_strings/basic_string_view/operations/find/char/
767         nonnull.cc: New.
768         * testsuite/21_strings/basic_string_view/operations/rfind/char/
769         nonnull.cc: New.
771         PR libstdc++/86168
772         * include/bits/random.h (random_device(const string&)): Remove
773         default argument.
775         * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
776         define for C++17 and above.
778         LWG 2993 reference_wrapper<T> conversion from T&&
779         * doc/xml/manual/intro.xml: Document LWG 2993 change.
780         * include/bits/refwrap.h (reference_wrapper(_Tp&)): Remove.
781         (reference_wrapper(_Tp&&)): Remove.
782         (reference_wrapper<_Up>(_Up&&)): Define new constructor as constrained
783         template.
784         (reference_wrapper): Add deduction guide.
785         * testsuite/20_util/reference_wrapper/deduction.cc: New.
786         * testsuite/20_util/reference_wrapper/lwg2993.cc: New.
788         LWG 3039 Unnecessary decay in thread and packaged_task
789         * include/std/future (__constrain_pkgdtask): Replace with ...
790         (packaged_task::__not_same): New alias template, using
791         __remove_cvref_t instead of decay.
792         * include/std/thread (thread::__not_same): Add comment.
794 2018-06-14  Jonathan Wakely  <jwakely@redhat.com>
796         LWG 3075 basic_string needs deduction guides from basic_string_view
797         * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
798         deduction from string views.
799         * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
800         Likewise.
802         LWG 3074 make scalar types non-deduced in valarray non-member functions
803         * include/bits/valarray_after.h (_DEFINE_EXPR_BINARY_FUNCTION): Change
804         scalar parameters to be a non-deduced context.
805         * include/std/valarray (_DEFINE_BINARY_OPERATOR): Likewise. Adjust
806         whitespace.
807         * testsuite/26_numerics/valarray/operators.cc: Test scalar operands.
808         * testsuite/26_numerics/valarray/transcend.cc: New.
810         * include/std/tuple (__cpp_lib_tuple_element_t, tuple_element_t):
811         Move back to <utility>.
812         * include/std/utility (__cpp_lib_tuple_element_t. tuple_element_t):
813         Restore to here.
815         P0935R0 Eradicating unnecessarily explicit default constructors
816         * include/backward/strstream (strstreambuf): Add non-explicit default
817         constructor.
818         * include/bits/locale_conv.h (wbuffer_convert, wstring_convert):
819         Likewise.
820         * include/bits/regex.h (match_results): Likewise.
821         * testsuite/22_locale/conversions/buffer/1.cc: Test for non-explicit
822         default constructor.
823         * testsuite/22_locale/conversions/string/1.cc: Likewise.
824         * testsuite/28_regex/match_results/ctors/char/default.cc: Likewise.
825         * testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
827         * include/std/tuple (__cpp_lib_tuple_element_t): Move feature test
828         macro from <utility> and change type to long.
829         * include/std/utility (__cpp_lib_tuple_element_t): Remove.
830         * testsuite/20_util/tuple/tuple_element_t.cc: Check for feature test
831         macro.
833         P0935R0 Eradicating unnecessarily explicit default constructors
834         * include/bits/random.h (uniform_real_distribution::param_type)
835         (normal_distribution::param_type, lognormal_distribution::param_type)
836         (gamma_distribution::param_type, chi_squared_distribution::param_type)
837         (cauchy_distribution::param_type, fisher_f_distribution::param_type)
838         (student_t_distribution::param_type)
839         (bernoulli_distribution::param_type)
840         (binomial_distribution::param_type)
841         (geometric_distribution::param_type)
842         (negative_binomial_distribution::param_type)
843         (poisson_distribution::param_type)
844         (exponential_distribution::param_type)
845         (weibull_distribution::param_type)
846         (extreme_value_distribution::param_type): Add non-explicit default
847         constructors. Remove default argument for first parameter of explicit
848         constructors.
849         * include/bits/uniform_int_dist.h
850         (uniform_int_distribution::param_type): Likewise.
851         * include/ext/random
852         (beta_distribution::param_type, rice_distribution::param_type)
853         (nakagami_distribution::param_type, pareto_distribution::param_type)
854         (k_distribution::param_type, arcsine_distribution::param_type)
855         (hoyt_distribution::param_type, triangular_distribution::param_type)
856         (von_mises_distribution::param_type)
857         (hypergeometric_distribution::param_type)
858         (logistic_distribution::param_type)
859         (uniform_inside_sphere_distribution::param_type): Likewise.
860         (uniform_on_sphere_distribution::param_type): Make default constructor
861         non-explicit.
862         * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
863         Test param_type for non-explicit default constructor.
864         * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
865         Likewise.
866         * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
867         Likewise.
868         * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
869         Likewise.
870         * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
871         Likewise.
872         * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
873         Likewise.
874         * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
875         Likewise.
876         * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
877         Likewise.
878         * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
879         Likewise.
880         * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
881         Likewise.
882         * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
883         Likewise.
884         * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
885         Likewise.
886         * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
887         Likewise.
888         * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
889         Likewise.
890         * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
891         Likewise.
892         * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
893         Likewise.
894         * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
895         Likewise.
896         * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
897         Likewise.
898         * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
899         Likewise.
900         * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
901         Likewise.
902         * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
903         * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
904         * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
905         * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
906         Likewise.
907         * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
908         * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
909         * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
910         * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
911         Likewise.
912         * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
913         * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
914         * testsuite/ext/random/triangular_distribution/cons/default.cc:
915         Likewise.
916         * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
917         Likewise.
918         * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
919         Likewise.
920         * testsuite/ext/random/von_mises_distribution/cons/default.cc:
921         Likewise.
923 2018-06-14  Daniel Trebbien <dtrebbien@gmail.com>
924             Jonathan Wakely  <jwakely@redhat.com>
926         PR libstdc++/83982
927         * include/bits/vector.tcc (vector::_M_default_append(size_type)):
928         Default-construct new elements before moving existing ones.
929         * testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
930         New.
932 2018-06-13  Jonathan Wakely  <jwakely@redhat.com>
934         PR libstdc++/86127
935         * include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
936         unused typedef.
937         (_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
938         Use node allocator to create and destroy elements.
939         (forward_list::_Tp_alloc_type): Remove unused typedef.
940         (forward_list::_Alloc_traits): Use allocator_traits instead of
941         __gnu_cxx::__alloc_traits.
943 2018-06-13  François Dumont  <fdumont@gcc.gnu.org>
945         * include/debug/helper_functions.h
946         (__gnu_debug::_Safe_iterator<>): Add declaration.
947         (__can_advance(_Ite, _Size)): New.
948         (__can_advance(const _Safe_iterator<>&, _Size)): Overload declaration.
949         * include/debug/functions.h
950         (__gnu_debug::_Safe_iterator<>): Remove declaration.
951         * include/debug/stl_iterator.h
952         (__can_advance(const _Safe_iterator<>&)): New definition.
953         * include/debug/stl_iterator.h
954         (__can_advance(const std::reverse_iterator<>&, _Size)): New.
955         (__can_advance(const std::move_iterator<>&, _Size)): New.
956         * include/debug/macros.h (__glibcxx_check_can_increment): New.
957         * include/debug/debug.h (__glibcxx_requires_can_increment): New.
958         * include/bits/stl_algobase.h (fill_n): Use latter.
959         * testsuite/25_algorithms/fill_n/2.cc: New.
960         * testsuite/25_algorithms/fill_n/debug/1_neg.cc: New.
961         * testsuite/25_algorithms/fill_n/debug/2_neg.cc: New.
962         * testsuite/25_algorithms/fill_n/debug/3_neg.cc: New.
963         * testsuite/25_algorithms/fill_n/debug/4_neg.cc: New.
965         * include/debug/debug.h (__glibcxx_requires_can_increment_range): New.
966         (__glibcxx_requires_can_decrement_range): New.
968 2018-06-12  François Dumont  <fdumont@gcc.gnu.org>
970         * include/debug/macros.h (__glibcxx_check_can_increment_range): New.
971         (__glibcxx_check_can_decrement_range): New.
972         * include/bits/stl_algobase.h (std::copy(_II, _II, _OI)): Use
973         __glibcxx_requires_can_increment_range.
974         (std::move(_II, _II, _OI)): Likewise.
975         (std::copy_backward(_BI, _BI, _BI2)): Use
976         __glibcxx_requires_can_decrement_range.
977         (std::move_backward(_BI, _BI, _BI2)): Likewise.
978         * testsuite/25_algorithms/copy_backward/debug/1_neg.cc: New.
979         * testsuite/25_algorithms/copy_backward/debug/2_neg.cc: New.
980         * testsuite/25_algorithms/copy_backward/debug/3_neg.cc: New.
981         * testsuite/25_algorithms/equal/debug/1_neg.cc: New.
982         * testsuite/25_algorithms/equal/debug/2_neg.cc: New.
983         * testsuite/25_algorithms/equal/debug/3_neg.cc: New.
985 2018-06-12  Jonathan Wakely  <jwakely@redhat.com>
987         P0935R0 Eradicating unnecessarily explicit default constructors
988         * include/bits/random.h (linear_congruential_engine)
989         (mersenne_twister_engine, subtract_with_carry_engine, random_device)
990         (uniform_real_distribution, normal_distribution)
991         (lognormal_distribution, gamma_distribution, chi_squared_distribution)
992         (cauchy_distribution, fisher_f_distribution, student_t_distribution)
993         (bernoulli_distribution, binomial_distribution,geometric_distribution)
994         (negative_binomial_distribution, exponential_distribution)
995         (weibull_distribution, extreme_value_distribution): Add non-explicit
996         default constructors. Remove default argument for first parameter of
997         explicit constructors.
998         (piecewise_constant_distribution, piecewise_linear_distribution):
999         Make default constructor non-explicit.
1000         * include/bits/uniform_int_dist.h (uniform_int_distribution): Add
1001         non-explicit default constructors. Remove default argument for first
1002         parameter of explicit constructor.
1003         * include/ext/random
1004         (simd_fast_mersenne_twister_engine, beta_distribution)
1005         (rice_distribution, nakagami_distribution, pareto_distribution)
1006         (k_distribution, arcsine_distribution, hoyt_distribution)
1007         (triangular_distribution, von_mises_distribution)
1008         (hypergeometric_distribution, logistic_distribution)
1009         (uniform_inside_sphere_distribution): Likewise.
1010         (uniform_on_sphere_distribution): Make default constructor
1011         non-explicit.
1012         * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
1013         Test for non-explicit default constructor. Fix references to standard.
1014         * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
1015         Likewise.
1016         * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
1017         Likewise.
1018         * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
1019         Likewise.
1020         * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
1021         Likewise.
1022         * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
1023         Likewise.
1024         * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
1025         Likewise.
1026         * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
1027         Likewise.
1028         * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
1029         Likewise.
1030         * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
1031         Likewise.
1032         * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
1033         Likewise.
1034         * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
1035         Likewise.
1036         * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
1037         Likewise.
1038         * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
1039         Likewise.
1040         * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
1041         Likewise.
1042         * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
1043         Likewise.
1044         * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
1045         Likewise.
1046         * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
1047         Likewise.
1048         * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
1049         Likewise.
1050         * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
1051         Likewise.
1052         * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
1053         * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
1054         * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
1055         * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
1056         Likewise.
1057         * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
1058         * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
1059         * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
1060         * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
1061         Likewise.
1062         * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
1063         * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
1064         * testsuite/ext/random/triangular_distribution/cons/default.cc:
1065         Likewise.
1066         * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
1067         Likewise.
1068         * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
1069         Likewise.
1070         * testsuite/ext/random/von_mises_distribution/cons/default.cc:
1071         Likewise.
1072         * testsuite/util/testsuite_common_types.h
1073         (implicitly_default_constructible): New helper.
1075 2018-06-08  Jonathan Wakely  <jwakely@redhat.com>
1077         * include/bits/ios_base.h (ios::Init::Init(const Init&))
1078         (ios::Init::operator=): Define as defaulted.
1079         * include/bits/stl_bvector.h (_Bit_reference(const _Bit_reference&)):
1080         Likewise.
1081         * include/bits/stream_iterator.h (istream_iterator::operator=)
1082         (ostream_iterator::operator=): Likewise.
1083         * include/bits/streambuf_iterator.h (istreambuf_iterator::operator=)
1084         Likewise.
1085         * include/std/bitset (bitset::reference::reference(const reference&)):
1086         Likewise.
1087         * include/std/complex (complex<float>::complex(const complex&))
1088         (complex<double>::complex(const complex&))
1089         (complex<long double>::complex(const complex&)): Likewise.
1091 2018-06-07  Jonathan Wakely  <jwakely@redhat.com>
1093         * include/bits/regex.h (sub_match): Add noexcept to default
1094         constructor and length observer.
1095         (match_results): Add noexcept to default constructor and observers
1096         with no preconditions. Define destructor as defaulted.
1097         (operator==, operator!=, swap): Add noexcept.
1098         (regex_iterator): Add default member initializers and define default
1099         constructor and destructor as defaulted. Add noexcept to equality
1100         and dereference operators.
1102 2018-06-07  François Dumont  <fdumont@gcc.gnu.org>
1104         * src/c++11/debug.cc
1105         (_Safe_iterator_base::_M_detach()): Reset state only if needed.
1106         (_Safe_iterator_base::_M_detach_single()): Likewise.
1107         (_Safe_local_iterator_base::_M_detach()): Reset state only if needed.
1108         (_Safe_local_iterator_base::_M_detach_single()): Likewise.
1110 2018-06-06  Jonathan Wakely  <jwakely@redhat.com>
1112         * include/bits/shared_ptr_base.h (__shared_count): Remove redundant
1113         move of const value.
1115 2018-06-06  Jakub Jelinek  <jakub@redhat.com>
1117         PR c++/86068
1118         * include/bits/c++config: Check __cpp_transactional_memory >= 201500L
1119         rather than __cpp_transactional_memory >= 201505L.
1121 2018-06-06  Jonathan Wakely  <jwakely@redhat.com>
1123         PR libstdc++/86008
1124         * include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>):
1125         Define new partial specialization.
1126         * include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define
1127         new overload.
1128         (operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use
1129         value not reference for iteration.
1130         * testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust
1131         comment.
1132         * testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test.
1133         * testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust
1134         comment.
1136 2018-06-05  Jonathan Wakely  <jwakely@redhat.com>
1138         * include/std/type_traits: Fix comment typos.
1140         * testsuite/27_io/filesystem/operations/read_symlink.cc: XFAIL for
1141         mingw* targets.
1142         * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
1143         * testsuite/experimental/filesystem/operations/read_symlink.cc:
1144         Likewise.
1146 2018-06-05  François Dumont  <fdumont@gcc.gnu.org>
1148         * include/bits/stl_tempbuf.h
1149         (_Temporary_buffer(_FwdIte, _FwdIte)): Delete, replaced by...
1150         (_Temporary_buffer(_FwdIte, size_type)): ...this, new.
1151         * include/ext/memory (temporary_buffer<>(_FwdIte, _FwdIte)): Adapt.
1152         * include/bits/stl_algo.h (__stable_partition): Adapt.
1153         (__inplace_merge): Adapt.
1154         (__stable_sort): Adapt.
1156 2018-06-04  Jonathan Wakely  <jwakely@redhat.com>
1158         PR libstdc++/85930
1159         * include/bits/shared_ptr_base.h [!__cpp_rtti]: Include <typeinfo>
1160         unconditionally. Remove redundant declaration.
1161         [!__cpp_rtti] (_Sp_make_shared_tag::_S_ti): Fix location of
1162         alignment-specifier.
1164         * include/bits/postypes.h (fpos): Define special members as defaulted.
1166         PR libstdc++/85930
1167         * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Align
1168         the static variable correctly.
1170 2018-05-24  Jonathan Wakely  <jwakely@redhat.com>
1172         PR libstdc++/78870 support std::filesystem on Windows
1173         * config.h.in: Regenerate.
1174         * configure: Regenerate.
1175         * configure.ac: Check for link, readlink and symlink.
1176         * include/bits/fs_path.h (path::operator/=(const path&)): Move
1177         definition out of class body.
1178         (path::is_absolute(), path::_M_append(path)): Likewise.
1179         (operator<<(basic_ostream, const path&)): Use std::quoted directly.
1180         (operator>>(basic_istream, path&)): Likewise.
1181         (u8path): Reorder definitions and fix Windows implementation.
1182         (path::is_absolute()): Define inline and fix for Windows.
1183         [!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
1184         Define POSIX version inline.
1185         (path::_M_append(path)): Define inline.
1186         * include/experimental/bits/fs_path.h (path::is_absolute()): Move
1187         definition out of class body.
1188         (operator<<(basic_ostream, const path&)): Fix type of delimiter and
1189         escape characters.
1190         (operator>>(basic_istream, path&)): Likewise.
1191         (path::is_absolute()): Define inline and fix for Windows.
1192         * src/filesystem/dir-common.h (__gnu_posix): New namespace.
1193         (__gnu_posix::char_type, __gnu_posix::DIR, __gnu_posix::dirent)
1194         (__gnu_posix::opendir, __gnu_posix::readdir, __gnu_posix::closedir):
1195         Define as adaptors for Windows functions/types or as
1196         using-declarations for POSIX functions/types.
1197         (_Dir_base, get_file_type): Qualify names to use declarations from
1198         __gnu_posix namespace.
1199         (_Dir_base::is_dor_or_dotdot): New helper functions.
1200         * src/filesystem/dir.cc (_Dir, recursive_directory_iterator): Qualify
1201         names to use declarations from __gnu_posix namespace.
1202         * src/filesystem/ops-common.h (__gnu_posix): New nested namespace.
1203         (__gnu_posix::open, __gnu_posix::close, __gnu_posix::stat_type)
1204         (__gnu_posix::stat, __gnu_posix::lstat, __gnu_posix::mode_t)
1205         (__gnu_posix::chmod, __gnu_posix::mkdir, __gnu_posix::getcwd)
1206         (__gnu_posix::chdir, __gnu_posix::utimbuf, __gnu_posix::utime)
1207         (__gnu_posix::rename, __gnu_posix::truncate, __gnu_posix::char_type):
1208         Define as adaptors for Windows functions/types or as
1209         using-declarations for POSIX functions/types.
1210         (stat_type, do_copy_file): Qualify names to use declarations from
1211         __gnu_posix namespace.
1212         (do_space): Declare new function.
1213         (make_file_type): Only use S_ISLNK if defined.
1214         * src/filesystem/ops.cc (char_ptr, filesystem::canonical): Use
1215         path::value_type not char.
1216         (filesystem::copy, create_dir, filesystem::create_directory): Qualify
1217         names to use declarations from __gnu_posix namespace.
1218         (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
1219         add implementation for Windows.
1220         (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
1221         (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
1222         [!_PC_PATH_MAX]: Don't use pathconf.
1223         [PATH_MAX]: Use if defined.
1224         (filesystem::current_path(const path&, error_code&))
1225         (filesystem::equivalent, do_stat, filesystem::hard_link_count)
1226         (filesystem::last_write_time, filesystem::permissions): Use names
1227         from __gnu_posix.
1228         (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
1229         (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
1230         implementation for Windows.
1231         (filesystem::rename, filesystem::resize_file): Use names from
1232         __gnu_posix.
1233         (filesystem::space): Use do_space.
1234         [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Get absolute path to directory.
1235         (filesystem::status, filesystem::symlink_status): Use names from
1236         __gnu_posix.
1237         (filesystem::temp_directory_path): Add implementation for Windows.
1238         * src/filesystem/path.cc (dot): Define constant.
1239         (path::replace_extension): Use dot.
1240         (path::_M_find_extension): Likewise. Use path::string_type not
1241         std::string.
1242         (path::_M_split_cmpts): Use dot.
1243         (filesystem_error::_M_get_what): Use u8string() not native().
1244         * src/filesystem/std-dir.cc (_Dir, recursive_directory_iterator):
1245         Qualify names to use declarations from __gnu_posix namespace.
1246         * src/filesystem/std-ops.cc (filesystem::absolute(const path&)): Use
1247         correct error_code.
1248         (filesystem::absolute(const path&, error_code&)): Add implementation
1249         for Windows.
1250         (char_ptr, filesystem::canonical): Use path::value_type not char.
1251         (do_copy_file): Use names from __gnu_posix.
1252         [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Do not use fchmod, fchmodat or
1253         sendfile.
1254         (filesystem::copy, create_dir, filesystem::create_directory): Qualify
1255         names to use declarations from __gnu_posix namespace.
1256         (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
1257         add implementation for Windows.
1258         (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
1259         (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
1260         [!_PC_PATH_MAX]: Don't use pathconf.
1261         [PATH_MAX]: Use if defined.
1262         (filesystem::current_path(const path&, error_code&))
1263         (filesystem::equivalent, do_stat, filesystem::hard_link_count)
1264         (filesystem::last_write_time, filesystem::permissions): Use names
1265         from __gnu_posix.
1266         (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
1267         (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
1268         implementation for Windows.
1269         (filesystem::rename, filesystem::resize_file): Use names from
1270         __gnu_posix.
1271         (do_space): Define.
1272         (filesystem::space): Use do_space.
1273         (filesystem::status, filesystem::symlink_status): Use names from
1274         __gnu_posix.
1275         (filesystem::temp_directory_path): Add implementation for Windows.
1276         * src/filesystem/std-path.cc
1277         [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
1278         Define for Windows.
1279         (dot): Define constant.
1280         (path::replace_extension, is_dot): Use dot.
1281         (path::lexically_normal): Check _M_type instead of calling
1282         non-existent function.
1283         (path::_M_find_extension): Use dot. Use path::string_type not
1284         std::string.
1285         (path::_M_split_cmpts): Use dot.
1286         (filesystem_error::_M_get_what): Use u8string() not native().
1287         * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Do not
1288         use symlinks.
1289         * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1290         Likewise.
1291         * testsuite/27_io/filesystem/operations/absolute.cc: Use
1292         __gnu_test::root_path() instead of "/" and add Windows-specific tests.
1293         * testsuite/27_io/filesystem/operations/canonical.cc: Use
1294         path::string() to get narrow string, not path::native().
1295         * testsuite/27_io/filesystem/operations/copy.cc: Construct fstreams
1296         with std::filesystem::path not std::basic_string.
1297         * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
1298         * testsuite/27_io/filesystem/operations/exists.cc: Use
1299         __gnu_test::root_path() instead of "/".
1300         * testsuite/27_io/filesystem/operations/is_empty.cc: Construct
1301         fstreams with std::filesystem::path not std::basic_string.
1302         * testsuite/27_io/filesystem/operations/last_write_time.cc: Use
1303         path::string() to get narrow string.
1304         * testsuite/27_io/filesystem/operations/space.cc: Check results for
1305         errors, expect sensible values otherwise.
1306         * testsuite/27_io/filesystem/operations/temp_directory_path.cc: Add
1307         helpers for adjusting the environment on Windows.
1308         * testsuite/27_io/filesystem/path/append/path.cc: Test
1309         Windows-specific behaviour.
1310         * testsuite/27_io/filesystem/path/construct/format.cc: Fix creation
1311         of path::string_type objects.
1312         * testsuite/27_io/filesystem/path/construct/locale.cc: Compare native
1313         string to wide string on Windows.
1314         * testsuite/27_io/filesystem/path/decompose/root_directory.cc: Allow
1315         for backslash as root-directory.
1316         * testsuite/27_io/filesystem/path/decompose/stem.cc: Use
1317         path::string() to get narrow string.
1318         * testsuite/27_io/filesystem/path/itr/traversal.cc: Test Windows-style
1319         paths.
1320         * testsuite/27_io/filesystem/path/native/string.cc: Use string_type
1321         not std::string.
1322         * testsuite/27_io/filesystem/path/query/is_absolute.cc: Adjust for
1323         different definintion of absolute paths on Windows.
1324         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
1325         Do not use symlinks.
1326         * testsuite/experimental/filesystem/operations/absolute.cc: Test
1327         Windows behaviour.
1328         * testsuite/experimental/filesystem/operations/copy.cc: Construct
1329         fstreams with NTCTS not std::basic_string.
1330         * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
1331         * testsuite/experimental/filesystem/operations/exists.cc: Use
1332         __gnu_test::root_path() instead of "/".
1333         * testsuite/experimental/filesystem/operations/is_empty.cc: Construct
1334         fstreams with NTCTS not std::basic_string.
1335         * testsuite/experimental/filesystem/operations/last_write_time.cc:
1336         Use path::string() to get narrow string.
1337         * testsuite/experimental/filesystem/operations/space.cc: Use
1338         __gnu_test::root_path() instead of "/".
1339         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1340         Add helpers for adjusting the environment on Windows.
1341         * testsuite/experimental/filesystem/path/append/path.cc: Use
1342         path::string() to get narrow strings for comparisons.
1343         * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
1344         * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
1345         Likewise.
1346         * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
1347         * testsuite/experimental/filesystem/path/native/string.cc: Use
1348         string_type not std::string.
1349         * testsuite/experimental/filesystem/path/query/is_absolute.cc:
1350         Adjust for different definintion of absolute paths on Windows.
1351         * testsuite/util/testsuite_fs.h (__gnu_test::root_path()): New
1352         function.
1353         (__gnu_test::scoped_file): Construct fstreams with NTCTS not
1354         std::basic_string.
1356 2018-05-31  Jonathan Wakely  <jwakely@redhat.com>
1358         PR libstdc++/85951
1359         * include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
1360         uint_least16_t and uint_least32_t.
1361         (__make_unsigned<wchar_t>): Define unconditionally.
1362         (__make_unsigned_selector<_Tp, true, false>): Remove intermediate
1363         typedefs.
1364         (__make_unsigned_selector_base): New type to provide helper templates.
1365         (__make_unsigned_selector<_Tp, false, true>): Reimplement using
1366         __make_unsigned_selector_base helpers.
1367         (__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
1368         (__make_signed_selector<_Tp, true, false>): Remove intermediate
1369         typedefs.
1370         (__make_signed<wchar_t>, __make_signed<char16_t>)
1371         (__make_signed<char32_t>)): Define unconditionally.
1372         * testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
1373         wchar_t, char16_t and char32_t are transformed correctly.
1374         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1375         dg-error lineno.
1376         * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
1377         wchar_t, char16_t and char32_t are transformed correctly.
1378         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
1379         dg-error lineno.
1381 2018-05-29  Jonathan Wakely  <jwakely@redhat.com>
1383         * include/std/variant (__erased_dtor): Qualify call to __get.
1385 2018-05-27  François Dumont  <fdumont@gcc.gnu.org>
1387         * include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
1388         (_Rb_tree(const allocator_type&)): Use latter.
1389         * include/bits/stl_map.h (map(const allocator_type&)): Likewise.
1390         (map(initializer_list<value_type>, const allocator_type&)): Likewise.
1391         (map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
1392         * include/bits/stl_multimap.h
1393         (multimap(const allocator_type&)): Likewise.
1394         (multimap(initializer_list<value_type>, const allocator_type&)):
1395         Likewise.
1396         (multimap(_InputIterator, _InputIterator, const allocator_type&)):
1397         Likewise.
1398         * include/bits/stl_set.h (set(const allocator_type&)): Likewise.
1399         (set(initializer_list<value_type>, const allocator_type&)): Likewise.
1400         (set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
1401         * include/bits/stl_multiset.h
1402         (multiset(const allocator_type&)): Likewise.
1403         (multiset(initializer_list<value_type>, const allocator_type&)):
1404         Likewise.
1405         (multiset(_InputIterator, _InputIterator, const allocator_type&)):
1406         Likewise.
1408 2018-05-25  François Dumont  <fdumont@gcc.gnu.org>
1410         PR libstdc++/85768
1411         * src/c++11/debug.cc: Remove backtrace usage.
1413 2018-05-24  Maya Rashish  <coypu@sdf.org>
1415         PR target/85904
1416         * crossconfig.m4: Test for aligned_alloc on netbsd.
1417         * configure: Regenerate.
1419 2018-05-24  Jonathan Wakely  <jwakely@redhat.com>
1421         PR libstdc++/69769
1422         PR libstdc++/85886
1423         * include/bits/atomic_base.h (__atomic_base::value_type)
1424         (__atomic_base::difference_type): Add new typedefs.
1425         * include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type)
1426         (atomic<T*>::value_type, atomic<T*>::difference_type): Likewise.
1427         (atomic<T*>::operator++, atomic<T*>::operator--)
1428         (atomic<T*>::operator+=, atomic<T*>::operator-=)
1429         (atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion
1430         to enforce C++17 requirement on pointer arithmetic.
1431         (__atomic_val_t, __atomic_diff_t): New alias templates.
1432         (atomic_init, atomic_store_explicit, atomic_exchange_explicit)
1433         (atomic_compare_exchange_weak_explicit)
1434         (atomic_compare_exchange_strong_explicit, atomic_store)
1435         (atomic_exchange, atomic_compare_exchange_weak)
1436         (atomic_compare_exchange_strong): Use __atomic_val_t to make
1437         scalar parameters be non-deduced contexts.
1438         (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
1439         (atomic_fetch_add, atomic_fetch_sub): Change first parameter to be
1440         atomic instead of __atomic_base, and use __atomic_diff_t for scalar
1441         parameters.
1442         (atomic_fetch_and_explicit, atomic_fetch_or_explicit)
1443         (atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or)
1444         (atomic_fetch_xor): Use __atomic_val_t for scalar parameters.
1445         (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
1446         (atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic
1447         address types.
1448         * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
1449         * testsuite/29_atomics/atomic/69769.cc: New test.
1450         * testsuite/29_atomics/atomic/nonmembers.cc: New test.
1451         * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
1452         Disable test for C++17 and later.
1453         * testsuite/29_atomics/atomic/requirements/typedefs.cc: New test.
1454         * testsuite/29_atomics/atomic_integral/nonmembers.cc: New test.
1455         * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New
1456         test.
1458 2018-05-23  Jonathan Wakely  <jwakely@redhat.com>
1460         * include/bits/fs_path.h (path::__is_encoded_char): Change from class
1461         template to alias template.
1462         (path::__value_type_is_char): Use remove_const_t.
1463         (path:_S_string_from_iter): New helper function.
1464         (path::_S_convert(InputIter, __null_terminated))
1465         (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
1466         Use _S_string_from_iter.
1467         (path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing
1468         rep for COW strings.
1469         * include/experimental/bits/fs_path.h (path::__is_encoded_char):
1470         Change from class template to alias template.
1471         (path::__value_type_is_char): Use remove_const.
1472         (path:_S_string_from_iter): New helper function.
1473         (path::_S_convert(InputIter, __null_terminated))
1474         (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
1475         Use _S_string_from_iter.
1476         * testsuite/27_io/filesystem/path/append/source.cc: Test appending
1477         wide strings.
1478         * testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact
1479         string equality, not path equivalence.
1480         * testsuite/27_io/filesystem/path/construct/format.cc: Check
1481         construction from std::string and std::wstring and input iterators.
1482         * testsuite/27_io/filesystem/path/construct/locale.cc: Check
1483         construction from iterators.
1484         * testsuite/experimental/filesystem/path/concat/strings.cc: Check for
1485         exact string equality, not path equivalence.
1486         * testsuite/experimental/filesystem/path/construct/locale.cc: Check
1487         construction from iterators.
1489         * include/bits/fs_path.h (path::_M_type): Change default member
1490         initializer to _Filename.
1491         (path::begin): Create past-the-end iterator for empty path.
1492         * src/filesystem/std-path.cc (path::remove_filename()): Remove
1493         debugging check.
1494         (path::has_relative_path()): Return false for empty filenames.
1495         (path::_M_split_cmpts): Set _M_type to _Filename for empty paths.
1496         Fix offset of empty final component.
1497         * testsuite/27_io/filesystem/path/itr/components.cc: New.
1498         * testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs.
1500 2018-05-21  Jonathan Wakely  <jwakely@redhat.com>
1502         Add support for opening file streams from wide character strings.
1503         * config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
1504         (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
1505         Define new overload.
1506         * config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
1507         (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
1508         Declare new overload.
1509         * configure.ac: Check for _wfopen.
1510         * crossconfig.m4: Likewise.
1511         * configure: Regenerate.
1512         * config.h.in: Regenerate.
1513         * include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
1514         (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
1515         Define new overload.
1516         * include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
1517         (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
1518         Declare new overload.
1519         [_GLIBCXX_HAVE__WFOPEN]
1520         (basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
1521         (basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
1522         (basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
1523         (basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
1524         (basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
1525         (basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
1526         new overloads.
1527         * testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
1528         * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
1529         * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
1530         * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
1531         * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
1532         * testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
1533         * testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
1535 2018-05-21  François Dumont  <fdumont@gcc.gnu.org>
1537         PR libstdc++/85845
1538         * include/bits/stl_tree.h
1539         (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
1540         qualification.
1542 2018-05-21  Jonathan Wakely  <jwakely@redhat.com>
1544         * src/filesystem/std-ops.cc (absolute): Report an error for empty
1545         paths.
1546         (weakly_canonical(const path&)): Do not call canonical on empty path.
1547         (weakly_canonical(const path&, error_code&)): Likewise.
1548         * testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
1550         PR libstdc++/85818
1551         * testsuite/experimental/filesystem/path/preferred_separator.cc: Add
1552         dg-require-filesystem-ts.
1554         PR libstdc++/85843
1555         * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
1556         initialize base class to avoid warnings.
1558 2018-05-19  Jonathan Wakely  <jwakely@redhat.com>
1560         * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
1561         [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
1562         little_endian element in bitmask.
1563         * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
1564         * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
1566 2018-05-18  François Dumont  <fdumont@gcc.gnu.org>
1568         * include/bits/stl_tree.h
1569         (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
1570         (_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
1571         (_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
1572         (_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
1573         * include/debug/map.h
1574         (map(map&&, const_allocator_type&)): Add noexcept qualitication.
1575         * include/debug/multimap.h
1576         (multimap(multimap&&, const_allocator_type&)): Likewise.
1577         * include/debug/set.h
1578         (set(set&&, const_allocator_type&)): Likewise.
1579         * include/debug/multiset.h
1580         (multiset(multiset&&, const_allocator_type&)): Likewise.
1581         * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
1582         Add checks.
1583         * testsuite/23_containers/map/cons/noexcept_move_construct.cc:
1584         Add checks.
1585         * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
1586         Add checks.
1587         * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
1588         Add checks.
1589         * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
1590         Add checks.
1591         * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
1592         Add checks.
1593         * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
1594         Add checks.
1595         * testsuite/23_containers/set/cons/noexcept_move_construct.cc:
1596         Add checks.
1598 2018-05-18  Jason Merrill  <jason@redhat.com>
1600         * include/bits/stl_deque.h (_Deque_iterator): Constrain constructor
1601         for conversion to const_iterator.  Add defaulted copy ops.
1602         * libsupc++/new (bad_alloc): Add defaulted copy ops.
1603         * libsupc++/exception.h (exception): Add defaulted copy ops.
1604         * include/std/system_error (system_error): Add defaulted copy ops.
1605         * include/std/stdexcept (domain_error, invalid_argument)
1606         (length_error, out_of_range, range_error, overflow_error)
1607         (underflow_error): Add defaulted copy ops.
1608         * include/bits/stl_iterator.h (reverse_iterator): Add defaulted
1609         copy assignment.
1610         * include/bits/allocator.h (allocator): Add defaulted copy assignment.
1611         * include/ext/throw_allocator.h (condition_base): Add defaulted
1612         default and copy ctor and copy assignment.
1614 2018-05-18  Jonathan Wakely  <jwakely@redhat.com>
1616         PR libstdc++/85098
1617         * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
1618         (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
1619         (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
1620         (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
1621         definitions.
1622         * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
1623         whitespace.
1624         * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
1625         braces around body of do-while.
1626         * testsuite/28_regex/basic_regex/85098.cc: New
1628 2018-05-17  Jonathan Wakely  <jwakely@redhat.com>
1630         PR libstdc++/85818
1631         * src/filesystem/path.cc (path::preferred_separator): Add used
1632         attribute.
1633         * testsuite/experimental/filesystem/path/preferred_separator.cc: New.
1635         PR libstdc++/85812
1636         * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
1637         * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
1638         Refactor to separate non-throwing and throwing implementations.
1639         [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
1640         if constructing the object throws.
1642 2018-05-15  Jonathan Wakely  <jwakely@redhat.com>
1644         PR libstdc++/85749
1645         * include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
1646         (linear_congruential_engine, mersenne_twister_engine)
1647         (subtract_with_carry_engine, discard_block_engine)
1648         (independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
1649         constrain function templates taking seed sequences.
1650         * include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
1651         (mersenne_twister_engine::seed(_Sseq&))
1652         (subtract_with_carry_engine::seed(_Sseq&)): Change return types to
1653         match declarations.
1654         * include/ext/random (simd_fast_mersenne_twister_engine): Use
1655         __is_seed_seq to constrain function templates taking seed sequences.
1656         * include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
1657         Change return type to match declaration.
1658         * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
1659         New.
1660         * testsuite/26_numerics/random/independent_bits_engine/cons/
1661         seed_seq2.cc: New.
1662         * testsuite/26_numerics/random/linear_congruential_engine/cons/
1663         seed_seq2.cc: New.
1664         * testsuite/26_numerics/random/mersenne_twister_engine/cons/
1665         seed_seq2.cc: New.
1666         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
1667         * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
1668         New.
1669         * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
1670         seed_seq2.cc: New.
1671         * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
1672         seed_seq2.cc: New.
1674         PR libstdc++/83891
1675         * include/bits/fs_path.h (path::is_absolute()): Use same definition
1676         for all operating systems.
1677         * include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
1678         * testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
1679         * testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
1680         * testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
1682         * testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
1683         unused <vector> header.
1684         * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
1685         * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
1686         * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
1687         * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
1688         * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
1689         Likewise.
1690         * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
1691         Likewise.
1692         * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
1693         * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
1694         * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
1695         * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
1696         * testsuite/experimental/filesystem/path/decompose/extension.cc:
1697         Likewise.
1698         * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
1699         * testsuite/experimental/filesystem/path/query/has_extension.cc:
1700         Likewise.
1701         * testsuite/experimental/filesystem/path/query/has_filename.cc:
1702         Likewise.
1703         * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
1704         Likewise.
1705         * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
1706         Likewise.
1707         * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
1708         Likewise.
1709         * testsuite/experimental/filesystem/path/query/has_root_name.cc:
1710         Likewise.
1711         * testsuite/experimental/filesystem/path/query/has_root_path.cc:
1712         Likewise.
1713         * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
1714         * testsuite/experimental/filesystem/path/query/is_relative.cc:
1715         Likewise.
1717         PR libstdc++/84159
1718         * include/bits/fs_path.h (path::operator/=, path::append): Construct
1719         temporary path before calling _M_append.
1720         (path::_M_append): Change parameter to path and implement C++17
1721         semantics.
1722         * testsuite/27_io/filesystem/path/append/path.cc: Add helper function
1723         and more examples from the standard.
1724         * testsuite/27_io/filesystem/path/append/source.cc: New.
1725         * testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
1726         * testsuite/27_io/filesystem/path/nonmember/append.cc: New.
1728         * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
1729         __invoke to prevent ADL.
1731 2018-05-14  Jonathan Wakely  <jwakely@redhat.com>
1733         PR libstdc++/81256
1734         * include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
1735         exceptions from _M_terminate_output().
1736         * include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
1737         exceptions from close().
1738         * testsuite/27_io/basic_filebuf/close/81256.cc: New.
1740         * include/bits/valarray_array.h (__valarray_get_memory): Remove.
1741         (__valarray_get_storage): Call operator new directly. Remove ignored
1742         top-level restrict qualifier and add malloc attribute instead.
1743         (_Array<_Tp>::_Array(size_t)): Remove unused constructor.
1745         PR libstdc++/67554
1746         * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
1747         (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
1749         PR libstdc++/82966
1750         * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
1751         instead of type.
1752         * testsuite/23_containers/set/modifiers/node_swap.cc: New.
1754 2018-05-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
1756         PR libstdc++/80165
1757         * testsuite/20_util/variant/80165.cc: New.
1759 2018-05-10  Jonathan Wakely  <jwakely@redhat.com>
1761         * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
1762         * doc/xml/manual/debug_mode.xml: Add array and forward_list to list
1763         of C++11 containers with Debug Mode support.
1764         * doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
1765         * doc/html/*: Regenerate.
1767 2018-05-10  Jason Merrill  <jason@redhat.com>
1769         * include/bits/regex_compiler.h (_S_cache_size): Change from
1770         function to variable.
1772 2018-05-10  Edward Smith-Rowland  <3dw4rd@verizon.net>
1774         PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
1775         * include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
1776         argument defaulted to +1.  Doxy comments on same.
1777         * testsuite/special_functions/02_assoc_legendre/
1778         check_value.cc: Regen.
1779         * testsuite/tr1/5_numerical_facilities/special_functions/
1780         02_assoc_legendre/check_value.cc: Regen.
1782 2018-05-10  Jonathan Wakely  <jwakely@redhat.com>
1784         PR libstdc++/85729
1785         * include/bits/c++config.h (__replacement_assert): Add linkage
1786         specification.
1787         * include/bits/std_abs.h: Add comment to closing brace of block.
1788         * include/c_global/cstddef: Add linkage specification.
1789         * include/c_global/cstring: Likewise.
1790         * include/c_global/cwchar: Likewise.
1792 2018-05-09  François Dumont  <fdumont@gcc.gnu.org>
1794         * include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
1795         Rename in...
1796         (_Safe_iterator<>::_S_constant()): ...that.
1797         * include/debug/safe_local_iterator.h
1798         (_Safe_local_iterator<>::_M_constant()): Rename in...
1799         (_Safe_local_iterator<>::_S_constant()): ...that.
1800         * include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
1801         (_Iterator_state::__rbegin): New.
1802         (_Iterator_state::__rmiddle): New.
1803         (_Iterator_state::__rend): New.
1804         (_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
1805         _Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
1806         iterator type.
1807         (_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
1808         _Is_iterator)): Likewise.
1809         (_Parameter::_S_reverse_state(_Iterator_state)): New.
1810         (_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
1811         _Is_iterator)): New.
1812         (_Parameter(std::reverse_iterator<> const&, const char*,
1813         _Is_iterator)): New.
1814         (_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
1815         const char*, _Is_iterator)): New.
1816         (_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
1817         New.
1818         (_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
1819         _Is_iterator)): New.
1820         * testsuite/24_iterators/move_iterator/debug_neg.cc: New.
1821         * testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
1822         * testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
1824 2018-05-09  Jonathan Wakely  <jwakely@redhat.com>
1826         * include/bits/std_function.h (_Base_manager::_M_get_pointer):
1827         Use constexpr if in C++17 mode.
1828         (_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
1829         Copy from const object.
1830         * testsuite/20_util/function/cons/non_copyconstructible.cc: New.
1832 2018-05-08  François Dumont  <fdumont@gcc.gnu.org>
1834         * src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
1835         [_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
1836         backtrace.
1838         * include/debug/macros.h (__glibcxx_check_valid_range_at): New.
1839         * include/debug/functions.h (__check_valid_range): Use latter.
1840         * include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
1841         use latter.
1842         * include/debug/deque
1843         (deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
1844         * include/debug/forward_list
1845         (forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
1846         Likewise.
1847         * include/debug/list
1848         (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
1849         * include/debug/list
1850         (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
1851         * include/debug/map.h
1852         (map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
1853         (map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
1854         Likewise.
1855         * include/debug/multimap.h
1856         (multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
1857         (multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
1858         const _Alloc&)): Likewise.
1859         * include/debug/set.h
1860         (set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
1861         (set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
1862         Likewise.
1863         * include/debug/multiset.h
1864         (multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
1865         (multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
1866         const _Alloc&)): Likewise.
1867         * include/debug/string
1868         (basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
1869         Likewise.
1870         * include/debug/unordered_map
1871         (unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
1872         Likewise.
1873         (unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
1874         const _Alloc&)): Likewise.
1875         * include/debug/unordered_set
1876         (unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
1877         Likewise.
1878         (unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
1879         const _Alloc&)): Likewise.
1880         * include/debug/vector
1881         (vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
1883         * include/debug/formatter.h (_Error_formatter::_M_function): New.
1884         (_Error_formatter(const char*, unsigned int)): Adapt.
1885         (_Error_formatter::_M_at): Rename in...
1886         (_Error_formatter::_S_at): ...that and adapt.
1887         * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New.
1888         (_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt.
1889         * src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function
1890         when available.
1892 2018-05-08  Jonathan Wakely  <jwakely@redhat.com>
1894         * include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
1895         Use normal std::vector even in Debug Mode.
1897         PR libstdc++/85672
1898         * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
1899         to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
1900         * include/Makefile.in: Regenerate.
1901         * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
1902         within conditional block.
1904 2018-05-07  Jonathan Wakely  <jwakely@redhat.com>
1906         * doc/xml/manual/using.xml (table.cmd_options): Document that the
1907         C++17 Filesystem implementation also needs -lstdc++fs.
1909         PR libstdc++/85671
1910         * include/bits/fs_path.h (operator/): Permit copy elision.
1911         * include/experimental/bits/fs_path.h (operator/): Likewise.
1913 2018-05-07  Edward Smith-Rowland  <3dw4rd@verizon.net>
1915         Moar PR libstdc++/80506
1916         * include/bits/random.tcc (gamma_distribution::__generate_impl()):
1917         Fix magic number used in loop condition.
1919 2018-05-04  Jonathan Wakely  <jwakely@redhat.com>
1921         PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
1922         * include/std/optional (_Optional_payload): Add noexcept to default
1923         constructor. Re-indent.
1924         (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
1925         constructor for copying disengaged payloads.
1926         (_Optional_payload<_Tp, true, false, true>): Likewise.
1927         (_Optional_payload<_Tp, true, true, false>): Likewise.
1928         (_Optional_payload<_Tp, true, false, false>): Likewise.
1929         * testsuite/20_util/optional/cons/85642.cc: New.
1930         * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
1932 2018-05-03  Jonathan Wakely  <jwakely@redhat.com>
1934         PR libstdc++/82644
1935         * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
1936         inline definitions instead of using-declarations.
1937         [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
1938         * testsuite/tr1/5_numerical_facilities/special_functions/
1939         07_conf_hyperg/compile_cxx17.cc: New.
1940         * testsuite/tr1/5_numerical_facilities/special_functions/
1941         17_hyperg/compile_cxx17.cc: New.
1943         PR libstdc++/84769
1944         * include/std/variant (visit): Qualify std::get call.
1946         PR libstdc++/85632 use uintmax_t for arithmetic
1947         * src/filesystem/ops.cc (experimental::filesystem::space): Perform
1948         arithmetic in result type.
1949         * src/filesystem/std-ops.cc (filesystem::space): Likewise.
1950         * testsuite/27_io/filesystem/operations/space.cc: Check total capacity
1951         is greater than free space.
1952         * testsuite/experimental/filesystem/operations/space.cc: New.
1954         * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
1955         * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
1956         New.
1957         * testsuite/20_util/remove_cvref/value.cc: New.
1958         * testsuite/20_util/remove_cvref/value_ext.cc: New.
1960         PR libstdc++/84087 LWG DR 2268 basic_string default arguments
1961         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
1962         (append(const basic_string&, size_type, size_type)
1963         (assign(const basic_string&, size_type, size_type)
1964         (insert(size_type, const basic_string&, size_type, size_type)
1965         (replace(size_type,size_type,const basic_string&,size_type,size_type)
1966         (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
1967         Add default arguments (LWG 2268).
1968         [_GLIBCXX_USE_CXX11_ABI=0]
1969         (append(const basic_string&, size_type, size_type)
1970         (assign(const basic_string&, size_type, size_type)
1971         (insert(size_type, const basic_string&, size_type, size_type)
1972         (replace(size_type,size_type,const basic_string&,size_type,size_type)
1973         (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
1974         Likewise.
1975         * testsuite/21_strings/basic_string/dr2268.cc: New test.
1977         PR libstdc++/84535
1978         * include/std/thread (thread::__not_same): New SFINAE helper.
1979         (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
1980         first argument is not a std::thread. Add static assertion to check
1981         INVOKE expression is valid.
1982         (thread::thread(thread&), thread::thread(const thread&&)): Remove.
1983         (thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
1984         __invoke_result for return types and remove exception specifications.
1985         * testsuite/30_threads/thread/cons/84535.cc: New.
1987         * include/std/future (__async_result_of): Use __invoke_result instead
1988         of result_of.
1990         * include/std/any (any_cast): Use __remove_cvref_t.
1991         * include/std/tuple (__make_tuple): Likewise.
1992         * include/std/type_traits (__remove_cvref_t): Define.
1993         (__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
1994         [__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
1995         * include/std/variant (__erased_hash): Use __remove_cvref_t.
1997 2018-05-02  François Dumont  <fdumont@gcc.gnu.org>
1999         * include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
2000         ensure overloaded comma not used.
2001         * include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
2002         * include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
2003         * include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
2004         * testsuite/23_containers/deque/modifiers/assign/1.cc: New.
2005         * testsuite/23_containers/list/modifiers/assign/1.cc: New.
2006         * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
2007         * testsuite/23_containers/vector/modifiers/assign/1.cc: New.
2009 2018-05-02  Jonathan Wakely  <jwakely@redhat.com>
2011         PR libstdc++/68197
2012         * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
2013         indices to unsigned.
2014         * src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
2015         as failure. Refactor error handling.
2016         * testsuite/27_io/ios_base/storage/68197.cc: New.
2018         PR libstdc++/57997
2019         PR libstdc++/83860
2020         * include/bits/gslice_array.h (gslice_array): Define default
2021         constructor as deleted, as per C++11 standard.
2022         * include/bits/mask_array.h (mask_array): Likewise.
2023         * include/bits/slice_array.h (slice_array): Likewise.
2024         * include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
2025         to namespace __detail.
2026         (_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
2027         members.
2028         * include/bits/valarray_before.h (_ValArrayRef): New helper for type
2029         of data members in closure objects.
2030         (_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
2031         (_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
2032         __detail.
2033         (_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
2034         (_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
2035         (_SBase::_M_expr): Use _ValArrayRef for type of data members.
2036         * include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
2037         (_ValFunClos, _RefFunClos): Move to namespace __detail and add
2038         using-declarations to namespace std.
2039         * testsuite/26_numerics/valarray/83860.cc: New.
2041         * testsuite/backward/strstream_move.cc: Remove duplicate function
2042         call.
2044         PR libstdc++/69608
2045         * include/backward/strstream (strstreambuf): Define move constructor
2046         and move assignment operator.
2047         (istrstream, ostrstream, strstream): Likewise.
2048         * testsuite/backward/strstream_move.cc: New.
2050 2018-05-01  Tulio Magno Quites Machado Filho  <tuliom@linux.vnet.ibm.com>
2052         PR libstdc++/84654
2053         * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
2054         * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
2055         * configure: Regenerate.
2056         * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
2057         based on ENABLE_FLOAT128.
2058         * include/Makefile.in: Regenerate.
2059         * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
2060         [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
2061         _GLIBCXX_USE_FLOAT128.
2063 2018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
2065         * configure: Regenerated.
2067 2018-04-19  Jakub Jelinek  <jakub@redhat.com>
2069         * configure: Regenerated.
2071 2018-04-18  Jonathan Wakely  <jwakely@redhat.com>
2072             Jakub Jelinek  <jakub@redhat.com>
2074         PR libstdc++/85442
2075         * src/c++11/Makefile.am: Don't generate debuginfo again for
2076         cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
2077         * src/c++11/Makefile.in: Regenerate.
2079 2018-04-18  Jonathan Wakely  <jwakely@redhat.com>
2081         PR libstdc++/84442
2082         * testsuite/30_threads/thread/cons/terminate.cc
2083         [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
2085 2018-04-18  David Malcolm  <dmalcolm@redhat.com>
2087         PR jit/85384
2088         * configure: Regenerate.
2090 2018-04-16  Jonathan Wakely  <jwakely@redhat.com>
2092         * testsuite/experimental/filesystem/file_status/1.cc: Add
2093         -DUSE_FILESYSTEM_TS to dg-options.
2094         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2095         Likewise.
2096         * testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
2097         * testsuite/experimental/filesystem/iterators/
2098         recursive_directory_iterator.cc: Likewise.
2099         * testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
2100         * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
2101         * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
2102         * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
2103         * testsuite/experimental/filesystem/operations/create_directories.cc:
2104         Likewise.
2105         * testsuite/experimental/filesystem/operations/create_directory.cc:
2106         Likewise.
2107         * testsuite/experimental/filesystem/operations/create_symlink.cc:
2108         Likewise.
2109         * testsuite/experimental/filesystem/operations/current_path.cc:
2110         Likewise.
2111         * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
2112         * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
2113         * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
2114         * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
2115         * testsuite/experimental/filesystem/operations/last_write_time.cc:
2116         Likewise.
2117         * testsuite/experimental/filesystem/operations/permissions.cc:
2118         Likewise.
2119         * testsuite/experimental/filesystem/operations/read_symlink.cc:
2120         Likewise.
2121         * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
2122         * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
2123         * testsuite/experimental/filesystem/operations/status.cc: Likewise.
2124         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2125         Likewise.
2126         * testsuite/experimental/filesystem/path/append/path.cc: Likewise.
2127         * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
2128         * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
2129         * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
2130         * testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
2131         * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
2132         * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
2133         * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
2134         * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
2135         * testsuite/experimental/filesystem/path/construct/default.cc:
2136         Likewise.
2137         * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
2138         * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
2139         * testsuite/experimental/filesystem/path/construct/string_view.cc:
2140         Likewise.
2141         * testsuite/experimental/filesystem/path/decompose/extension.cc:
2142         Likewise.
2143         * testsuite/experimental/filesystem/path/decompose/filename.cc:
2144         Likewise.
2145         * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
2146         Likewise.
2147         * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
2148         Likewise.
2149         * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
2150         Likewise.
2151         * testsuite/experimental/filesystem/path/decompose/root_name.cc:
2152         Likewise.
2153         * testsuite/experimental/filesystem/path/decompose/root_path.cc:
2154         Likewise.
2155         * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
2156         * testsuite/experimental/filesystem/path/generic/generic_string.cc:
2157         Likewise.
2158         * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
2159         * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
2160         * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
2161         Likewise.
2162         * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
2163         Likewise.
2164         * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
2165         Likewise.
2166         * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
2167         Likewise.
2168         * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
2169         * testsuite/experimental/filesystem/path/native/string.cc: Likewise.
2170         * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
2171         Likewise.
2172         * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
2173         * testsuite/experimental/filesystem/path/query/has_extension.cc:
2174         Likewise.
2175         * testsuite/experimental/filesystem/path/query/has_filename.cc:
2176         Likewise.
2177         * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
2178         Likewise.
2179         * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
2180         Likewise.
2181         * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
2182         Likewise.
2183         * testsuite/experimental/filesystem/path/query/has_root_name.cc:
2184         Likewise.
2185         * testsuite/experimental/filesystem/path/query/has_root_path.cc:
2186         Likewise.
2187         * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
2188         * testsuite/experimental/filesystem/path/query/is_relative.cc:
2189         Likewise.
2191 2018-04-13  Jonathan Wakely  <jwakely@redhat.com>
2193         * src/c++11/Makefile.am: Fix sed command.
2194         * src/c++11/Makefile.in: Regenerate.
2196         * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
2197         handle mangled names starting with double underscores on darwin.
2198         * src/c++11/Makefile.in: Regenerate.
2200 2018-04-12  Jonathan Wakely  <jwakely@redhat.com>
2202         * src/c++11/Makefile.am: Fix comment.
2203         * src/c++11/Makefile.in: Regenerate.
2204         * src/c++11/cxx11-ios_failure.cc: Fix comment.
2205         * src/c++98/ios_failure.cc: Likewise.
2207         * src/c++11/ios.cc: Remove redundant macro definition.
2209 2018-04-11  Jonathan Wakely  <jwakely@redhat.com>
2211         * doc/xml/manual/abi.xml: Document header locations in recent
2212         releases.
2213         * doc/xml/manual/evolution.xml: Add API changes since GCC 5.
2214         * doc/xml/manual/spine.xml: Update copyright years.
2215         * doc/xml/manual/strings.xml: Adjust tolower example to avoid
2216         undefined behaviour.
2217         * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
2218         * doc/html/*: Regenerate.
2220 2018-04-10  Jonathan Wakely  <jwakely@redhat.com>
2222         * doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
2223         * doc/xml/manual/backwards_compatibility.xml: Likewise.
2224         * doc/xml/manual/containers.xml: Likewise.
2225         * doc/xml/manual/debug_mode.xml: Likewise.
2226         * doc/xml/manual/extensions.xml: Likewise.
2227         * doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
2228         * doc/xml/manual/using.xml: Likewise.
2229         * doc/xml/manual/utilities.xml: Likewise.
2231         PR libstdc++/85222
2232         * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
2233         cxx11-ios_failure.cc to rewrite type info for __ios_failure.
2234         * src/c++11/Makefile.in: Regenerate.
2235         * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
2236         New types.
2237         [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
2238         * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
2239         * src/c++98/ios_failure.cc (__construct_ios_failure)
2240         (__destroy_ios_failure, is_ios_failure_handler): New functions.
2241         [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
2242         * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
2243         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
2244         handler types, to always catch std::ios_base::failure.
2245         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2246         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
2247         exceptions_failbit.cc: Likewise.
2248         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2249         exceptions_failbit.cc: Likewise.
2250         * testsuite/27_io/basic_istream/extractors_other/char/
2251         exceptions_null.cc: Likewise.
2252         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
2253         exceptions_null.cc: Likewise.
2254         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2255         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2256         * testsuite/27_io/basic_ostream/inserters_other/char/
2257         exceptions_null.cc: Likewise.
2258         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2259         exceptions_null.cc: Likewise.
2260         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2262 2018-04-05  Jonathan Wakely  <jwakely@redhat.com>
2264         * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
2265         __get calls to avoid ADL and avoid ambiguity due to Clang bug.
2267 2018-04-03  Jonathan Wakely  <jwakely@redhat.com>
2269         PR libstdc++/85183
2270         * include/std/variant (_Move_assign_base::operator=): Fix incorrect
2271         value categories.
2272         * testsuite/20_util/variant/85183.cc: New.
2274 2018-03-26  Jonathan Wakely  <jwakely@redhat.com>
2276         * include/std/variant (__get): Qualify calls to avoid ADL.
2277         (__select_index): Adjust whitespace.
2278         (variant): Add using-declaration to workaround Clang bug.
2280 2018-03-22  Jonathan Wakely  <jwakely@redhat.com>
2282         PR libstdc++/85040
2283         * include/bits/stl_function.h (greater::__not_overloaded)
2284         (less::__not_overloaded, greater_equal::__not_overloaded)
2285         (less_equal::__not_overloaded): Fix ambiguous specializations.
2286         * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
2287         tests for type with overloaded operators.
2289 2018-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2291         PR libstdc++/77691
2292         * testsuite/experimental/memory_resource/resource_adaptor.cc:
2293         xfail execution on 32-bit Solaris/x86.
2295 2018-03-21  Jonathan Wakely  <jwakely@redhat.com>
2297         * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
2298         VERIFY instead of assert.
2299         * testsuite/20_util/hash/84998.cc: New test.
2300         * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
2301         copy of test adjusted for Debug Mode.
2302         * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
2303         test in Debug Mode.
2305 2018-03-20  François Dumont  <fdumont@gcc.gnu.org>
2307         PR libstdc++/84998
2308         * include/bits/stl_bvector.h: Fix std::hash friend declaration.
2309         * include/std/bitset: Likewise.
2310         * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
2311         declaration.
2312         * include/bits/stl_multimap.h (std::multimap<>): Likewise.
2313         * include/bits/stl_multiset.h (std::multiset<>): Likewise.
2314         * include/bits/stl_set.h (std::set<>): Likewise.
2315         * include/bits/unordered_map.h (std::unordered_map<>): Fix
2316         _Hash_merge_helper friend declaration.
2317         (std::unordered_multimap<>): Likewise.
2318         * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
2319         (std::unordered_multiset<>): Likewise.
2321 2018-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
2323         * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
2324         trailing slash for domain level link.
2325         * doc/xml/faq.xml: Ditto.
2326         * doc/xml/manual/appendix_free.xml (software): Ditto.
2327         * doc/xml/manual/intro.xml: Ditto.
2328         * doc/xml/manual/spine.xml: Ditto.
2329         * doc/xml/spine.xml: Ditto.
2331 2018-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
2333         * doc/xml/manual/documentation_hacking.xml: Adjust link to
2334         docbook.org.
2336 2018-03-17  Jonathan Wakely  <jwakely@redhat.com>
2338         * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
2339         to compile as C++98.
2341 2018-03-14  Jonathan Wakely  <jwakely@redhat.com>
2343         PR libstdc++/78420
2344         * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
2345         (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
2346         to ensure total order for pointers.
2347         (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
2348         Add operator() overloads for pointer arguments and make generic
2349         overloads dispatch to new _S_cmp functions when comparisons would
2350         use built-in operators for pointers.
2351         * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
2353 2018-03-12  Jonathan Wakely  <jwakely@redhat.com>
2355         PR libstdc++/84773
2356         PR libstdc++/83662
2357         * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
2358         * configure: Regenerate.
2359         * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
2360         (aligned_alloc): Add using-declaration.
2361         * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
2363 2018-03-09  François Dumont  <fdumont@gcc.gnu.org>
2365         * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
2366         Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
2367         registration.
2369 2018-03-09  Jonathan Wakely  <jwakely@redhat.com>
2371         PR libstdc++/84769
2372         * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
2373         Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
2375         src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
2376         src/filesystem/std-ops.cc (create_dir): Likewise.
2378 2018-03-08  François Dumont  <fdumont@gcc.gnu.org>
2380         * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
2381         (StdListIteratorPrinter): Inherit from latter.
2382         (StdFwdListIteratorPrinter): New, inherit from latter.
2383         (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
2384         when iterator has no associated container.
2385         (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
2386         __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
2387         registrations.
2388         * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
2389         * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
2391 2018-03-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
2393         PR libstdc++/84601
2394         * include/std/optional (_Optional_payload): Split into multiple
2395         specializations that can handle different cases of trivial or
2396         non-trivial assignment operators.
2397         * testsuite/20_util/optional/84601.cc: New.
2398         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
2400 2018-03-02  Jonathan Wakely  <jwakely@redhat.com>
2402         PR libstdc++/84671
2403         * include/bits/parse_numbers.h (_Number_help): Add partial
2404         specialization to handle digit separators. Adjust partial
2405         specialization for recursion temrination to require _Pow == 1ULL.
2406         * testsuite/20_util/duration/literals/84671.cc: New
2408 2018-02-27  Ville Voutilainen  <ville.voutilainen@gmail.com>
2410         Implement the missing bits of LWG 2769
2411         * include/std/any (any_cast(const any&)): Add static_assert.
2412         (any_cast(any&)): Likewise.
2413         (any_cast(any&&)): Likewise, and remove the handling
2414         for copyable-but-not-movable type.
2415         * testsuite/20_util/any/misc/any_cast.cc: Adjust.
2416         * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
2417         add new tests.
2419 2018-02-23  Jonathan Wakely  <jwakely@redhat.com>
2421         PR libstdc++/84532
2422         * include/std/thread (thread::__make_invoker): Construct tuple
2423         directly instead of using make_tuple.
2424         * testsuite/30_threads/async/84532.cc: New.
2425         * testsuite/30_threads/thread/84532.cc: New.
2427 2018-02-20  François Dumont  <fdumont@gcc.gnu.org>
2429         * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
2430         (template<> __aligned_buffer): Define as __aligned_membuf alias.
2432 2018-02-19  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
2434         PR target/84148
2435         * configure: Regenerate.
2437 2018-02-15  Jonathan Wakely  <jwakely@redhat.com>
2439         PR libstdc++/81797
2440         * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
2441         * configure: Regenerate.
2442         * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
2443         defined.
2444         * include/Makefile.in: Regenerate.
2446 2018-01-29  Jonathan Wakely  <jwakely@redhat.com>
2448         PR libstdc++/83833
2449         * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
2450         Add -ffloat-store to options for m68k and ia32.
2452         * doc/xml/faq.xml: Update copyright years.
2453         * doc/html/*: Regenerate.
2455         PR libstdc++/83658
2456         * include/std/any (any::__do_emplace): Only set _M_manager after
2457         constructing the contained object.
2458         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
2459         * testsuite/20_util/any/modifiers/83658.cc: New test.
2461 2018-01-25  Jonathan Wakely  <jwakely@redhat.com>
2463         PR libstdc++/81076
2464         * include/c_global/cstddef (__byte_operand): Define primary template.
2465         * testsuite/18_support/byte/81076.cc: New test.
2467 2018-01-19  Christophe Lyon  <christophe.lyon@linaro.org>
2469         * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
2470         dg-options and dg-add-options order.
2471         * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
2472         * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
2473         Likewise.
2474         * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
2475         * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
2476         Likewise.
2477         * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
2478         Likewise.
2479         * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
2480         * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
2481         Likewise.
2482         * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
2483         Likewise.
2484         * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
2485         Likewise.
2486         * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
2487         Likewise.
2488         * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
2489         Likewise.
2490         * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
2491         Likewise.
2492         * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
2493         Likewise.
2494         * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
2495         Likewise.
2496         * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
2497         * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
2498         * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
2499         * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
2500         * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
2501         * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
2502         * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
2503         * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
2504         * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
2505         Likewise.
2506         * testsuite/special_functions/19_sph_bessel/check_nan.cc:
2507         Likewise.
2508         * testsuite/special_functions/20_sph_legendre/check_nan.cc:
2509         Likewise.
2510         * testsuite/special_functions/21_sph_neumann/check_nan.cc:
2511         Likewise.
2513 2018-01-18  Uros Bizjak  <ubizjak@gmail.com>
2515         * configure.ac (AC_CHECK_HEADERS): Add linux/types.h.  Conditionally
2516         include linux/types.h when checking linux/random.h header.
2517         * config.h.in: Regenerate.
2518         * configure: Ditto.
2519         * src/c++11/random.cc: Conditionally include linux/types.h.
2521 2018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
2523         * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
2525 2018-01-16  Jonathan Wakely  <jwakely@redhat.com>
2527         PR libstdc++/83834
2528         * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
2529         pattern with exact match for std::cerr.
2531 2018-01-15  Jonathan Wakely  <jwakely@redhat.com>
2533         PR libstdc++/83833
2534         * include/bits/random.h (chi_squared_distribution::param): Update
2535         gamma distribution parameter.
2536         * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
2537         test.
2539         PR libstdc++/83830
2540         * include/std/type_traits (has_unique_object_representations_v): Add
2541         variable template.
2542         * testsuite/20_util/has_unique_object_representations/value.cc: Check
2543         variable template.
2545 2018-01-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
2547         Make optional conditionally
2548         trivially_{copy,move}_{constructible,assignable}
2549         * include/std/optional (_Optional_payload): Fix the comment in
2550         the class head and turn into a primary and one specialization.
2551         (_Optional_payload::_M_engaged): Strike the NSDMI.
2552         (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
2553         New.
2554         (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
2555         Likewise.
2556         (_Optional_payload<_Tp, false>::_M_get): Likewise.
2557         (_Optional_payload<_Tp, false>::_M_reset): Likewise.
2558         (_Optional_base_impl): Likewise.
2559         (_Optional_base): Turn into a primary and three specializations.
2560         (optional(nullopt)): Change the base init.
2561         * testsuite/20_util/optional/assignment/8.cc: New.
2562         * testsuite/20_util/optional/cons/trivial.cc: Likewise.
2563         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
2565 2018-01-15  Jonathan Wakely  <jwakely@redhat.com>
2567         PR libstdc++/80276
2568         * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
2569         (get_template_arg_list): New.
2570         (StdVariantPrinter._template_args): Remove, use get_template_arg_list
2571         instead.
2572         (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
2573         of strings and regular expressions.
2574         (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
2575         (FilteringTypePrinter): Add docstring. Match using startswith. Use
2576         strip_inline_namespaces instead of strip_versioned_namespace.
2577         (add_one_type_printer): Prepend namespace to match argument.
2578         (register_type_printers): Add type printers for char16_t and char32_t
2579         string types and for types using cxx11 ABI. Update calls to
2580         add_one_template_type_printer to provide default argument dicts.
2581         * testsuite/libstdc++-prettyprinters/80276.cc: New test.
2582         * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
2583         basic_string<unsigned char> and basic_string<signed char>.
2584         * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
2585         to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
2587 2018-01-14  Andreas Schwab  <schwab@linux-m68k.org>
2589         PR libstdc++/81092
2590         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2592 2018-01-13  Tim Shen  <timshen@google.com>
2594         PR libstdc++/83601
2595         * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
2596         * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
2597         * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
2599 2018-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2601         PR libstdc++/64054
2602         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
2603         Remove dg-xfail-run-if.
2605 2018-01-10  François Dumont  <fdumont@gcc.gnu.org>
2607         * include/bits/forward_list.h
2608         (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
2609         (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
2610         (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
2611         (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
2612         (_Fwd_list_impl()): Add noexcept qualification.
2613         (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
2614         (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
2615         (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
2616         (_Fwd_list_base()): Default.
2617         (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
2618         (_Fwd_list_base(_Fwd_list_base&&)): Default.
2619         (forward_list<>()): Default.
2620         (forward_list<>(forward_list&&)): Default.
2621         (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
2622         (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
2623         (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
2624         * include/bits/forward_list.tcc
2625         (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
2626         _M_impl._M_head move assignment.
2627         (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
2628         * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
2630 2018-01-09  Jonathan Wakely  <jwakely@redhat.com>
2632         PR libstdc++/80276
2633         * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
2634         (UniquePointerPrinter): Print correct template argument, not type of
2635         the pointer.
2636         (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
2637         a type.
2638         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
2639         array type.
2640         * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
2641         weak_ptr of array types.
2643 2018-01-09  François Dumont  <fdumont@gcc.gnu.org>
2645         PR libstdc++/83709
2646         * include/bits/hashtable_policy.h
2647         (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
2648         __first != __last.
2649         (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
2650         (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
2651         Add false_type parameter.
2652         (_Insert_base::insert): Adapt.
2653         * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
2654         Adapt.
2655         (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
2656          Add __n_elt parameter, defaulted to 1.
2657         (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
2658         policy _M_need_rehash.
2659         (_Hashtable::_M_merge_unique): Pass target number of elements to add to
2660         produce only 1 rehash if necessary.
2661         * testsuite/23_containers/unordered_map/insert/83709.cc: New.
2662         * testsuite/23_containers/unordered_set/insert/83709.cc: New.
2664 2018-01-09  Juraj Oršulić  <juraj.orsulic@fer.hr>
2665             Jonathan Wakely  <jwakely@redhat.com>
2667         PR libstdc++/59253 (partial)
2668         * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
2669         type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
2670         (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
2671         children.
2672         * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
2673         of unique_ptr printer.
2674         * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
2675         output of shared_ptr printer.
2677 2018-01-05  Jonathan Wakely  <jwakely@redhat.com>
2679         PR libstdc++/83626
2680         * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
2681         unnecessary symlink_status call.
2682         (remove_all(const path&, error_code&)): Use filesystem::remove.
2683         * src/filesystem/std-ops.cc: Likewise.
2685         PR libstdc++/83279
2686         * src/filesystem/std-ops.cc  (do_copy_file): Use non-null offset with
2687         sendfile.
2689         PR libstdc++/83626
2690         * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
2691         report an error for ENOENT.
2692         (remove_all(const path&)): Fix type of result variable.
2693         (remove_all(const path&, error_code&)): Use non-throwing increment
2694         for directory iterator. Call POSIX remove directly to avoid redundant
2695         calls to symlink_status. Do not report errors for ENOENT.
2696         * src/filesystem/std-ops.cc: Likewise.
2697         * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
2698         overload.
2699         * testsuite/experimental/filesystem/operations/remove_all.cc:
2700         Likewise.
2702 2018-01-04  Jonathan Wakely  <jwakely@redhat.com>
2704         PR libstdc++/83626
2705         * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
2706         redundant call to ec.clear().
2707         (remove_all(const path&, error_code&))): Do not return an error for
2708         non-existent paths.
2709         * src/filesystem/std-ops.cc: Likewise.
2710         * testsuite/27_io/filesystem/operations/remove.cc: New test.
2711         * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
2712         results for non-existent paths.
2713         * testsuite/experimental/filesystem/operations/remove.cc: New test.
2714         * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
2715         expected results for non-existent paths.
2717         * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
2718         check status_known once.
2719         * include/experimental/bits/fs_ops.h: Likewise.
2721         PR libstdc++/83607
2722         * include/std/functional (__is_byte_like): New trait.
2723         (__is_std_equal_to): Remove.
2724         (__boyer_moore_base_t): Use __is_byte_like instead of
2725         __is_std_equal_to.
2726         * include/experimental/functional (__is_std_equal_to): Remove.
2727         (__boyer_moore_base_t): Use __is_byte_like instead of
2728         __is_std_equal_to.
2729         * testsuite/20_util/function_objects/83607.cc: New test.
2731 2018-01-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
2733         Protect optional's deduction guide with the feature macro
2734         * include/std/optional: Use the feature macro.
2736 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
2738         Update copyright years.
2740 Copyright (C) 2018 Free Software Foundation, Inc.
2742 Copying and distribution of this file, with or without modification,
2743 are permitted in any medium without royalty provided the copyright
2744 notice and this notice are preserved.