re PR libstdc++/56267 (unordered containers require Assignable hash function)
[gcc.git] / libstdc++-v3 / ChangeLog
1 2014-01-20 Jonathan Wakely <jwakely@redhat.com>
2
3 PR libstdc++/56267
4 * include/bits/hashtable_policy.h (_Hash_code_base<... false>): Grant
5 friendship to _Local_iterator_base<..., false>.
6 (_Local_iterator_base): Give protected access to all existing members.
7 (_Local_iterator_base::_M_curr()): New public accessor.
8 (_Local_iterator_base::_M_get_bucket()): New public accessor.
9 (_Local_iterator_base<..., false>::_M_init()): New function to manage
10 the lifetime of the _Hash_code_base explicitly.
11 (_Local_iterator_base<..., false>::_M_destroy()): Likewise.
12 (_Local_iterator_base<..., false>): Define copy constructor and copy
13 assignment operator that use new functions to manage _Hash_code_base.
14 (operator==(const _Local_iterator_base&, const _Local_iterator_base&),
15 operator==(const _Local_iterator_base&, const _Local_iterator_base&)):
16 Use public API for _Local_iterator_base.
17 * include/debug/safe_local_iterator.h (_Safe_local_iterator): Likewise.
18 * include/debug/unordered_map (__debug::unordered_map::erase(),
19 __debug::unordered_multimap::erase()): Likewise.
20 * include/debug/unordered_set (__debug::unordered_set::erase(),
21 __debug::unordered_multiset::erase()): Likewise.
22 * testsuite/23_containers/unordered_set/56267-2.cc: New test.
23
24 2014-01-19 Tim Shen <timshen91@gmail.com>
25
26 * include/bits/regex_compiler.h (_Comipler<>::_M_quantifier()):
27 Fix parse error of multiple consecutive quantifiers like "a**".
28 * include/bits/regex_compiler.tcc (_Comipler<>::_M_quantifier()):
29 Likewise.
30 * testsuite/28_regex/basic_regex/multiple_quantifiers.cc: New.
31
32 2014-01-17 François Dumont <fdumont@gcc.gnu.org>
33
34 * include/profile/set.h (set): Implement C++11 allocator-aware
35 container requirements.
36 * include/profile/map.h (map): Likewise.
37 * include/profile/multiset.h (multiset): Likewise.
38 * include/profile/multimap.h (multimap): Likewise.
39 * include/profile/set.h
40 (set::operator=(const set&)): Define as default in C++11 mode.
41 (set::operator=(set&&)): Likewise.
42 * include/profile/map.h
43 (map::operator=(const map&)): Likewise.
44 (map::operator=(map&&)): Likewise.
45 * include/profile/multiset.h
46 (multiset::operator=(const multiset&)): Likewise.
47 (multiset::operator=(multiset&&)): Likewise.
48 * include/profile/multimap.h
49 (multimap::operator=(const multimap&)): Likewise.
50 (multimap::operator=(multimap&&)): Likewise.
51 * include/profile/set.h (set::operator=(std::initializer_list<>)):
52 Rely on the same operator from normal mode.
53 * include/profile/map.h (map::operator=(std::initializer_list<>)):
54 Likewise.
55 * include/profile/multiset.h
56 (multiset::operator=(std::initializer_list<>)): Likewise.
57 * include/profile/multimap.h
58 (multimap::operator=(std::initializer_list<>)): Likewise.
59 * include/profile/set.h (set::swap(set&)): Add noexcept
60 specification.
61 * include/profile/map.h (map::swap(map&)): Likewise.
62 * include/profile/multiset.h (multiset::swap(multiset&)): Likewise.
63 * include/profile/multimap.h (multimap::swap(multimap&)): Likewise.
64
65 2014-01-17 Tim Shen <timshen91@gmail.com>
66
67 * include/bits/regex_automaton.tcc (_StateSeq<>::_M_clone()): Do not
68 use std::map.
69 * include/bits/regex_automaton.h: Do not use std::set.
70 * include/bits/regex_compiler.h (_BracketMatcher<>::_M_add_char(),
71 _BracketMatcher<>::_M_add_collating_element(),
72 _BracketMatcher<>::_M_add_equivalence_class(),
73 _BracketMatcher<>::_M_make_range()): Likewise.
74 * include/bits/regex_compiler.tcc (_BracketMatcher<>::_M_apply()):
75 Likewise.
76 * include/bits/regex_executor.h: Do not use std::queue.
77 * include/bits/regex_executor.tcc (_Executor<>::_M_main(),
78 _Executor<>::_M_dfs()): Likewise.
79 * include/std/regex: Remove <map>, <set> and <queue>.
80
81 2014-01-17 Tim Shen <timshen91@gmail.com>
82
83 * include/bits/regex.h (__compile_nfa<>(), basic_regex<>::basic_regex(),
84 basic_regex<>::assign()): Change __compile_nfa to accept
85 const _CharT* only.
86 * include/bits/regex_compiler.h: Change _Compiler's template
87 argument from <_FwdIter, _TraitsT> to <_TraitsT>.
88 * include/bits/regex_compiler.tcc: Likewise.
89
90 2014-01-17 Tim Shen <timshen91@gmail.com>
91
92 * include/bits/regex_compiler.h: Change _ScannerT into char-type
93 templated.
94 * include/bits/regex_scanner.h (_Scanner<>::_Scanner()): Separate
95 _ScannerBase from _Scanner; Change _Scanner's template argument from
96 _FwdIter to _CharT. Avoid use of std::map and std::set by using arrays
97 instead.
98 * include/bits/regex_scanner.tcc (_Scanner<>::_Scanner(),
99 _Scanner<>::_M_scan_normal(), _Scanner<>::_M_eat_escape_ecma(),
100 _Scanner<>::_M_eat_escape_posix(), _Scanner<>::_M_eat_escape_awk()):
101 Likewise.
102 * include/std/regex: Add <cstring> for using strchr.
103
104 2014-01-17 Tim Shen <timshen91@gmail.com>
105
106 * bits/regex_automaton.tcc: Indentation fix.
107 * bits/regex_compiler.h (__compile_nfa<>(), _Compiler<>,
108 _RegexTranslator<> _AnyMatcher<>, _CharMatcher<>,
109 _BracketMatcher<>): Add bool option template parameters and
110 specializations to make matching more efficient and space saving.
111 * bits/regex_compiler.tcc: Likewise.
112
113 2014-01-15 François Dumont <fdumont@gcc.gnu.org>
114
115 PR libstdc++/59712
116 * include/bits/hashtable_policy.h: Fix some long lines.
117 * include/bits/hashtable.h (__hash_code_base_access): Define and
118 use it to check its _M_bucket_index noexcept qualification. Use
119 also in place of...
120 (__access_protected_ctor): ...this.
121 * testsuite/23_containers/unordered_set/instantiation_neg.cc:
122 Adapt line number.
123 * testsuite/23_containers/unordered_set/
124 not_default_constructible_hash_neg.cc: Likewise.
125
126 2014-01-13 François Dumont <fdumont@gcc.gnu.org>
127
128 * include/debug/set.h (set): Implement C++11 allocator-aware
129 container requirements.
130 * include/debug/map.h (map): Likewise.
131 * include/debug/multiset.h (multiset): Likewise.
132 * include/debug/multimap.h (multimap): Likewise.
133 * include/debug/set.h (set::operator=(set&&)): Add noexcept and
134 fix implementation regarding management of safe iterators.
135 * include/debug/map.h (map::operator=(map&&)): Likewise.
136 * include/debug/multiset.h (multiset::operator=(multiset&&)): Likewise.
137 * include/debug/multimap.h (multimap::operator=(multimap&&)):
138 Likewise.
139 * include/debug/set.h (set::operator=(std::initializer_list<>)):
140 Rely on the same operator from normal mode.
141 * include/debug/map.h (map::operator=(std::initializer_list<>)):
142 Likewise.
143 * include/debug/multiset.h
144 (multiset::operator=(std::initializer_list<>)): Likewise.
145 * include/debug/multimap.h
146 (multimap::operator=(std::initializer_list<>)): Likewise.
147 * include/debug/set.h (set::swap(set&)): Add noexcept
148 specification, add allocator equality check.
149 * include/debug/map.h (map::swap(map&)): Likewise.
150 * include/debug/multiset.h (multiset::swap(multiset&)): Likewise.
151 * include/debug/multimap.h (multimap::swap(multimap&)): Likewise.
152
153 2014-01-10 Jonathan Wakely <jwakely@redhat.com>
154
155 PR libstdc++/59698
156 * doc/xml/manual/status_cxx1998.xml (iso.1998.specific): Markup
157 and stylistic improvements.
158 * doc/xml/manual/codecvt.xml (std.localization.facet.codecvt): Likewise
159 and update for C++11.
160 * doc/xml/manual/ctype.xml (std.localization.facet.ctype): Likewise.
161
162 PR libstdc++/59687
163 * doc/xml/manual/backwards_compatibility.xml
164 (backwards.third.nocreate_noreplace): Correct and expand.
165
166 PR libstdc++/59699
167 * doc/xml/manual/support.xml (std.support.types.null): Update links.
168
169 2014-01-09 Jonathan Wakely <jwakely@redhat.com>
170
171 PR libstdc++/59738
172 * include/bits/stl_vector.h (vector<>::_M_move_assign): Restore
173 support for non-Movable types.
174
175 PR libstdc++/59680
176 * src/c++11/thread.cc (__sleep_for): Fix call to ::sleep.
177
178 2014-01-08 François Dumont <fdumont@gcc.gnu.org>
179
180 * include/bits/stl_vector.h (std::vector<>::_M_move_assign): Pass
181 *this allocator instance when building temporary vector instance
182 so that *this allocator does not get moved.
183 * include/debug/safe_base.h
184 (_Safe_sequence_base(_Safe_sequence_base&&)): New.
185 * include/debug/vector (__gnu_debug::vector<>(vector&&)): Use new
186 move constructor from _Safe_sequence_base.
187 (__gnu_debug::vector<>(vector&&, const allocator_type&)): Swap
188 safe iterators if the instance is moved.
189 (__gnu_debug::vector<>::operator=(vector&&)): Likewise.
190 * testsuite/23_containers/vector/allocator/move.cc (test01): Add
191 check on a vector iterator.
192 * testsuite/23_containers/vector/allocator/move_assign.cc
193 (test02): Likewise.
194 (test03): New, test with a non-propagating allocator.
195 * testsuite/23_containers/vector/debug/move_assign_neg.cc: New.
196
197 2014-01-07 Tim Shen <timshen91@gmail.com>
198
199 * include/bits/regex_compiler.h (_AnyMatcher<>::_AnyMatcher(),
200 _AnyMatcher<>::operator(), _AnyMatcher<>::_M_apply(),
201 _CharMatcher<>::_CharMatcher(), _CharMatcher<>::_M_translate(),
202 _BracketMatcher<>::_BracketMatcher(), _BracketMatcher<>::operator(),
203 _BracketMatcher<>::_M_add_char(),
204 _BracketMatcher<>::_M_add_collating_element(),
205 _BracketMatcher<>::_M_add_equivalence_class(),
206 _BracketMatcher<>::_M_add_character_class(),
207 _BracketMatcher<>::_M_make_range(), _BracketMatcher<>::_M_ready(),
208 _BracketMatcher<>::_M_apply(), _BracketMatcher<>::_M_make_cache()):
209 Fix _AnyMatcher behavior of POSIX style and move _M_flags
210 to template parameter; Add cache for _BracketMatcher. Adjust
211 declarations from here...
212 * include/bits/regex.h (basic_regex<>::imbue()): ...to here. Also,
213 imbuing a regex will trigger a recompilation to rebuild the cache.
214 * include/bits/regex_compiler.tcc (_Compiler<>::_M_atom(),
215 _Compiler<>::_M_bracket_expression()): Adjust matchers' caller for
216 different template bool parameters.
217 * include/bits/regex_executor.h: Remove unnecessary declarations.
218 * include/std/regex: Adjust including orders.
219 * testsuite/28_regex/traits/char/user_defined.cc: New.
220 * testsuite/28_regex/traits/wchar_t/user_defined.cc: New.
221
222 2014-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
223
224 * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerate.
225 * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Likewise.
226 * config/abi/post/solaris2.10/baseline_symbols.txt: Likewise.
227 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
228 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
229
230 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
231
232 Update copyright years
233
234 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
235
236 * testsuite/18_support/new_handler.cc,
237 testsuite/18_support/terminate_handler.cc,
238 testsuite/18_support/unexpected_handler.cc: Use the standard form for
239 the copyright notice.
240 \f
241 Copyright (C) 2014 Free Software Foundation, Inc.
242
243 Copying and distribution of this file, with or without modification,
244 are permitted in any medium without royalty provided the copyright
245 notice and this notice are preserved.