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