Remove ChangeLog entry unintentionally duplicated in the top level
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob7c88b8f7161b83f949bf8a5a4eced5fd26c31670
1 2015-10-24  Jonathan Wakely  <jwakely@redhat.com>
3         * include/std/functional (__invoke_impl): New overloads.
4         (__invoke): Replace with a single function calling __invoke_impl.
5         (invoke): Add C++17 std::invoke.
6         (reference_wrapper::operator()): Qualify call to __invoke.
7         (_Mem_fn_traits_base, _Mem_fn_traits): Remove unused typedefs.
8         (_Mem_fn_base): Remove unused typedefs and implement call operator in
9         terms of __invoke.
10         * include/std/future (__future_base::_Async_state_commonV2): Do not
11         pass reference_wrapper as object argument to call_once.
12         * include/std/type_traits (result_of): Define nested __invoke_type.
13         Handle reference_wrapper as per LWG 2219.
14         * testsuite/20_util/bind/ref_neg.cc: Adjust dg-error directives.
15         * testsuite/20_util/function_objects/mem_fn/55463.cc: Remove tests
16         using member functions of reference_wrapper.
18 2015-10-24  Jonathan Wakely  <jwakely@redhat.com>
20         * include/std/future (async): Use deferred function on exception.
21         * testsuite/30_threads/async/except.cc: New.
23 2015-10-21  Jonathan Wakely  <jwakely@redhat.com>
25         * include/std/type_traits (__cpp_lib_bool_constant): Define.
27 2015-10-16  Jonathan Wakely  <jwakely@redhat.com>
29         * doc/xml/manual/configure.xml: Document
30         --enable-libstdcxx-filesystem-ts option.
31         * doc/xml/manual/status_cxx2014.xml: Document libstdc++fs.a.
32         * doc/xml/manual/using.xml: Likewise.
33         * doc/html/*: Regenerate.
35 2015-10-16  Aurelio Remonda  <aurelio.remonda@tallertechnologies.com>
37         * testsuite/25_algorithms/random_shuffle/moveable.cc: Change variable
38         N from const int N = 200000 to const unsigned int N = 10000.
39         Delete useless fill_ascending function call.
41 2015-10-15  Szabolcs Nagy  <szabolcs.nagy@arm.com>
43         * testsuite/lib/libstdc++.exp (libstdc++-dg-test): Check for
44         unsupported compiler output.
46 2015-10-13  Nathan Froyd  <froydnj@gcc.gnu.org>
48         * config/cpu/i486/opt/bits/opt_random.h: Include pmmintrin.h instead
49         of x86intrin.h, and only do so when __SSE3__
50         * include/ext/random: Include emmintrin.h instead of x86intrin.h
52 2015-10-11  Joseph Myers  <joseph@codesourcery.com>
54         * crossconfig.m4 (GLIBCXX_CROSSCONFIG) <*-linux* | *-uclinux* |
55         *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu | *-cygwin*>: Check for
56         __cxa_thread_atexit_impl.
57         * configure: Regenerate.
59 2015-10-09  Jonathan Wakely  <jwakely@redhat.com>
61         * include/experimental/erase_if.h: Move to ...
62         * include/experimental/bits/erase_if.h: New.
63         * include/experimental/fs_dir.h: Move to ...
64         * include/experimental/bits/fs_dir.h: New.
65         * include/experimental/fs_fwd.h: Move to ...
66         * include/experimental/bits/fs_fwd.h: New.
67         * include/experimental/fs_ops.h: Move to ...
68         * include/experimental/bits/fs_ops.h: New.
69         * include/experimental/fs_path.h: Move to ...
70         * include/experimental/bits/fs_path.h: New.
71         * include/experimental/string_view.tcc: Move to ...
72         * include/experimental/bits/string_view.tcc: New.
73         * include/Makefile.am: Add include/experimental/bits sub-directory.
74         * include/Makefile.in: Regenerate.
75         * include/experimental/filesystem: Adjust includes.
76         * include/experimental/map: Likewise.
77         * include/experimental/set: Likewise.
78         * include/experimental/string_view: Likewise.
79         * include/experimental/unordered_map: Likewise.
80         * include/experimental/unordered_set: Likewise.
82 2015-10-05  Ville Voutilainen  <ville.voutilainen@gmail.com>
84         PR 67844.
85         * include/std/tuple (_TC::_NonNestedTuple): Eagerly reject
86         conversions from tuple types same as the target tuple.
87         * testsuite/20_util/tuple/67844.cc: New.
88         * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Add
89         a missing copyright header.
91 2015-10-03  Jonathan Wakely  <jwakely@redhat.com>
93         * python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Remove support
94         for _Manager_alloc.
96         * src/c++98/locale.cc: Fix comment.
97         * src/c++98/locale_init.cc: Likewise.
99         * testsuite/21_strings/basic_string/literals/types.cc: Guard use of
100         wchar_t with _GLIBCXX_USE_WCHAR_T.
101         * testsuite/21_strings/basic_string/literals/values.cc: Likewise.
102         * testsuite/21_strings/basic_string/requirements/citerators.cc:
103         Likewise.
104         * testsuite/22_locale/messages/13631.cc: Likewise.
105         * testsuite/experimental/string_view/literals/types.cc: Likewise.
106         * testsuite/experimental/string_view/literals/values.cc: Likewise.
108         * src/filesystem/Makefile.am: Add cxx11_abi_sources.
109         * src/filesystem/Makefile.in: Regenerate.
110         * src/filesystem/cow-dir.cc: New.
111         * src/filesystem/cow-ops.cc: New.
112         * src/filesystem/cow-path.cc: New.
113         * src/filesystem/dir.cc: Define macro for new ABI.
114         * src/filesystem/ops.cc: Likewise.
115         * src/filesystem/path.cc: Likewise.
117 2015-10-02  Jonathan Wakely  <jwakely@redhat.com>
119         * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
120         Minor tweaks to match narrow char version.
122         * testsuite/21_strings/basic_string/allocator/char/minimal.cc: Guard
123         explicit instantiation with check for new ABI.
124         * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
125         Likewise. Use wchar_t as char_type.
127         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
128         (basic_string::front() const, basic_string::back() const): Use
129         noexcept instead of _GLIBCXX_NOEXCEPT macro.
130         (__versa_string::front, __versa_string::back): Likewise.
132         * acinclude.m4 (GLIBCXX_ENABLE_DEBUG_FLAGS): Fix comment.
134         * include/bits/locale_conv.h [!_GLIBCXX_USE_WCHAR_T]
135         (__do_str_codecvt, __str_codecvt_in, __str_codecvt_out): Enable.
136         * include/experimental/fs_path.h [!_GLIBCXX_USE_WCHAR_T]
137         (path::wstring, path::generic_wstring): Disable.
138         * src/filesystem/path.cc (path::_S_convert_loc)
139         [!_GLIBCXX_USE_WCHAR_T]: Skip conversion.
140         * testsuite/experimental/filesystem/path/assign/assign.cc: Check for
141         wchar_t support.
142         * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
143         * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
145         * testsuite/util/testsuite_fs.h (nonexistent_path): Use less generic
146         name for paths. Prefer snprintf to sprintf.
148         PR libstdc++/67747
149         * src/filesystem/dir.cc (native_readdir): Remove.
150         (_Dir::advance): Use readdir instead of native_readdir.
151         (recursive_directory_iterator(const path&, directory_options,
152         error_code*)): Use swap instead of reset.
154 2015-10-01  Jonathan Wakely  <jwakely@redhat.com>
156         * doc/html/manual/errno.html: Add new file.
158         * doc/xml/manual/diagnostics.xml: Document use of errno.
159         * doc/html/*: Regenerate.
160         * config/locale/generic/c_locale.cc (_Save_errno): New helper.
161         (__convert_to_v): Use _Save_errno.
162         * include/ext/string_conversions.h (__stoa): Only restore errno when
163         it isn't set to non-zero.
165 2015-09-30  François Dumont  <fdumont@gcc.gnu.org>
166             Jonathan Wakely  <jwakely@redhat.com>
168         * config/locale/gnu/messages_members.cc (Catalog_info, Catalogs):
169         Move...
170         * config/locale/gnu/c++locale_internal.h: ...here in std namespace.
171         * config/locale/gnu/c_locale.cc: Move implementation of latter here.
172         * src/c++98/Makefile.am: Compile c++locale.cc with -fimplicit-templates.
173         * src/c++98/Makefile.in: Regenerate.
174         * config/abi/pre/gnu.ver: Adjust.
176 2015-09-30  Matthias Klose  <doko@ubuntu.com>
178         * config/cpu/alpha, config/cpu/ia64: Remove empty directories.
180 2015-09-29  Jonathan Wakely  <jwakely@redhat.com>
182         * include/ext/string_conversions.h (__stoa): Save and restore errno.
183         * testsuite/21_strings/basic_string/numeric_conversions/char/errno.cc:
184         New.
186         PR libstdc++/67583
187         * testsuite/27_io/basic_stringbuf/seekoff/char/1.cc: Fix sputn call
188         with mismatched arguments.
189         * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc: Likewise.
191         PR libstdc++/65393
192         * config/abi/pre/gnu.ver: Export new symbols.
193         * include/std/thread (thread::_State, thread::_State_impl): New types.
194         (thread::_M_start_thread): Add overload taking unique_ptr<_State>.
195         (thread::_M_make_routine): Remove.
196         (thread::_S_make_state): Add.
197         (thread::_Impl_base, thread::_Impl, thread::_M_start_thread)
198         [_GLIBCXX_THREAD_ABI_COMPAT] Only declare conditionally.
199         * src/c++11/thread.cc (execute_native_thread_routine): Rename to
200         execute_native_thread_routine_compat and re-define to use _State.
201         (thread::_State::~_State()): Define.
202         (thread::_M_make_thread): Define new overload.
203         (thread::_M_make_thread) [_GLIBCXX_THREAD_ABI_COMPAT]: Only define old
204         overloads conditionally.
206 2015-09-28  Jonathan Wakely  <jwakely@redhat.com>
208         * include/std/condition_variable (condition_variable::wait): Add
209         noexcept.
210         * src/c++11/condition_variable.cc (condition_variable::wait): Call
211         std::terminate on error (DR 2135).
213 2015-09-25  Ville Voutilainen  <ville.voutilainen@gmail.com>
215         Avoid creating dangling references in case of nested tuples
216         for tuple constructors that construct from other tuples.
217         * include/std/tuple (_TC::_NonNestedTuple): New.
218         * include/std/tuple (tuple::_TNTC): New.
219         * include/std/tuple (tuple(const tuple<_UElements...>&),
220         tuple(tuple<_UElements...>&&): Use _TNTC.
221         * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: New.
223 2015-09-24  Jonathan Wakely  <jwakely@redhat.com>
225         PR libstdc++/67707
226         * include/bits/stl_deque.h (_Deque_base::_M_move_impl): Initialize
227         empty object.
228         * testsuite/23_containers/deque/allocator/move.cc: Check moved-from
229         deque.
231 2015-09-23  Jonathan Wakely  <jwakely@redhat.com>
233         * src/filesystem/ops.cc (canonical): Simplify error handling and
234         limit number of symlinks that can be resolved.
236 2015-09-23  Jonathan Wakely  <jwakely@redhat.com>
238         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Remove _GLIBCXX_
239         prefix from HAVE_STRUCT_DIRENT_D_TYPE.
240         * config.h.in: Regenerate.
241         * configure: Regenerate.
242         * include/experimental/fs_dir.h (operator==, operator==):
243         Use owner_before instead of pointer equality.
244         (directory_iterator(std::shared_ptr<_Dir>, error_code*)): Remove.
245         * src/filesystem/dir.cc (ErrorCode): Remove.
246         (_Dir::advance): Change ErrorCode parameter to error_code*, add
247         directory_options parameter and check it on error.
248         (opendir): Rename to open_dir to avoid clashing with macro. Change
249         ErrorCode parameter to error_code*.
250         (make_shared_dir): Remove.
251         (native_readdir) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Don't set errno.
252         (directory_iterator(std::shared_ptr<_Dir>, error_code*)): Remove.
253         (directory_iterator(const path&, directory_options, error_code*)):
254         Pass options to _Dir::advance and create non-end iterator on error.
255         (recursive_directory_iterator(const path&, directory_options,
256         error_code*)): Clear error_code on ignored error, create non-end
257         iterator otherwise.
258         (recursive_directory_iterator::increment): Pass _M_options to
259         _Dir::advance.
260         (recursive_directory_iterator::pop): Likewise.
261         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
262         New.
263         * testsuite/experimental/filesystem/iterators/
264         recursive_directory_iterator.cc: New.
266         * src/filesystem/ops.cc (is_dot, is_dotdot): Define new helpers.
267         (create_directories): Fix error handling.
268         * testsuite/experimental/filesystem/operations/create_directories.cc:
269         New.
271 2015-09-21  Jonathan Wakely  <jwakely@redhat.com>
273         PR libstdc++/67647
274         * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
275         (basic_string::shrink_to_fit): Fix #endif placement.
277 2015-09-19  Tim Shen  <timshen@google.com>
279         PR libstdc++/67361
280         * include/bits/regex_error.h: Add __throw_regex_error that
281         supports string.
282         * include/bits/regex_automaton.h: Add more specific exception
283         messages.
284         * include/bits/regex_automaton.tcc: Likewise.
285         * include/bits/regex_compiler.h: Likewise.
286         * include/bits/regex_compiler.tcc: Likewise.
287         * include/bits/regex_scanner.h: Likewise.
288         * include/bits/regex_scanner.tcc: Likewise.
290 2015-09-18  Jonathan Wakely  <jwakely@redhat.com>
292         * include/precompiled/extc++.h: Fix bootstrap error due to
293         unconditional inclusion of <ext/enc_filebuf.h>.
294         * include/ext/random: Check for definition of UINT32_C.
296 2015-09-17  Catherine Moore  <clm@codesourcery.com>
298         * src/c++11/debug.cc: Include <cstdio>.
300 2015-09-17  Gerald Pfeifer  <gerald@pfeifer.com>
302         * src/c++11/random.cc: Include <cerrno>.
304 2015-09-17  François Dumont  <fdumont@gcc.gnu.org>
306         * include/debug/formatter.h
307         (_Error_formatter::_Parameter::_M_print_field): Deprecate.
308         (_Error_formatter::_Parameter::_M_print_description): Likewise.
309         (_Error_formatter::_M_format_word): Likewise.
310         (_Error_formatter::_M_print_word): Likewise.
311         (_Error_formatter::_M_print_string): Likewise.
312         (_Error_formatter::_M_get_max_length): Likewise.
313         (_Error_formatter::_M_max_length): Delete.
314         (_Error_formatter::_M_indent): Likewise.
315         (_Error_formatter::_M_column): Likewise.
316         (_Error_formatter::_M_first_line): Likewise.
317         (_Error_formatter::_M_wordwrap): Likewise.
318         * src/c++11/debug.cc: Adapt.
320 2015-09-17  Jonathan Wakely  <jwakely@redhat.com>
322         PR libstdc++/65913
323         * include/bits/atomic_base.h (__atomic_base<_TTp>::is_lock_free(),
324         __atomic_base<_PTp*>::is_lock_free()): Call the built-in with the
325         immediate pointer value, not a variable.
326         * include/std/atomic (atomic<T>::is_lock_free()): Likewise.
327         * testsuite/29_atomics/atomic/65913.cc: New.
329         * testsuite/experimental/filesystem/operations/canonical.cc: Remove
330         non-deterministic part of the test.
332         PR libstdc++/65142
333         * src/c++11/random.cc (random_device::_M_getval()): Retry after short
334         reads.
336         * include/std/system_error (error_code::operator bool(),
337         error_condition::operator bool()): Remove redundant conditional
338         expression.
340         * include/bits/allocator.h (__shrink_to_fit_aux<T, true>::_S_do_it):
341         Do nothing if exceptions are disabled.
342         * include/bits/basic_string.h (basic_string::shrink_to_fit): Likewise.
344 2015-09-16  Jonathan Wakely  <jwakely@redhat.com>
346         PR libstdc++/67173
347         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check _XOPEN_VERSION
348         and PATH_MAX for _GLIBCXX_USE_REALPATH.
349         * config.h.in: Regenerate.
350         * configure: Regenerate.
351         * src/filesystem/ops.cc: (canonical) [!_GLIBCXX_USE_REALPATH]: Add
352         alternative implementation.
353         * testsuite/experimental/filesystem/operations/canonical.cc: New.
354         * testsuite/experimental/filesystem/operations/exists.cc: Add more
355         tests.
356         * testsuite/experimental/filesystem/operations/absolute.cc: Add test
357         variables.
358         * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
359         * testsuite/experimental/filesystem/operations/current_path.cc:
360         Likewise.
361         * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
362         * testsuite/experimental/filesystem/operations/status.cc: Likewise.
363         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
364         Likewise.
366 2015-09-11  Jonathan Wakely  <jwakely@redhat.com>
368         PR libstdc++/67173
369         * src/filesystem/ops.cc (filesystem::canonical): Allocate buffer for
370         realpath on Solaris 10.
372         PR libstdc++/65142
373         * src/c++11/random.cc (random_device::_M_getval()): Check read result.
375 2015-09-11  John Marino  <gnugcc@marino.st>
376             Jonathan Wakely  <jwakely@redhat.com>
378         PR libstdc++/67096
379         * testsuite/22_locale/codecvt/in/wchar_t/4.cc: Do not test code points
380         above U+10FFFF.
381         * testsuite/22_locale/codecvt/in/wchar_t/8.cc: Likewise.
382         * testsuite/22_locale/codecvt/in/wchar_t/9.cc: Likewise.
383         * testsuite/22_locale/codecvt/length/wchar_t/4.cc: Likewise.
384         * testsuite/22_locale/codecvt/out/wchar_t/4.cc: Likewise.
385         * testsuite/22_locale/codecvt/unshift/wchar_t/4.cc: Likewise.
386         * testsuite/27_io/basic_filebuf/seekoff/wchar_t/1.cc: Likewise.
387         * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Likewise.
388         * testsuite/27_io/basic_filebuf/underflow/wchar_t/1.cc: Likewise.
389         * testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise.
390         * testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise.
391         * testsuite/27_io/objects/wchar_t/10.cc: Likewise.
392         * testsuite/27_io/objects/wchar_t/11.cc: Likewise.
393         * testsuite/27_io/objects/wchar_t/12.cc: Likewise.
394         * testsuite/27_io/objects/wchar_t/13.cc: Likewise.
396 2015-09-11  Jonathan Wakely  <jwakely@redhat.com>
398         PR libstdc++/64857
399         * doc/xml/manual/using.xml: Improve aggregate header documentation.
400         * doc/html/manual/*: Regenerate.
401         * include/precompiled/extc++.h: Include <bits/stdc++.h> for C++11
402         and later and include more extension headers.
403         * testsuite/17_intro/headers/c++1998/all_attributes.cc: Remove
404         redundant header.
405         * testsuite/17_intro/headers/c++200x/: Rename to c++2011.
406         * testsuite/17_intro/headers/c++2014/all_attributes.cc: Remove
407         redundant headers.
408         * testsuite/17_intro/headers/c++2014/all_no_exceptions.cc: New.
409         * testsuite/17_intro/headers/c++2014/all_no_rtti.cc: New.
410         * testsuite/17_intro/headers/c++2014/all_pedantic_errors.cc: New.
411         * testsuite/17_intro/headers/c++2014/operator_names.cc: New.
412         * testsuite/17_intro/headers/c++2014/stdc++.cc: New.
413         * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
414         New.
416         PR libstdc++/58265
417         * doc/xml/manual/intro.xml: Document LWG 2063 and 2064 resolutions.
418         * doc/html/manual/bugs.html: Regenerate.
419         * include/bits/basic_string.h (basic_string): Implement N4258. Add
420         correct exception-specifications and propagate allocators correctly.
421         * include/bits/basic_string.tcc (basic_string::swap): Propagate
422         allocators correctly.
423         * include/debug/string (__gnu_debug::basic_string): Add correct
424         exceptions-specifications and allcoator-extended constructors.
425         * testsuite/21_strings/basic_string/allocator/char/copy.cc: New.
426         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
427         New.
428         * testsuite/21_strings/basic_string/allocator/char/minimal.cc: New.
429         * testsuite/21_strings/basic_string/allocator/char/move.cc: New.
430         * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
431         New.
432         * testsuite/21_strings/basic_string/allocator/char/noexcept.cc: New.
433         * testsuite/21_strings/basic_string/allocator/char/swap.cc: New.
434         * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc: New.
435         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
436         New.
437         * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc: New.
438         * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc: New.
439         * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
440         New.
441         * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc: New.
442         * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc: New.
443         * testsuite/util/testsuite_allocator.h (tracker_allocator): Define
444         defaulted assignment operators.
446         PR libstdc++/65092
447         * include/bits/stl_queue.h (queue, priority_queue): Add
448         allocator-extended constructors.
449         * include/bits/stl_stack.h (stack): Likewise.
450         * testsuite/23_containers/priority_queue/requirements/
451         uses_allocator.cc: Test allocator-extended constructors.
452         * testsuite/23_containers/queue/requirements/uses_allocator.cc:
453         Likewise.
454         * testsuite/23_containers/stack/requirements/uses_allocator.cc:
455         Likewise.
457 2015-09-10  Jonathan Wakely  <jwakely@redhat.com>
459         * testsuite/util/testsuite_allocator.h (PointerBase::operator[]): Add.
461         * testsuite/21_strings/basic_string/operators/char/1.cc: Verify the
462         string contents.
464 2015-09-09  Jonathan Wakely  <jwakely@redhat.com>
466         * doc/xml/manual/using.xml (_GLIBCXX_ASSERTIONS): Document.
467         * doc/html/manual/using_macros.html: Regenerate.
468         * include/bits/c++config: Define _GLIBCXX_ASSERTIONS when
469         _GLIBCXX_DEBUG is defined. Disable std::string extern templates when
470         (_GLIBCXX_EXTERN_TEMPLATE, __glibcxx_assert): Depend on
471         _GLIBCXX_ASSERTIONS instead of _GLIBCXX_DEBUG.
472         * include/debug/debug.h [!_GLIBCXX_DEBUG]: Define
473         __glibcxx_requires_non_empty_range and __glibcxx_requires_nonempty.
474         * include/backward/auto_ptr.h (auto_ptr::operator*,
475         auto_ptr::operator->): Replace _GLIBCXX_DEBUG_ASSERT with
476         __glibcxx_assert.
477         * include/bits/basic_string.h (basic_string::operator[],
478         basic_string::front, basic_string::back, basic_string::pop_back):
479         Likewise.
480         * include/bits/random.h
481         (uniform_int_distribution::param_type::param_type,
482         uniform_real_distribution::param_type::param_type,
483         normal_distribution::param_type::param_type,
484         gamma_distribution::param_type::param_type,
485         bernoulli_distribution::param_type::param_type,
486         binomial_distribution::param_type::param_type,
487         geometric_distribution::param_type::param_type,
488         negative_binomial_distribution::param_type::param_type,
489         poisson_distribution::param_type::param_type,
490         exponential_distribution::param_type::param_type): Likewise.
491         * include/bits/regex.h (match_results::operator[],
492         match_results::prefix, match_results::suffix): Likewise.
493         * include/bits/regex.tcc (format, regex_iterator::operator++):
494         Likewise.
495         * include/bits/regex_automaton.tcc (_StateSeq::_M_clone): Likewise.
496         * include/bits/regex_compiler.tcc (_Compiler::_Compiler,
497         _Compiler::_M_insert_character_class_matcher): Likewise.
498         * include/bits/regex_executor.tcc (_Executor::_M_dfs): Likewise.
499         * include/bits/regex_scanner.tcc (_Scanner::_M_advance,
500         _Scanner::_M_scan_normal): Likewise.
501         * include/bits/shared_ptr_base.h (__shared_ptr::_M_reset,
502         __shared_ptr::operator*): Likewise.
503         * include/bits/stl_iterator_base_funcs.h (__advance): Likewise.
504         * include/bits/unique_ptr.h (unique_ptr::operator*,
505         unique_ptr::operator[]): Likewise.
506         * include/experimental/fs_path.h (path::path(string_type, _Type),
507         path::iterator::operator++, path::iterator::operator--,
508         path::iterator::operator*): Likewise.
509         * include/experimental/string_view (basic_string_view::operator[],
510         basic_string_view::front, basic_string_view::back,
511         basic_string_view::remove_prefix): Likewise.
512         * include/ext/random (beta_distribution::param_type::param_type,
513         normal_mv_distribution::param_type::param_type,
514         rice_distribution::param_type::param_type,
515         pareto_distribution::param_type::param_type,
516         k_distribution::param_type::param_type,
517         arcsine_distribution::param_type::param_type,
518         hoyt_distribution::param_type::param_type,
519         triangular_distribution::param_type::param_type,
520         von_mises_distribution::param_type::param_type,
521         hypergeometric_distribution::param_type::param_type,
522         logistic_distribution::param_type::param_type): Likewise.
523         * include/ext/vstring.h (__versa_string::operator[]): Likewise.
524         * include/std/complex (polar): Likewise.
525         * include/std/mutex [!_GTHREAD_USE_MUTEX_TIMEDLOCK]
526         (timed_mutex::~timed_mutex, timed_mutex::unlock,
527         (recursive_timed_mutex::~timed_mutex, recursive_timed_mutex::unlock):
528         Likewise.
529         * include/std/shared_mutex [!PTHREAD_RWLOCK_INITIALIZER]
530         (__shared_mutex_pthread::__shared_mutex_pthread,
531         __shared_mutex_pthread::~__shared_mutex_pthread): Likewise.
532         (__shared_mutex_pthread::lock, __shared_mutex_pthread::try_lock,
533         __shared_mutex_pthread::unlock, __shared_mutex_pthread::lock_shared,
534         __shared_mutex_pthread::try_lock_shared): Likewise.
535         (__shared_mutex_cv::~__shared_mutex_cv, __shared_mutex_cv::unlock,
536         __shared_mutex_cv::unlock_shared): Likewise.
537         (shared_timed_mutex::try_lock_until,
538         shared_timed_mutex::try_lock_shared_until): Likewise.
539         * include/std/valarray (valarray::valarray(const _Tp*, size_t),
540         valarray::operator=, valarray::sum, valarray::min, valarray::max,
541         _DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT, _DEFINE_BINARY_OPERATOR):
542         Likewise.
544 2015-09-07  Jonathan Wakely  <jwakely@redhat.com>
546         * include/bits/shared_ptr_base.h (__shared_ptr::operator->): Change
547         _GLIBCXX_DEBUG_ASSERT to _GLIBCXX_DEBUG_PEDASSERT.
548         * include/bits/unique_ptr.h (unique_ptr::operator->): Likewise.
549         * testsuite/20_util/shared_ptr/observers/get.cc: Test operator-> on
550         empty shared_ptr.
552         * include/bits/regex_compiler.h (_BracketMatcher::_M_is_ready):
553         Initialize using NSDMI and set using _GLIBCXX_DEBUG_ONLY.
555         * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Rename
556         shadowed variable.
558         * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Run on
559         darwin.
560         * testsuite/30_threads/timed_mutex/unlock/2.cc: Run on darwin.
562 2015-09-04  Jonathan Wakely  <jwakely@redhat.com>
564         PR libstdc++/65704
565         * include/std/mutex (recursive_timed_mutex): Fix uses of _Can_lock.
567         PR libstdc++/65704
568         * include/Makefile.am: Add <bits/mutex.h>.
569         * include/Makefile.in: Regenerate.
570         * include/bits/mutex.h (__mutex_base, mutex, lock_guard, unique_lock):
571         New file containing types moved from <mutex>.
572         * include/std/condition_variable: Include <bits/mutex.h> instead of
573         <mutex>.
574         * include/std/mutex (__mutex_base, mutex, lock_guard, unique_lock):
575         Move to <bits/mutex.h>.
576         *  testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Remove
577         dg-require-gthreads-timed.
578         *  testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
579         Likewise.
580         *  testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc:
581         Likewise.
582         *  testsuite/30_threads/recursive_timed_mutex/dest/
583         destructor_locked.cc: Likewise.
584         *  testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
585         *  testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
586         *  testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
587         *  testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
588         *  testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
589         Likewise.
590         *  testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
591         Likewise.
592         *  testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
593         Likewise.
594         *  testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
595         Likewise.
596         *  testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
597         Likewise.
598         *  testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
599         *  testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
600         *  testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
601         *  testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
602         *  testsuite/30_threads/timed_mutex/dest/destructor_locked.cc:
603         Likewise.
604         *  testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
605         *  testsuite/30_threads/timed_mutex/requirements/standard_layout.cc:
606         Likewise.
607         *  testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
608         *  testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
609         *  testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
610         *  testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
611         *  testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
612         *  testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
613         *  testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
614         *  testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
615         *  testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
616         *  testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
617         *  testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
618         *  testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
619         *  testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
621 2015-09-04  Edward Smith-Rowland  <3dw4rd@verizon.net>
622             Jonathan Wakely  <jwakely@redhat.com>
624         Add C++11 header <cuchar>.
625         * acinclude.m4 (GLIBCXX_CHECK_UCHAR_H): Define.
626         * config.h.in: Regenerate.
627         * configure: Regenerate.
628         * configure.ac: Check for <uchar.h>.
629         * include/Makefile.am: Add new headers.
630         * include/Makefile.in: Regenerate.
631         * include/c/cuchar: New.
632         * include/c_compatibility/uchar.h: New.
633         * include/c_global/cuchar: New.
634         * include/c_std/cuchar: New.
635         * include/precompiled/stdc++.h: Include <cuchar>.
636         * testsuite/17_intro/headers/c++200x/stdc++.cc: Include <uchar.h>.
637         * testsuite/17_intro/headers/c++200x/stdc++_multiple_inclusion.cc:
638         Include <uchar.h>.
640 2015-09-04  Jonathan Wakely  <jwakely@redhat.com>
642         PR libstdc++/65473
643         * include/c/cassert: Include <bits/c++config.h>.
644         * include/c/cerrno: Likewise.
645         * include/c/cfloat: Likewise.
646         * include/c/ciso646: Likewise.
647         * include/c/climits: Likewise.
648         * include/c_global/cassert: Likewise.
649         * include/c_global/cerrno: Likewise.
650         * include/c_global/cfloat: Likewise.
651         * include/c_global/ciso646: Likewise.
652         * include/c_global/climits: Likewise.
653         * include/c_std/cassert: Likewise.
654         * include/c_std/cerrno: Likewise.
655         * include/c_std/cfloat: Likewise.
656         * include/c_std/ciso646: Likewise.
657         * include/c_std/climits: Likewise.
659 2015-09-03  Jonathan Wakely  <jwakely@redhat.com>
661         * include/bits/shared_ptr_base.h: Add required header.
662         * include/std/condition_variable: Likewise.
663         * include/std/mutex: Remove unused header.
664         * include/std/shared_mutex: Remove redundant header.
665         (shared_mutex::shared_mutex()): Replace throw with __throw_bad_alloc.
667         PR libstdc++/66902
668         * src/c++11/debug.cc (_S_debug_messages): Make array const.
670         PR libstdc++/66998
671         * include/experimental/functional (_Not_fn): Add exception
672         specifications and non-deduced return types.
673         (not_fn): Add exception specification and wrap pointer-to-member.
674         * testsuite/experimental/functional/not_fn.cc: Test in SFINAE context
675         and test pointer-to-member.
677         PR libstdc++/62039
678         * include/bits/stl_iterator_base_funcs.h (next, prev): Add concept
679         checks.
680         * testsuite/24_iterators/operations/prev_neg.cc: New.
681         * testsuite/24_iterators/operations/next_neg.cc: New.
683 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
685         * testsuite/18_support/pthread_guard.cc: Add *-*-rtems* target
686         selector to all lines which contain a *-*-cygwin target selector.
687         * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
688         * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Likewise.
689         * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
690         * testsuite/21_strings/basic_string/pthread18185.cc: Likewise.
691         * testsuite/21_strings/basic_string/pthread33394.cc: Likewise.
692         * testsuite/21_strings/basic_string/pthread4.cc: Likewise.
693         * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
694         * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
695         * testsuite/23_containers/list/pthread1.cc: Likewise.
696         * testsuite/23_containers/list/pthread5.cc: Likewise.
697         * testsuite/23_containers/map/pthread6.cc: Likewise.
698         * testsuite/23_containers/vector/debug/multithreaded_swap.cc: Likewise.
699         * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
700         * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
701         * testsuite/30_threads/async/42819.cc: Likewise.
702         * testsuite/30_threads/async/49668.cc: Likewise.
703         * testsuite/30_threads/async/54297.cc: Likewise.
704         * testsuite/30_threads/async/any.cc: Likewise.
705         * testsuite/30_threads/async/async.cc: Likewise.
706         * testsuite/30_threads/async/launch.cc: Likewise.
707         * testsuite/30_threads/async/lwg2021.cc: Likewise.
708         * testsuite/30_threads/async/sync.cc: Likewise.
709         * testsuite/30_threads/call_once/39909.cc: Likewise.
710         * testsuite/30_threads/call_once/49668.cc: Likewise.
711         * testsuite/30_threads/call_once/60497.cc: Likewise.
712         * testsuite/30_threads/call_once/call_once1.cc: Likewise.
713         * testsuite/30_threads/condition_variable/54185.cc: Likewise.
714         * testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
715         * testsuite/30_threads/condition_variable/members/1.cc: Likewise.
716         * testsuite/30_threads/condition_variable/members/2.cc: Likewise.
717         * testsuite/30_threads/condition_variable/members/3.cc: Likewise.
718         * testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
719         * testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
720         Likewise.
721         * testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
722         * testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
723         * testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
724         * testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
725         * testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
726         * testsuite/30_threads/future/cons/move.cc: Likewise.
727         * testsuite/30_threads/future/members/45133.cc: Likewise.
728         * testsuite/30_threads/future/members/get.cc: Likewise.
729         * testsuite/30_threads/future/members/get2.cc: Likewise.
730         * testsuite/30_threads/future/members/share.cc: Likewise.
731         * testsuite/30_threads/future/members/valid.cc: Likewise.
732         * testsuite/30_threads/future/members/wait.cc: Likewise.
733         * testsuite/30_threads/future/members/wait_for.cc: Likewise.
734         * testsuite/30_threads/future/members/wait_until.cc: Likewise.
735         * testsuite/30_threads/lock/1.cc: Likewise.
736         * testsuite/30_threads/lock/2.cc: Likewise.
737         * testsuite/30_threads/lock/3.cc: Likewise.
738         * testsuite/30_threads/lock/4.cc: Likewise.
739         * testsuite/30_threads/mutex/cons/1.cc: Likewise.
740         * testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
741         * testsuite/30_threads/mutex/lock/1.cc: Likewise.
742         * testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
743         * testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
744         * testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
745         * testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
746         * testsuite/30_threads/mutex/unlock/1.cc: Likewise.
747         * testsuite/30_threads/mutex/unlock/2.cc: Likewise.
748         * testsuite/30_threads/packaged_task/49668.cc: Likewise.
749         * testsuite/30_threads/packaged_task/60564.cc: Likewise.
750         * testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
751         * testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
752         * testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
753         * testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
754         * testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
755         * testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
756         * testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
757         * testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
758         Likewise.
759         * testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
760         * testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
761         * testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
762         * testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
763         * testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
764         * testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
765         * testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
766         * testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
767         * testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
768         * testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
769         * testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
770         * testsuite/30_threads/promise/60966.cc: Likewise.
771         * testsuite/30_threads/promise/cons/1.cc: Likewise.
772         * testsuite/30_threads/promise/cons/alloc.cc: Likewise.
773         * testsuite/30_threads/promise/cons/move.cc: Likewise.
774         * testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
775         * testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
776         * testsuite/30_threads/promise/members/get_future.cc: Likewise.
777         * testsuite/30_threads/promise/members/get_future2.cc: Likewise.
778         * testsuite/30_threads/promise/members/set_exception.cc: Likewise.
779         * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
780         * testsuite/30_threads/promise/members/set_value.cc: Likewise.
781         * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
782         * testsuite/30_threads/promise/members/set_value3.cc: Likewise.
783         * testsuite/30_threads/promise/members/swap.cc: Likewise.
784         * testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
785         * testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
786         Likewise.
787         * testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
788         * testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
789         * testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
790         Likewise.
791         * testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
792         * testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
793         * testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
794         * testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
795         * testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
796         * testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
797         Likewise.
798         * testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
799         * testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
800         * testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
801         Likewise.
802         * testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc:
803         Likewise.
804         * testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
805         * testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
806         * testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
807         Likewise.
808         * testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
809         Likewise.
810         * testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
811         Likewise.
812         * testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
813         Likewise.
814         * testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
815         Likewise.
816         * testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
817         * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
818         * testsuite/30_threads/shared_future/cons/move.cc: Likewise.
819         * testsuite/30_threads/shared_future/members/45133.cc: Likewise.
820         * testsuite/30_threads/shared_future/members/get.cc: Likewise.
821         * testsuite/30_threads/shared_future/members/get2.cc: Likewise.
822         * testsuite/30_threads/shared_future/members/valid.cc: Likewise.
823         * testsuite/30_threads/shared_future/members/wait.cc: Likewise.
824         * testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
825         * testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
826         * testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
827         * testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
828         * testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
829         * testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
830         * testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
831         * testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
832         * testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
833         * testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
834         * testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
835         * testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
836         * testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
837         * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
838         * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
839         * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
840         * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
841         * testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
842         * testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
843         * testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
844         * testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
845         * testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
846         * testsuite/30_threads/this_thread/1.cc: Likewise.
847         * testsuite/30_threads/this_thread/2.cc: Likewise.
848         * testsuite/30_threads/this_thread/3.cc: Likewise.
849         * testsuite/30_threads/this_thread/4.cc: Likewise.
850         * testsuite/30_threads/thread/cons/1.cc: Likewise.
851         * testsuite/30_threads/thread/cons/2.cc: Likewise.
852         * testsuite/30_threads/thread/cons/3.cc: Likewise.
853         * testsuite/30_threads/thread/cons/4.cc: Likewise.
854         * testsuite/30_threads/thread/cons/49668.cc: Likewise.
855         * testsuite/30_threads/thread/cons/5.cc: Likewise.
856         * testsuite/30_threads/thread/cons/6.cc: Likewise.
857         * testsuite/30_threads/thread/cons/7.cc: Likewise.
858         * testsuite/30_threads/thread/cons/8.cc: Likewise.
859         * testsuite/30_threads/thread/cons/9.cc: Likewise.
860         * testsuite/30_threads/thread/cons/moveable.cc: Likewise.
861         * testsuite/30_threads/thread/members/1.cc: Likewise.
862         * testsuite/30_threads/thread/members/2.cc: Likewise.
863         * testsuite/30_threads/thread/members/3.cc: Likewise.
864         * testsuite/30_threads/thread/members/4.cc: Likewise.
865         * testsuite/30_threads/thread/members/5.cc: Likewise.
866         * testsuite/30_threads/thread/members/hardware_concurrency.cc: Likewise.
867         * testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
868         * testsuite/30_threads/thread/swap/1.cc: Likewise.
869         * testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
870         * testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
871         * testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
872         * testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
873         * testsuite/30_threads/timed_mutex/native_handle/typesizes.cc: Likewise.
874         * testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
875         * testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
876         * testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
877         * testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
878         * testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
879         * testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
880         * testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
881         * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
882         * testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
883         * testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
884         * testsuite/30_threads/try_lock/1.cc: Likewise.
885         * testsuite/30_threads/try_lock/2.cc: Likewise.
886         * testsuite/30_threads/try_lock/3.cc: Likewise.
887         * testsuite/30_threads/try_lock/4.cc: Likewise.
888         * testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
889         * testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
890         * testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
891         * testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
892         * testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
893         * testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
894         * testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
895         * testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
896         * testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
897         * testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
898         * testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
899         * testsuite/ext/rope/pthread7-rope.cc: Likewise.
900         * testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc:
901         Likewise.
902         * testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc:
903         Likewise.
905 2015-09-02  Dmitry Vyukov  <dvyukov@google.com>
907         * include/bits/basic_string.h: Fix data races on _M_refcount.
909 2015-09-02  Sebastian Huber  <sebastian.huber@embedded-brains.de>
911         PR libstdc++/67408
912         * include/std/mutex (__timed_mutex_impl::_M_try_lock_until): Use
913         _Derived::_M_timedlock().
914         (timed_mutex): Add _M_timedlock() and make base class a friend.
915         (recursive_timed_mutex): Likewise.
917 2015-08-28  Tim Shen  <timshen@google.com>
919         PR libstdc++/67362
920         * include/bits/regex_scanner.tcc (_Scanner<>::_M_scan_normal):
921         Always returns ordinary char token if the char isn't
922         considered a special char.
923         * testsuite/28_regex/regression.cc: New test file for collecting
924         regression testcases from, typically, bugzilla.
926 2015-08-27  Jonathan Wakely  <jwakely@redhat.com>
928         PR libstdc++/67374
929         * include/bits/range_access.h (valarray, begin, end): Declare.
930         * testsuite/26_numerics/valarray/range_access.cc: Test const
931         overloads.
932         * testsuite/26_numerics/valarray/range_access2.cc: New.
934 2015-08-27  John Marino  <gnugcc@marino.st>
936         * acinclude.m4 (*-*-dragonfly*): Change 7 locale support files
937         from generic to new DragonFly versions.
938         * configure: Regenerate.
939         * config/locale/dragonfly/c_locale.cc: Improve locale support.
940         * config/locale/dragonfly/ctype_members.cc: Likewise.
941         * config/os/bsd/dragonfly/ctype_configure_char.cc: Likewise.
942         * config/os/bsd/dragonfly/os_defines.h: Define _GLIBCXX_USE_C99.
943         * config/locale/dragonfly/c_locale.h: New.
944         * config/locale/dragonfly/codecvt_members.cc: New.
945         * config/locale/dragonfly/collate_members.cc: New.
946         * config/locale/dragonfly/monetary_members.cc: New.
947         * config/locale/dragonfly/numeric_members.cc: New.
948         * config/locale/dragonfly/time_members.cc: New.
949         * config/locale/dragonfly/time_members.h: New.
951 2015-08-27  Jonathan Wakely  <jwakely@redhat.com>
953         * configure: Regenerate.
955 2015-08-26  Edward Smith-Rowland  <3dw4rd@verizon.net>
956             Jonathan Wakely  <jwakely@redhat.com>
958         PR libstdc++/64351
959         PR libstdc++/63176
960         * include/bits/random.tcc (generate_canonical): Loop until we get a
961         result less than one.
962         * testsuite/26_numerics/random/uniform_real_distribution/operators/
963         64351.cc: New.
965 2015-08-26  Jonathan Wakely  <jwakely@redhat.com>
967         * include/bits/shared_ptr.h (__enable_shared_from_this_helper): Use
968         nullptr.
969         * include/bits/shared_ptr_base.h (weak_ptr::_M_assign): Don't assign
970         if ownership is already shared with a shared_ptr object.
971         (__enable_shared_from_this_helper): Use nullptr.
972         * testsuite/20_util/enable_shared_from_this/members/const.cc: New.
973         * testsuite/20_util/enable_shared_from_this/members/reinit.cc: New.
974         * testsuite/20_util/enable_shared_from_this/requirements/
975         explicit_instantiation.cc: Instantiate with const and incomplete types.
977         * include/debug/map.h (map::try_emplace, map::insert_or_assign):
978         Define.
979         * include/debug/unordered_map (unordered_map::try_emplace,
980         unordered_map::insert_or_assign): Define.
982         PR libstdc++/66902
983         * src/c++11/debug.cc (_S_debug_messages): Give internal linkage.
985 2015-08-24  François Dumont  <fdumont@gcc.gnu.org>
987         PR libstdc++/60519
988         * include/debug/formatter.h (_Debug_msg_id::__msg_irreflexive_ordering):
989         New enum entry.
990         * include/debug/functions.h (_Irreflexive_checker): New.
991         (__is_irreflexive, __is_irreflexive_pred): New.
992         * include/debug/macros.h
993         (__glibcxx_check_irreflexive, __glibcxx_check_irreflexive_pred): New
994         macros.
995         (__glibcxx_check_irreflexive2, __glibcxx_check_irreflexive_pred2): New
996         macros limited to post-C++11 mode.
997         * include/debug/debug.h
998         (__glibcxx_requires_irreflexive, __glibcxx_requires_irreflexive_pred):
999         New macros, use latter.
1000         (__glibcxx_requires_irreflexive2, __glibcxx_requires_irreflexive_pred2):
1001         Likewise.
1002         * include/bits/stl_algo.h
1003         (partial_sort_copy): Add irreflexive debug check.
1004         (partial_sort_copy): Likewise.
1005         (lower_bound): Likewise.
1006         (upper_bound): Likewise.
1007         (equal_range): Likewise.
1008         (binary_search): Likewise.
1009         (inplace_merge): Likewise.
1010         (includes): Likewise.
1011         (next_permutation): Likewise.
1012         (prev_permutation): Likewise.
1013         (is_sorted_until): Likewise.
1014         (minmax_element): Likewise.
1015         (partial_sort): Likewise.
1016         (nth_element): Likewise.
1017         (sort): Likewise.
1018         (merge): Likewise.
1019         (stable_sort): Likewise.
1020         (set_union): Likewise.
1021         (set_intersection): Likewise.
1022         (set_difference): Likewise.
1023         (set_symmetric_difference): Likewise.
1024         (min_element): Likewise.
1025         (max_element): Likewise.
1026         * include/bits/stl_algobase.h
1027         (lower_bound): Likewise.
1028         (lexicographical_compare): Likewise.
1029         * include/bits/stl_heap.h
1030         (push_heap): Likewise.
1031         (pop_heap): Likewise.
1032         (make_heap): Likewise.
1033         (sort_heap): Likewise.
1034         (is_heap_until): Likewise.
1035         * testsuite/25_algorithms/lexicographical_compare/debug/
1036         irreflexive_neg.cc: New.
1037         * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: New.
1038         * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
1039         New.
1041 2015-08-24  Jonathan Wakely  <jwakely@redhat.com>
1043         PR libstdc++/65049
1044         * include/bits/char_traits.h (char_traits<char>::compare,
1045         char_traits<char>::find, char_traits<char>::move,
1046         char_traits<char>::copy, char_traits<char>::assign): Check for zero
1047         length.
1048         (char_traits<wchar_t>::compare, char_traits<wchar_t>::find,
1049         char_traits<wchar_t>::move, char_traits<wchar_t>::copy,
1050         char_traits<wchar_t>::assign): Likewise.
1051         (char_traits<char16_t>::move, char_traits<char16_t>::copy): Likewise.
1052         (char_traits<char32_t>::move, char_traits<char32_t>::copy): Likewise.
1053         * include/ext/pod_char_traits.h (char_traits<character<>>::move,
1054         char_traits<character<>>::copy): Likewise.
1055         * testsuite/21_strings/char_traits/requirements/char/65049.cc: New.
1056         * testsuite/21_strings/char_traits/requirements/char16_t/65049.cc:
1057         New.
1058         * testsuite/21_strings/char_traits/requirements/char32_t/65049.cc:
1059         New.
1060         * testsuite/21_strings/char_traits/requirements/wchar_t/65049.cc:
1061         New.
1063         PR libstdc++/67309
1064         * include/bits/random.tcc
1065         (poisson_distribution::param_type::_M_initialize): Use max<double>.
1066         (binomial_distribution::param_type::_M_initialize): Likewise.
1067         * testsuite/17_intro/headers/c++200x/67309.cc: New.
1068         * testsuite/17_intro/headers/c++200x/all_attributes.cc: Remove
1069         redundant header.
1071 2015-08-20  Jonathan Wakely  <jwakely@redhat.com>
1073         PR libstdc++/67294
1074         * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Do not run
1075         on Darwin.
1076         * testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
1078         * include/experimental/any (__any_caster): Define at namespace scope
1079         so the name is visible to name lookup.
1080         * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
1082         * python/Makefile.am: Ensure gdb.py is installed for libstdc++ not
1083         libstdc++fs.
1084         * python/Makefile.in: Regenerate.
1086 2015-08-19  Paolo Carlini  <paolo.carlini@oracle.com>
1088         * include/c_global/cmath: Fix typo in comment.
1090 2015-08-19  Paolo Carlini  <paolo.carlini@oracle.com>
1092         * include/c_global/cmath: Revert fix for libstdc++/58625, no
1093         longer necessary (__builtin_signbit is now type-generic).
1095 2015-08-18  Jonathan Wakely  <jwakely@redhat.com>
1097         PR c++/67216
1098         * testsuite/tr1/2_general_utilities/shared_ptr/observers/bool_conv.cc:
1099         Fix use of safe-bool idiom that isn't valid in C++11.
1101         * include/bits/ptr_traits.h: Include <bits/move.h> for addressof.
1103         PR libstdc++/67066
1104         * doc/xml/manual/configure.xml (manual.intro.setup.configure): Add
1105         caveats for --enable-concept-checks. Improve link text.
1106         * doc/xml/manual/diagnostics.xml (std.diagnostics.concept_checking):
1107         Clarify caveats.
1108         * doc/html/*: Regenerate.
1109         * include/bits/stl_deque.h (deque): Only use concept checks in C++03.
1110         * include/bits/stl_stack.h (stack): Likewise.
1111         * include/bits/stl_vector.h (vector): Likewise.
1113 2015-08-14  Jonathan Wakely  <jwakely@redhat.com>
1115         * include/experimental/any (any::operator=(const any&)): Move check
1116         for self-assignment.
1117         (any::operator=(any&&)): Add check for self-assignment.
1118         (any::operator=(_ValueType&&)): Constrain template argument.
1119         (any::swap(any&)): Add check for self-swap.
1120         * testsuite/experimental/any/assign/self.cc: Test move and swap.
1121         * testsuite/experimental/any/misc/any_cast_neg.cc: Update dg-error.
1123 2015-08-14  Jonathan Wakely  <jwakely@redhat.com>
1125         * include/experimental/array: Add feature-test macro.
1126         * testsuite/experimental/array/neg.cc: Update dg-error.
1128 2015-08-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
1130         * testsuite/experimental/array/neg.s: Remove.
1131         * testsuite/experimental/array/neg.ii.gz: Remove.
1133 2015-08-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
1135         Implement std::experimental::fundamentals_v2::make_array and
1136         std::experimental::fundamentals_v2::to_array.
1137         * include/Makefile.am: Add array.
1138         * include/Makefile.in: Add array.
1139         * include/experimental/array: New.
1140         * testsuite/experimental/array/make_array.cc: Likewise.
1141         * testsuite/experimental/array/neg.cc: Likewise.
1142         * doc/html/manual/status.html: Mark make_array as Y.
1143         * doc/xml/manual/status_cxx2017.xml: Likewise.
1145 2015-08-13  Jonathan Wakely  <jwakely@redhat.com>
1147         * include/bits/alloc_traits.h: Add feature-test macro.
1148         * include/bits/allocator.h: Likewise.
1149         * include/bits/range_access.h: Likewise.
1150         * include/bits/stl_map.h: Likewise.
1151         * include/bits/unordered_map.h: Likewise.
1153 2015-08-13  Jonathan Wakely  <jwakely@redhat.com>
1155         * testsuite/30_threads/mutex/unlock/2.cc: New.
1156         * testsuite/30_threads/recursive_mutex/unlock/2.cc: New.
1157         * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: New.
1158         * testsuite/30_threads/shared_mutex/unlock/1.cc: New.
1159         * testsuite/30_threads/shared_timed_mutex/unlock/1.cc: New.
1160         * testsuite/30_threads/timed_mutex/unlock/2.cc: New.
1162 2015-08-13  Eelis van der Weegen  <eelis@eelis.net>
1164         * include/std/shared_mutex (shared_mutex::unlock()): Fix typo.
1166 2015-08-12  Caroline Tice <cmtice@google.com>
1168         PR 66521, Contributed by Eric Gallager
1169         * acinclude.m4 (VTV_CXXLINKFLAGS): Make this variable OS-specific, and
1170         fix the rpath flag to work properly for darwin.
1171         * configure: Regenerated.
1173 2015-08-12  Jonathan Wakely  <jwakely@redhat.com>
1175         * doc/xml/manual/appendix_contributing.xml: Update patch email policy.
1176         * doc/xml/manual/status_cxx2017.xml: Update status table.
1177         * doc/html/manual/*: Regenerate.
1179 2015-08-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
1181         Implement N4279, Improved insertion interface for unique-key maps.
1182         * include/bits/stl_map.h (try_emplace, insert_or_assign): New.
1183         * include/bits/stl_tree.h (_M_get_insert_unique_pos,
1184         _M_get_insert_equal_pos, _M_get_insert_hint_unique_pos,
1185         _M_get_insert_hint_equal_pos): Make public.
1186         * include/bits/unordered_map.h (try_emplace, insert_or_assign): New.
1187         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
1188         Likewise.
1189         * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
1190         * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
1191         Likewise.
1192         * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
1193         Likewise.
1195 2015-08-08  Ville Voutilainen  <ville.voutilainen@gmail.com>
1197         Implement N4089 Safe conversions in unique_ptr<T[]> (LWG 2118)
1198         and N4366 LWG 2228: Missing SFINAE rule in unique_ptr
1199         templated assignment
1200         * include/bits/unique_ptr.h
1201         (__remove_cv, __is_derived_Tp): Remove.
1202         (default_delete::default_delete(const default_delete<_Up[]>)):
1203         Constrain with array convertibility.
1204         (default_delete::operator(_Up*)): Turn into a template,
1205         constrain with array convertibility.
1206         (__safe_conversion_up): New, single object version.
1207         (unique_ptr(unique_ptr<_Up, _Ep>&&)): Constrain with deleter
1208         convertibility.
1209         (unique_ptr::operator=(unique_ptr<_Up, _Ep>&&)): Likewise, and add
1210         is_assignable as a constraint.
1211         (__safe_conversion_up): Array version, renamed from __safe_conversion,
1212         updated to implement N4089.
1213         (__safe_conversion_raw): New.
1214         (unique_ptr(_Up)): Turn into a template, constrain with array
1215         convertibility.
1216         (unique_ptr(_Up,
1217         typename conditional<is_reference<deleter_type>::value,
1218         deleter_type, const deleter_type&>::type)): Likewise.
1219         (unique_ptr(_Up, typename
1220         remove_reference<deleter_type>::type&&)): Likewise.
1221         (unique_ptr(unique_ptr<_Up, _Ep>&&)): Likewise.
1222         (operator=(unique_ptr<_Up, _Ep>&&)): Likewise, and add
1223         is_assignable as a constraint (array version).
1224         (reset(_Up)): Turn into a template, constrain with array
1225         convertibility.
1226         (reset(nullptr_t)): New.
1227         * testsuite/20_util/default_delete/48631_neg.cc: Adjust.
1228         * testsuite/20_util/unique_ptr/assign/48635.cc: Likewise.
1229         * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise.
1230         * testsuite/20_util/unique_ptr/assign/cv_qual.cc: Likewise.
1231         * testsuite/20_util/unique_ptr/cons/cv_qual.cc: Likewise.
1232         * testsuite/20_util/unique_ptr/dr2228.cc: New.
1233         * testsuite/20_util/unique_ptr/modifiers/cv_qual.cc: Adjust.
1235 2015-08-05  Nikolai Bozhenov  <n.bozhenov@samsung.com>
1237         * testsuite/20_util/enable_shared_from_this/cons/constexpr.cc: Remove
1238         redundant -save-temps option.
1239         * testsuite/20_util/shared_ptr/cons/constexpr.cc: Likewise.
1240         * testsuite/20_util/unique_ptr/cons/constexpr.cc: Likewise.
1241         * testsuite/20_util/weak_ptr/cons/constexpr.cc: Likewise.
1242         * testsuite/30_threads/future/cons/constexpr.cc: Likewise.
1243         * testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
1245 2015-08-03  Jonathan Wakely  <jwakely@redhat.com>
1247         PR libstdc++/67078
1248         * include/bits/range_access.h (size, empty, data): Fix _N bad name.
1250 2015-07-30  Jonathan Wakely  <jwakely@redhat.com>
1252         * testsuite/experimental/filesystem/operations/current_path.cc: Use
1253         canonical paths for comparisons.
1255 2015-07-30  Tim Shen  <timshen@google.com>
1257         * include/bits/regex_automaton.h (_State_base, _State<>):
1258         Remove _TraitsT dependency from _State<>; Make matcher member
1259         into the union to reduce struct size.
1260         * include/bits/regex_automaton.tcc (_State_base<>::_M_print,
1261         _State_base<>::_M_dot, _StateSeq<>::_M_clone):
1262         Adjust to fit the interface. Factor out common parts in
1263         _M_clone as _State<>::_M_has_alt.
1264         * include/bits/regex_executor.h (_Executer<>::_M_lookahead):
1265         Only pass state id instead of the whole state.
1266         * include/bits/regex_executor.tcc (_Executer<>::_M_dfs,
1267         _Executer<>::_M_lookahead): Adjust to fit the interface.
1268         * include/std/regex: Include <ext/aligned_buffer.h>
1270 2015-07-30  Jonathan Wakely  <jwakely@redhat.com>
1272         * include/experimental/any (any::operator=(const any&)): Check for
1273         self-assignment.
1274         * testsuite/experimental/any/assign/self.cc: New.
1275         * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
1277 2015-07-29  Jonathan Wakely  <jwakely@redhat.com>
1279         PR libstdc++/66829
1280         * testsuite/lib/libstdc++.exp (v3-build_support): Compile
1281         testsuite_shared.cc with -std=gnu++98.
1283 2015-07-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
1285         * include/bits/range_access.h: Change class to typename in every
1286         template.
1287         (size, empty, data): New functions from N4280.
1288         * testsuite/24_iterators/container_access.cc: New.
1290         PR libstdc++/60970
1291         * include/bits/functional_hash.h (__hash_enum): New.
1292         (hash): Derive from __hash_enum.
1293         * testsuite/20_util/hash/60970.cc: New.
1295 2015-07-29  Tim Shen  <timshen@google.com>
1297         PR libstdc++/67015
1298         * include/bits/regex_compiler.h (_Compiler<>::_M_expression_term,
1299         _BracketMatcher<>::_M_add_collating_element): Change signature
1300         to make checking the and of bracket expression easier.
1301         * include/bits/regex_compiler.tcc (_Compiler<>::_M_expression_term):
1302         Treat '-' as a valid literal if it's at the end of bracket expression.
1303         * testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc:
1304         New testcases.
1306 2015-07-24  Jonathan Wakely  <jwakely@redhat.com>
1308         * include/bits/atomic_futex.h [_GLIBCXX_HAVE_LINUX_FUTEX]
1309         (_M_load_and_test_until): Whitespace.
1310         (_M_load_and_test): Value-initialize the unused durations.
1311         (_M_load_when_equal): Add missing return value.
1313 2015-07-24  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
1315         * fragment.am (AM_CPPFLAGS): Add CPPFLAGS.
1316         * Makefile.in: Regenerate.
1317         * doc/Makefile.in: Regenerate.
1318         * include/Makefile.in: Regenerate.
1319         * libsupc++/Makefile.in: Regenerate.
1320         * po/Makefile.in: Regenerate.
1321         * python/Makefile.in: Regenerate.
1322         * src/Makefile.in: Regenerate.
1323         * src/c++11/Makefile.in: Regenerate.
1324         * src/c++98/Makefile.in: Regenerate.
1325         * src/filesystem/Makefile.in: Regenerate.
1326         * testsuite/Makefile.in: Regenerate.
1328 2015-07-23  DJ Delorie  <dj@redhat.com>
1330         * include/bits/functional_hash.h: Add specializations for __intN
1331         types.
1333         * include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp (__gnu_pbds):
1334         Guard against values that might exceed size_t's precision.
1336 2015-07-20  Jason Merrill  <jason@redhat.com>
1338         * include/bits/c++config: Fix abi_tag in special modes.
1340 2015-07-19  Jonathan Wakely  <jwakely@redhat.com>
1342         * doc/xml/manual/status_cxx2017.xml: Fix URL for N4279.
1343         * doc/html/manual/status.html: Regenerate.
1345 2015-07-17  Jonathan Wakely  <jwakely@redhat.com>
1347         * doc/xml/manual/status_cxx2011.xml: Add caveats for native_handle.
1348         * doc/html/manual/status.html: Regenerate.
1350 2015-07-16  François Dumont  <fdumont@gcc.gnu.org>
1352         * include/bits/stl_algobase.h (__miter_base): Move...
1353         * include/bits/cpp_type_traits.h: ...here.
1354         * include/debug/functions.h (__foreign_iterator_aux): Use latter.
1355         * testsuite/23_containers/vector/debug/insert7_neg.cc: New.
1357 2015-07-13  Jonathan Wakely  <jwakely@redhat.com>
1359         PR libstdc++/66855
1360         * src/c++11/codecvt.cc (__codecvt_utf8_utf16_base::do_in): Override
1361         endianness bit in mode.
1362         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: New.
1364         * include/bits/c++config (_GLIBCXX_NOEXCEPT_IF): Define.
1365         * include/bits/forward_list.h (forward_list::swap): Make noexcept
1366         unconditional.
1367         * include/bits/hashtable.h (_Hashtable::swap): Do not use
1368         _S_nothrow_swap().
1369         * include/bits/stl_bvector.h (vector<bool>::swap): Make noexcept
1370         unconditional.
1371         * include/bits/stl_deque.h (deque::swap): Likewise.
1372         (swap(deque&, deque&)): Use _GLIBCXX_NOEXCEPT_IF.
1373         * include/bits/stl_list.h (list::swap): Make noexcept unconditional.
1374         (swap(list&, list&)): Use _GLIBCXX_NOEXCEPT_IF.
1375         * include/bits/stl_map.h (map::swap, swap(map&, map&)): Use
1376         _GLIBCXX_NOEXCEPT_IF, do not depend on _S_nothrow_swap.
1377         * include/bits/stl_multimap.h (multimap::swap,
1378         swap(multimap&, multimap&)): Likewise.
1379         * include/bits/stl_multiset.h (multiset::swap,
1380         swap(multiset&, multiset&)): Likewise.
1381         * include/bits/stl_set.h (set::swap, swap(set&, set&)): Likewise.
1382         * include/bits/stl_tree.h (_Rb_tree::swap,
1383         swap(_Rb_tree&, _Rb_tree&)): Likewise.
1384         * include/bits/stl_vector.h (vector::swap): Make noexcept
1385         unconditional.
1386         (swap(vector&, vector&)): Use _GLIBCXX_NOEXCEPT_IF.
1387         * include/debug/deque (deque::swap, swap): Likewise.
1388         * include/debug/forward_list (swap): Add noexcept.
1389         * include/debug/list (list::swap, swap): Use _GLIBCXX_NOEXCEPT_IF.
1390         * include/debug/map.h (map::swap, swap): Likewise.
1391         * include/debug/multimap.h (multimap::swap, swap): Likewise.
1392         * include/debug/multiset.h (multiset::Swap, swap): Likewise.
1393         * include/debug/set.h (set::swap, swap): Likewise.
1394         * include/debug/unordered_map (unordered_map::swap,
1395         unordered_multimap::swap, swap): Likewise.
1396         * include/debug/unordered_set (unordered_set::swap,
1397         unordered_multiset::swap, swap): Likewise.
1398         * include/debug/vector (vector::swap, swap): Likewise.
1399         * include/ext/alloc_traits.h (__alloc_traits::_S_nothrow_swap()):
1400         Remove.
1401         * include/profile/deque (deque::swap, swap): Use _GLIBCXX_NOEXCEPT_IF.
1402         * include/profile/forward_list (swap): Add noexcept.
1403         * include/profile/list (list::swap, swap) : Use _GLIBCXX_NOEXCEPT_IF.
1404         * include/profile/map.h (map::swap, swap): Likewise.
1405         * include/profile/multimap.h (multimap::swap, swap): Likewise.
1406         * include/profile/multiset.h (multiset::swap, swap): Likewise.
1407         * include/profile/set.h (set::swap, swap): Likewise.
1408         * include/profile/unordered_map (swap): Likewise.
1409         * include/profile/unordered_set (swap): Likewise.
1410         * include/profile/vector (vector::swap, swap): Likewise. Remove
1411         overloads for swapping rvalues.
1412         * testsuite/23_containers/deque/allocator/noexcept.cc: Update tests
1413         for noexcept on swap.
1414         * testsuite/23_containers/forward_list/allocator/noexcept.cc:
1415         Likewise.
1416         * testsuite/23_containers/list/allocator/noexcept.cc: Likewise.
1417         * testsuite/23_containers/map/allocator/noexcept.cc: Likewise.
1418         * testsuite/23_containers/multimap/allocator/noexcept.cc: Likewise.
1419         * testsuite/23_containers/multiset/allocator/noexcept.cc: Likewise.
1420         * testsuite/23_containers/set/allocator/noexcept.cc: Likewise.
1421         * testsuite/23_containers/unordered_map/allocator/noexcept.cc:
1422         Likewise.
1423         * testsuite/23_containers/unordered_multimap/allocator/noexcept.cc:
1424         Likewise.
1425         * testsuite/23_containers/unordered_multiset/allocator/noexcept.cc:
1426         Likewise.
1427         * testsuite/23_containers/unordered_set/allocator/noexcept.cc:
1428         Likewise.
1429         * testsuite/23_containers/vector/allocator/noexcept.cc: Likewise.
1430         * testsuite/23_containers/vector/bool/allocator/noexcept.cc: Likewise.
1431         * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error line
1432         number.
1434 2015-07-13  John Marino  <gnugcc@marino.st>
1436         * config/os/bsd/dragonfly/os_defines.h (_GLIBCXX_USE_C99_CHECK,
1437         _GLIBCXX_USE_C99_DYNAMIC, _GLIBCXX_USE_C99_LONG_LONG_CHECK,
1438         _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC): Define.
1440 2015-07-05  François Dumont  <fdumont@gcc.gnu.org>
1442         * include/bits/hashtable.h (_Hashtable<>::__rehash_policy): Do not
1443         rehash container.
1444         * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
1445         Adapt.
1447 2015-07-03  Jonathan Wakely  <jwakely@redhat.com>
1449         * doc/xml/manual/status_cxx2017.xml: Update status table.
1450         * doc/html/manual/*: Regenerate.
1452 2015-07-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
1454         Implement std::experimental::fundamentals_v2::propagate_const.
1455         * include/Makefile.am: Add propagate_const.
1456         * include/Makefile.in: Regenerate.
1457         * include/experimental/propagate_const: New.
1458         * testsuite/experimental/propagate_const/assignment/copy.cc: Likewise.
1459         * testsuite/experimental/propagate_const/assignment/move.cc: Likewise.
1460         * testsuite/experimental/propagate_const/assignment/move_neg.cc:
1461         Likewise.
1462         * testsuite/experimental/propagate_const/cons/copy.cc: Likewise.
1463         * testsuite/experimental/propagate_const/cons/default.cc: Likewise.
1464         * testsuite/experimental/propagate_const/cons/move.cc: Likewise.
1465         * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
1466         * testsuite/experimental/propagate_const/hash/1.cc: Likewise.
1467         * testsuite/experimental/propagate_const/observers/1.cc: Likewise.
1468         * testsuite/experimental/propagate_const/relops/1.cc: Likewise.
1469         * testsuite/experimental/propagate_const/requirements1.cc: Likewise.
1470         * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
1471         * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
1472         * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
1473         * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
1474         * testsuite/experimental/propagate_const/swap/1.cc: Likewise.
1475         * testsuite/experimental/propagate_const/typedefs.cc: Likewise.
1477 2015-07-02  Jonathan Wakely  <jwakely@redhat.com>
1479         * acinclude.m4 (GLIBCXX_DEFAULT_ABI): Change valid arguments for
1480         --with-default-libstdcxx-abi
1481         * configure: Regenerate.
1482         * doc/xml/manual/configure.xml: Document valid arguments.
1484 2015-07-02  Uros Bizjak  <ubizjak@gmail.com>
1486         * libsupc++/guard.cc (__test_and_acquire): Use __p after __atomic_load
1487         to avoid unused variable warning.
1488         (__set_and_release): Use __p after __atomic_store to avoid unused
1489         variable warning.
1491 2015-07-01  Jonathan Wakely  <jwakely@redhat.com>
1493         * include/bits/alloc_traits.h (__alloctr_rebind): Remove.
1494         (__allocator_traits_base): New base class.
1495         (__alloc_rebind): Reimplement in terms of detection idiom.
1496         (allocator_traits): Derive from __allocator_traits_base. Reimplement
1497         nested types in terms of detection idiom. Simplify SFINAE constraints
1498         on overloaded static member functions.
1499         * include/bits/hashtable.h (_Hashtable): Use __alloc_rebind instead
1500         of __alloctr_rebind.
1501         * testsuite/20_util/scoped_allocator/propagation.cc: Define rebind.
1502         * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
1503         dg-error line number.
1505         * include/bits/ptr_traits.h (__ptrtr_elt_type, __ptrtr_diff_type,
1506         __ptrtr_rebind, __ptrtr_not_void): Remove
1507         (__get_first_arg, __replace_first_arg, __make_not_void): Define new
1508         transformations.
1509         (__detected_or_): New detection trait.
1510         (pointer_traits): Use new traits.
1511         * testsuite/20_util/pointer_traits/pointer_to.cc: Add rebind member.
1512         * testsuite/20_util/pointer_traits/requirements/
1513         explicit_instantiation.cc: Use valid arguments to pointer_traits.
1515         * doc/xml/manual/status_cxx2017.xml: Update status table.
1516         * include/experimental/type_traits (void_t, is_detected,
1517         is_detected_v, detected_t, detected_or, detected_or_t,
1518         is_detected_exact, is_detected_exact_v, is_detected_convertible,
1519         is_detected_convertible_v): Define.
1520         * include/std/type_traits (__detector, __detected_or, __detected_or_t,
1521         __detected_or_t_): Define.
1522         * testsuite/experimental/type_traits/detection.cc: New.
1524 2015-06-30  Jonathan Wakely  <jwakely@redhat.com>
1526         * doc/Makefile.am (stamp-pdf-doxygen): Grep for LaTeX errors in log.
1527         * doc/Makefile.in: Regenerate.
1529         * include/bits/stl_pair.h: Replace class keyword with typename.
1531 2015-06-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
1533         Implement N4387, "Improving pair and tuple", and LWG 2367.
1535         * include/bits/stl_pair.h (_ConstructiblePair,
1536         _ImplicitlyConvertiblePair, _MoveConstructiblePair,
1537         _ImplicitlyMoveConvertiblePair): New.
1538         (pair()): Constrain it.
1539         (pair(const _T1&, const _T2&), pair(const pair<_U1, _U2>&),
1540         pair(_U1&&, const _T2&), pair(const _T1&, _U2&&), pair(_U1&&, _U2&&),
1541         pair(pair<_U1, _U2>&&)): Make conditionally explicit.
1542         * include/std/tuple (_TC, tuple::_TC2, tuple::TCC, tuple::TMC): New.
1543         (tuple()): Constrain it.
1544         (tuple(const _UElements&...), tuple(_UElements&&...),
1545         tuple(const tuple<_UElements...>&), tuple(tuple<_UElements...>&&),
1546         tuple(allocator_arg_t, const _Alloc&, const _UElements&...),
1547         tuple(allocator_arg_t, const _Alloc&, _UElements&&...),
1548         tuple(allocator_arg_t, const _Alloc&, const tuple<_UElements...>&),
1549         tuple(allocator_arg_t, const _Alloc&, tuple<_UElements...>&&),
1550         tuple(const pair<_U1, _U2>&), tuple(pair<_U1, _U2>&&),
1551         tuple(allocator_arg_t, const _Alloc&, const pair<_U1, _U2>&),
1552         tuple(allocator_arg_t, const _Alloc&, pair<_U1, _U2>&&)): Make
1553         conditionally explicit.
1554         * include/experimental/functional (__boyer_moore_array_base): Name
1555         array type explicitly instead of using an empty braced-init-list.
1556         * testsuite/20_util/pair/cons/explicit_construct.cc: New.
1557         * testsuite/20_util/pair/piecewise.cc: Use piecewise_construct.
1558         * testsuite/20_util/pair/requirements/dr2367.cc: New.
1559         * testsuite/20_util/tuple/cons/explicit_construct.cc: New.
1560         * testsuite/20_util/tuple/requirements/dr2367.cc: New.
1562 2015-06-30  Jonathan Wakely  <jwakely@redhat.com>
1564         * configure: Regenerate.
1566 2015-06-29  François Dumont  <fdumont@gcc.gnu.org>
1568         * include/bits/stl_iterator_base_types.h (_Iter_base): Limit definition
1569         to pre-C++11 mode.
1570         * include/debug/functions.h
1571         (__gnu_debug::__valid_range, __gnu_debug::__base): Move...
1572         * include/debug/safe_iterator.h
1573         (__gnu_debug::_Sequence_traits): New.
1574         (__gnu_debug::__get_distance_from_begin): New.
1575         (__gnu_debug::__get_distance_to_end): New.
1576         (__gnu_debug::_Safe_iterator<>::_M_valid_range): Expose iterator range
1577         distance information. Add optional check_dereferenceable parameter,
1578         default true.
1579         (__gnu_debug::_Distance_precision, __gnu_debug::__get_distance): Move
1580         default definition...
1581         (__gnu_debug::__get_distance): New overload for _Safe_iterator.
1582         (__gnu_debug::__unsafe): Likewise.
1583         * include/debug/helper_functions.h: ...here. New.
1584         (__gnu_debug::__unsafe): New helper function to remove safe iterator
1585         layer.
1586         * include/debug/stl_iterator.h: New. Include latter.
1587         * include/bits/stl_iterator.h: Include latter in debug mode.
1588         * include/debug/stl_iterator.tcc: Adapt.
1589         * include/debug/safe_local_iterator.h (__gnu_debug::__get_distance): Add
1590         overload for _Safe_local_iterator.
1591         (__gnu_debug::__unsafe): Likewise.
1592         * include/debug/safe_local_iterator.tcc: Adapt.
1593         * include/debug/macros.h (__glibcxx_check_valid_range2): New.
1594         (__glibcxx_check_insert_range): Add _Dist parameter.
1595         (__glibcxx_check_insert_range_after): Likewise.
1596         (__glibcxx_check_string, __glibcxx_check_string_len): Implement using
1597         _GLIBCXX_DEBUG_PEDASSERT.
1598         * include/debug/deque (deque<>::assign): Remove iterator debug layer
1599         when possible.
1600         (deque<>::insert): Likewise.
1601         * include/debug/forward_list (__glibcxx_check_valid_fl_range): New.
1602         (forward_list<>::splice_after): Use latter.
1603         (forward_list<>::assign): Remove iterator debug layer when possible.
1604         (forward_list<>::insert_after): Likewise.
1605         (__gnu_debug::_Sequence_traits<>): Partial specialization.
1606         * include/debug/list (list<>::assign): Remove iterator debug layer when
1607         possible.
1608         (list<>::insert): Likewise.
1609         [__gnu_debug::_Sequence_traits<>]: Partial specialization pre C++11 ABI.
1610         * include/debug/map.h (map<>::insert): Remove iterator debug layer when
1611         possible.
1612         * include/debug/multimap.h (multimap<>::insert): Likewise.
1613         * include/debug/set.h (set<>::insert): Likewise.
1614         * include/debug/multiset.h (multiset<>::insert): Likewise.
1615         * include/debug/string (basic_string<>::append, basic_string<>::assign,
1616         basic_string<>::insert, basic_string<>::replace): Likewise.
1617         * include/debug/unordered_map
1618         (unordered_map<>::insert, unordered_multimap<>::insert): Likewise.
1619         * include/debug/unordered_set
1620         (unordered_set<>::insert, unordered_multiset<>insert): Likewise.
1621         * include/debug/vector
1622         (vector<>::assign, vector<>::insert): Likewise.
1623         * include/Makefile.am: Add new debug headers.
1624         * include/Makefile.in: Regenerate.
1626 2015-06-26  Jonathan Wakely  <jwakely@redhat.com>
1628         * doc/xml/manual/intro.xml: Document LWG 2108 status.
1629         * include/bits/alloc_traits.h (allocator_traits::is_always_equal):
1630         Define.
1631         * include/bits/allocator.h (allocator::is_always_equal): Likewise.
1632         * include/bits/forward_list.h
1633         (forward_list::operator=(forward_list&&)): Use __bool_constant.
1634         (forward_list::swap(forward_list&)): Add noexcept.
1635         * include/bits/hashtable.h (_Hashtable::operator=(_Hashtable&&)):
1636         Likewise.
1637         (_Hashtable::swap(_Hashtable&)): Likewise.
1638         * include/bits/stl_deque.h (_Deque_base::_Deque_base(_Deque_base&&)):
1639         Use _Alloc_traits::is_always_equal.
1640         (deque::operator=(deque&&)): Likewise.
1641         (deque::_M_move_assign1(deque&&, false_type)): Add comment and use
1642         __bool_constant.
1643         (swap(deque&, deque&)): Add noexcept.
1644         * include/bits/stl_list.h (list::operator=(list&&)): Use
1645         __bool_constant.
1646         (swap(list&, list&)): Add noexcept.
1647         * include/bits/stl_map.h (map::swap(map&)): Include _Compare in
1648         noexcept.
1649         (swap(map&, map&)): Add noexcept.
1650         * include/bits/stl_multimap.h (multimap::swap(multimap&)): Include
1651         _Compare in noexcept.
1652         (swap(multimap&, multimap&)): Add noexcept.
1653         * include/bits/stl_multiset.h (multiset::swap(multiset&)): Include
1654         _Compare in noexcept.
1655         (swap(multiset&, multiset&)): Add noexcept.
1656         * include/bits/stl_set.h (set::swap(set&)): Include _Compare in
1657         noexcept.
1658         (swap(set&, set&)): Add noexcept.
1659         * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Include
1660         _Compare in noexcept.
1661         (_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_alloc_type&&)): Use
1662         is_always_equal.
1663         * include/bits/stl_vector.h (vector::operator=(vector&&)): Use
1664         __bool_constant.
1665         (swap(vector&, vector&)): Add noexcept.
1666         * include/bits/unordered_map.h (swap(unordered_map&, unordered_map&),
1667         swap(unordered_multimap& unordered_multimap&)): Add noexcept.
1668         * include/bits/unordered_set.h (swap(unordered_set&, unordered_set&),
1669         swap(unordered_multiset& unordered_multiset&)): Add noexcept.
1670         * include/ext/alloc_traits.h (__allocator_always_compares_equal):
1671         Remove.
1672         (__alloc_traits::_S_always_equal()): Use is_always_equal instead of
1673         __allocator_always_compares_equal.
1674         * include/ext/array_allocator.h (array_allocator::is_always_equal):
1675         Define.
1676         * include/std/scoped_allocator (__any_of, __propagate_on_copy,
1677         __propagate_on_move, __propagate_on_swap): Remove.
1678         (scoped_allocator_adaptor::propagate_on_container_copy_assignment,
1679         scoped_allocator_adaptor::propagate_on_container_move_assignment,
1680         scoped_allocator_adaptor::propagate_on_container_swap): Define with
1681         __and_ instead of __any_of.
1682         (scoped_allocator_adaptor::is_always_equal): Define.
1683         * testsuite/20_util/allocator_traits/members/is_always_equal.cc: New.
1684         * testsuite/20_util/scoped_allocator/propagation.cc: Make traits
1685         derive from true_type or false_type.
1686         * testsuite/23_containers/deque/allocator/move_assign-2.cc: Add
1687         is_always_equal member and remove the trait specialization.
1688         * testsuite/23_containers/vector/52591.cc: Likewise.
1689         * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
1690         Adjust dg-error line number.
1691         * testsuite/23_containers/deque/requirements/dr438/
1692         constructor_1_neg.cc: Likewise.
1693         * testsuite/23_containers/deque/requirements/dr438/
1694         constructor_2_neg.cc: Likewise.
1695         * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
1696         Likewise.
1697         * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1698         Likewise.
1699         * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
1700         Likewise.
1701         * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1702         Likewise.
1703         * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
1704         Likewise.
1705         * testsuite/23_containers/vector/requirements/dr438/
1706         constructor_1_neg.cc: Likewise.
1707         * testsuite/23_containers/vector/requirements/dr438/
1708         constructor_2_neg.cc: Likewise.
1709         * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
1710         Likewise.
1712         * include/bits/stl_bvector.h (vector<bool>::vector()): Add noexcept.
1713         * include/bits/stl_map.h (map::map()): Likewise.
1714         * include/bits/stl_multimap.h (multimap::multimap()): Likewise.
1715         * include/bits/stl_multiset.h (multiset::multiset()): Likewise.
1716         * include/bits/stl_set.h (set::set()): Likewise.
1718 2015-06-25  Jonathan Wakely  <jwakely@redhat.com>
1720         * include/bits/locale_conv.h (__do_str_codecvt): Set __count.
1722 2015-06-24  François Dumont  <fdumont@gcc.gnu.org>
1724         * include/bits/basic_string.h (basic_string<>::front()): Add !empty
1725         debug check.
1726         (basic_string<>::back()): Likewise.
1727         (basic_string<>::pop_back()): Likewise.
1729 2015-06-24  Paolo Carlini  <paolo.carlini@oracle.com>
1731         * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
1732         dg-error line numbers.
1733         * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
1734         Likewise.
1736 2015-06-23  François Dumont  <fdumont@gcc.gnu.org>
1738         * include/debug/array: Include <array>. Add version namespace when
1739         specializing tuple interface to array. Add specialization for
1740         __is_tuple_like_impl.
1741         * include/profile/array: Likewise.
1742         * include/std/array: Include <utility>. Add specialization for
1743         __is_tuple_like_impl.
1744         * include/std/tuple
1745         (__is_tuple_like_impl<>, __is_tuple_like_impl<pair>): Move...
1746         * include/std/utility: ... here. Include <type_traits>.
1747         * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
1748         dg-error line number.
1749         * testsuite/23_containers/array/tuple_interface/
1750         tuple_element_debug_neg.cc: Likewise.
1752 2015-06-22  Jonathan Wakely  <jwakely@redhat.com>
1754         * testsuite/26_numerics/complex/value_operations/1.cc: Use
1755         non-negative rho argument.
1757         * include/debug/list (__gnu_debug::list): Use allocator-aware
1758         _Safe_container base.
1759         * include/debug/string (__gnu_debug::basic_string): Use
1760         allocator-aware _Safe_container base for cxx11 ABI.
1762         * include/bits/locale_conv.h (__do_str_codecvt): Handle empty range.
1763         (wstring_convert): Move into __cxx11 namespace.
1764         (wbuffer_convert(streambuf*, _Codecvt*, state_type)): Fix exception
1765         message.
1767         PR libstdc++/64657
1768         * include/bits/stl_uninitialized.h
1769         (__uninitialized_copy::__uninit_copy): Cast expression to void.
1771 2015-06-17  Jonathan Wakely  <jwakely@redhat.com>
1773         PR libstdc++/55409
1774         * include/bits/list.tcc (_List_base::_M_clear()): Use allocator traits.
1775         (list::list(const list&)): Use allocator propagation trait. Use
1776         _M_assign_dispatch to copy elements.
1777         * include/bits/stl_list.h (_List_node): Use __aligned_membuf in C++11.
1778         (_List_node::_M_valptr()): Add accessor for stored value.
1779         (_List_iterator, _List_const_iterator, _List_base): Use _M_valptr().
1780         (_List_base, list): Use allocator traits.
1781         (_List_base::_M_get_Tp_allocator, _List_base::get_allocator): Remove.
1782         (_List_base::_M_move_nodes): New function.
1783         (_List_base(_List_base&&)): Use _M_move_nodes.
1784         (_List_base(_List_base&&, _Node_alloc_type&&)): New constructor.
1785         (list::_M_create_node, list::_M_erase, list::max_size): Use allocator
1786         traits.
1787         (list(size_type)): Add allocator parameter.
1788         (list(const list&)): Use allocator propagation trait.
1789         (list(const list&, const allocator_type&)): New constructor.
1790         (list(list&&, const allocator_type&)): Likewise.
1791         (list::operator=(list&&), list::swap(list&)): Use allocator
1792         propagation traits.
1793         (list::_M_move_assign): New functions.
1794         * include/debug/list: Add allocator-extended constructors.
1795         * include/profile/list: Likewise.
1796         * python/libstdcxx/v6/printers.py (get_value_from_list_node): New
1797         function to get value from _List_node.
1798         (StdListPrinter): Use get_value_from_list_node.
1799         * testsuite/23_containers/list/allocator/copy.cc: New.
1800         * testsuite/23_containers/list/allocator/copy_assign.cc: New.
1801         * testsuite/23_containers/list/allocator/minimal.cc: New.
1802         * testsuite/23_containers/list/allocator/move.cc: New.
1803         * testsuite/23_containers/list/allocator/move_assign.cc: New.
1804         * testsuite/23_containers/list/allocator/noexcept.cc: New.
1805         * testsuite/23_containers/list/allocator/swap.cc: New.
1806         * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1807         Adjust dg-prune-output line number.
1808         * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
1809         Likewise.
1810         * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1811         Likewise.
1813         * include/bits/forward_list.h
1814         (_Fwd_list_base(const _Node_alloc_type&)): Change parameter to
1815         rvalue-reference.
1816         (_Fwd_list_base(_Fwd_list_base&&, const _Node_alloc_type&)): Likewise.
1817         (forward_list(const _Alloc&)): Split default constructor out to
1818         separate function.
1819         (forward_list(forward_list&&, const _Alloc&)): Move elements if base
1820         class didn't do so.
1821         (forward_list::_M_move_assign(forward_list&&, true_type)): Replace
1822         swap call with two assignments.
1823         * include/bits/forward_list.tcc
1824         (_Fwd_list_base(_Fwd_list_base&&, const _Node_alloc_type&)): Don't
1825         move elements when allocators are not equal.
1826         * include/debug/forward_list (forward_list(const allocator_type&)):
1827         Split default constructor out to separate function.
1828         * include/profile/forward_list (forward_list(const _Alloc&)):
1829         Likewise.
1831         * include/bits/forward_list.h (forward_list::_M_get_Node_allocator):
1832         Remove unnecessary uses of operator& and static_cast.
1833         * include/bits/forward_list.tcc
1834         (forward_list::operator=(const forward_list&)): Use __addressof
1835         instead of operator&.
1836         (forward_list::remove(const _Tp&), forward_list::remove(_Pred)):
1837         Remove invalid static_casts.
1838         * include/debug/forward_list: Use __addressof instead of operator&.
1839         * testsuite/23_containers/forward_list/modifiers/addressof.cc: New.
1841         * include/ext/alloc_traits.h (__alloc_traits::_S_nothrow_swap()): Use
1842         __is_nothrow_swappable.
1844 2015-06-16  Jonathan Wakely  <jwakely@redhat.com>
1846         * include/bits/allocated_ptr.h (__allocated_ptr): Use __addressof.
1848         * include/bits/list.tcc (list::operator=(const list&), list::merge):
1849         Use __addressof instead of operator&.
1850         (list::sort): Use array-to-pointer decay instead of operator&.
1851         * include/bits/stl_list.h (list::splice): Use __addressof instead of
1852         operator&.
1853         * include/debug/formatter.h (_Error_formatter::_Parameter::_Parameter):
1854         Likewise.
1855         * include/debug/functions.h (__check_singular): Likewise.
1856         * include/debug/list (list::splice, list::merge): Likewise.
1857         * testsuite/23_containers/list/modifiers/addressof.cc: New.
1859         PR libstdc++/65393
1860         * src/c++11/thread.cc (thread::_M_make_thread): Replace shared_ptr
1861         copies with moves.
1863 2015-06-12  Jonathan Wakely  <jwakely@redhat.com>
1865         * include/precompiled/stdc++.h: Include <codecvt> and <shared_mutex>.
1867         PR libstdc++/66464
1868         * src/c++11/codecvt.cc (codecvt_utf16_base<char32_t>::do_max_length):
1869         Return 4 not 3.
1871 2015-06-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1873         PR c++/66192
1874         PR target/66200
1875         * config/cpu/alpha/atomic_word.h: Remove.
1876         * config/cpu/ia64/atomic_word.h: Remove.
1877         * config/cpu/powerpc/atomic_word.h: Remove.
1878         * config/os/aix/atomic_word.h: Remove.
1879         * configure.host (atomic_word_dir) [ia64, aix*, powerpc, alpha]:
1880         Use generic definition.
1882 2015-06-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1884         PR target/66200
1885         PR c++/66192
1886         * * config/cpu/generic/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER): Define
1887         (_GLIBCXX_WRITE_MEM_BARRIER): Likewise
1888         * include/bits/shared_ptr_base.h: Use ACQ_REL barrier.
1889         * include/ext/atomicity.h: Likewise.
1890         * include/tr1/shared_ptr.h: Likewise.
1891         * libsupc++/guard.cc (__test_and_acquire): Rewrite with atomics.
1892         Update comment.
1893         (__set_and_release): Likewise.
1894         * testsuite/20_util/shared_ptr/cons/43820_neg.cc (test01): Adjust for
1895         line numbers.
1896         * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1897         * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
1898         Likewise.
1900 2015-06-12  Jonathan Wakely  <jwakely@redhat.com>
1902         * include/std/tuple (__is_tuple_like_impl): Disambiguate array in
1903         debug and profile modes.
1904         * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust tests
1905         for swap in C++11 and later.
1907 2015-06-09  Jonathan Wakely  <jwakely@redhat.com>
1909         PR libstdc++/66030
1910         * config/abi/pre/gnu.ver: Export codecvt_byname and codecvt symbols
1911         for mingw32.
1913 2015-06-08  Jonathan Wakely  <jwakely@redhat.com>
1915         PR libstdc++/66441
1916         * testsuite/22_locale/conversions/string/66441.cc: New.
1917         * include/bits/locale_conv.h (__do_str_codecvt): Reserve enough space
1918         in the output string for BOM and complete result.
1920         PR libstdc++/66417
1921         * src/c++11/codecvt.cc (write_utf16_code_point): Use adjust_byte_order
1922         for single UTF-16 units.
1923         * testsuite/22_locale/codecvt/codecvt_utf16/66417.cc: New.
1925 2015-06-07  François Dumont  <fdumont@gcc.gnu.org>
1927         * include/bits/stl_tree.h (_Rb_tree<>::__is_transparent<>): Move to
1928         outer scope and rename to ...
1929         (std::__hash_is_transparent<>): ... this.
1930         * include/debug/stl_map.h (map::find<>,
1931         map::lower_bound<>, map::upper_bound<>, map::equal_range<>): New
1932         member function templates to perform heterogeneous lookup.
1933         * include/debug/stl_multimap.h (multimap::find<>,
1934         multimap::lower_bound<>, multimap::upper_bound<>,
1935         multimap::equal_range<>): Likewise.
1936         * include/debug/stl_multiset.h (multiset::find<>,
1937         multiset::lower_bound<>, multiset::upper_bound<>,
1938         multiset::equal_range<>): Likewise.
1939         * include/debug/stl_set.h (set::find<>,
1940         set::lower_bound<>, set::upper_bound<>, set::equal_range<>): Likewise.
1941         * include/profile/stl_map.h (map::find<>, map::count<>,
1942         map::lower_bound<>, map::upper_bound<>, map::equal_range<>): Likewise.
1943         * include/profile/stl_multimap.h (multimap::find<>, multimap::count<>,
1944         multimap::lower_bound<>, multimap::upper_bound<>,
1945         multimap::equal_range<>): Likewise.
1946         * include/profile/stl_multiset.h (multiset::find<>, multiset::count<>,
1947         multiset::lower_bound<>, multiset::upper_bound<>,
1948         multiset::equal_range<>): Likewise.
1949         * include/profile/stl_set.h (set::find<>, set::count<>,
1950         set::lower_bound<>, set::upper_bound<>, set::equal_range<>): Likewise.
1951         * testsuite/23_containers/map/operations/1.cc: Check const variants.
1952         * testsuite/23_containers/multimap/operations/1.cc: Likewise.
1953         * testsuite/23_containers/multiset/operations/1.cc: Likewise.
1954         * testsuite/23_containers/set/operations/1.cc: Likewise.
1956 2015-06-05  Jonathan Wakely  <jwakely@redhat.com>
1958         * doc/xml/manual/status_cxx2017.xml: Update status tables.
1959         * doc/html/manual/*: Regenerate.
1960         * include/std/type_traits (bool_constant): Define.
1961         * testsuite/20_util/bool_constant/requirements.cc: New.
1962         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
1963         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1964         Likewise.
1965         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
1966         Likewise.
1968         * include/std/shared_mutex (__shared_mutex_pthread,
1969         __shared_mutex_cv): New helper types implementing the shared mutex
1970         requirements.
1971         (shared_mutex): New type for C++17.
1972         (shared_timed_mutex): Derive from one of the new helper types.
1973         * testsuite/30_threads/shared_mutex/cons/1.cc: New.
1974         * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: New.
1975         * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: New.
1976         * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
1977         New.
1978         * testsuite/30_threads/shared_mutex/try_lock/1.cc: New.
1979         * testsuite/30_threads/shared_mutex/try_lock/2.cc: New.
1981 2015-06-05  Ville Voutilainen  <ville.voutilainen@gmail.com>
1983         Add __is_nothrow_swappable and take it into use.
1984         * include/bits/algorithmfwd.h (swap): Only declare for C++98 mode.
1985         * include/bits/move.h (swap): Add constraints in C++11 and later.
1986         * include/bits/stl_pair.h (swap): Use __is_nothrow_swappable
1987         for the free swap function for pair.
1988         * include/bits/stl_queue.h (swap): Use __is_nothrow_swappable
1989         for the free swap functions for queue and priority_queue.
1990         * include/bits/stl_stack.h (swap): Use __is_nothrow_swappable
1991         for the free swap function for stack.
1992         * include/debug/array (swap): Use __is_nothrow_swappable
1993         for the free swap function for array.
1994         * include/profile/array (swap): Likewise.
1995         * include/std/array (swap): Likewise.
1996         * include/std/tuple (_Tuple_impl::_M_swap): Use __is_nothrow_swappable.
1997         * include/std/type_traits (__is_swappable_impl::__is_swappable,
1998         __is_nothrow_swappable_impl, __is_nothrow_swappable): New.
1999         * testsuite/20_util/is_nothrow_swappable/requirements/
2000         explicit_instantiation.cc: New.
2001         * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2002         New.
2003         * testsuite/20_util/is_nothrow_swappable/value.cc: New.
2005 2015-06-03  François Dumont  fdumont@gcc.gnu.org>
2007         * testsuite/23_containers/list/61347.cc: Add dg-require-normal-mode.
2009 2015-06-02  Jonathan Wakely  <jwakely@redhat.com>
2011         * doc/xml/manual/abi.xml: Document versioning for 5.1.0 release.
2012         * doc/html/manual/*: Regenerate.
2014         * doc/html/ext/lwg-active.html: Update to R93.
2015         * doc/html/ext/lwg-closed.html: Likewise.
2016         * doc/html/ext/lwg-defects.html: Likewise.
2017         * doc/html/manual/*: Regenerate.
2018         * doc/xml/manual/intro.xml: Document status of several DRs.
2020 2015-06-02  Renlin Li  <renlin.li@arm.com>
2022         * testsuite/27_io/fpos/14775.cc: Add _GLIBCXX_HAVE_LIMIT_FSIZE check.
2024 2015-06-01  Jonathan Wakely  <jwakely@redhat.com>
2026         * testsuite/lib/libstdc++.exp (libstdc++_init): Unset LANGUAGE
2027         environment variable.
2029 2015-05-31  Jonathan Wakely  <jwakely@redhat.com>
2031         PR libstdc++/66354
2032         * include/bits/stl_algobase.h (__fill_a): Check length before calling
2033         memset.
2035 2015-05-30  Jonathan Wakely  <jwakely@redhat.com>
2037         * include/bits/stl_algobase.h (__equal<true>::equal): Check length
2038         instead of checking for null pointers.
2039         (__lexicographical_compare<true>::__lc): Only check shorter length.
2041 2015-05-29  François Dumont  fdumont@gcc.gnu.org>
2043         * include/debug/debug.h (_GLIBCXX_DEBUG_ASSERT,
2044         _GLIBCXX_DEBUG_PEDASSERT, _GLIBCXX_DEBUG_ONLY): Move definition...
2045         * include/debug/assertions.h: ...here, new.
2046         * include/debug/formatter.h
2047         (_Error_formatter::_Is_iterator_value_type): New.
2048         (_Error_formatter::_Is_instance): New.
2049         (_Error_formatter::_Parameter): Make public and not friend anymore.
2050         (_Error_formatter::_Parameter::__instance): New _M_kind enum entry.
2051         (_Error_formatter::_Parameter::__iterator_value_type): New _M_kind enum
2052         entry.
2053         (_Error_formatter::_Parameter::_Type): New.
2054         (_Error_formatter::_Parameter::_Instance): New, inherit from
2055         latter.
2056         (union _Error_formatter::_Parameter::_M_variant): Reorganize.
2057         (_Parameter(_Iterator const&, const char*, _Is_iterator)): Make all
2058         overloads take iterator through a const reference.
2059         (_Parameter(const _Iterator&, const char*, _Is_iterator_value_type)):
2060         New.
2061         (_Parameter(const _Type&, const char*, _Is_instance)): New.
2062         (_Error_formatter::_M_print_type): Delete.
2063         (_Error_formatter::_M_iterator_value_type): New.
2064         (_Error_formatter::_M_instance): New.
2065         * include/Makefile.am: Add new above debug file.
2066         * include/Makefile.in: Regenerate.
2067         * include/debug/functions.h
2068         (__check_dereferenceable(const _Safe_iterator<>&),
2069         __valid_range(const _Safe_iterator<>&),
2070         __is_safe_random_iterator<_Safe_iterator<>>): Move...
2071         * include/debug/safe_iterator.h: ... here.
2072         Replace debug.h include with assertions.h.
2073         (__check_singular_aux): Move...
2074         * include/debug/safe_base.h: ... here.
2075         * include/debug/functions.h
2076         (__check_dereferenceable(const _Safe_local_iterator<>&),
2077         __valid_range(const _Safe_local_iterator<>&): Move...
2078         * include/debug/safe_local_iterator.h: ...here.
2079         * include/debug/safe_sequence.h: Replace debug.h with assertions.h.
2080         Remove _Safe_iterator declaration.
2081         * include/debug/safe_unordered_container.h: Replace debug.h with
2082         assertions.h.
2083         * include/debug/array: Replace safe_sequence.h include with
2084         formatter.h and macros.h.
2085         * include/debug/deque: Include functions.tcc.
2086         * include/debug/forward_list: Likewise.
2087         * include/debug/list: Likewise.
2088         * include/debug/string: Likewise.
2089         * include/debug/vector: Likewise.
2090         * include/bits/unique_ptr.h: Replace debug.h include with new
2091         assertions.h.
2092         * include/bits/stl_iterator_base_funcs.h: Likewise.
2093         * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
2094         Adjust dg-error line number.
2095         * testsuite/23_containers/array/tuple_interface/
2096         tuple_element_debug_neg.cc: Likewise.
2097         * src/c++11/debug.cc: Adapt.
2099 2015-05-29  Jonathan Wakely  <jwakely@redhat.com>
2101         * doc/xml/manual/status_cxx2017.xml: Fix duplicate ID attribute.
2102         * doc/html/manual/*: Regenerate.
2104         * include/std/future (__async_result_of): New alias template.
2105         (async): Use __async_result_of to pass decayed types to result_of.
2106         * testsuite/30_threads/async/lwg2021.cc: New.
2107         * doc/xml/manual/intro.xml: Document LWG 2021 status.
2109         PR libstdc++/66327
2110         * include/bits/stl_algobase.h (__equal<true>::equal): Do not call
2111         memcmp with null pointers.
2112         (__lexicographical_compare<true>::__lc): Do not call memcmp for empty
2113         ranges.
2115 2015-05-28  Jonathan Wakely  <jwakely@redhat.com>
2117         PR libstdc++/65352
2118         * include/profile/array (array::data): Use _S_ptr.
2119         * include/debug/array (array::data): Likewise.
2121         PR libstdc++/65352
2122         * include/std/array (__array_traits::_S_ptr): New function.
2123         (array::data): Use _S_ptr to avoid creating invalid reference.
2124         * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
2125         dg-error line numbers.
2126         * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2127         likewise.
2129 2015-05-27  Jonathan Wakely  <jwakely@redhat.com>
2131         * include/bits/stl_tree.h (_Rb_tree::_M_end()): Return _Base_ptr
2132         instead of downcasting.
2133         (_Rb_tree::_M_copy): Change second parameter to _Base_ptr.
2134         (_Rb_tree::_M_lower_bound, _Rb_tree:_M_upper_bound): Likewise.
2135         (_Rb_tree::_S_iter): Remove.
2136         (_Rb_tree::_S_lower_bound_tr, _Rb_tree::_S_upper_bound_tr): Remove.
2137         (_Rb_tree::_M_find_tr(const _Kt&) const): Call _M_lower_bound_tr
2138         instead of _S_lower_bound_tr
2139         (_Rb_tree::_M_find_tr(const _Kt&)): Call const overload.
2140         (_Rb_tree::_M_lower_bound_tr(const _Kt&) const): Do the search here
2141         instead of calling _S_lower_bound_tr.
2142         (_Rb_tree::_M_lower_bound_tr(const _Kt&)): Call const overload.
2143         (_Rb_tree::_M_upper_bound_tr(const _Kt&) const): Do the search here
2144         instead of calling _S_upper_bound_tr.
2145         (_Rb_tree::_M_upper_bound_tr(const _Kt&)): Call const overload.
2146         (_Rb_tree::_M_equal_range_tr(const _Kt&)): Likewise.
2147         (_Rb_tree::equal_range): Use _Base_ptr for end pointer.
2148         (_Rb_tree::_M_get_insert_unique_pos): Likewise.
2149         (_Rb_tree::_M_get_insert_equal_pos): Likewise.
2150         (_Rb_tree::_M_insert_equal_lower_node): Likewise.
2151         (_Rb_tree::_M_insert_unique, _Rb_tree::_M_emplace_unique,
2152         _Rb_tree::_M_emplace_hint_unique): Remove static_cast.
2154         PR libstdc++/66017
2155         * include/bits/stl_tree.h (_Rb_tree_node): Use __aligned_membuf.
2156         (_Rb_tree_iterator, _Rb_tree_const_iterator): Support construction
2157         from _Base_ptr.
2158         (_Rb_tree_const_iterator::_M_const_cast): Remove static_cast.
2159         (_Rb_tree::begin, _Rb_tree::end): Remove static_cast.
2160         * include/ext/aligned_buffer.h (__aligned_membuf): New type using
2161         alignment of _Tp as a member subobject, not as a complete object.
2162         * python/libstdcxx/v6/printers.py (StdRbtreeIteratorPrinter): Lookup
2163         _Link_type manually as it might not be in the debug info.
2165 2015-05-26  Doug Evans  <dje@google.com>
2167         * python/libstdcxx/v6/xmethods.py (UniquePtrMethodsMatcher): Add
2168         operator-> support.
2169         * testsuite/libstdc++-xmethods/unique_ptr.cc: Add tests for
2170         operator->.
2172 2015-05-26  Jonathan Wakely  <jwakely@redhat.com>
2174         * include/bits/locale_conv.h: Fix copyright years.
2175         * include/bits/quoted_string.h: Likewise.
2176         * src/filesystem/Makefile.am: Likewise.
2177         * testsuite/22_locale/conversions/buffer/1.cc: Likewise.
2178         * testsuite/22_locale/conversions/buffer/requirements/typedefs.cc:
2179         Likewise.
2180         * testsuite/22_locale/conversions/string/1.cc: Likewise.
2181         * testsuite/22_locale/conversions/string/2.cc: Likewise.
2182         * testsuite/22_locale/conversions/string/3.cc: Likewise.
2183         * testsuite/22_locale/conversions/string/requirements/typedefs-2.cc:
2184         Likewise.
2185         * testsuite/22_locale/conversions/string/requirements/typedefs.cc:
2186         Likewise.
2187         * testsuite/util/testsuite_fs.h: Likewise.
2189 2015-05-23  François Dumont  fdumont@gcc.gnu.org>
2191         PR libstdc++/64657
2192         * include/debug/functions.h (__check_sorted_aux): Cast expression to
2193         void.
2195 2015-05-21  David Edelsohn  <dje.gcc@gmail.com>
2197         PR target/66224
2198         * config/cpu/powerpc/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER):
2199         Don't use isync. Use lwsync if available.
2200         * configure.host (atomic_word_dir) [aix[56789]*]: Delete to use
2201         powerpc cpu definition.
2203 2015-05-21  Jason Merrill  <jason@redhat.com>
2205         * libsupc++/del_opv.cc: Suppress -Wsized-deallocation.
2206         * libsupc++/del_op.cc: Likewise.
2208 2015-05-20  François Dumont  fdumont@gcc.gnu.org>
2210         * include/debug/formatter.h (_GLIBCXX_TYPEID): New macro to simplify
2211         usage of typeid.
2212         (_Error_formatter::_M_print_type): New.
2213         * src/c++11/debug.cc
2214         (_Error_formatter::_Parameter::_M_print_field): Use latter.
2215         (_Error_formatter::_M_print_type): Implement latter using
2216         __cxaabiv1::__cxa_demangle to print demangled type name.
2218         * include/bits/cpp_type_traits.h
2219         (std::move_iterator): Delete declaration.
2220         (std::__is_move_iterator<move_iterator>): Move partial specialization...
2221         * include/bits/stl_iterator.h: ... here.
2222         (std::__miter_base): Overloads for std::reverse_iterator and
2223         std::move_iterator.
2224         * include/bits/stl_algobase.h (std::__miter_base): Provide default
2225         implementation.
2227 2015-05-20  Jonathan Wakely  <jwakely@redhat.com>
2229         * testsuite/util/testsuite_fs.h (nonexistent_path): Don't use tempnam.
2231         PR libstdc++/66078
2232         * include/bits/stl_iterator.h (__make_move_if_noexcept_iterator): Add
2233         overload for pointers.
2234         * testsuite/20_util/specialized_algorithms/uninitialized_copy/
2235         808590.cc: Add -std=gnu++03 switch.
2236         * testsuite/20_util/specialized_algorithms/uninitialized_copy/
2237         808590-cxx11.cc: Copy of 808590.cc to test with -std=gnu++11.
2238         * testsuite/23_containers/vector/modifiers/push_back/
2239         strong_guarantee.cc: New.
2241 2015-05-19  Jonathan Wakely  <jwakely@redhat.com>
2243         * include/bits/stl_list.h (_M_resize_pos(size_type&)): Declare.
2244         (operator==(const list&, const list&)): If size() is O(1) compare
2245         sizes before comparing each element.
2246         * include/bits/list.tcc (list::_M_resize_pos(size_type&)): Define.
2247         (list::resize): Use _M_resize_pos.
2249 2015-05-19  François Dumont  <fdumont@gcc.gnu.org>
2251         * testsuite/23_containers/unordered_map/cons/66055.cc: Add constructor
2252         invocations.
2253         * testsuite/23_containers/unordered_multimap/cons/66055.cc: Likewise.
2254         * testsuite/23_containers/unordered_multiset/cons/66055.cc: Likewise.
2255         * testsuite/23_containers/unordered_set/cons/66055.cc: Likewise.
2257 2015-05-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2259         * configure.host: Define cpu_defines_dir for ARM.
2260         * config/cpu/arm/cpu_defines.h: New file.
2262 2015-05-17  François Dumont  <fdumont@gcc.gnu.org>
2264         * include/bits/unordered_map.h (unordered_map, unordered_multimap): Add
2265         missing constructors.
2266         * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2267         Likewise.
2268         * include/debug/unordered_map (unordered_map, unordered_multimap): Add
2269         missing constructors.
2270         * include/debug/unordered_set (unordered_set, unordered_multiset):
2271         Likewise.
2272         * include/profile/unordered_map (unordered_map, unordered_multimap): Add
2273         missing constructors.
2274         * include/profile/unordered_set (unordered_set, unordered_multiset):
2275         Likewise.
2277 2015-05-15  Jonathan Wakely  <jwakely@redhat.com>
2279         * src/filesystem/ops.cc (stat_type): Define alias for struct stat and
2280         use throughout the file.
2281         (make_file_type): New function.
2282         (file_size(const path&, error_code&)): Report an error for anything
2283         that isn't a regular file.
2284         (status(const path&), symlink_status(const path&)): Do not throw for
2285         file_type::not_found.
2286         (temp_directory_path()): Check additional environment variables.
2287         * testsuite/experimental/filesystem/operations/exists.cc: New.
2288         * testsuite/experimental/filesystem/operations/file_size.cc: New.
2289         * testsuite/experimental/filesystem/operations/status.cc: New.
2290         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2291         New.
2293 2015-05-14  Nathan Myers  <ncm@cantrip.org>
2294             Jonathan Wakely  <jwakely@redhat.com>
2296         PR libstdc++/66055
2297         * include/std/unordered_map (unordered_map, unordered_multimap): Add
2298         missing constructors.
2299         * include/std/unordered_set (unordered_set, unordered_multiset):
2300         Likewise.
2301         * testsuite/23_containers/unordered_map/cons/66055.cc: New.
2302         * testsuite/23_containers/unordered_multimap/cons/66055.cc: New.
2303         * testsuite/23_containers/unordered_multiset/cons/66055.cc: New.
2304         * testsuite/23_containers/unordered_set/cons/66055.cc: New.
2306 2015-05-14  Jonathan Wakely  <jwakely@redhat.com>
2308         PR libstdc++/66011
2309         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for fchmod and
2310         sendfile.
2311         * config.h.in: Regenerate.
2312         * configure: Regenerate.
2313         * src/filesystem/ops.cc (do_copy_file): Fix arguments to open(). Do
2314         not return after copying contents. Use fchmod, fchmodat, and sendfile
2315         when available.
2316         (current_path, permissions, space): Use errno not return value.
2318         PR libstdc++/66018
2319         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for struct
2320         dirent.d_type.
2321         * config.h.in: Regenerate.
2322         * configure: Regenerate.
2323         * configure.ac (AC_STRUCT_DIRENT_D_TYPE): Remove.
2325 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
2327         * acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Delete.
2328         * configure.ac: Remove GLIBCXX_ENABLE_SJLJ_EXCEPTIONS.
2329         * config.h.in: Regenerate.
2330         * configure: Likewise.
2331         * libsupc++/eh_personality.cc: Replace _GLIBCXX_SJLJ_EXCEPTIONS by
2332         __USING_SJLJ_EXCEPTIONS__.
2333         * libsupc++/eh_throw.cc: Likewise.
2334         * libsupc++/eh_ptr.cc: Likewise.
2335         * doc/html/manual/appendix_porting.html: Remove
2336         GLIBCXX_ENABLE_SJLJ_EXCEPTIONS
2337         * doc/xml/manual/build_hacking.xml: Likewise.
2338         * doc/html/manual/configure.html: Remove --enable-sjlj-exceptions.
2339         * doc/xml/manual/configure.xml: Likewise.
2341 2015-05-13  Jonathan Wakely  <jwakely@redhat.com>
2343         * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)): Check
2344         for nullptr (LWG 2415).
2345         * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Test
2346         construction from empty unique_ptr.
2347         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
2348         * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
2350         * include/bits/stl_raw_storage_iter.h (raw_storage_iterator::base()):
2351         Define (LWG 2454).
2352         * testsuite/20_util/raw_storage_iterator/base.cc: New.
2354         * include/std/future (packaged_task(allocator_arg_t, const A&, F&&):
2355         Remove explicit (LWG 2407).
2357         * include/bits/basic_string.h (basic_string::basic_string()): Make
2358         noexcept conditional on allocator (LWG 2455).
2360         * include/std/complex (polar): Check for negative rho (LWG 2459).
2362         * include/experimental/tuple (apply): Handle pointers to member (LWG
2363         2418).
2364         * include/std/functional (_Mem_fn_base): Make constructors constexpr.
2365         (_Maybe_wrap_member_pointer::__do_wrap): Make constexpr.
2366         * testsuite/experimental/tuple/apply.cc: Test pointer to member.
2368         * include/bits/random.h (seed_seq): More noexcept (LWG 2440).
2370         * include/bits/alloc_traits.h (_S_max_size): Implement LWG 2466.
2371         * testsuite/20_util/allocator_traits/members/max_size.cc: Adjust.
2372         * testsuite/23_containers/forward_list/allocator/minimal.cc:
2373         Likewise.
2374         * testsuite/23_containers/map/allocator/minimal.cc: Likewise.
2375         * testsuite/23_containers/multimap/allocator/minimal.cc: Likewise.
2376         * testsuite/23_containers/multiset/allocator/minimal.cc: Likewise.
2377         * testsuite/23_containers/set/allocator/minimal.cc: Likewise.
2378         * testsuite/23_containers/unordered_map/allocator/minimal.cc:
2379         Likewise.
2380         * testsuite/23_containers/unordered_multimap/allocator/minimal.cc:
2381         Likewise.
2382         * testsuite/23_containers/unordered_multiset/allocator/minimal.cc:
2383         Likewise.
2384         * testsuite/23_containers/unordered_set/allocator/minimal.cc:
2385         Likewise.
2386         * testsuite/util/testsuite_allocator.h: Remove unused parameter.
2388         * acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Re-enable on solaris.
2389         * configure: Regenerate.
2391 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
2393         * Makefile.in: Regenerated with automake-1.11.6.
2394         * aclocal.m4: Likewise.
2395         * configure: Likewise.
2396         * doc/Makefile.in: Likewise.
2397         * include/Makefile.in: Likewise.
2398         * libsupc++/Makefile.in: Likewise.
2399         * po/Makefile.in: Likewise.
2400         * python/Makefile.in: Likewise.
2401         * src/Makefile.in: Likewise.
2402         * src/c++11/Makefile.in: Likewise.
2403         * src/c++98/Makefile.in: Likewise.
2404         * src/filesystem/Makefile.in: Likewise.
2405         * testsuite/Makefile.in: Likewise.
2407 2015-05-09  Jason Merrill  <jason@redhat.com>
2409         * testsuite/20_util/headers/functional/synopsis.cc: Add
2410         _GLIBCXX14_CONSTEXPR.
2411         * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Likewise.
2413 2015-05-08  Jason Merrill  <jason@redhat.com>
2415         * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Add -std=c++98.
2416         * testsuite/20_util/auto_ptr/1.cc: Add -std=c++98.
2417         * testsuite/20_util/auto_ptr/2.cc: Add -std=c++98.
2418         * testsuite/20_util/auto_ptr/3.cc: Add -std=c++98.
2419         * testsuite/20_util/auto_ptr/4.cc: Add -std=c++98.
2420         * testsuite/20_util/auto_ptr/5.cc: Add -std=c++98.
2421         * testsuite/20_util/auto_ptr/6.cc: Add -std=c++98.
2422         * testsuite/20_util/auto_ptr/7.cc: Add -std=c++98.
2423         * testsuite/20_util/auto_ptr/3946.cc: Add -std=c++98.
2424         * testsuite/20_util/auto_ptr/assign_neg.cc: Add -std=c++98.
2425         * testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc:
2426         Likewise.
2427         * testsuite/20_util/headers/functional/synopsis.cc: Add -Wno-deprecated.
2428         * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
2429         Adjust expected errors.
2430         * testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc:
2431         Likewise.
2432         * testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc:
2433         Likewise.
2434         * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
2435         Likewise.
2436         * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
2437         Likewise.
2438         * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
2439         Likewise.
2440         * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
2441         Likewise.
2442         * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2443         Likewise.
2444         * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
2445         Likewise.
2446         * testsuite/23_containers/vector/requirements/dr438
2447         /constructor_1_neg.cc: Likewise.
2448         * testsuite/23_containers/vector/requirements/dr438
2449         /constructor_2_neg.cc: Likewise.
2450         * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
2451         Likewise.
2452         * testsuite/ext/array_allocator/1.cc: Add -Wno-deprecated.
2453         * testsuite/ext/array_allocator/2.cc: Add -Wno-deprecated.
2454         * testsuite/ext/array_allocator/26875.cc: Add -Wno-deprecated.
2455         * testsuite/ext/array_allocator/3.cc: Add -Wno-deprecated.
2456         * testsuite/ext/array_allocator/check_allocate_max_size.cc:
2457         Add -Wno-deprecated.
2458         * testsuite/ext/array_allocator/check_deallocate_null.cc:
2459         Add -Wno-deprecated.
2460         * testsuite/ext/array_allocator/check_delete.cc: Add -Wno-deprecated.
2461         * testsuite/ext/array_allocator/check_new.cc: Add -Wno-deprecated.
2462         * testsuite/ext/profile/mutex_extensions_neg.cc: Prune follow-on error.
2463         * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc:
2464         Add -std=c++98.
2465         * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc:
2466         Add -std=c++98.
2467         * testsuite/tr1/2_general_utilities/shared_ptr/assign
2468         /auto_ptr_rvalue_neg.cc: Add -std=c++98.
2469         * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
2470         Add -std=c++98 -fno-show-column.
2471         * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc:
2472         Add -std=c++98.
2473         * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc:
2474         Add -std=c++98.
2475         * testsuite/tr1/6_containers/utility/pair.cc: Add -std=c++98.
2476         * testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: Add -std=c++98.
2478         * src/c++98/Makefile.am (AM_CXXFLAGS): Add -std=gnu++98.
2479         * src/c++98/Makefile.in: Regenerate.
2480         * src/Makefile.am (AM_CXXFLAGS): Add -std=gnu++98.
2481         * src/Makefile.in: Regenerate.
2483 2015-05-02  Jonathan Wakely  <jwakely@redhat.com>
2485         PR libstdc++/51617
2486         * include/std/future (async): Change default policy to launch::async.
2488         * include/experimental/any (any::_Storage): Fix alignment of buffer.
2489         (any::_Internal): Check alignment of type.
2490         * testsuite/experimental/any/cons/aligned.cc: New.
2491         * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
2493         * include/experimental/iterator (ostream_joiner): Simplify by using
2494         the injected-class-name and the ostream_type typedef.
2496         * include/experimental/iterator: New. Define ostream_joiner.
2497         * include/Makefile.am: Add new header.
2498         * include/Makefile.in: Regenerate.
2499         * testsuite/experimental/iterator/make_ostream_joiner.cc: New.
2500         * testsuite/experimental/iterator/ostream_joiner.cc: New.
2501         * testsuite/experimental/iterator/requirements.cc: New.
2502         * doc/xml/manual/status_cxx2017.xml: Update status.
2503         * doc/html/manual/status.html: Regenerate.
2505         * include/experimental/numeric: New. Define gcd and lcm.
2506         * include/Makefile.am: Add new header.
2507         * include/Makefile.in: Regenerate.
2508         * testsuite/experimental/numeric/gcd.cc: New.
2509         * testsuite/experimental/numeric/lcm.cc: New.
2510         * doc/xml/manual/status_cxx2017.xml: Update status.
2511         * doc/html/manual/status.html: Regenerate.
2513 2015-05-02  Edward Smith-Rowland  <3dw4rd@verizon.net>
2515         Revert addition of feature macros from other headers per latest SD-6.
2516         * include/experimental/deque: Remove feature-test macro.
2517         * include/experimental/forward_list: Ditto.
2518         * include/experimental/list: Ditto.
2519         * include/experimental/map: Ditto.
2520         * include/experimental/set: Ditto.
2521         * include/experimental/string: Ditto.
2522         * include/experimental/unordered_map: Ditto.
2523         * include/experimental/unordered_set: Ditto.
2525 2015-05-02  Jonathan Wakely  <jwakely@redhat.com>
2527         * include/experimental/any (any::_Storage): Make non-copyable.
2528         (any::any): Do not copy _Storage object.
2529         (any::operator=): Implement more efficiently than swapping.
2530         (any::swap): Use new _Op_xfer operation.
2531         (any::_Op::_Op_xfer): New enumerator.
2532         (_Manager_internal::_S_alloc): Remove unused function.
2533         (_Manager_internal::_S_create, _Manager_external::_S_create): Use out
2534         parameter instead of returning a _Storage object.
2535         (_Manager_internal::_S_manage, _Manager_external::_S_manage): Add
2536         _Op_xfer operation for moving and swapping.
2537         * testsuite/experimental/any/cons/nontrivial.cc: New.
2538         * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
2540         * include/experimental/fs_path.h (filesystem_error::~filesystem_error):
2541         Declare.
2542         * src/filesystem/path.cc (filesystem_error::~filesystem_error):
2543         Define.
2545         PR libstdc++/65978
2546         * include/std/tuple (forward_as_tuple, tie): Add constexpr.
2547         * testsuite/20_util/tuple/creation_functions/constexpr.cc: Uncomment
2548         and fix tests for forward_as_tuple and tie.
2550         * src/filesystem/ops.cc (last_write_time) [_GLIBCXX_USE_UTIMENSAT]:
2551         Set timespec members explicitly instead of with a braced-init-list.
2552         [_GLIBCXX_HAVE_UTIME_H]: Use lambda to handle st_atime being a macro.
2554 2015-05-02  Edward Smith-Rowland  <3dw4rd@verizon.net>
2556         * include/experimental/deque: Add feature-test macro.
2557         * include/experimental/forward_list: Ditto.
2558         * include/experimental/list: Ditto.
2559         * include/experimental/map: Ditto.
2560         * include/experimental/set: Ditto.
2561         * include/experimental/string: Ditto.
2562         * include/experimental/unordered_map: Ditto.
2563         * include/experimental/unordered_set: Ditto.
2565 2015-05-01  Jonathan Wakely  <jwakely@redhat.com>
2567         * include/experimental/memory: Correct feature-test macro.
2569         * include/experimental/memory: Add feature-test macro.
2570         * include/experimental/vector: Likewise.
2571         * doc/xml/manual/status_cxx2017.xml: Update status.
2572         * doc/html/manual/status.html: Regenerate.
2574 2015-05-01  Ville Voutilainen  <ville.voutilainen@gmail.com>
2576         Implement observer_ptr.
2577         * include/Makefile.am: Add new header.
2578         * include/Makefile.in: Regenerate.
2579         * include/experimental/memory: New.
2580         * testsuite/experimental/memory/observer_ptr/assignment/assign.cc: New.
2581         * testsuite/experimental/memory/observer_ptr/cons/cons.cc: New.
2582         * testsuite/experimental/memory/observer_ptr/hash/hash.cc: New.
2583         * testsuite/experimental/memory/observer_ptr/make_observer.cc: New.
2584         * testsuite/experimental/memory/observer_ptr/relops/relops.cc: New.
2585         * testsuite/experimental/memory/observer_ptr/requirements.cc: New.
2586         * testsuite/experimental/memory/observer_ptr/swap/swap.cc: New.
2587         * testsuite/experimental/memory/observer_ptr/typedefs.cc: New.
2589 2015-05-01  Jonathan Wakely  <jwakely@redhat.com>
2591         * src/filesystem/path.cc (path::compare): Do not copy strings.
2593         * acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Disable when <dirent.h>
2594         is not available.
2595         (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for fchmodat.
2596         * configure: Regenerate.
2597         * config.h.in: Regenerate.
2598         * configure.ac: Check for utime.h
2599         * include/experimental/fs_path.h (path::string<>)
2600         [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Remove stray typename keyword.
2601         * src/filesystem/dir.cc [!_GLIBCXX_HAVE_DIRENT_H] (DIR, opendir,
2602         closedir, dirent, readdir_r): Replace dummy functions with #error.
2603         (native_readdir, _Dir::advance): Use readdir when readdir_r is missing.
2604         * src/filesystem/ops.cc (do_stat, is_set): Make inline.
2605         (last_write_time) [!_GLIBCXX_USE_UTIMENSAT]: Use utime.
2606         (permissions) [!_GLIBCXX_USE_FCHMODAT]: Use chmod.
2607         (space, temp_directory_path) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Set
2608         error_code.
2610         * include/experimental/fs_path.h (path::_List): Use vector instead of
2611         list.
2612         * python/libstdcxx/v6/printers.py (StdExpPathPrinter): Adapt.
2613         * src/filesystem/path.cc: Use std::prev instead of decrementing
2614         rvalues. Fix whitespace.
2615         * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
2616         Do not decrement iterators before begin.
2618         * include/experimental/fs_dir.h: Fix use of non-reserved names.
2619         * include/experimental/fs_ops.h: Likewise.
2620         * include/experimental/fs_path.h: Likewise.
2621         * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Use
2622         C++11 when checking for support.
2624         * include/bits/locale_classes.h (locale::facet): Delete copy
2625         operations in C++11 mode.
2627         * include/bits/alloc_traits.h (__alloc_rebind): Change parameter name.
2629         * acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Disable for solaris.
2630         * configure: Regenerate.
2632 2015-05-01  Edward Smith-Rowland  <3dw4rd@verizon.net>
2634         Inline one-line erasure dispatch functions.
2635         * include/experimental/forward_list (erase_if(), erase()): Inline.
2636         * include/experimental/list (erase_if(), erase()): Inline.
2637         * include/experimental/map (erase_if(*)): Inline.
2638         * include/experimental/set (erase_if(*)): Inline.
2639         * include/experimental/string (erase_if(), erase()): Inline.
2640         * include/experimental/unordered_map (erase_if(*)): Inline.
2641         * include/experimental/unordered_set (erase_if(*)): Inline.
2643 2015-05-01  Jonathan Wakely  <jwakely@redhat.com>
2645         * doc/xml/manual/intro.xml: Link to new status_cxx2017.xml file.
2646         * doc/xml/manual/status_cxx2011.xml: Update status tables.
2647         * doc/xml/manual/status_cxx2014.xml: Likewise.
2648         * doc/xml/manual/status_cxx2017.xml: New.
2649         * doc/xml/manual/using.xml: Fix typo.
2650         * doc/html/*: Regenerate.
2652         * include/std/memory (pointer_safety, declare_reachable,
2653         undeclare_reachable, declare_no_pointers, undeclare_no_pointers,
2654         get_pointer_safety): Define.
2655         * testsuite/20_util/pointer_safety/1.cc: New.
2657 2015-04-30  Jonathan Wakely  <jwakely@redhat.com>
2659         Implement N4100 File System TS
2660         * acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Define.
2661         (GLIBCXX_CHECK_FILESYSTEM_DEPS): Define.
2662         * config.h.in: Regenerate.
2663         * configure: Regenerate.
2664         * configure.ac: Enable filesystem TS and check its dependencies.
2665         * include/Makefile.am: Add new headers.
2666         * include/Makefile.in: Regenerate.
2667         * include/bits/locale_conv.h (__do_str_code_cvt, __str_codecvt_in,
2668         __str_codecvt_out): Move code conversion logic from wstring_convert
2669         into new global functions.
2670         (wstring_convert::to_bytes, wstring_convert::from_bytes): Use new
2671         functions.
2672         (wstring_convert::_M_conv): Remove.
2673         * include/bits/quoted_string.h (_Quoted_string): Split out of iomanip.
2674         * include/experimental/filesystem: New.
2675         * include/experimental/fs_dir.h: New.
2676         * include/experimental/fs_fwd.h: New.
2677         * include/experimental/fs_ops.h: New.
2678         * include/experimental/fs_path.h: New.
2679         * include/std/iomanip (_Quoted_string): Move to bits/quoted_string.h.
2680         * python/libstdcxx/v6/printers.py (StdExpPathPrinter): Add.
2681         * src/Makefile.am (SUBDIRS): Add filesystem.
2682         * src/Makefile.in: Regenerate.
2683         * src/filesystem/Makefile.am: New.
2684         * src/filesystem/Makefile.in: New.
2685         * src/filesystem/dir.cc: New.
2686         * src/filesystem/ops.cc: New.
2687         * src/filesystem/path.cc: New.
2688         * testsuite/experimental/filesystem/operations/absolute.cc: New.
2689         * testsuite/experimental/filesystem/operations/copy.cc: New.
2690         * testsuite/experimental/filesystem/operations/current_path.cc: New.
2691         * testsuite/experimental/filesystem/path/append/path.cc: New.
2692         * testsuite/experimental/filesystem/path/assign/assign.cc: New.
2693         * testsuite/experimental/filesystem/path/assign/copy.cc: New.
2694         * testsuite/experimental/filesystem/path/compare/compare.cc: New.
2695         * testsuite/experimental/filesystem/path/compare/path.cc: New.
2696         * testsuite/experimental/filesystem/path/compare/strings.cc: New.
2697         * testsuite/experimental/filesystem/path/concat/path.cc: New.
2698         * testsuite/experimental/filesystem/path/concat/strings.cc: New.
2699         * testsuite/experimental/filesystem/path/construct/copy.cc: New.
2700         * testsuite/experimental/filesystem/path/construct/default.cc: New.
2701         * testsuite/experimental/filesystem/path/construct/locale.cc: New.
2702         * testsuite/experimental/filesystem/path/construct/range.cc: New.
2703         * testsuite/experimental/filesystem/path/decompose/extension.cc: New.
2704         * testsuite/experimental/filesystem/path/decompose/filename.cc: New.
2705         * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
2706         New.
2707         * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
2708         New.
2709         * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
2710         New.
2711         * testsuite/experimental/filesystem/path/decompose/root_name.cc:
2712         New.
2713         * testsuite/experimental/filesystem/path/decompose/root_path.cc:
2714         New.
2715         * testsuite/experimental/filesystem/path/decompose/stem.cc: New.
2716         * testsuite/experimental/filesystem/path/generic/generic_string.cc:
2717         New.
2718         * testsuite/experimental/filesystem/path/itr/traversal.cc: New.
2719         * testsuite/experimental/filesystem/path/modifiers/clear.cc: New.
2720         * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
2721         New.
2722         * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
2723         New.
2724         * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
2725         New.
2726         * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
2727         New.
2728         * testsuite/experimental/filesystem/path/modifiers/swap.cc: New.
2729         * testsuite/experimental/filesystem/path/nonmember/hash_value.cc: New.
2730         * testsuite/experimental/filesystem/path/query/empty.cc: New.
2731         * testsuite/experimental/filesystem/path/query/has_extension.cc: New.
2732         * testsuite/experimental/filesystem/path/query/has_filename.cc: New.
2733         * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
2734         New.
2735         * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
2736         New.
2737         * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
2738         New.
2739         * testsuite/experimental/filesystem/path/query/has_root_name.cc:
2740         New.
2741         * testsuite/experimental/filesystem/path/query/has_root_path.cc:
2742         New.
2743         * testsuite/experimental/filesystem/path/query/has_stem.cc: New.
2744         * testsuite/experimental/filesystem/path/query/is_relative.cc: New.
2745         * testsuite/util/testsuite_fs.h: New.
2747 2015-04-30  Edward Smith-Rowland  <3dw4rd@verizon.net>
2749         Add fundamentals TR container erasure.
2750         * include/Makefile.am: Add new headers.
2751         * include/Makefile.in: Add new headers.
2752         * include/experimental/array: New.
2753         * include/experimental/deque: New.
2754         * include/experimental/erase_if.tcc: New.
2755         * include/experimental/forward_list: New.
2756         * include/experimental/list: New.
2757         * include/experimental/map: New.
2758         * include/experimental/set: New.
2759         * include/experimental/string: New.
2760         * include/experimental/unordered_map: New.
2761         * include/experimental/unordered_set: New.
2762         * include/experimental/vector: New.
2763         * testsuite/experimental/deque/erasure.cc: New.
2764         * testsuite/experimental/forward_list/erasure.cc: New.
2765         * testsuite/experimental/list/erasure.cc: New.
2766         * testsuite/experimental/map/erasure.cc: New.
2767         * testsuite/experimental/set/erasure.cc: New.
2768         * testsuite/experimental/string/erasure.cc: New.
2769         * testsuite/experimental/unordered_map/erasure.cc: New.
2770         * testsuite/experimental/unordered_set/erasure.cc: New.
2771         * testsuite/experimental/vector/erasure.cc: New.
2773 2015-04-30  François Dumont  <fdumont@gcc.gnu.org>
2775         * include/bits/cpp_type_traits.h
2776         (__gnu_cxx::__is_normal_iterator): Delete.
2777         * include/bits/stl_algobase.h (std::__niter_base): Adapt.
2778         * include/bits/stl_iterator.h (__make_reverse_iterator): New in C++11.
2779         (std::__niter_base): Overloads for std::reverse_iterator,
2780         __gnu_cxx::__normal_iterator and std::move_iterator.
2782 2015-04-30  François Dumont  <fdumont@gcc.gnu.org>
2784         * include/bits/hashtable_policy.h (_Prime_rehash_policy::_S_n_primes):
2785         Delete.
2786         * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
2787         Remove usage of latter and compute size of the prime numbers array
2788         locally.
2790 2015-04-29  Doug Evans  <dje@google.com>
2792         PR libstdc++/65839
2793         * python/libstdcxx/v6/xmethods.py (get_bool_type): New function.
2794         Replace all lookups of "bool" with this.
2795         (get_std_size_type): New function.  Replace all lookups of std::size_t
2796         with this.
2797         (*Worker): New method get_result_type.
2798         (DequeWorkerBase.__init__): New arg val_type.  All callers updated.
2799         (ListWorkerBase.__init__): New arg val_type.  All callers updated.
2800         (UniquePtrGetWorker.__init__): New arg elem_type.  All callers updated.
2801         Delete setting of name, enabled.
2802         (UniquePtrDerefWorker.__init__): New arg elem_type.  All callers
2803         updated.  Delete setting of name.
2804         (UniquePtrMethodsMatcher): Rewrite for consistency with all other
2805         libstdc++ xmethod matchers.
2806         * testsuite/libstdc++-xmethods/array.cc: Add whatis tests.
2807         * testsuite/libstdc++-xmethods/associative-containers.cc: Ditto.
2808         * testsuite/libstdc++-xmethods/deque.cc: Ditto.
2809         * testsuite/libstdc++-xmethods/forwardlist.cc: Ditto.
2810         * testsuite/libstdc++-xmethods/list.cc: Ditto.
2811         * testsuite/libstdc++-xmethods/unique_ptr.cc: Ditto.
2812         * testsuite/libstdc++-xmethods/vector.cc: Ditto.
2814 2015-04-29  Doug Evans  <dje@google.com>
2816         Use consistent naming for value type attributes.
2817         * python/libstdcxx/v6/xmethods.py (ArrayWorkerBase): Rename _valtype
2818         to _val_type.
2819         (ArraySizeWorker, ArrayEmptyWorker): Ditto.
2820         (ArrayFrontWorker, ArrayBackWorker): Ditto.
2821         (ArrayAtWorker, ArraySubscriptWorker): Ditto.
2822         (DequeWorkerBase): Rename elemtype to val_type.
2823         (ForwardListWorkerBase): Rename _elem_type to _val_type.
2824         (ForwardListFrontWorker): Ditto.  And rename elem_address to
2825         val_address.
2826         (ForwardListMethodsMatcher): Rename elem_type to val_type.
2827         (VectorWorkerBase): Rename _elemtype to _val_type.
2829 2015-04-29  Jonathan Wakely  <jwakely@redhat.com>
2831         PR libstdc++/65760
2832         * include/std/functional (__check_func_return_type): Use is_same to
2833         avoid using _is_convertible on incomplete types.
2834         * testsuite/20_util/function/65760.cc: New.
2836         PR libstdc++/64657
2837         * include/bits/basic_string (basic_string::_S_copy_chars): Cast
2838         expression to void.
2839         * include/bits/locale_facets_nonio.tcc (money_get::_M_extract,
2840         time_get::_M_extract_num, time_get::_M_extract_name,
2841         time_get::_M_extract_wday_or_month): Likewise.
2842         * include/bits/stl_algo.h (__includes, __replace_copy_if,
2843         __is_sorted_until, __is_permutation, transform): Likewise.
2844         * include/bits/stl_algobase.h (swap_ranges, __copy_move::__copy_m,
2845         __equal::equal, __lexicographical_compare_impl, equal): Likewise.
2846         * include/bits/stl_numeric.h (inner_product): Likewise.
2847         * include/bits/stl_uninitialized.h (__uninitialized_copy_a): Likewise.
2848         * testsuite/util/testsuite_iterators.h (output_iterator_wrapper,
2849         input_iterator_wrapper): Declare unusable comma operator.
2850         * testsuite/21_strings/basic_string/cons/char/64657.cc: New.
2851         * testsuite/21_strings/basic_string/modifiers/assign/char/64657.cc:
2852         New.
2854 2015-04-28  Doug Evans  <dje@google.com>
2856         * testsuite/libstdc++-xmethods/list.cc (_GLIBCXX_USE_CXX11_ABI):
2857         Define to zero.
2859 2015-04-28  Jonathan Wakely  <jwakely@redhat.com>
2861         * include/bits/stl_algo.h (random_shuffle): Only define for hosted
2862         implementations.
2864 2015-04-28  Jonathan Wakely  <jwakely@redhat.com>
2866         * Makefile.am (SUBDIRS): Move python to hosted_source.
2867         * Makefile.in: Regenerate.
2868         * acinclude.m4 (glibcxx_SUBDIRS): Reorder.
2869         * configure: Regenerate.
2871 2015-04-28  Marc Glisse  <marc.glisse@inria.fr>
2873         PR libstdc++/65883
2874         * include/std/limits (numeric_limits): Add missing unsigned.
2876 2015-04-28  Stephan Bergmann  <sbergman@redhat.com>
2878         * include/debug/vector (_Safe_vector::operator=): Add missing returns.
2880 2015-04-28  Jonathan Wakely  <jwakely@redhat.com>
2882         PR libstdc++/60333
2883         * include/std/type_traits (__make_unsigned_selector<_Tp, false, true>):
2884         Handle enumeration types larger than sizeof(long).
2885         (__make_signed_selector<_Tp, false, true>): Find unsigned type then
2886         make it signed.
2887         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
2888         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
2889         Likewise.
2890         * testsuite/20_util/make_signed/requirements/typedefs-3.cc: New.
2891         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
2892         dg-error.
2893         * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: New.
2895         PR libstdc++/61645
2896         * include/bits/forward_list.h (forward_list::splice_after): Add
2897         noexcept.
2898         * include/bits/forward_list.tcc (forward_list::splice_after):
2899         Likewise.
2901         PR libstdc++/65631
2902         * include/bits/random.h (seed_seq) Define copy constructor and copy
2903         assignment as deleted.
2904         * testsuite/26_numerics/random/seed_seq/cons/65631.cc: New.
2906         * libsupc++/exception (uncaught_exceptions): Add comment. Reorder #if.
2907         * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
2908         Use -std=gnu++1z. Check feature-test macro.
2910         * include/std/type_traits (void_t): Add.
2911         * testsuite/20_util/void_t/1.cc: New.
2913 2015-04-28  Tim Shen  <timshen@google.com>
2915         * include/bits/regex.tcc: Handle regex_constants::__polynomial.
2916         * include/bits/regex_automaton.tcc: Throw exception when parsing
2917         back-reference with flag __polynomial.
2918         * include/bits/regex_constants.h: Add extension flag
2919         syntax_option_type __polynomial.
2920         * bits/regex_executor.tcc: Still let BFS process ECMAScript.
2921         Alternative operation will be fixed in the coming refactoring.
2922         * testsuite/28_regex/algorithms/regex_search/61424.cc: Turn
2923         loose match_search_debug to use DFS only.
2925 2015-04-27  Sandra Loosemore  <sandra@codesourcery.com>
2927         PR libstdc++/65909
2928         * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale):
2929         Make the generated test program fail gracefully if the target
2930         doesn't support passing command-line arguments.
2932 2015-04-27  Federico Lenarduzzi  <federico.lenarduzzi@tallertechnologies.com>
2933             Jonathan Wakely  <jwakely@redhat.com>
2935         * libsupc++/eh_catch.cc (uncaught_exception, uncaught_exceptions):
2936         Return false or zero if the library is built without exceptions.
2937         * libsupc++/eh_term_handler.cc: Disable verbose terminate handler if
2938         the library is built without exceptions.
2940 2015-04-27  Ville Voutilainen  <ville.voutilainen@gmail.com>
2942         * config/abi/pre/gnu.ver: Fix comment.
2944         Add support for std::uncaught_exceptions.
2945         * acinclude.m4: Bump libtool_VERSION.
2946         * config/abi/pre/gnu.ver: Export the new symbol.
2947         * configure: Regenerate.
2948         * libsupc++/eh_catch.cc (uncaught_exceptions): New.
2949         * libsupc++/exception (uncaught_exceptions): New.
2950         * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc: New.
2951         * testsuite/util/testsuite_abi.cc: Add 3.4.22 as the latest version.
2953 2015-04-27  Dmitry Prokoptsev  <dprokoptsev@gmail.com>
2954             Michael Hanselmann  <public@hansmi.ch>
2956         PR libstdc++/62258
2957         * libsupc++/eh_ptr.cc (rethrow_exception): Increment count of
2958         uncaught exceptions.
2959         * testsuite/18_support/exception_ptr/62258.cc: New.
2961 2015-04-27  Jonathan Wakely  <jwakely@redhat.com>
2963         * doc/xml/manual/extensions.xml: Add cross-reference.
2964         * doc/html/manual/ext_compile_checks.html: Regenerate.
2966 2015-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
2968         * config/os/generic/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK): Define.
2969         * configure.host (os_include_dir): Set to "os/generic" for linux-musl*.
2971 2015-04-22  Renlin Li  <renlin.li@arm.com>
2973         * testsuite/lib/dg-options.exp (dg-require-thread-fence): New.
2974         * testsuite/lib/libstdc++.exp (check_v3_target_thread_fence): New.
2975         * testsuite/29_atomics/atomic_flag/clear/1.cc: Use it.
2976         * testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc: Likewise.
2977         * testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc: Likewise.
2979 2015-04-21  Jonathan Wakely  <jwakely@redhat.com>
2981         * doc/xml/manual/configure.xml: Update descriptions of options
2982         affecting dual ABI and add cross-references.
2983         * doc/xml/manual/strings.xml: Clarify that string isn't COW now.
2984         * doc/xml/manual/using.xml: Document ABI transition.
2985         * doc/html/*: Regenerate.
2987         * doc/xml/manual/abi.xml: Use uppercase for C++ Standard Library.
2988         * doc/xml/manual/using.xml: Document newer -std options. Use better
2989         examples of nested namespaces.
2991 2015-04-20  Jonathan Wakely  <jwakely@redhat.com>
2993         * doc/xml/manual/concurrency_extensions.xml: Update documentation
2994         on atomics.
2995         * doc/xml/manual/using.xml: Likewise. Improve markup.
2996         * doc/html/*: Regenerate.
2998 2015-04-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3000         * scripts/extract_symvers.pl: Ignore elfdump error output.
3002 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
3004         PR libstdc++/61347
3005         * include/bits/stl_iterator_base_funcs.h (_List_iterator,
3006         _List_const_iterator): Declare.
3007         (__distance): Declare new overloads for _List_iterator and
3008         _List_const_iterator.
3009         * include/bits/stl_list.h (__distance): New overloads for
3010         _List_iterator and _List_const_iterator.
3011         * testsuite/23_containers/list/61347.cc: New testcase.
3013 2015-04-14  Jonathan Wakely  <jwakely@redhat.com>
3015         * doc/xml/manual/evolution.xml: Fix typos.
3016         * doc/html/manual/api.html: Regenerate.
3018 2015-04-14  Hans-Peter Nilsson  <hp@axis.com>
3020         * testsuite/29_atomics/atomic/62259.cc: Assert atomic
3021         alignment is larger-equal, not equal, to default alignment.
3023 2015-04-13  Jonathan Wakely  <jwakely@redhat.com>
3025         PR libstdc++/65754
3026         * config/abi/pre/gnu.ver: Export base object constructors for
3027         fstreams.
3028         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3029         * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
3030         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
3031         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
3032         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3033         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
3034         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update
3035         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3036         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
3037         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3038         * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
3039         * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
3040         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
3041         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
3042         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3043         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3044         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Update.
3045         * testsuite/27_io/basic_fstream/cons/base.cc: New.
3047 2015-04-13  Jonathan Wakely  <jwakely@redhat.com>
3049         * doc/xml/manual/evolution.xml: Document changes since 4.5 release.
3050         * doc/html/*: Regenerate.
3052 2015-04-12  Uros Bizjak  <ubizjak@gmail.com>
3054         * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
3056 2015-04-10  Andreas Schwab  <schwab@linux-m68k.org>
3058         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
3060         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
3062 2015-04-10  Jonathan Wakely  <jwakely@redhat.com>
3064         * doc/xml/manual/test.xml: Improve documentation on running a subset
3065         of tests.
3066         * doc/html/manual/test.html: Regenerate.
3068 2015-04-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3070         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update
3071         for GCC 5.1 release.
3072         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
3073         Likewise.
3075 2015-04-10  Jonathan Wakely  <jwakely@redhat.com>
3077         * include/std/shared_mutex (shared_timed_mutex): Add comments to
3078         explain the logic in the non-pthread_rwlock_t version.
3079         (_Mutex): Remove redundant type.
3080         (_M_n_readers): Rename to _S_max_readers.
3081         (_M_write_entered, _M_readers): New convenience functions.
3082         (lock, lock_shared, try_lock_shared, unlock_shared): Use convenience
3083         functions. Use predicates with condition variables. Simplify bitwise
3084         operations.
3085         (try_lock_for, try_shared_lock_for): Convert duration to time_point
3086         and call try_lock_until or try_shared_lock_until respectively.
3087         (try_lock_until, try_shared_lock_until): Wait on the condition
3088         variables until the specified time passes.
3089         (unlock): Add Debug Mode assertion.
3090         (unlock_shared): Add Debug Mode assertion.
3091         * testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: New.
3093         * include/std/shared_mutex (shared_timed_mutex): Only use
3094         pthread_rwlock_t when the POSIX Timeouts option is supported.
3095         * testsuite/30_threads/shared_lock/cons/5.cc: Remove
3096         dg-require-gthreads-timed.
3097         * testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
3098         * testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
3099         * testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
3101 2015-04-09  H.J. Lu  <hongjiu.lu@intel.com>
3103         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Update.
3105 2015-04-09  Jonathan Wakely  <jwakely@redhat.com>
3106             Richard Henderson  <rth@redhat.com>
3108         PR libstdc++/65147
3109         * include/bits/atomic_base.h (__atomic_base<_ITp>): Increase
3110         alignment.
3111         * include/std/atomic (atomic): For types with a power of two size set
3112         alignment to at least the size.
3113         * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3114         * testsuite/29_atomics/atomic/65147.cc: New.
3115         * testsuite/29_atomics/atomic_integral/65147.cc: New.
3117 2015-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3119         * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
3120         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
3121         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
3123 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
3125         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3126         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3127         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
3128         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3129         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3130         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3131         * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
3132         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3134 2015-03-30  Jonathan Wakely  <jwakely@redhat.com>
3136         PR libstdc++/65630
3137         * config/abi/pre/gnu.ver: Export operator+ for new strings.
3138         * testsuite/21_strings/basic_string/operators/char/65630.cc: New.
3139         * testsuite/21_strings/basic_string/operators/wchar_t/65630.cc: New.
3141 2015-03-28  Tim Shen  <timshen@google.com>
3143         PR libstdc++/65420
3144         * include/bits/regex_constants.h: Use constexpr variables for flags.
3145         * testsuite/28_regex/constants/constexpr.cc: New testcase.
3147 2015-03-27  Jonathan Wakely  <jwakely@redhat.com>
3149         PR libstdc++/65499
3150         * include/std/chrono: Add using-directive for literals to std::chrono.
3151         * testsuite/20_util/duration/literals/65499.cc: New.
3153 2015-03-26  Jonathan Wakely  <jwakely@redhat.com>
3155         PR libstdc++/58038
3156         PR libstdc++/60421
3157         * include/std/thread (this_thread::sleep_for): Check for negative
3158         durations.
3159         (this_thread::sleep_until): Check for times in the past.
3160         * testsuite/30_threads/this_thread/58038.cc: New.
3161         * testsuite/30_threads/this_thread/60421.cc: New.
3163 2015-03-26  Jonathan Wakely  <jwakely@redhat.com>
3165         PR libstdc++/62259
3166         PR libstdc++/65147
3167         * include/std/atomic (atomic<T>): Increase alignment for types with
3168         the same size as one of the integral types.
3169         * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3170         * testsuite/29_atomics/atomic/62259.cc: New.
3172 2015-03-26  Richard Henderson  <rth@redhat.com>
3174         PR libstdc++/65033
3175         * include/bits/atomic_base.h (__atomic_base<T>::is_lock_free): Build
3176         a fake pointer indicating type alignment.
3177         (__atomic_base<T *>::is_lock_free): Likewise.
3178         * include/std/atomic (atomic<T>::is_lock_free): Likewise.
3180 2015-03-25  Alan Lawrence  <alan.lawrence@arm.com>
3182         PR libstdc++/33394
3183         * testsuite/21_strings/basic_string/pthread33394.cc: Use
3184         dg-additional-options.
3186 2015-03-25  Paolo Carlini  <paolo.carlini@oracle.com>
3188         PR libstdc++/65543
3189         * include/std/istream (operator>>(basic_istream<>&&, _Tp&): Revert
3190         thinko in r150387.
3191         * include/std/ostream (operator<<(basic_ostream<>&&, const _Tp&):
3192         Likewise.
3193         * testsuite/27_io/rvalue_streams-2.cc: New.
3195 2015-03-24  Jonathan Wakely  <jwakely@redhat.com>
3197         PR libstdc++/33394
3198         * testsuite/21_strings/basic_string/pthread33394.cc: Add test.
3200 2015-03-23  Jonathan Wakely  <jwakely@redhat.com>
3202         PR libstdc++/64967
3203         * acinclude.m4: Disable dual ABI when gnu-versioned-namespace in use.
3204         * configure: Regenerate.
3205         * src/c++11/compatibility-c++0x.cc (error_category), generic_category,
3206         system_category): Use macros for versioned namespace.
3207         * src/c++11/futex.cc: Add missing end macro for versioned namespace.
3209 2015-03-20  James Greenhalgh  <james.greenhalgh@arm.com>
3211         * testsuite/17_intro/headers/c++1998/all_attributes.cc: Disable
3212         test for unused for ARM.
3213         * testsuite/17_intro/headers/c++200x/all_attributes.cc: Likewise.
3214         * testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise.
3216 2015-03-20  Jonathan Wakely  <jwakely@redhat.com>
3218         * include/bits/c++config (__gnu_cxx::__cxx11): Define new namespace.
3219         * include/ext/codecvt_specializations.h (encoding_state,
3220         encoding_char_traits): Remove abi-tag and use inline namespace.
3221         * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error line.
3223 2015-03-19  Jason Merrill  <jason@redhat.com>
3225         * config/locale/gnu/messages_members.cc: Revert abi-tag change.
3226         * src/c++11/cxx11-shim_facets.cc: Revert abi-tag change.
3228 2015-03-18  Jonathan Wakely  <jwakely@redhat.com>
3230         PR c++/65046
3231         * config/locale/gnu/messages_members.cc (Catalog_info, Catalogs,
3232         get_catalogs): Add abi-tag.
3233         * include/ext/codecvt_specializations.h (encoding_state,
3234         encoding_char_traits): Likewise.
3235         * src/c++11/cxx11-ios_failure.cc (io_error_category): Likewise.
3236         * src/c++11/cxx11-shim_facets.cc (__any_string::operator basic_string,
3237         numpunct_shim, collate_shim, time_get_shim, moneypunct_shim,
3238         money_get_shim, money_put_shim, messages_shim): Likewise.
3239         * src/c++11/future.cc (future_error_category::message): Likewise.
3240         * src/c++11/system_error.cc (generic_error_category::message,
3241         system_error_category::message): Likewise.
3242         (__sso_string): Disable -Wabi-tag warnings.
3244 2015-03-18  Jonathan Wakely  <jwakely@redhat.com>
3246         PR libstdc++/13631
3247         * config/locale/gnu/messages_members.cc (get_glibc_msg): Fix fallback
3248         implementation for old glibc. Fix whitespace.
3250 2015-03-18  Jonathan Wakely  <jwakely@redhat.com>
3251             Torvald Riegel  <triegel@redhat.com>
3253         * acinclude.m4 (GLIBCXX_CHECK_GTHREADS): Check for pthread_rwlock_t.
3254         * config.h.in: Regenerate.
3255         * configure: Regenerate.
3256         * include/std/shared_mutex: Check _GLIBCXX_USE_PTHREAD_RWLOCK_T.
3257         (shared_timed_mutex::_M_rwlock): Use PTHREAD_RWLOCK_INITIALIZER.
3258         (shared_timed_mutex::lock_shared()): Retry on EAGAIN.
3259         (shared_timed_mutex::try_lock_shared_until()): Retry on EAGAIN and
3260         EDEADLK.
3262 2015-03-17  Jonathan Wakely  <jwakely@redhat.com>
3264         * libsupc++/nested_exception.h: Do not try to derive from final
3265         classes.
3266         * testsuite/18_support/nested_exception/throw_with_nested.cc: Test
3267         final class.
3269         * testsuite/30_threads/shared_lock/modifiers/1.cc: Remove name of
3270         unused exception variable.
3271         * testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
3272         * testsuite/30_threads/shared_lock/modifiers/2.cc: Remove duplicate
3273         test.
3274         * testsuite/30_threads/unique_lock/modifiers/2.cc: Likewise.
3276 2015-03-13  Jonathan Wakely  <jwakely@redhat.com>
3278         * acinclude.m4: Make --enable-libstdcxx-time=auto work for dragonfly.
3279         * configure: Regenerate.
3281         * include/experimental/system_error: Fix include guard.
3283 2015-03-12  Renlin Li  <renlin.li@arm.com>
3285         * testsuite/27_io/ios_base/sync_with_stdio/1.cc: Remove xfail for
3286         wrapped target.
3288 2015-03-10  Tim Shen  <timshen@google.com>
3290         PR libstdc++/64441
3291         * include/bits/regex.h (match_results<>::size,
3292         match_results<>::position, match_results<>::str,
3293         match_results<>::operator[], match_results<>::prefix,
3294         match_results<>::suffix, match_results<>::end,
3295         match_results<>::_M_resize, match_results<>::_M_unmatched_sub,
3296         match_results<>::_M_prefix, match_results<>::_M_suffix): Remove
3297         global __unmatched_sub. Add unmatched submatch as part of
3298         match_results.
3299         * include/bits/regex.tcc (__regex_algo_impl<>, regex_replace<>,
3300         regex_iterator<>::operator++): Adjust to use match_results::_M_prefix.
3301         * testsuite/28_regex/match_results/out_of_range_submatches.cc:
3302         New testcases.
3304 2015-03-09  Jonathan Wakely  <jwakely@redhat.com>
3306         PR libstdc++/64467
3307         * testsuite/28_regex/traits/char/isctype.cc: Don't test newline
3308         for newlib targets. Really fix mixed line-endings this time.
3310 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
3312         * include/std/future (future_error(error_code)): Construct base
3313         class with error_code's message.
3314         * src/c++11/future.cc (future_error::what()): Do not call c_str() on
3315         temporary string.
3317 2015-03-05  Jonathan Wakely  <jwakely@redhat.com>
3319         * include/bits/locale_conv.h (wstring_convert::_M_conv): Handle
3320         noconv result.
3321         * testsuite/22_locale/conversions/string/2.cc: Also test UTF-8.
3322         * testsuite/22_locale/conversions/string/3.cc: Likewise, and UTF-16.
3324 2015-03-04  Jonathan Wakely  <jwakely@redhat.com>
3326         PR libstdc++/64797
3327         * include/bits/locale_conv.h (wstring_convert::_M_conv): Handle
3328         incomplete multibyte sequences correctly.
3329         * include/std/codecvt (codecvt_utf8, codecvt_utf16,
3330         codecvt_utf8_utf16): Limit _Maxcode to maximum Unicode code point.
3331         * src/c++11/codecvt.cc (invalid_mb_sequence, incomplete_mb_character):
3332         Define constants.
3333         (is_high_surrogate, is_low_surrogate, surrogate_pair_to_code_point):
3334         Define convenience functions.
3335         (read_utf8_code_point): Return relevant constant to distinguish
3336         incomplete characters from invalid sequences.
3337         (read_utf16_code_point): Likewise. Check for invalid sequences.
3338         (ucs4_in, utf16_in): Use incomplete_mb_character constant.
3339         (utf16_out): Check for invalid sequences.
3340         (utf16_span): Fix condition.
3341         (ucs2_out): Use is_high_surrogate.
3342         (ucs2_in): Use incomplete_mb_character constant and fix condition.
3343         * testsuite/22_locale/codecvt/char16_t.cc: Fix whitespace.
3344         * testsuite/22_locale/conversions/buffer/1.cc: New.
3345         * testsuite/22_locale/conversions/string/2.cc: Use char16_t and
3346         char32_t instead of wchar_t.
3347         * testsuite/22_locale/conversions/string/3.cc: New.
3349 2015-03-03  Iain Sandoe  <iain@codesourcery.com>
3351         PR libstdc++/64883
3352         * testsuite/17_intro/headers/c++1998/all_attributes.cc: Don't check
3353         visibility for Darwin.
3354         * testsuite/17_intro/headers/c++200x/all_attributes.cc: Likewise, and
3355         also deprecated.
3356         * testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise.
3358 2015-03-02  Jonathan Wakely  <jwakely@redhat.com>
3360         PR libstdc++/65279
3361         * include/std/scoped_allocator (__inner_type_impl,
3362         scoped_allocator_adaptor): Add defaulted copy assignment and move
3363         assignment operators.
3364         * testsuite/20_util/scoped_allocator/65279.cc: New.
3366 2015-03-02  Jonathan Wakely  <jwakely@redhat.com>
3368         PR libstdc++/64367
3369         * include/std/stdexcept (__sso_string): Don't use non-static member
3370         in sizeof.
3372 2015-02-28  Matthias Klose  <doko@ubuntu.com>
3374         PR libstdc++/65246
3375         * python/libstdcxx/v6/__init__.py: Use explicit relative imports.
3377 2015-02-22  Jonathan Wakely  <jwakely@redhat.com>
3379         * doc/xml/manual/status_cxx2011.xml: Remove duplicated information.
3380         * doc/html/manual/status.html: Regenerate.
3382 2015-02-20  Jonathan Wakely  <jwakely@redhat.com>
3384         PR libstdc++/64695
3385         * python/libstdcxx/v6/printers.py (StdTuplePrinter): Handle new
3386         tuple layout.
3388         * doc/xml/manual/status_cxx2011.xml: Document implementation-defined
3389         behavior.
3390         * doc/html/manual/status.html: Regenerate.
3392 2015-02-19  Jonathan Wakely  <jwakely@redhat.com>
3394         PR libstdc++/58357
3395         * include/bits/algorithmfwd.h (rotate): Move to inline namespace _V2.
3396         * include/bits/stl_algo.h (__rotate, rotate): Likewise.
3398 2015-02-19  Hans-Peter Nilsson  <hp@axis.com>
3400         PR testsuite/65093
3401         * testsuite/26_numerics/random/binomial_distribution/operators/values.cc
3402         (test01): Add explanatory comment.  Keep only the bd1 sub-test and
3403         split out bd2, bd3, bd4, and bd5 sub-tests into...
3404         * testsuite/26_numerics/random/binomial_distribution/operators/values2.cc,
3405         testsuite/26_numerics/random/binomial_distribution/operators/values3.cc,
3406         testsuite/26_numerics/random/binomial_distribution/operators/values4.cc,
3407         testsuite/26_numerics/random/binomial_distribution/operators/values5.cc:
3408         New separate files with the old parts.
3410 2015-02-18  Jonathan Wakely  <jwakely@redhat.com>
3412         * src/c++11/codecvt.cc (write_utf16_code_point): Fix code to output
3413         surrogate pairs.
3414         (utf16_in): Pass mode argument to write_utf16_code_point.
3415         (codecvt<char16_t, char, mbstate_t>::do_in): Set mode according to
3416         native byte order.
3417         * testsuite/22_locale/codecvt/char16_t.cc: New.
3418         * testsuite/22_locale/codecvt/in/wchar_t/1.cc: Fix typo.
3420         * testsuite/22_locale/codecvt/char16_t.cc: Add dg-require-cstdint.
3421         * testsuite/22_locale/codecvt/char32_t.cc: Likewise.
3423 2015-02-17  Rüdiger Sonderfeld  <ruediger@c-plusplus.de>
3424             Jonathan Wakely  <jwakely@redhat.com>
3426         * testsuite/22_locale/codecvt/char32_t.cc: New.
3428 2015-02-17  Jonathan Wakely  <jwakely@redhat.com>
3430         PR libstdc++/65085
3431         * include/bits/basic_string.h (basic_string(basic_string&&)): Ensure
3432         empty string gets null-terminated.
3433         * testsuite/21_strings/basic_string/cons/char/65085.cc: New.
3435 2015-02-13  Matthew Wahab  <matthew.wahab@arm.com>
3437         * testsuite/28_regex/traits/char/isctype.cc (test01): Fix
3438         mixed line-endings introduced in last change.
3440 2015-02-12  Matthew Wahab  <matthew.wahab@arm.com>
3442         * testsuite/28_regex/traits/char/isctype.cc (test01): Replace test
3443         for __NEWLIB__ macro with a dejagnu set macro.
3444         * testsuite/28_regex/traits/wchar_t/isctype.cc (test01): Likewise.
3446 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
3448         PR libstdc++/64467
3449         * testsuite/28_regex/traits/char/isctype.cc (test01):   Add newlib
3450         special case for '\n'.
3451         * testsuite/28_regex/traits/wchar_t/isctype.cc (test01): Likewise.
3453 2015-02-01  Jonathan Wakely  <jwakely@redhat.com>
3455         * src/c++11/futex.cc: Do not define for gthr-single.h targets.
3457 2015-02-01  Jonathan Wakely  <jwakely@redhat.com>
3459         PR libstdc++/64883
3460         * include/c_global/cstdio (gets): Use __deprecated__ attribute instead
3461         of deprecated.
3462         * include/c_std/cstdio (gets): Likewise.
3463         * testsuite/17_intro/headers/c++1998/all_attributes.cc: Avoid clashing
3464         with attributes used in darwin headers.
3466 2015-01-29  Jakub Jelinek  <jakub@redhat.com>
3468         * acinclude.m4 (VTV_CYGMIN): Use x$vtv_cygmin = xyes instead of
3469         $vtv_cygmin = yes.  Initialize vtv_cygmin=no unconditionally first.
3470         * configure: Regenerated.
3472 2015-01-29  H.J. Lu  <hongjiu.lu@intel.com>
3474         * acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY): Define VTV_CYGMIN
3475         after vtv_cygmin is set.
3476         * configure: Regenerated.
3478 2015-01-29  Matthias Klose  <doko@ubuntu.com>
3480         * acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY): Define VTV_CYGMIN
3481         unconditionally.
3482         * configure: Regenerate.
3484 2015-01-29  Caroline Tice  <cmtice@google.com>
3486         Committing VTV Cywin/Ming patch for Patrick Wollgast
3487         * configure: Regenerate.
3488         * libsupc++/Makefile.in: Regenerate.
3489         * src/Makefile.in: Regenerate.
3491 2015-01-29  Jonathan Wakely  <jwakely@redhat.com>
3493         * include/bits/atomic_base.h: Use __always_inline__ instead of
3494         always_inline.
3495         * include/bits/atomic_futex.h: Likewise.
3496         * include/bits/c++config: Use __abi_tag__ instead of abi_tag.
3497         * include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp: Use
3498         __packed__ instead of packed.
3499         * include/std/shared_mutex: Use __unused__ instead of unused.
3500         * testsuite/17_intro/headers/c++1998/all_attributes.cc: New.
3501         * testsuite/17_intro/headers/c++200x/all_attributes.cc: New.
3502         * testsuite/17_intro/headers/c++2014/all_attributes.cc: New.
3504 2015-01-28  Caroline Tice  <cmtice@google.com>
3506         Committing VTV Cywin/Ming patch for Patrick Wollgast
3507         * acinclude.m4: Define VTV_CYGMIN.
3508         * libsupc++/Makefile.am: Add vtv_sources only to libsupc___la_SOURCES
3509         and libsupc__convenience_la_SOURCES if VTV_CYGMIN is not set.
3510         * libsupc++/vtv_stubs.cc: Add none weak declaration of every function
3511         for Cygwin and MinGW.
3512         * src/Makefile.am: Add libvtv.la to toolexeclib_LTLIBRARIES, if
3513         VTV_CYGMIN is set. Define libvtv_la_SOURCES, libvtv_la_LDFLAGS,
3514         libvtv_la_AM_CXXFLAGS and libvtv_la_LINK if VTV_CYGMIN is set.
3516 2015-01-28  Jonathan Wakely  <jwakely@redhat.com>
3518         PR libstdc++/64828
3519         * libsupc++/Makefile.am: Compile del_opvs.cc as C++14.
3520         * libsupc++/Makefile.in: Regenerate.
3521         * src/c++11/Makefile.in: Regenerate.
3523 2015-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3525         * testsuite/lib/libstdc++.exp (v3_target_compile): Remove
3526         check for unsupported.
3527         (v3_target_compile_as_c): Likewise.
3529 2015-01-28  Richard Biener  <rguenther@suse.de>
3531         PR libstdc++/64798
3532         * libsupc++/eh_alloc.cc (struct allocated_entry): Align
3533         data member.
3534         (pool::allocate): Adjust allocation size and alignment to
3535         that change.
3536         (pool::free): Adjust pointer offsetting.
3538 2015-01-27  Jonathan Wakely  <jwakely@redhat.com>
3540         PR libstdc++/64368
3541         * include/std/shared_mutex (shared_timed_mutex::try_lock_for,
3542         shared_timed_mutex::try_lock_until): Only define when POSIX thread
3543         timeouts option is supported.
3544         (shared_timed_mutex::try_shared_lock_for,
3545         shared_timed_mutex::try_shared_lock_until): Likewise.
3547 2015-01-26  Jonathan Wakely  <jwakely@redhat.com>
3549         PR libstdc++/64368
3550         * config/locale/gnu/numeric_members.cc (numpunct<char>::~numpunct(),
3551         numpunct<wchar_t>::~numpunct()): Do not set _M_data->_M_grouping.
3552         * src/c++11/cxx11-shim_facets.cc (numpunct_shim): Remove _M_grouping
3553         and use cache's _M_grouping field.
3554         (__numpunct_fill_cache): Likewise.
3555         (__moneypunct_fill_cache): Improve comments.
3557 2015-01-26  Jonathan Wakely  <jwakely@redhat.com>
3559         * testsuite/23_containers/set/operations/2.cc: Add test for
3560         non-transparent comparison function.
3562 2015-01-25  Oleg Endo  <olegendo@gcc.gnu.org>
3564         PR target/29366
3565         * config/cpu/sh/atomicity.h (__exchange_and_add, __atomic_add): 
3566         Remove SH4A inline asm and lock based implementations and use the
3567         defaults from ext/atomicity.h.
3569 2015-01-23  Jonathan Wakely  <jwakely@redhat.com>
3571         * config/abi/pre/gnu.ver: Tighten GLIBCXX_3.4 patterns to not match
3572         new std::string constructors for byname facets.
3574 2015-01-22  Richard Biener  <rguenther@suse.de>
3576         PR libstdc++/64535
3577         * libsupc++/eh_alloc.cc: Include new.
3578         (bitmask_type): Remove.
3579         (one_buffer): Likewise.
3580         (emergency_buffer): Likewise.
3581         (emergency_used): Likewise.
3582         (dependents_buffer): Likewise.
3583         (dependents_used): Likewise.
3584         (class pool): New custom fixed-size arena, variable size object
3585         allocator.
3586         (emergency_pool): New global.
3587         (__cxxabiv1::__cxa_allocate_exception): Use new emergency_pool.
3588         (__cxxabiv1::__cxa_free_exception): Likewise.
3589         (__cxxabiv1::__cxa_allocate_dependent_exception): Likewise.
3590         (__cxxabiv1::__cxa_free_dependent_exception): Likewise.
3592 2015-01-22  Tim Shen  <timshen@google.com>
3594         PR libstdc++/64680
3595         * include/bits/regex.h (basic_regex<>::basic_regex,
3596         basic_regex<>::operator=, basic_regex<>::imbue): Conform to the
3597         standard interface.
3598         * testsuite/28_regex/basic_regex/assign/char/cstring.cc: New testcase.
3600 2015-01-22  Tim Shen  <timshen@google.com>
3602         PR libstdc++/64649
3603         * include/bits/regex.tcc (regex_traits<>::lookup_collatename,
3604         regex_traits<>::lookup_classname): Correctly narrow input chars.
3605         * testsuite/28_regex/traits/wchar_t/user_defined.cc: New testcase.
3607 2015-01-21  Jonathan Wakely  <jwakely@redhat.com>
3609         * config/abi/pre/gnu.ver: Use [jmy] for size_t parameters.
3611 2015-01-21  Jonathan Wakely  <jwakely@redhat.com>
3613         * testsuite/29_atomics/atomic/64658.cc: Test stored value.
3615 2015-01-20  Jonathan Wakely  <jwakely@redhat.com>
3617         * doc/xml/manual/status_cxx2011.xml: Remove stray dbhtml tags.
3618         * doc/xml/manual/status_cxx2014.xml: Update status.
3619         * doc/html/manual/status.html: Regenerate.
3621 2015-01-20  Jonathan Wakely  <jwakely@redhat.com>
3623         PR libstdc++/64650
3624         * include/experimental/optional (bad_optional_access): Add default
3625         constructor.
3626         * testsuite/experimental/optional/requirements.cc: Test for default
3627         constructor.
3629 2015-01-20  Jonathan Wakely  <jwakely@redhat.com>
3631         * include/bits/stl_map.h (map::find<>, map::count<>,
3632         map::lower_bound<>, map::upper_bound<>, map::equal_range<>): New
3633         member function templates to perform heterogeneous lookup.
3634         * include/bits/stl_multimap.h (multimap::find<>, multimap::count<>,
3635         multimap::lower_bound<>, multimap::upper_bound<>,
3636         multimap::equal_range<>): Likewise.
3637         * include/bits/stl_multiset.h (multiset::find<>, multiset::count<>,
3638         multiset::lower_bound<>, multiset::upper_bound<>,
3639         multiset::equal_range<>): Likewise.
3640         * include/bits/stl_set.h (set::find<>, set::count<>,
3641         set::lower_bound<>, set::upper_bound<>, set::equal_range<>): Likewise.
3642         * include/bits/stl_tree.h (_Rb_tree::_S_lower_bound_tr,
3643         _Rb_tree::_S_upper_bound_tr, _Rb_tree::_M_find_tr,
3644         _Rb_tree::_M_count_tr, _Rb_tree::_M_lower_bound_tr,
3645         _Rb_tree::_M_upper_bound_tr, _Rb_tree::_M_equal_range_tr): Likewise.
3646         * testsuite/23_containers/map/operations/2.cc: New.
3647         * testsuite/23_containers/multimap/operations/2.cc: New.
3648         * testsuite/23_containers/multiset/operations/2.cc: New.
3649         * testsuite/23_containers/set/operations/2.cc: New.
3651 2015-01-20  Jonathan Wakely  <jwakely@redhat.com>
3653         * config/abi/pre/gnu.ver: Export new constructors.
3654         * include/bits/codecvt.h (codecvt_byname): Add string constructor.
3655         (codecvt_byname<char16_t>, codecvt_byname<char32_t>): Define explicit
3656         specializations and declare explicit instantiations.
3657         * include/bits/locale_classes.h (locale, collate_byname): Add string
3658         constructors.
3659         * include/bits/locale_facets.h (ctype_byname, numpunct_byname):
3660         Likewise.
3661         * include/bits/locale_facets_nonio.h (time_get_byname,
3662         time_put_byname, moneypunct_byname, messages_byname): Likewise.
3663         * src/c++11/codecvt.cc (codecvt_byname<char16_t>,
3664         codecvt_byname<char32_t>): Define explicit instantiations.
3665         * src/c++11/locale-inst.cc (time_put_byname, codecvt_byname):
3666         Instantiate string constructors.
3667         (ctype_byname): Define string constructor.
3668         * testsuite/22_locale/codecvt_byname/1.cc: New.
3669         * testsuite/22_locale/collate_byname/1.cc: New.
3670         * testsuite/22_locale/ctype_byname/2.cc: New.
3671         * testsuite/22_locale/messages_byname/1.cc: New.
3672         * testsuite/22_locale/moneypunct_byname/1.cc: New.
3673         * testsuite/22_locale/numpunct_byname/1.cc: New.
3675 2015-01-20  Jonathan Wakely  <jwakely@redhat.com>
3677         PR libstdc++/64658
3678         * include/std/atomic (atomic_init): Define.
3679         * testsuite/29_atomics/atomic/64658.cc: New.
3681 2015-01-19  Tim Shen  <timshen@google.com>
3683         PR libstdc++/64649
3684         * include/bits/regex.tcc (regex_traits<>::lookup_collatename,
3685         regex_traits<>::lookup_classname): Support forward iterators.
3686         * testsuite/28_regex/traits/char/lookup_classname.cc: New testcases.
3687         * testsuite/28_regex/traits/char/lookup_collatename.cc: New testcase.
3689 2015-01-19  Tim Shen  <timshen@google.com>
3691         PR libstdc++/64584
3692         PR libstdc++/64585
3693         * include/bits/regex.h (basic_regex<>::basic_regex,
3694         basic_regex<>::assign, basic_regex<>::imbue,
3695         basic_regex<>::swap, basic_regex<>::mark_count): Drop NFA after
3696         imbuing basic_regex; Make assign() transactional against exception.
3697         * include/bits/regex_compiler.h (__compile_nfa<>): Add back
3698         __compile_nfa SFINAE.
3699         * include/std/regex: Adjust include order to avoid __compile_nfa
3700         forward declaration.
3701         * testsuite/28_regex/basic_regex/assign/char/string.cc: New testcase.
3702         * testsuite/28_regex/basic_regex/imbue/string.cc: New testcase.
3704 2015-01-19  Ville Voutilainen  <ville.voutilainen@gmail.com>
3705             Jonathan Wakely  <jwakely@redhat.com>
3707         * include/bits/range_access.h (begin, end): Use _GLIBCXX14_CONSTEXPR
3708         on overloads for arrays.
3709         (cbegin, cend, rbegin, rend, crbegin, crend): New.
3710         * testsuite/24_iterators/range_access_cpp14.cc: New.
3712 2015-01-18  Jonathan Wakely  <jwakely@redhat.com>
3714         PR libstdc++/64646
3715         * include/bits/stl_algo.h (__is_permutation): Also test for reaching
3716         end of the second range.
3717         * testsuite/25_algorithms/is_permutation/64646.cc: New.
3719 2015-01-18  Jonathan Wakely  <jwakely@redhat.com>
3721         * doc/xml/manual/status_cxx2011.xml: Remove note about offsetof.
3722         * doc/html/manual/status.html: Regenerate.
3724 2015-01-18  Jonathan Wakely  <jwakely@redhat.com>
3726         * include/bits/atomic_futex.h: Use mutex and condition_variable when
3727         atomic int is not lock-free. Make member variables private.
3728         * src/c++11/futex.cc: Likewise.
3730         * src/c++11/futex.cc: Fix order of includes and preprocessor condition.
3732 2015-01-17  Jonathan Wakely  <jwakely@redhat.com>
3734         PR libstdc++/64638
3735         * include/bits/atomic_futex.h: Use appropriate config macros for
3736         availability of std::mutex, std::condition and std::chrono.
3738 2015-01-17  Ville Voutilainen  <ville.voutilainen@gmail.com>
3739             Jonathan Wakely  <jwakely@redhat.com>
3741         * doc/xml/manual/status_cxx2011.xml: Update C++11 status.
3742         * doc/html/*: Regenerate.
3744 2015-01-17  Jonathan Wakely  <jwakely@redhat.com>
3746         DR 488
3747         PR libstdc++/58357
3748         * include/bits/algorithmfwd.h (rotate): Return an iterator.
3749         * include/bits/stl_algo.h (rotate, __rotate): Likewise.
3750         * testsuite/25_algorithms/rotate/dr488.cc: New.
3751         * testsuite/25_algorithms/rotate/check_type.cc: Adjust function type.
3752         * testsuite/25_algorithms/rotate/requirements/explicit_instantiation/
3753         2.cc: Likewise.
3754         * testsuite/25_algorithms/rotate/requirements/explicit_instantiation/
3755         pod.cc: Likewise.
3757 2015-01-17  Jonathan Wakely  <jwakely@redhat.com>
3759         PR libstdc++/60940
3760         * include/bits/atomic_base.h: Remove atomic integral typedefs as
3761         synonyms for __atomic_base<int> etc.
3762         * include/std/atomic: Make atomic_int a synonym for atomic<int> and
3763         likewise for all atomic integral types.
3764         * testsuite/29_atomics/atomic_integral/cons/copy_list.cc: New.
3765         * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3767 2015-01-17  Jonathan Wakely  <jwakely@redhat.com>
3769         PR libstdc++/56785
3770         * include/std/tuple (_Tuple_impl): Remove zero-element specialization
3771         and define one-element specialization.
3772         * testsuite/20_util/tuple/56785.cc: New.
3774 2015-01-17  Jonathan Wakely  <jwakely@redhat.com>
3776         * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc:
3777         Remove unused header.
3778         * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
3779         Likewise.
3780         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
3781         Likewise.
3783 2015-01-16  Jonathan Wakely  <jwakely@redhat.com>
3785         * include/bits/locale_conv.h (wstring_convert, wbuffer_convert): New.
3786         * include/std/locale: Include new header.
3787         * include/Makefile.am: Add it.
3788         * include/Makefile.in: Regenerate.
3789         * testsuite/22_locale/conversions/buffer/requirements/typedefs.cc: New.
3790         * testsuite/22_locale/conversions/string/1.cc: New.
3791         * testsuite/22_locale/conversions/string/2.cc: New.
3792         * testsuite/22_locale/conversions/string/requirements/typedefs.cc: New.
3793         * testsuite/22_locale/conversions/string/requirements/typedefs-2.cc:
3794         New.
3796 2015-01-16  Jonathan Wakely  <jwakely@redhat.com>
3798         * config/abi/pre/gnu.ver: Export new symbols.
3799         * include/Makefile.am: Add codecvt.
3800         * include/Makefile.in: Regenerate.
3801         * include/std/codecvt: New header.
3802         * src/c++11/codecvt.cc (__codecvt_utf8_base, __codecvt_utf16_base,
3803         __codecvt_utf8_utf16_base): Define specializations.
3804         * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: New.
3805         * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc: New.
3806         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
3807         New.
3809 2015-01-16  Torvald Riegel  <triegel@redhat.com>
3811         * src/c++11/futex.cc: New file.
3812         * include/bits/atomic_futex.h: New file.
3813         * include/std/future (__future_base::_State_baseV2): Use
3814         atomic_futex_unsigned instead of mutex+condvar.
3815         * src/c++11/futex.cc: Likewise.
3816         * include/Makefile.am: Add atomic_futex.h.
3817         * include/Makefile.in: Likewise.
3818         * src/c++11/Makefile.am: Add futex.cc.
3819         * src/c++11/Makefile.in: Likewise.
3821 2015-01-16  Jonathan Wakely  <jwakely@redhat.com>
3823         * acinclude.m4: Fix typo in comment.
3824         * configure: Regenerate.
3825         * include/bits/codecvt.h (codecvt<char16_t, char, mbstate_t>,
3826         codecvt<char16_t, char, mbstate_t>): Declare specializations.
3827         * include/bits/locale_facets.h: Reserve space for new specializations.
3828         * src/c++11/Makefile.am: Add codecvt.cc.
3829         * src/c++11/Makefile.in: Regenerate.
3830         * src/c++11/codecvt.cc: New.
3831         * src/c++98/Makefile.am: Compile locale_init.cc and localename.cc
3832         with -std=gnu++11.
3833         * src/c++98/Makefile.in: Regenerate.
3834         * src/c++98/locale_init.cc: Initialize new codecvt specializations.
3835         * src/c++98/localename.cc: Likewise.
3836         * config/abi/pre/gnu.ver: Exports for new codecvt specializations.
3837         * testsuite/22_locale/codecvt/utf8.cc: New.
3838         * testsuite/22_locale/locale/cons/unicode.cc: Check that new
3839         specializations are installed in locale objects.
3841 2015-01-16  Torvald Riegel  <triegel@redhat.com>
3843         * include/std/shared_mutex (shared_timed_mutex): Add POSIX-based
3844         implementation.
3846 2015-01-13  Jonathan Wakely  <jwakely@redhat.com>
3848         PR libstdc++/64571
3849         * config/abi/pre/gnu.ver: Export fstream functions using new string.
3851 2015-01-12  Jonathan Wakely  <jwakely@redhat.com>
3853         PR libstdc++/64560
3854         * src/c++11/cxx11-shim_facets.cc (locale::facet::_M_sso_shim): Check
3855         for RTTI support.
3857         PR libstdc++/64553
3858         * src/c++11/cxx11-shim_facets.cc: Check for wchar_t support.
3860 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
3862         * doc/xml/manual/parallel_mode.xml: Update for libgomp being
3863         renamed from "GNU OpenMP Runtime Library" to "GNU Offloading and
3864         Multi Processing Runtime Library".
3866 2015-01-09  Jonathan Wakely  <jwakely@redhat.com>
3868         PR libstdc++/64476
3869         * include/bits/stl_uninitialized.h (uninitialized_copy): Fix
3870         is_assignable arguments.
3871         * testsuite/20_util/specialized_algorithms/uninitialized_copy/64476.cc:
3872         New.
3874 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
3876         * libsupc++/unwind-cxx.h: Revert previous commit.
3878 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
3880         * configure.host: Add arm*-*-freebsd* port_specific_symbol_files.
3882 2015-01-09  Tim Shen  <timshen@google.com>
3884         PR libstdc++/64239
3885         * include/bits/regex.h (match_results<>::swap): Use std::swap
3886         instead of swap.
3887         * include/bits/regex_compiler.tcc (_Compiler<>::_M_quantifier):
3888         Likewise.
3889         * testsuite/28_regex/match_results/swap.cc: New testcase.
3891 2015-01-08  Jonathan Wakely  <jwakely@redhat.com>
3893         PR libstdc++/60132
3894         * include/std/type_traits (has_trivial_default_constructor,
3895         has_trivial_copy_constructor, has_trivial_copy_assign): Add deprecated
3896         attribute.
3897         * testsuite/20_util/has_trivial_copy_assign/requirements/
3898         explicit_instantiation.cc: Use -Wno-deprecated.
3899         * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
3900         Likewise.
3901         * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
3902         * testsuite/20_util/has_trivial_copy_constructor/requirements/
3903         explicit_instantiation.cc: Likewise.
3904         * testsuite/20_util/has_trivial_copy_constructor/requirements/
3905         typedefs.cc: Likewise.
3906         * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
3907         * testsuite/20_util/has_trivial_default_constructor/requirements/
3908         explicit_instantiation.c: Likewise.
3909         * testsuite/20_util/has_trivial_default_constructor/requirements/
3910         typedefs.cc: Likewise.
3911         * testsuite/20_util/has_trivial_default_constructor/value.cc:
3912         Likewise.
3913         * testsuite/20_util/pair/requirements/dr801.cc: Replace deprecated
3914         trait.
3915         * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
3916         * testsuite/util/testsuite_common_types.h: Likewise.
3918 2015-01-08  Jonathan Wakely  <jwakely@redhat.com>
3920         * include/bits/hashtable_policy.h: Use __bool_constant.
3922 2015-01-07  Jonathan Wakely  <jwakely@redhat.com>
3924         * libsupc++/Makefile.am: Compile del_ops.cc as C++14.
3925         * libsupc++/Makefile.in: Regenerate.
3927 2015-01-06  Jonathan Wakely  <jwakely@redhat.com>
3929         * config/abi/pre/gnu.ver: Fix version conflict for std::locale::name().
3931 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
3933         Update copyright years.
3935 2015-01-04  Jonathan Wakely  <jwakely@redhat.com>
3937         PR libstdc++/64483
3938         * testsuite/18_support/exception_ptr/64241.cc: Use
3939         dg-require-atomic-builtins.
3941 2015-01-02  Jonathan Wakely  <jwakely@redhat.com>
3943         * testsuite/21_strings/basic_string/modifiers/64422.cc: Fix copyright
3944         date.
3946 2015-01-02  Tim Shen  <timshen@google.com>
3948         PR libstdc++/64475
3949         * include/bits/regex_executor.tcc (_Executor<>::_M_dfs): Copy the
3950         iterator, since the original one shouldn't be mutated.
3952 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3954         PR libstdc++/64422
3955         * src/c++98/misc-inst.cc (string::erase): Add missing overloads.
3956         (string::insert): Likewise.
3957         (string::replace): Likewise.
3958         (wstring::erase): Likewise.
3959         (wstring::insert): Likewise.
3960         (wstring::replace): Likewise.
3961         * testsuite/21_strings/basic_string/modifiers/64422.cc: New testcase.
3963 2015-01-02  Jonathan Wakely  <jwakely@redhat.com>
3965         PR libstdc++/64468
3966         * doc/doxygen/user.cfg.in: Set correct TAB_SIZE.
3968 2015-01-02  Jonathan Wakely  <jwakely@redhat.com>
3970         PR libstdc++/64438
3971         * testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
3972         Revert removal of dg-require-string-conversions.
3973         * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
3974         Likewise.
3975         * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
3976         Likewise.
3977         * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
3978         Likewise.
3979         * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
3980         Likewise.
3981         * testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc:
3982         Likewise.
3983         * testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc:
3984         Likewise.
3985         * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
3986         Likewise.
3987         * testsuite/21_strings/basic_string/numeric_conversions/char/
3988         stoull.cc: Likewise.
3989         * testsuite/21_strings/basic_string/numeric_conversions/char/
3990         to_string.cc: Likewise.
3992 Copyright (C) 2015 Free Software Foundation, Inc.
3994 Copying and distribution of this file, with or without modification,
3995 are permitted in any medium without royalty provided the copyright
3996 notice and this notice are preserved.