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