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