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