* include/bits/shared_ptr.h (shared_ptr::shared_ptr(nullptr_t)):
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob09dd0f7e0437eb6ffa0f4a17c7ddbd1443e7a14d
1 2014-04-15  Jonathan Wakely  <jwakely@redhat.com>
3         PR libstdc++/60734
4         * include/bits/stl_tree.h (_Rb_tree::_M_end): Fix invalid cast.
6         PR libstdc++/60695
7         * include/std/atomic (atomic<_Tp>): Add static assertion.
8         * testsuite/29_atomics/atomic/60695.cc: New.
10         PR libstdc++/60594
11         * include/std/functional (function::_Callable): Exclude own type
12         from the callable checks.
13         * testsuite/20_util/function/60594.cc: New.
15         * include/bits/atomic_base.h (__atomic_base<_PTp*>::_M_type_size): Add
16         const to constexpr member functions.
18         * include/bits/shared_ptr.h (shared_ptr::shared_ptr(nullptr_t)): Use
19         delegating constructor.
20         * include/bits/shared_ptr_base.h
21         (__shared_ptr::__shared_ptr(nullptr_t)): Likewise
23         * include/std/atomic: Uglify parameter names.
25         PR c++/60786
26         * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/
27         1.cc: Fix invalid explicit instantiations with unqualified names.
28         * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/
29         2.cc: Likweise.
30         * testsuite/20_util/tuple/53648.cc: Likweise.
31         * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc:
32         Likewise.
33         * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc:
34         Likewise.
35         * testsuite/23_containers/unordered_map/requirements/
36         debug_container.cc: Likewise.
37         * testsuite/23_containers/unordered_map/requirements/
38         explicit_instantiation/3.cc: Likewise.
39         * testsuite/23_containers/unordered_multimap/requirements/debug.cc:
40         Likewise.
41         * testsuite/23_containers/unordered_multimap/requirements/
42         explicit_instantiation/3.cc: Likewise.
43         * testsuite/23_containers/unordered_multiset/requirements/debug.cc:
44         Likewise.
45         * testsuite/23_containers/unordered_multiset/requirements/
46         explicit_instantiation/3.cc: Likewise.
47         * testsuite/23_containers/unordered_set/requirements/
48         debug_container.cc: Likewise.
49         * testsuite/23_containers/unordered_set/requirements/
50         explicit_instantiation/3.cc: Likewise.
52         * testsuite/24_iterators/insert_iterator/requirements/container.cc: Do
53         not use uninitialized members in mem-initializers.
54         * testsuite/ext/throw_value/cons.cc: Fix most vexing parse.
55         * testsuite/util/testsuite_common_types.h: Update comment.
57         * include/experimental/string_view: Fix inconsistent exception specs.
59         * include/bits/shared_ptr.h (shared_ptr::shared_ptr(nullptr_t)):
60         Remove name of unused parameter.
62 2014-04-14  Jonathan Wakely  <jwakely@redhat.com>
64         * include/bits/stl_vector.h (_Vector_base::_Vector_impl,
65         _Vector_base::_M_allocate): NullablePointer requirements do not
66         include initialization from literal zero, use value-initialization.
67         * include/bits/vector.tcc (vector::_M_insert_aux,
68         vector::_M_explace_back_aux): Likewise for assignment.
70         * include/bits/allocator.h (operator==, operator!=): Add exception
71         specifications.
73         PR libstdc++/60497
74         * include/std/tuple (get): Qualify calls to prevent ADL.
75         * testsuite/20_util/tuple/60497.cc: New.
77         * include/std/tuple (tuple_element_t): Define.
78         * testsuite/20_util/tuple/tuple_element.cc: Change to compile-only
79         test.
80         * testsuite/20_util/tuple/tuple_element_t.cc: New.
82 2014-04-11  Marc Glisse  <marc.glisse@inria.fr>
84         PR libstdc++/59434
85         * include/bits/stl_iterator.h (move_iterator::reference,
86         move_iterator::operator*): Implement LWG 2106.
87         * testsuite/24_iterators/move_iterator/dr2106.cc: New file.
89 2014-04-11  Marc Glisse  <marc.glisse@inria.fr>
91         * include/std/complex (__complex_exp, pow): Specify the template
92         parameter in calls to std::polar, for expression templates.
94 2014-04-10  Andreas Schwab  <schwab@suse.de>
96         * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Remove TLS
97         symbols.
98         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
99         * config/abi/post/mips64-linux-gnu/baseline_symbols.txt: Likewise.
101         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
103 2014-04-07  Jonathan Wakely  <jwakely@redhat.com>
105         * testsuite/20_util/exchange/1.cc: Add missing return statements.
106         * testsuite/20_util/pair/40925.cc: Avoid most vexing parse.
107         * testsuite/22_locale/codecvt_byname/50714.cc: Add missing exception
108         specifications.
110 2014-04-02  Dominique d'Humieres  <dominiq@lps.ens.fr>
111             Jack Howarth <howarth@bromo.med.uc.edu>
113         PR target/54407
114         * testsuite/30_threads/condition_variable/54185.cc: Skip for
115         darwin < 11.
117 2014-04-01  Jonathan Wakely  <jwakely@redhat.com>
119         * doc/xml/manual/backwards_compatibility.xml (backwards.third.headers):
120         Update link.
121         * doc/xml/manual/policy_data_structures_biblio.xml (bibliography):
122         Fix broken links.
123         * doc/xml/manual/shared_ptr.xml (shared_ptr.impl): Likewise.
124         * doc/xml/manual/using_exceptions.xml (bibliography): Likewise.
125         * doc/xml/manual/concurrency_extensions.xml
126         (manual.ext.concurrency.impl.atomic_fallbacks): Likewise.
127         * doc/html/*: Regenerate.
129 2014-03-31  Lars Gullik Bjønnes  <larsbj@gullik.org>
130             Jonathan Wakely  <jwakely@redhat.com>
132         PR libstdc++/60270
133         * include/std/iomanip (_Quoted_string operator>>): Do not clear
134         string if input is not quoted.
135         * testsuite/27_io/manipulators/standard/char/60270.cc: New.
137 2014-03-31  Jonathan Wakely  <jwakely@redhat.com>
139         * libsupc++/eh_ptr.cc: Improve static_assert messages.
141 2014-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
143         * testsuite/18_support/exception_ptr/60612-terminate.cc
144         (terminate, f): Wrap in _GLIBCXX_USE_C99.
145         * testsuite/18_support/exception_ptr/60612-unexpected.cc: Likewise.
147 2014-03-27  Jonathan Wakely  <jwakely@redhat.com>
149         * doc/xml/manual/io.xml (std.io.objects): Additional markup.
151         * doc/xml/faq.xml (faq): Refer to clauses instead of chapters.
152         * doc/xml/manual/appendix_contributing.xml (contrib.design_notes):
153         Likewise.
154         * doc/xml/manual/backwards_compatibility.xml (backwards.third):
155         Likewise.
156         * doc/xml/manual/test.xml (test.organization.layout): Likewise.
158         * doc/xml/manual/containers.xml (associative.bitset.size_variable):
159         Fix bad s/part/chapter/ substitutions.
160         * doc/xml/manual/io.xml (std.io): Likewise.
161         * doc/xml/manual/numerics.xml (std.numerics.generalized_ops): Likewise.
162         * doc/xml/manual/strings.xml (strings.string.Cstring): Likewise.
164         * doc/html/*: Regenerate.
166 2014-03-27  Jonathan Wakely  <jwakely@redhat.com>
168         PR libstdc++/60612
169         * libsupc++/eh_ptr.cc: Assert __cxa_dependent_exception layout is
170         compatible with __cxa_exception.
171         * libsupc++/unwind-cxx.h (__cxa_dependent_exception): Add padding.
172         Fix typos in comments.
173         * testsuite/18_support/exception_ptr/60612-terminate.cc: New.
174         * testsuite/18_support/exception_ptr/60612-unexpected.cc: New.
176 2014-03-25  Jonathan Wakely  <jwakely@redhat.com>
178         PR libstdc++/60658
179         * include/bits/atomic_base.h (__atomic_base<_PTp*>::is_lock_free()):
180         Use sizeof pointer type not the element type.
181         * testsuite/29_atomics/atomic/60658.cc: New.
183 2014-03-24  Jakub Jelinek  <jakub@redhat.com>
185         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
186         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
187         * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
188         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
189         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
190         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
191         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
192         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
193         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
194         * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Remove TLS
195         entries.
197 2014-03-23  John David Anglin  <danglin@gcc.gnu.org>
199         * testsuite/23_containers/bitset/45713.cc: Skip compile on hppa*64*-*-*.
201 2014-03-23  François Dumont  <fdumont@gcc.gnu.org>
203         * include/bits/hashtable.h (_Hashtable(allocator_type)): Fix call
204         to delegated constructor.
205         (_Hashtable(size_type, _H1, key_equal, allocator_type)): Likewise.
206         (_Hashtable<_It>(_It, _It, size_type, _H1, key_equal, allocator_type)):
207         Likewise.
208         (_Hashtable(
209         initializer_list, size_type, _H1, key_equal, allocator_type)): Likewise.
211 2014-03-23  John David Anglin  <danglin@gcc.gnu.org>
213         PR libstdc++/60623
214         * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
216 2014-03-21  Jonathan Wakely  <jwakely@redhat.com>
218         PR libstdc++/60587
219         * include/debug/functions.h (_Is_contiguous_sequence): Define.
220         (__foreign_iterator): Accept additional iterator. Do not dispatch on
221         iterator category.
222         (__foreign_iterator_aux2): Likewise. Add overload for iterators
223         from different types of debug container. Use _Is_contiguous_sequence
224         instead of is_lvalue_reference.
225         (__foreign_iterator_aux3): Accept additional iterator. Avoid
226         dereferencing past-the-end iterator.
227         (__foreign_iterator_aux4): Use const value_type* instead of
228         potentially user-defined const_pointer type.
229         * include/debug/macros.h (__glibcxx_check_insert_range): Fix comment
230         and pass end iterator to __gnu_debug::__foreign_iterator.
231         (__glibcxx_check_insert_range_after): Likewise.
232         (__glibcxx_check_max_load_factor): Fix comment.
233         * include/debug/vector (_Is_contiguous_sequence): Define partial
234         specializations.
235         * testsuite/23_containers/vector/debug/57779_neg.cc: Remove
236         -std=gnu++11 option and unused header.
237         * testsuite/23_containers/vector/debug/60587.cc: New.
238         * testsuite/23_containers/vector/debug/60587_neg.cc: New.
240 2014-03-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
242         * crossconfig.m4: Support spu-*-elf* targets.
243         * configure: Regenerate.
245 2014-03-18  Jonathan Wakely  <jwakely@redhat.com>
247         PR libstdc++/60564
248         * include/std/future (__future_base::_Task_state<>): Change
249         constructors to template functions using perfect forwarding.
250         (__create_task_state): Use decayed type as stored task.
251         (packaged_task::packaged_task(_Fn&&)): Forward instead of moving.
252         * testsuite/30_threads/packaged_task/60564.cc: New.
254 2014-03-16  François Dumont  <fdumont@gcc.gnu.org>
256         * scripts/create_testsuite_files: Add testsuite/experimental in
257         the list of folders to search for tests.
259 2014-03-15  Andreas Schwab  <schwab@linux-m68k.org>
261         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: New file.
263 2014-03-15  Tim Shen  <timshen91@gmail.com>
265         * include/bits/regex.h: Add/modify comments.
266         * include/bits/regex_compiler.h: Likewise.
267         * include/bits/regex_executor.h: Likewise.
268         * include/bits/regex_executor.tcc: Likewise.
269         * include/bits/regex_scanner.h: Likewise.
271 2014-03-14  Jonathan Wakely  <jwakely@redhat.com>
273         PR ipa/58721
274         * config/abi/pre/gnu.ver (GLIBCXX_3.4.11): Remove unused pattern for
275         _ZNSt12system_errorC* symbols which are not exported on any target.
277 2014-03-12  Roland McGrath  <mcgrathr@google.com>
278             Mark Seaborn  <mseaborn@google.com>
280         PR libstdc++/59392
281         * libsupc++/eh_call.cc (__cxa_call_unexpected): Call __do_catch with
282         the address of a null pointer, not with a null pointer to pointer.
283         Copy comment for this case from eh_personality.cc:__cxa_call_unexpected.
284         * testsuite/18_support/bad_exception/59392.cc: New file.
286 2014-03-11  Jonathan Wakely  <jwakely@redhat.com>
288         PR libstdc++/60499
289         * include/debug/forward_list (forward_list::operator=(forward_list&&)):
290         Uglify name.
291         * include/debug/map (map::operator=(map&&)): Likewise.
292         * include/debug/multimap (multimap::operator=(multimap&&)): Likewise.
293         * include/debug/multiset (multiset::operator=(multiset&&)): Likewise.
294         * include/debug/set (set::operator=(set&&)): Likewise.
295         * include/debug/unordered_map
296         (unordered_map::operator=(unordered_map&&)): Likewise.
297         (unordered_multimap::operator=(unordered_multimap&&)): Likewise.
298         * include/debug/unordered_set
299         (unordered_set::operator=(unordered_set&&)): Likewise.
300         (unordered_multiset::operator=(unordered_multiset&&)): Likewise.
301         * include/debug/vector (vector::operator=(vector&&)): Likewise.
302         * testsuite/23_containers/forward_list/debug/60499.cc: New
303         * testsuite/23_containers/map/debug/60499.cc: New
304         * testsuite/23_containers/multimap/debug/60499.cc: New
305         * testsuite/23_containers/multiset/debug/60499.cc: New
306         * testsuite/23_containers/set/debug/60499.cc: New
307         * testsuite/23_containers/unordered_map/debug/60499.cc: New
308         * testsuite/23_containers/unordered_multimap/debug/60499.cc: New
309         * testsuite/23_containers/unordered_multiset/debug/60499.cc: New
310         * testsuite/23_containers/unordered_set/debug/60499.cc: New
311         * testsuite/23_containers/vector/debug/60499.cc: New
313 2014-03-05  Ed Smith-Rowland  <3dw4rd@verizon.net>
315         * doc/xml/manual/status_cxx2014.xml: Add new items and latest papers
316         for filesystem and fundamentals TS work items.
318 2014-03-04  Paolo Carlini  <paolo.carlini@oracle.com>
320         PR c++/60376
321         * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
322         Adjust dg-error directives.
324 2014-02-26  Tim Shen  <timshen91@gmail.com>
326         * include/bits/regex.tcc (match_results<>::format,
327         regex_replace<>): Update __out after calling std::copy.
328         * testsuite/28_regex/algorithms/regex_replace/char/dr2213.cc:
329         Add testcase.
330         * testsuite/28_regex/match_results/format.cc: Likewise.
332 2014-02-22  Marc Glisse  <marc.glisse@inria.fr>
334         PR libstdc++/60308
335         * include/bits/stl_deque.h (_Deque_base::_Deque_base(const
336         allocator_type&)): Remove redundant call to _M_initialize_map.
337         (deque::deque(const allocator_type&)): Initialize _Base with a
338         constructor that calls _M_initialize_map.
340         Partial revert:
342         2013-09-20  Marc Glisse  <marc.glisse@inria.fr>
343         PR libstdc++/58338
344         (_Deque_base) [_Deque_base(const allocator_type&)]: Add missing call to
345         _M_initialize_map.
347 2014-02-21  Ed Smith-Rowland  <3dw4rd@verizon.net>
349         Rename testsuite directory shared_mutex to shared_timed_mutex
350         for consistency.
351         * testsuite/30_threads/shared_mutex: Moved to...
352         * testsuite/30_threads/shared_timed_mutex: ...here
354 2014-02-20  Ed Smith-Rowland  <3dw4rd@verizon.net>
356         Rename shared_mutex to shared_timed_mutex per C++14 acceptance of N3891.
357         * include/std/shared_mutex: Rename shared_mutex to shared_timed_mutex.
358         * testsuite/30_threads/shared_lock/locking/2.cc: Ditto.
359         * testsuite/30_threads/shared_lock/locking/4.cc: Ditto.
360         * testsuite/30_threads/shared_lock/locking/1.cc: Ditto.
361         * testsuite/30_threads/shared_lock/locking/3.cc: Ditto.
362         * testsuite/30_threads/shared_lock/requirements/
363         explicit_instantiation.cc: Ditto.
364         * testsuite/30_threads/shared_lock/requirements/typedefs.cc: Ditto.
365         * testsuite/30_threads/shared_lock/cons/2.cc: Ditto.
366         * testsuite/30_threads/shared_lock/cons/4.cc: Ditto.
367         * testsuite/30_threads/shared_lock/cons/1.cc: Ditto.
368         * testsuite/30_threads/shared_lock/cons/6.cc: Ditto.
369         * testsuite/30_threads/shared_lock/cons/3.cc: Ditto.
370         * testsuite/30_threads/shared_lock/cons/5.cc: Ditto.
371         * testsuite/30_threads/shared_lock/modifiers/2.cc: Ditto.
372         * testsuite/30_threads/shared_lock/modifiers/1.cc: Ditto.
373         * testsuite/30_threads/shared_mutex/requirements/
374         standard_layout.cc: Ditto.
375         * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Ditto.
376         * testsuite/30_threads/shared_mutex/cons/1.cc: Ditto.
377         * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: Ditto.
378         * testsuite/30_threads/shared_mutex/try_lock/2.cc: Ditto.
379         * testsuite/30_threads/shared_mutex/try_lock/1.cc: Ditto.
381 2014-02-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
383         * testsuite/22_locale/num_put/put/char/14220.cc: Don't xfail
384         execution on i?86-*-solaris2.9, remove comment.
385         * testsuite/22_locale/num_put/put/wchar_t/14220.cc: Likewise.
387 2014-02-09  Richard Sandiford  <rdsandiford@googlemail.com>
389         * config/abi/post/mips64-linux-gnu/32/baseline_symbols.txt: New file.
390         * config/abi/post/mips64-linux-gnu/baseline_symbols.txt: Update.
391         * config/abi/post/mips64-linux-gnu/64/baseline_symbols.txt: Likewise.
393 2014-01-29  Jonathan Wakely  <jwakely@redhat.com>
395         * include/bits/alloc_traits.h (allocator_traits::_S_allocate): Do
396         not use varargs when argument could be non-POD.
397         (__alloctr_rebind_helper): Eliminate static const bool member by
398         using true_type and false_type.
399         (allocator_traits::__allocate_helper): Likewise.
400         (allocator_traits::__construct_helper): Likewise.
401         (allocator_traits::__destroy_helper): Likewise.
402         (allocator_traits::__maxsize_helper): Likewise.
403         (allocator_traits::__select_helper): Likewise.
404         * include/bits/ptr_traits.h (__ptrtr_rebind_helper): Likewise.
405         * include/bits/stl_tree.h (_Rb_tree::operator=(const _Rb_tree&)):
406         Remove redundant condition.
407         * include/bits/stl_vector.h (vector::operator=(const vector&)):
408         Likewise.
409         (_Vector_impl::_M_allocate, _Vector_impl::_M_deallocate): Use
410         indirection through __alloc_traits.
411         * include/ext/alloc_traits.h (__allocator_always_compares_equal):
412         Eliminate static const bool members by using true_type and false_type.
413         (__gnu_cxx::__alloc_traits::__is_custom_pointer): Optimize.
414         * testsuite/util/testsuite_allocator.h (PointerBase): Define.
415         * testsuite/20_util/allocator_traits/members/allocate_hint_nonpod.cc:
416         New.
417         * testsuite/20_util/allocator_traits/requirements/typedefs2.cc: New.
419         PR libstdc++/59829
420         * include/bits/stl_vector.h (vector::data()): Call _M_data_ptr.
421         (vector::_M_data_ptr): New overloaded functions to ensure empty
422         vectors do not dereference the pointer.
423         * testsuite/23_containers/vector/59829.cc: New.
424         * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
425         Adjust dg-error line number.
426         * testsuite/23_containers/vector/requirements/dr438/
427         constructor_1_neg.cc: Likewise.
428         * testsuite/23_containers/vector/requirements/dr438/
429         constructor_2_neg.cc: Likewise.
430         * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
431         Likewise.
433         PR libstdc++/21609
434         * include/ext/array_allocator.h: Add deprecated attribute.
436         PR libstdc++/57226
437         * doc/xml/manual/debug.xml (debug.gdb): Update documentation for
438         installation and use of python printers.
439         * doc/xml/manual/status_cxx2011.xml: Update.
440         * doc/html/*: Regenerate.
442 2014-01-28  Jonathan Wakely  <jwakely@redhat.com>
443             Kyle Lippincott  <spectral@google.com>
445         PR libstdc++/59656
446         * include/bits/shared_ptr.h (shared_ptr): Add new non-throwing
447         constructor and grant friendship to weak_ptr.
448         (weak_ptr::lock()): Use new constructor.
449         * include/bits/shared_ptr_base.h
450         (_Sp_counted_base::_M_add_ref_lock_nothrow()): Declare new function
451         and define specializations.
452         (__shared_count): Add new non-throwing constructor.
453         (__shared_ptr): Add new non-throwing constructor and grant friendship
454         to __weak_ptr.
455         (__weak_ptr::lock()): Use new constructor.
456         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
457         * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
459 2014-01-27  Jonathan Wakely  <jwakely@redhat.com>
461         PR libstdc++/59215
462         * include/bits/shared_ptr_base.h
463         (_Sp_counted_base<_S_atomic>::_M_add_ref_lock()): Use relaxed atomic
464         load.
466 2014-01-27  Jason Merrill  <jason@redhat.com>
468         Core DR 475
469         PR c++/41174
470         PR c++/59224
471         * libsupc++/eh_throw.cc (__cxa_throw): Set uncaughtExceptions.
472         * libsupc++/eh_alloc.cc (__cxa_allocate_dependent_exception)
473         (__cxa_allocate_exception): Don't set it here.
475 2014-01-26  Jonathan Wakely  <jwakely@redhat.com>
477         * include/bits/stl_map.h: Remove anachronistic comment.
478         * include/bits/stl_multimap.h: Add whitespace.
479         * testsuite/23_containers/map/modifiers/emplace/1.cc: Use
480         -std=gnu++11 instead of -std=c++11.
481         * testsuite/23_containers/map/operators/2.cc: Likewise.
482         * testsuite/23_containers/multimap/modifiers/emplace/1.cc: Likewise.
483         * testsuite/23_containers/multiset/modifiers/emplace/1.cc: Likewise.
484         * testsuite/23_containers/set/modifiers/emplace/1.cc: Likewise.
486         * acinclude.m4 (GLIBCXX_ENABLE_C99): Fix typo.
487         * configure: Regenerate.
489 2014-01-24  Ed Smith-Rowland  <3dw4rd@verizon.net>
491         PR libstdc++/59531
492         * testsuite/experimental/string_view/operations/copy/char/1.cc: New.
493         * testsuite/experimental/string_view/operations/copy/wchar_t/1.cc: New.
495 2014-01-24  Ed Smith-Rowland  <3dw4rd@verizon.net>
496             Peter A. Bigot <pab@pabigot.com>
498         PR libstdc++/59531
499         * include/experimental/string_view
500         (copy(_CharT*, size_type, size_type) const): Correct throw string.
501         Correct copy start location.
503 2014-01-24  Ed Smith-Rowland  <3dw4rd@verizon.net>
504             Peter A. Bigot <pab@pabigot.com>
506         PR libstdc++/59530
507         * include/experimental/string_view (operator[](size_type) const):
508         Fix one-off index error in debug check.
509         * testsuite/experimental/string_view/element_access/char/1.cc: Don't
510         test basic_string_view at size().
511         * testsuite/experimental/string_view/element_access/wchar_t/1.cc: Ditto.
513 2014-01-24  Ed Smith-Rowland  <3dw4rd@verizon.net>
514             Peter A. Bigot <pab@pabigot.com>
516         PR libstdc++/59529
517         * include/experimental/string_view
518         (basic_string_view(const _CharT*, size_type)): Don't care if len == 0.
519         * testsuite/experimental/string_view/operations/substr/char/1.cc:
520         Comment out catch of out_of_range; No terminating null
521         in basic_string_view.  Check begin == end.
522         * testsuite/experimental/string_view/operations/substr/wchar_t/1.cc:
523         Ditto.
525 2014-01-24  Jonathan Wakely  <jwakely@redhat.com>
527         PR libstdc++/59548
528         * include/debug/safe_base.h (_Safe_sequence_base): Define copy
529         constructor to prevent it being implicitly defined as deleted, but
530         do not copy anything.
531         * include/debug/safe_unordered_base.h (_Safe_unordered_container_base):
532         Define copy and move constructors similar to _Safe_sequence_base's.
533         * testsuite/23_containers/unordered_map/59548.cc: New.
535 2014-01-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
536             Steve Ellcey  <sellcey@mips.com>
538         * acinclude.m4 (GLIBCXX_CHECK_TMPNAM): New check for tmpnam
539         function.
540         * configure.ac: Use GLIBCXX_CHECK_TMPNAM.
541         * (configure, config.h.in): Regenerate.
542         * include/c_global/cstdio: Guard ::tmpnam with _GLIBCXX_USE_TMPNAM
544 2014-01-23  Jonathan Wakely  <jwakely@redhat.com>
546         * doc/xml/faq.xml (a-how_to_set_paths): Expand FAQ answer.
547         * doc/xml/manual/abi.xml (abi.versioning.history): Correct symver.
549         PR libstdc++/59872
550         * include/bits/stl_map.h (map::operator=(map&&)): Fix comment.
551         * include/bits/stl_multimap.h (multimap::operator=(multimap&&)):
552         Likewise.
553         * include/bits/stl_multiset.h (multiset::operator=(multiset&&)):
554         Likewise.
555         * include/bits/stl_set.h (set::operator=(set&&)): Likewise.
556         * include/bits/stl_tree.h (_Rb_tree::_M_move_data): New overloaded
557         functions to perform moving or copying of elements from rvalue tree.
558         (_Rb_tree::_Rb_tree(_Rb_tree&&)): Use _M_move_data.
559         (_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Likewise.
560         * testsuite/23_containers/map/59872.cc: New.
561         * testsuite/23_containers/map/56613.cc: Remove duplicate include.
563 2014-01-22  Jonathan Wakely  <jwakely@redhat.com>
565         * include/bits/stl_deque.h (_Deque_impl): Move comment.
567         PR libstdc++/58764
568         * include/bits/stl_deque.h (deque::deque(const allocator_type&):
569         Split into separate default constructor and constructor taking
570         allocator.
571         * include/bits/stl_list.h (list::list(const allocator_type&): Likewise.
572         * include/bits/stl_vector.h (vector::vector(const allocator_type&):
573         Likewise.
574         * include/debug/deque (deque::deque(const allocator_type&)): Likewise.
575         * include/debug/list (list::list(const _Allocator&)): Likewise.
576         * include/debug/map.h (map::map(const _Compare&, const _Allocator&)):
577         Likewise.
578         * include/debug/multimap.h
579         (multimap::multimap(const _Compare&, const _Allocator&)): Likewise.
580         * include/debug/set.h (set::set(const _Compare&, const _Allocator&)):
581         Likewise.
582         * include/debug/multiset.h
583         (multiset::multiset(const _Compare&, const _Allocator&)): Likewise.
584         * include/debug/vector (vector::vector(const allocator_type&)):
585         Likewise.
586         * include/profile/deque (deque::deque(const _Allocator&)): Likewise.
587         * include/profile/list (list::list(const _Allocator&)): Likewise.
588         * include/profile/map.h
589         (map::map(const _Compare&, const _Allocator&)): Likewise.
590         * include/profile/multimap.h
591         (multimap::multimap(const _Compare&, const _Allocator&)): Likewise.
592         * include/profile/set.h
593         (set::set(const _Compare&, const _Allocator&)): Likewise.
594         * include/profile/multiset.h
595         (multiset::multiset(const _Compare&, const _Allocator&)): Likewise.
596         * include/profile/vector (vector::vector(const _Allocator&)):
597         Likewise.
598         * testsuite/23_containers/deque/58764.cc: New.
599         * testsuite/23_containers/list/58764.cc: New.
600         * testsuite/23_containers/map/58764.cc: New.
601         * testsuite/23_containers/multimap/58764.cc: New.
602         * testsuite/23_containers/set/58764.cc: New.
603         * testsuite/23_containers/multiset/58764.cc: New.
604         * testsuite/23_containers/vector/58764.cc: New.
605         * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
606         Adjust dg-error line number.
607         * testsuite/23_containers/deque/requirements/dr438/
608         constructor_1_neg.cc: Likewise.
609         * testsuite/23_containers/deque/requirements/dr438/
610         constructor_2_neg.cc: Likewise.
611         * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
612         Likewise.
613         * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
614         Likewise.
615         * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
616         Likewise.
617         * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
618         Likewise.
619         * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
620         Likewise.
621         * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
622         Likewise.
623         * testsuite/23_containers/vector/requirements/dr438/
624         constructor_1_neg.cc: Likewise.
625         * testsuite/23_containers/vector/requirements/dr438/
626         constructor_2_neg.cc: Likewise.
627         * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
628         Likewise.
630         PR libstdc++/58764 (again)
631         * include/bits/stl_list.h (list): Make default constructor's exception
632         specification conditional.
633         * include/bits/stl_vector.h (vector): Likewise.
634         * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add noexcept
635         to default constructor.
636         * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
637         Adjust dg-error line number.
638         * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
639         Likewise.
640         * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
641         Likewise.
642         * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
643         Likewise.
644         * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
645         Likewise.
646         * testsuite/23_containers/vector/requirements/dr438/
647         constructor_1_neg.cc: Likewise.
648         * testsuite/23_containers/vector/requirements/dr438/
649         constructor_2_neg.cc: Likewise.
650         * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
651         Likewise.
653 2014-01-21  Tim Shen  <timshen91@gmail.com>
655         * include/bits/regex.tcc: Remove incorrect `nosubs` handling.
656         * include/bits/regex_scanner.tcc: Handle `nosubs` correctly.
657         * testsuite/28_regex/constants/syntax_option_type.cc: Add a test case.
659 2014-01-21  Jonathan Wakely  <jwakely@redhat.com>
661         PR libstdc++/56267
662         * include/bits/hashtable.h (__cache_default): Do not depend on
663         whether the hash function is DefaultConstructible or CopyAssignable.
664         (_Hashtable): Adjust static assertions.
665         * doc/xml/manual/containers.xml (containers.unordered.cache): Update.
666         * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
667         dg-error line number.
668         * testsuite/23_containers/unordered_set/
669         not_default_constructible_hash_neg.cc: Remove.
671 2014-01-20  François Dumont  <fdumont@gcc.gnu.org>
673         * scripts/create_testsuite_files: Add testsuite/experimental in
674         the list of folders to search for tests.
675         * include/experimental/string_view
676         (basic_string_view<>::operator[]): Comment _GLIBCXX_DEBUG_ASSERT,
677         incompatible with constexpr qualifier.
678         (basic_string_view<>::front()): Likewise.
679         (basic_string_view<>::back()): Likewise.
680         * testsuite/experimental/string_view/element_access/wchar_t/2.cc:
681         Merge dg-options directives into one.
682         * testsuite/experimental/string_view/element_access/char/2.cc:
683         Likewise. Remove invalid experimental namespace scope on
684         string_view_type.
686 2014-01-20  Jonathan Wakely  <jwakely@redhat.com>
688         PR libstdc++/56267
689         * include/bits/hashtable_policy.h (_Hash_code_base<... false>): Grant
690         friendship to _Local_iterator_base<..., false>.
691         (_Local_iterator_base): Give protected access to all existing members.
692         (_Local_iterator_base::_M_curr()): New public accessor.
693         (_Local_iterator_base::_M_get_bucket()): New public accessor.
694         (_Local_iterator_base<..., false>::_M_init()): New function to manage
695         the lifetime of the _Hash_code_base explicitly.
696         (_Local_iterator_base<..., false>::_M_destroy()): Likewise.
697         (_Local_iterator_base<..., false>): Define copy constructor and copy
698         assignment operator that use new functions to manage _Hash_code_base.
699         (operator==(const _Local_iterator_base&, const _Local_iterator_base&),
700         operator==(const _Local_iterator_base&, const _Local_iterator_base&)):
701         Use public API for _Local_iterator_base.
702         * include/debug/safe_local_iterator.h (_Safe_local_iterator): Likewise.
703         * include/debug/unordered_map (__debug::unordered_map::erase(),
704         __debug::unordered_multimap::erase()): Likewise.
705         * include/debug/unordered_set (__debug::unordered_set::erase(),
706         __debug::unordered_multiset::erase()): Likewise.
707         * testsuite/23_containers/unordered_set/56267-2.cc: New test.
709 2014-01-19  Tim Shen  <timshen91@gmail.com>
711         * include/bits/regex_compiler.h (_Comipler<>::_M_quantifier()):
712         Fix parse error of multiple consecutive quantifiers like "a**".
713         * include/bits/regex_compiler.tcc (_Comipler<>::_M_quantifier()):
714         Likewise.
715         * testsuite/28_regex/basic_regex/multiple_quantifiers.cc: New.
717 2014-01-17  François Dumont  <fdumont@gcc.gnu.org>
719         * include/profile/set.h (set): Implement C++11 allocator-aware
720         container requirements.
721         * include/profile/map.h (map): Likewise.
722         * include/profile/multiset.h (multiset): Likewise.
723         * include/profile/multimap.h (multimap): Likewise.
724         * include/profile/set.h
725         (set::operator=(const set&)): Define as default in C++11 mode.
726         (set::operator=(set&&)): Likewise.
727         * include/profile/map.h
728         (map::operator=(const map&)): Likewise.
729         (map::operator=(map&&)): Likewise.
730         * include/profile/multiset.h
731         (multiset::operator=(const multiset&)): Likewise.
732         (multiset::operator=(multiset&&)): Likewise.
733         * include/profile/multimap.h
734         (multimap::operator=(const multimap&)): Likewise.
735         (multimap::operator=(multimap&&)): Likewise.
736         * include/profile/set.h (set::operator=(std::initializer_list<>)):
737         Rely on the same operator from normal mode.
738         * include/profile/map.h (map::operator=(std::initializer_list<>)):
739         Likewise.
740         * include/profile/multiset.h
741         (multiset::operator=(std::initializer_list<>)): Likewise.
742         * include/profile/multimap.h
743         (multimap::operator=(std::initializer_list<>)): Likewise.
744         * include/profile/set.h (set::swap(set&)): Add noexcept
745         specification.
746         * include/profile/map.h (map::swap(map&)): Likewise.
747         * include/profile/multiset.h (multiset::swap(multiset&)): Likewise.
748         * include/profile/multimap.h (multimap::swap(multimap&)): Likewise.
750 2014-01-17  Tim Shen  <timshen91@gmail.com>
752         * include/bits/regex_automaton.tcc (_StateSeq<>::_M_clone()): Do not
753         use std::map.
754         * include/bits/regex_automaton.h: Do not use std::set.
755         * include/bits/regex_compiler.h (_BracketMatcher<>::_M_add_char(),
756         _BracketMatcher<>::_M_add_collating_element(),
757         _BracketMatcher<>::_M_add_equivalence_class(),
758         _BracketMatcher<>::_M_make_range()): Likewise.
759         * include/bits/regex_compiler.tcc (_BracketMatcher<>::_M_apply()):
760         Likewise.
761         * include/bits/regex_executor.h: Do not use std::queue.
762         * include/bits/regex_executor.tcc (_Executor<>::_M_main(),
763         _Executor<>::_M_dfs()): Likewise.
764         * include/std/regex: Remove <map>, <set> and <queue>.
766 2014-01-17  Tim Shen  <timshen91@gmail.com>
768         * include/bits/regex.h (__compile_nfa<>(), basic_regex<>::basic_regex(),
769         basic_regex<>::assign()): Change __compile_nfa to accept
770         const _CharT* only.
771         * include/bits/regex_compiler.h: Change _Compiler's template
772         argument from <_FwdIter, _TraitsT> to <_TraitsT>.
773         * include/bits/regex_compiler.tcc: Likewise.
775 2014-01-17  Tim Shen  <timshen91@gmail.com>
777         * include/bits/regex_compiler.h: Change _ScannerT into char-type
778         templated.
779         * include/bits/regex_scanner.h (_Scanner<>::_Scanner()): Separate
780         _ScannerBase from _Scanner; Change _Scanner's template argument from
781         _FwdIter to _CharT. Avoid use of std::map and std::set by using arrays
782         instead.
783         * include/bits/regex_scanner.tcc (_Scanner<>::_Scanner(),
784         _Scanner<>::_M_scan_normal(), _Scanner<>::_M_eat_escape_ecma(),
785         _Scanner<>::_M_eat_escape_posix(), _Scanner<>::_M_eat_escape_awk()):
786         Likewise.
787         * include/std/regex: Add <cstring> for using strchr.
789 2014-01-17  Tim Shen  <timshen91@gmail.com>
791         * bits/regex_automaton.tcc: Indentation fix.
792         * bits/regex_compiler.h (__compile_nfa<>(), _Compiler<>,
793         _RegexTranslator<> _AnyMatcher<>, _CharMatcher<>,
794         _BracketMatcher<>): Add bool option template parameters and
795         specializations to make matching more efficient and space saving.
796         * bits/regex_compiler.tcc: Likewise.
798 2014-01-15  François Dumont  <fdumont@gcc.gnu.org>
800         PR libstdc++/59712
801         * include/bits/hashtable_policy.h: Fix some long lines.
802         * include/bits/hashtable.h (__hash_code_base_access): Define and
803         use it to check its _M_bucket_index noexcept qualification. Use
804         also in place of...
805         (__access_protected_ctor): ...this.
806         * testsuite/23_containers/unordered_set/instantiation_neg.cc:
807         Adapt line number.
808         * testsuite/23_containers/unordered_set/
809         not_default_constructible_hash_neg.cc: Likewise.
811 2014-01-13  François Dumont  <fdumont@gcc.gnu.org>
813         * include/debug/set.h (set): Implement C++11 allocator-aware
814         container requirements.
815         * include/debug/map.h (map): Likewise.
816         * include/debug/multiset.h (multiset): Likewise.
817         * include/debug/multimap.h (multimap): Likewise.
818         * include/debug/set.h (set::operator=(set&&)): Add noexcept and
819         fix implementation regarding management of safe iterators.
820         * include/debug/map.h (map::operator=(map&&)): Likewise.
821         * include/debug/multiset.h (multiset::operator=(multiset&&)): Likewise.
822         * include/debug/multimap.h (multimap::operator=(multimap&&)):
823         Likewise.
824         * include/debug/set.h (set::operator=(std::initializer_list<>)):
825         Rely on the same operator from normal mode.
826         * include/debug/map.h (map::operator=(std::initializer_list<>)):
827         Likewise.
828         * include/debug/multiset.h
829         (multiset::operator=(std::initializer_list<>)): Likewise.
830         * include/debug/multimap.h
831         (multimap::operator=(std::initializer_list<>)): Likewise.
832         * include/debug/set.h (set::swap(set&)): Add noexcept
833         specification, add allocator equality check.
834         * include/debug/map.h (map::swap(map&)): Likewise.
835         * include/debug/multiset.h (multiset::swap(multiset&)): Likewise.
836         * include/debug/multimap.h (multimap::swap(multimap&)): Likewise.
838 2014-01-10  Jonathan Wakely  <jwakely@redhat.com>
840         PR libstdc++/59698
841         * doc/xml/manual/status_cxx1998.xml (iso.1998.specific): Markup
842         and stylistic improvements.
843         * doc/xml/manual/codecvt.xml (std.localization.facet.codecvt): Likewise
844         and update for C++11.
845         * doc/xml/manual/ctype.xml (std.localization.facet.ctype): Likewise.
847         PR libstdc++/59687
848         * doc/xml/manual/backwards_compatibility.xml
849         (backwards.third.nocreate_noreplace): Correct and expand.
851         PR libstdc++/59699
852         * doc/xml/manual/support.xml (std.support.types.null): Update links.
854 2014-01-09  Jonathan Wakely  <jwakely@redhat.com>
856         PR libstdc++/59738
857         * include/bits/stl_vector.h (vector<>::_M_move_assign): Restore
858         support for non-Movable types.
860         PR libstdc++/59680
861         * src/c++11/thread.cc (__sleep_for): Fix call to ::sleep.
863 2014-01-08  François Dumont  <fdumont@gcc.gnu.org>
865         * include/bits/stl_vector.h (std::vector<>::_M_move_assign): Pass
866         *this allocator instance when building temporary vector instance
867         so that *this allocator does not get moved.
868         * include/debug/safe_base.h
869         (_Safe_sequence_base(_Safe_sequence_base&&)): New.
870         * include/debug/vector (__gnu_debug::vector<>(vector&&)): Use new
871         move constructor from _Safe_sequence_base.
872         (__gnu_debug::vector<>(vector&&, const allocator_type&)): Swap
873         safe iterators if the instance is moved.
874         (__gnu_debug::vector<>::operator=(vector&&)): Likewise.
875         * testsuite/23_containers/vector/allocator/move.cc (test01): Add
876         check on a vector iterator.
877         * testsuite/23_containers/vector/allocator/move_assign.cc
878         (test02): Likewise.
879         (test03): New, test with a non-propagating allocator.
880         * testsuite/23_containers/vector/debug/move_assign_neg.cc: New.
882 2014-01-07  Tim Shen  <timshen91@gmail.com>
884         * include/bits/regex_compiler.h (_AnyMatcher<>::_AnyMatcher(),
885         _AnyMatcher<>::operator(), _AnyMatcher<>::_M_apply(),
886         _CharMatcher<>::_CharMatcher(), _CharMatcher<>::_M_translate(),
887         _BracketMatcher<>::_BracketMatcher(), _BracketMatcher<>::operator(),
888         _BracketMatcher<>::_M_add_char(),
889         _BracketMatcher<>::_M_add_collating_element(),
890         _BracketMatcher<>::_M_add_equivalence_class(),
891         _BracketMatcher<>::_M_add_character_class(),
892         _BracketMatcher<>::_M_make_range(), _BracketMatcher<>::_M_ready(),
893         _BracketMatcher<>::_M_apply(), _BracketMatcher<>::_M_make_cache()):
894         Fix _AnyMatcher behavior of POSIX style and move _M_flags
895         to template parameter; Add cache for _BracketMatcher. Adjust
896         declarations from here...
897         * include/bits/regex.h (basic_regex<>::imbue()): ...to here. Also,
898         imbuing a regex will trigger a recompilation to rebuild the cache.
899         * include/bits/regex_compiler.tcc (_Compiler<>::_M_atom(),
900         _Compiler<>::_M_bracket_expression()): Adjust matchers' caller for
901         different template bool parameters.
902         * include/bits/regex_executor.h: Remove unnecessary declarations.
903         * include/std/regex: Adjust including orders.
904         * testsuite/28_regex/traits/char/user_defined.cc: New.
905         * testsuite/28_regex/traits/wchar_t/user_defined.cc: New.
907 2014-01-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
909         * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerate.
910         * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Likewise.
911         * config/abi/post/solaris2.10/baseline_symbols.txt: Likewise.
912         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
913         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
915 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
917         Update copyright years
919 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
921         * testsuite/18_support/new_handler.cc,
922         testsuite/18_support/terminate_handler.cc,
923         testsuite/18_support/unexpected_handler.cc: Use the standard form for
924         the copyright notice.
926 Copyright (C) 2014 Free Software Foundation, Inc.
928 Copying and distribution of this file, with or without modification,
929 are permitted in any medium without royalty provided the copyright
930 notice and this notice are preserved.