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