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