re PR libstdc++/60587 (debug-mode -std=c++11 vector::insert(pos, begin, end) derefere...
[gcc.git] / libstdc++-v3 / ChangeLog
1 2014-03-21 Jonathan Wakely <jwakely@redhat.com>
2
3 PR libstdc++/60587
4 * include/debug/functions.h (_Is_contiguous_sequence): Define.
5 (__foreign_iterator): Accept additional iterator. Do not dispatch on
6 iterator category.
7 (__foreign_iterator_aux2): Likewise. Add overload for iterators
8 from different types of debug container. Use _Is_contiguous_sequence
9 instead of is_lvalue_reference.
10 (__foreign_iterator_aux3): Accept additional iterator. Avoid
11 dereferencing past-the-end iterator.
12 (__foreign_iterator_aux4): Use const value_type* instead of
13 potentially user-defined const_pointer type.
14 * include/debug/macros.h (__glibcxx_check_insert_range): Fix comment
15 and pass end iterator to __gnu_debug::__foreign_iterator.
16 (__glibcxx_check_insert_range_after): Likewise.
17 (__glibcxx_check_max_load_factor): Fix comment.
18 * include/debug/vector (_Is_contiguous_sequence): Define partial
19 specializations.
20 * testsuite/23_containers/vector/debug/57779_neg.cc: Remove
21 -std=gnu++11 option and unused header.
22 * testsuite/23_containers/vector/debug/60587.cc: New.
23 * testsuite/23_containers/vector/debug/60587_neg.cc: New.
24
25 2014-03-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26
27 * crossconfig.m4: Support spu-*-elf* targets.
28 * configure: Regenerate.
29
30 2014-03-18 Jonathan Wakely <jwakely@redhat.com>
31
32 PR libstdc++/60564
33 * include/std/future (__future_base::_Task_state<>): Change
34 constructors to template functions using perfect forwarding.
35 (__create_task_state): Use decayed type as stored task.
36 (packaged_task::packaged_task(_Fn&&)): Forward instead of moving.
37 * testsuite/30_threads/packaged_task/60564.cc: New.
38
39 2014-03-16 François Dumont <fdumont@gcc.gnu.org>
40
41 * scripts/create_testsuite_files: Add testsuite/experimental in
42 the list of folders to search for tests.
43
44 2014-03-15 Andreas Schwab <schwab@linux-m68k.org>
45
46 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: New file.
47
48 2014-03-15 Tim Shen <timshen91@gmail.com>
49
50 * include/bits/regex.h: Add/modify comments.
51 * include/bits/regex_compiler.h: Likewise.
52 * include/bits/regex_executor.h: Likewise.
53 * include/bits/regex_executor.tcc: Likewise.
54 * include/bits/regex_scanner.h: Likewise.
55
56 2014-03-14 Jonathan Wakely <jwakely@redhat.com>
57
58 PR ipa/58721
59 * config/abi/pre/gnu.ver (GLIBCXX_3.4.11): Remove unused pattern for
60 _ZNSt12system_errorC* symbols which are not exported on any target.
61
62 2014-03-12 Roland McGrath <mcgrathr@google.com>
63 Mark Seaborn <mseaborn@google.com>
64
65 PR libstdc++/59392
66 * libsupc++/eh_call.cc (__cxa_call_unexpected): Call __do_catch with
67 the address of a null pointer, not with a null pointer to pointer.
68 Copy comment for this case from eh_personality.cc:__cxa_call_unexpected.
69 * testsuite/18_support/bad_exception/59392.cc: New file.
70
71 2014-03-11 Jonathan Wakely <jwakely@redhat.com>
72
73 PR libstdc++/60499
74 * include/debug/forward_list (forward_list::operator=(forward_list&&)):
75 Uglify name.
76 * include/debug/map (map::operator=(map&&)): Likewise.
77 * include/debug/multimap (multimap::operator=(multimap&&)): Likewise.
78 * include/debug/multiset (multiset::operator=(multiset&&)): Likewise.
79 * include/debug/set (set::operator=(set&&)): Likewise.
80 * include/debug/unordered_map
81 (unordered_map::operator=(unordered_map&&)): Likewise.
82 (unordered_multimap::operator=(unordered_multimap&&)): Likewise.
83 * include/debug/unordered_set
84 (unordered_set::operator=(unordered_set&&)): Likewise.
85 (unordered_multiset::operator=(unordered_multiset&&)): Likewise.
86 * include/debug/vector (vector::operator=(vector&&)): Likewise.
87 * testsuite/23_containers/forward_list/debug/60499.cc: New
88 * testsuite/23_containers/map/debug/60499.cc: New
89 * testsuite/23_containers/multimap/debug/60499.cc: New
90 * testsuite/23_containers/multiset/debug/60499.cc: New
91 * testsuite/23_containers/set/debug/60499.cc: New
92 * testsuite/23_containers/unordered_map/debug/60499.cc: New
93 * testsuite/23_containers/unordered_multimap/debug/60499.cc: New
94 * testsuite/23_containers/unordered_multiset/debug/60499.cc: New
95 * testsuite/23_containers/unordered_set/debug/60499.cc: New
96 * testsuite/23_containers/vector/debug/60499.cc: New
97
98 2014-03-05 Ed Smith-Rowland <3dw4rd@verizon.net>
99
100 * doc/xml/manual/status_cxx2014.xml: Add new items and latest papers
101 for filesystem and fundamentals TS work items.
102
103 2014-03-04 Paolo Carlini <paolo.carlini@oracle.com>
104
105 PR c++/60376
106 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
107 Adjust dg-error directives.
108
109 2014-02-26 Tim Shen <timshen91@gmail.com>
110
111 * include/bits/regex.tcc (match_results<>::format,
112 regex_replace<>): Update __out after calling std::copy.
113 * testsuite/28_regex/algorithms/regex_replace/char/dr2213.cc:
114 Add testcase.
115 * testsuite/28_regex/match_results/format.cc: Likewise.
116
117 2014-02-22 Marc Glisse <marc.glisse@inria.fr>
118
119 PR libstdc++/60308
120 * include/bits/stl_deque.h (_Deque_base::_Deque_base(const
121 allocator_type&)): Remove redundant call to _M_initialize_map.
122 (deque::deque(const allocator_type&)): Initialize _Base with a
123 constructor that calls _M_initialize_map.
124
125 Partial revert:
126
127 2013-09-20 Marc Glisse <marc.glisse@inria.fr>
128 PR libstdc++/58338
129 (_Deque_base) [_Deque_base(const allocator_type&)]: Add missing call to
130 _M_initialize_map.
131
132 2014-02-21 Ed Smith-Rowland <3dw4rd@verizon.net>
133
134 Rename testsuite directory shared_mutex to shared_timed_mutex
135 for consistency.
136 * testsuite/30_threads/shared_mutex: Moved to...
137 * testsuite/30_threads/shared_timed_mutex: ...here
138
139 2014-02-20 Ed Smith-Rowland <3dw4rd@verizon.net>
140
141 Rename shared_mutex to shared_timed_mutex per C++14 acceptance of N3891.
142 * include/std/shared_mutex: Rename shared_mutex to shared_timed_mutex.
143 * testsuite/30_threads/shared_lock/locking/2.cc: Ditto.
144 * testsuite/30_threads/shared_lock/locking/4.cc: Ditto.
145 * testsuite/30_threads/shared_lock/locking/1.cc: Ditto.
146 * testsuite/30_threads/shared_lock/locking/3.cc: Ditto.
147 * testsuite/30_threads/shared_lock/requirements/
148 explicit_instantiation.cc: Ditto.
149 * testsuite/30_threads/shared_lock/requirements/typedefs.cc: Ditto.
150 * testsuite/30_threads/shared_lock/cons/2.cc: Ditto.
151 * testsuite/30_threads/shared_lock/cons/4.cc: Ditto.
152 * testsuite/30_threads/shared_lock/cons/1.cc: Ditto.
153 * testsuite/30_threads/shared_lock/cons/6.cc: Ditto.
154 * testsuite/30_threads/shared_lock/cons/3.cc: Ditto.
155 * testsuite/30_threads/shared_lock/cons/5.cc: Ditto.
156 * testsuite/30_threads/shared_lock/modifiers/2.cc: Ditto.
157 * testsuite/30_threads/shared_lock/modifiers/1.cc: Ditto.
158 * testsuite/30_threads/shared_mutex/requirements/
159 standard_layout.cc: Ditto.
160 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Ditto.
161 * testsuite/30_threads/shared_mutex/cons/1.cc: Ditto.
162 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: Ditto.
163 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Ditto.
164 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Ditto.
165
166 2014-02-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
167
168 * testsuite/22_locale/num_put/put/char/14220.cc: Don't xfail
169 execution on i?86-*-solaris2.9, remove comment.
170 * testsuite/22_locale/num_put/put/wchar_t/14220.cc: Likewise.
171
172 2014-02-09 Richard Sandiford <rdsandiford@googlemail.com>
173
174 * config/abi/post/mips64-linux-gnu/32/baseline_symbols.txt: New file.
175 * config/abi/post/mips64-linux-gnu/baseline_symbols.txt: Update.
176 * config/abi/post/mips64-linux-gnu/64/baseline_symbols.txt: Likewise.
177
178 2014-01-29 Jonathan Wakely <jwakely@redhat.com>
179
180 * include/bits/alloc_traits.h (allocator_traits::_S_allocate): Do
181 not use varargs when argument could be non-POD.
182 (__alloctr_rebind_helper): Eliminate static const bool member by
183 using true_type and false_type.
184 (allocator_traits::__allocate_helper): Likewise.
185 (allocator_traits::__construct_helper): Likewise.
186 (allocator_traits::__destroy_helper): Likewise.
187 (allocator_traits::__maxsize_helper): Likewise.
188 (allocator_traits::__select_helper): Likewise.
189 * include/bits/ptr_traits.h (__ptrtr_rebind_helper): Likewise.
190 * include/bits/stl_tree.h (_Rb_tree::operator=(const _Rb_tree&)):
191 Remove redundant condition.
192 * include/bits/stl_vector.h (vector::operator=(const vector&)):
193 Likewise.
194 (_Vector_impl::_M_allocate, _Vector_impl::_M_deallocate): Use
195 indirection through __alloc_traits.
196 * include/ext/alloc_traits.h (__allocator_always_compares_equal):
197 Eliminate static const bool members by using true_type and false_type.
198 (__gnu_cxx::__alloc_traits::__is_custom_pointer): Optimize.
199 * testsuite/util/testsuite_allocator.h (PointerBase): Define.
200 * testsuite/20_util/allocator_traits/members/allocate_hint_nonpod.cc:
201 New.
202 * testsuite/20_util/allocator_traits/requirements/typedefs2.cc: New.
203
204 PR libstdc++/59829
205 * include/bits/stl_vector.h (vector::data()): Call _M_data_ptr.
206 (vector::_M_data_ptr): New overloaded functions to ensure empty
207 vectors do not dereference the pointer.
208 * testsuite/23_containers/vector/59829.cc: New.
209 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
210 Adjust dg-error line number.
211 * testsuite/23_containers/vector/requirements/dr438/
212 constructor_1_neg.cc: Likewise.
213 * testsuite/23_containers/vector/requirements/dr438/
214 constructor_2_neg.cc: Likewise.
215 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
216 Likewise.
217
218 PR libstdc++/21609
219 * include/ext/array_allocator.h: Add deprecated attribute.
220
221 PR libstdc++/57226
222 * doc/xml/manual/debug.xml (debug.gdb): Update documentation for
223 installation and use of python printers.
224 * doc/xml/manual/status_cxx2011.xml: Update.
225 * doc/html/*: Regenerate.
226
227 2014-01-28 Jonathan Wakely <jwakely@redhat.com>
228 Kyle Lippincott <spectral@google.com>
229
230 PR libstdc++/59656
231 * include/bits/shared_ptr.h (shared_ptr): Add new non-throwing
232 constructor and grant friendship to weak_ptr.
233 (weak_ptr::lock()): Use new constructor.
234 * include/bits/shared_ptr_base.h
235 (_Sp_counted_base::_M_add_ref_lock_nothrow()): Declare new function
236 and define specializations.
237 (__shared_count): Add new non-throwing constructor.
238 (__shared_ptr): Add new non-throwing constructor and grant friendship
239 to __weak_ptr.
240 (__weak_ptr::lock()): Use new constructor.
241 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
242 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
243
244 2014-01-27 Jonathan Wakely <jwakely@redhat.com>
245
246 PR libstdc++/59215
247 * include/bits/shared_ptr_base.h
248 (_Sp_counted_base<_S_atomic>::_M_add_ref_lock()): Use relaxed atomic
249 load.
250
251 2014-01-27 Jason Merrill <jason@redhat.com>
252
253 Core DR 475
254 PR c++/41174
255 PR c++/59224
256 * libsupc++/eh_throw.cc (__cxa_throw): Set uncaughtExceptions.
257 * libsupc++/eh_alloc.cc (__cxa_allocate_dependent_exception)
258 (__cxa_allocate_exception): Don't set it here.
259
260 2014-01-26 Jonathan Wakely <jwakely@redhat.com>
261
262 * include/bits/stl_map.h: Remove anachronistic comment.
263 * include/bits/stl_multimap.h: Add whitespace.
264 * testsuite/23_containers/map/modifiers/emplace/1.cc: Use
265 -std=gnu++11 instead of -std=c++11.
266 * testsuite/23_containers/map/operators/2.cc: Likewise.
267 * testsuite/23_containers/multimap/modifiers/emplace/1.cc: Likewise.
268 * testsuite/23_containers/multiset/modifiers/emplace/1.cc: Likewise.
269 * testsuite/23_containers/set/modifiers/emplace/1.cc: Likewise.
270
271 * acinclude.m4 (GLIBCXX_ENABLE_C99): Fix typo.
272 * configure: Regenerate.
273
274 2014-01-24 Ed Smith-Rowland <3dw4rd@verizon.net>
275
276 PR libstdc++/59531
277 * testsuite/experimental/string_view/operations/copy/char/1.cc: New.
278 * testsuite/experimental/string_view/operations/copy/wchar_t/1.cc: New.
279
280 2014-01-24 Ed Smith-Rowland <3dw4rd@verizon.net>
281 Peter A. Bigot <pab@pabigot.com>
282
283 PR libstdc++/59531
284 * include/experimental/string_view
285 (copy(_CharT*, size_type, size_type) const): Correct throw string.
286 Correct copy start location.
287
288 2014-01-24 Ed Smith-Rowland <3dw4rd@verizon.net>
289 Peter A. Bigot <pab@pabigot.com>
290
291 PR libstdc++/59530
292 * include/experimental/string_view (operator[](size_type) const):
293 Fix one-off index error in debug check.
294 * testsuite/experimental/string_view/element_access/char/1.cc: Don't
295 test basic_string_view at size().
296 * testsuite/experimental/string_view/element_access/wchar_t/1.cc: Ditto.
297
298 2014-01-24 Ed Smith-Rowland <3dw4rd@verizon.net>
299 Peter A. Bigot <pab@pabigot.com>
300
301 PR libstdc++/59529
302 * include/experimental/string_view
303 (basic_string_view(const _CharT*, size_type)): Don't care if len == 0.
304 * testsuite/experimental/string_view/operations/substr/char/1.cc:
305 Comment out catch of out_of_range; No terminating null
306 in basic_string_view. Check begin == end.
307 * testsuite/experimental/string_view/operations/substr/wchar_t/1.cc:
308 Ditto.
309
310 2014-01-24 Jonathan Wakely <jwakely@redhat.com>
311
312 PR libstdc++/59548
313 * include/debug/safe_base.h (_Safe_sequence_base): Define copy
314 constructor to prevent it being implicitly defined as deleted, but
315 do not copy anything.
316 * include/debug/safe_unordered_base.h (_Safe_unordered_container_base):
317 Define copy and move constructors similar to _Safe_sequence_base's.
318 * testsuite/23_containers/unordered_map/59548.cc: New.
319
320 2014-01-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
321 Steve Ellcey <sellcey@mips.com>
322
323 * acinclude.m4 (GLIBCXX_CHECK_TMPNAM): New check for tmpnam
324 function.
325 * configure.ac: Use GLIBCXX_CHECK_TMPNAM.
326 * (configure, config.h.in): Regenerate.
327 * include/c_global/cstdio: Guard ::tmpnam with _GLIBCXX_USE_TMPNAM
328
329 2014-01-23 Jonathan Wakely <jwakely@redhat.com>
330
331 * doc/xml/faq.xml (a-how_to_set_paths): Expand FAQ answer.
332 * doc/xml/manual/abi.xml (abi.versioning.history): Correct symver.
333
334 PR libstdc++/59872
335 * include/bits/stl_map.h (map::operator=(map&&)): Fix comment.
336 * include/bits/stl_multimap.h (multimap::operator=(multimap&&)):
337 Likewise.
338 * include/bits/stl_multiset.h (multiset::operator=(multiset&&)):
339 Likewise.
340 * include/bits/stl_set.h (set::operator=(set&&)): Likewise.
341 * include/bits/stl_tree.h (_Rb_tree::_M_move_data): New overloaded
342 functions to perform moving or copying of elements from rvalue tree.
343 (_Rb_tree::_Rb_tree(_Rb_tree&&)): Use _M_move_data.
344 (_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Likewise.
345 * testsuite/23_containers/map/59872.cc: New.
346 * testsuite/23_containers/map/56613.cc: Remove duplicate include.
347
348 2014-01-22 Jonathan Wakely <jwakely@redhat.com>
349
350 * include/bits/stl_deque.h (_Deque_impl): Move comment.
351
352 PR libstdc++/58764
353 * include/bits/stl_deque.h (deque::deque(const allocator_type&):
354 Split into separate default constructor and constructor taking
355 allocator.
356 * include/bits/stl_list.h (list::list(const allocator_type&): Likewise.
357 * include/bits/stl_vector.h (vector::vector(const allocator_type&):
358 Likewise.
359 * include/debug/deque (deque::deque(const allocator_type&)): Likewise.
360 * include/debug/list (list::list(const _Allocator&)): Likewise.
361 * include/debug/map.h (map::map(const _Compare&, const _Allocator&)):
362 Likewise.
363 * include/debug/multimap.h
364 (multimap::multimap(const _Compare&, const _Allocator&)): Likewise.
365 * include/debug/set.h (set::set(const _Compare&, const _Allocator&)):
366 Likewise.
367 * include/debug/multiset.h
368 (multiset::multiset(const _Compare&, const _Allocator&)): Likewise.
369 * include/debug/vector (vector::vector(const allocator_type&)):
370 Likewise.
371 * include/profile/deque (deque::deque(const _Allocator&)): Likewise.
372 * include/profile/list (list::list(const _Allocator&)): Likewise.
373 * include/profile/map.h
374 (map::map(const _Compare&, const _Allocator&)): Likewise.
375 * include/profile/multimap.h
376 (multimap::multimap(const _Compare&, const _Allocator&)): Likewise.
377 * include/profile/set.h
378 (set::set(const _Compare&, const _Allocator&)): Likewise.
379 * include/profile/multiset.h
380 (multiset::multiset(const _Compare&, const _Allocator&)): Likewise.
381 * include/profile/vector (vector::vector(const _Allocator&)):
382 Likewise.
383 * testsuite/23_containers/deque/58764.cc: New.
384 * testsuite/23_containers/list/58764.cc: New.
385 * testsuite/23_containers/map/58764.cc: New.
386 * testsuite/23_containers/multimap/58764.cc: New.
387 * testsuite/23_containers/set/58764.cc: New.
388 * testsuite/23_containers/multiset/58764.cc: New.
389 * testsuite/23_containers/vector/58764.cc: New.
390 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
391 Adjust dg-error line number.
392 * testsuite/23_containers/deque/requirements/dr438/
393 constructor_1_neg.cc: Likewise.
394 * testsuite/23_containers/deque/requirements/dr438/
395 constructor_2_neg.cc: Likewise.
396 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
397 Likewise.
398 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
399 Likewise.
400 * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
401 Likewise.
402 * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
403 Likewise.
404 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
405 Likewise.
406 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
407 Likewise.
408 * testsuite/23_containers/vector/requirements/dr438/
409 constructor_1_neg.cc: Likewise.
410 * testsuite/23_containers/vector/requirements/dr438/
411 constructor_2_neg.cc: Likewise.
412 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
413 Likewise.
414
415 PR libstdc++/58764 (again)
416 * include/bits/stl_list.h (list): Make default constructor's exception
417 specification conditional.
418 * include/bits/stl_vector.h (vector): Likewise.
419 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add noexcept
420 to default constructor.
421 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
422 Adjust dg-error line number.
423 * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
424 Likewise.
425 * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
426 Likewise.
427 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
428 Likewise.
429 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
430 Likewise.
431 * testsuite/23_containers/vector/requirements/dr438/
432 constructor_1_neg.cc: Likewise.
433 * testsuite/23_containers/vector/requirements/dr438/
434 constructor_2_neg.cc: Likewise.
435 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
436 Likewise.
437
438 2014-01-21 Tim Shen <timshen91@gmail.com>
439
440 * include/bits/regex.tcc: Remove incorrect `nosubs` handling.
441 * include/bits/regex_scanner.tcc: Handle `nosubs` correctly.
442 * testsuite/28_regex/constants/syntax_option_type.cc: Add a test case.
443
444 2014-01-21 Jonathan Wakely <jwakely@redhat.com>
445
446 PR libstdc++/56267
447 * include/bits/hashtable.h (__cache_default): Do not depend on
448 whether the hash function is DefaultConstructible or CopyAssignable.
449 (_Hashtable): Adjust static assertions.
450 * doc/xml/manual/containers.xml (containers.unordered.cache): Update.
451 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
452 dg-error line number.
453 * testsuite/23_containers/unordered_set/
454 not_default_constructible_hash_neg.cc: Remove.
455
456 2014-01-20 François Dumont <fdumont@gcc.gnu.org>
457
458 * scripts/create_testsuite_files: Add testsuite/experimental in
459 the list of folders to search for tests.
460 * include/experimental/string_view
461 (basic_string_view<>::operator[]): Comment _GLIBCXX_DEBUG_ASSERT,
462 incompatible with constexpr qualifier.
463 (basic_string_view<>::front()): Likewise.
464 (basic_string_view<>::back()): Likewise.
465 * testsuite/experimental/string_view/element_access/wchar_t/2.cc:
466 Merge dg-options directives into one.
467 * testsuite/experimental/string_view/element_access/char/2.cc:
468 Likewise. Remove invalid experimental namespace scope on
469 string_view_type.
470
471 2014-01-20 Jonathan Wakely <jwakely@redhat.com>
472
473 PR libstdc++/56267
474 * include/bits/hashtable_policy.h (_Hash_code_base<... false>): Grant
475 friendship to _Local_iterator_base<..., false>.
476 (_Local_iterator_base): Give protected access to all existing members.
477 (_Local_iterator_base::_M_curr()): New public accessor.
478 (_Local_iterator_base::_M_get_bucket()): New public accessor.
479 (_Local_iterator_base<..., false>::_M_init()): New function to manage
480 the lifetime of the _Hash_code_base explicitly.
481 (_Local_iterator_base<..., false>::_M_destroy()): Likewise.
482 (_Local_iterator_base<..., false>): Define copy constructor and copy
483 assignment operator that use new functions to manage _Hash_code_base.
484 (operator==(const _Local_iterator_base&, const _Local_iterator_base&),
485 operator==(const _Local_iterator_base&, const _Local_iterator_base&)):
486 Use public API for _Local_iterator_base.
487 * include/debug/safe_local_iterator.h (_Safe_local_iterator): Likewise.
488 * include/debug/unordered_map (__debug::unordered_map::erase(),
489 __debug::unordered_multimap::erase()): Likewise.
490 * include/debug/unordered_set (__debug::unordered_set::erase(),
491 __debug::unordered_multiset::erase()): Likewise.
492 * testsuite/23_containers/unordered_set/56267-2.cc: New test.
493
494 2014-01-19 Tim Shen <timshen91@gmail.com>
495
496 * include/bits/regex_compiler.h (_Comipler<>::_M_quantifier()):
497 Fix parse error of multiple consecutive quantifiers like "a**".
498 * include/bits/regex_compiler.tcc (_Comipler<>::_M_quantifier()):
499 Likewise.
500 * testsuite/28_regex/basic_regex/multiple_quantifiers.cc: New.
501
502 2014-01-17 François Dumont <fdumont@gcc.gnu.org>
503
504 * include/profile/set.h (set): Implement C++11 allocator-aware
505 container requirements.
506 * include/profile/map.h (map): Likewise.
507 * include/profile/multiset.h (multiset): Likewise.
508 * include/profile/multimap.h (multimap): Likewise.
509 * include/profile/set.h
510 (set::operator=(const set&)): Define as default in C++11 mode.
511 (set::operator=(set&&)): Likewise.
512 * include/profile/map.h
513 (map::operator=(const map&)): Likewise.
514 (map::operator=(map&&)): Likewise.
515 * include/profile/multiset.h
516 (multiset::operator=(const multiset&)): Likewise.
517 (multiset::operator=(multiset&&)): Likewise.
518 * include/profile/multimap.h
519 (multimap::operator=(const multimap&)): Likewise.
520 (multimap::operator=(multimap&&)): Likewise.
521 * include/profile/set.h (set::operator=(std::initializer_list<>)):
522 Rely on the same operator from normal mode.
523 * include/profile/map.h (map::operator=(std::initializer_list<>)):
524 Likewise.
525 * include/profile/multiset.h
526 (multiset::operator=(std::initializer_list<>)): Likewise.
527 * include/profile/multimap.h
528 (multimap::operator=(std::initializer_list<>)): Likewise.
529 * include/profile/set.h (set::swap(set&)): Add noexcept
530 specification.
531 * include/profile/map.h (map::swap(map&)): Likewise.
532 * include/profile/multiset.h (multiset::swap(multiset&)): Likewise.
533 * include/profile/multimap.h (multimap::swap(multimap&)): Likewise.
534
535 2014-01-17 Tim Shen <timshen91@gmail.com>
536
537 * include/bits/regex_automaton.tcc (_StateSeq<>::_M_clone()): Do not
538 use std::map.
539 * include/bits/regex_automaton.h: Do not use std::set.
540 * include/bits/regex_compiler.h (_BracketMatcher<>::_M_add_char(),
541 _BracketMatcher<>::_M_add_collating_element(),
542 _BracketMatcher<>::_M_add_equivalence_class(),
543 _BracketMatcher<>::_M_make_range()): Likewise.
544 * include/bits/regex_compiler.tcc (_BracketMatcher<>::_M_apply()):
545 Likewise.
546 * include/bits/regex_executor.h: Do not use std::queue.
547 * include/bits/regex_executor.tcc (_Executor<>::_M_main(),
548 _Executor<>::_M_dfs()): Likewise.
549 * include/std/regex: Remove <map>, <set> and <queue>.
550
551 2014-01-17 Tim Shen <timshen91@gmail.com>
552
553 * include/bits/regex.h (__compile_nfa<>(), basic_regex<>::basic_regex(),
554 basic_regex<>::assign()): Change __compile_nfa to accept
555 const _CharT* only.
556 * include/bits/regex_compiler.h: Change _Compiler's template
557 argument from <_FwdIter, _TraitsT> to <_TraitsT>.
558 * include/bits/regex_compiler.tcc: Likewise.
559
560 2014-01-17 Tim Shen <timshen91@gmail.com>
561
562 * include/bits/regex_compiler.h: Change _ScannerT into char-type
563 templated.
564 * include/bits/regex_scanner.h (_Scanner<>::_Scanner()): Separate
565 _ScannerBase from _Scanner; Change _Scanner's template argument from
566 _FwdIter to _CharT. Avoid use of std::map and std::set by using arrays
567 instead.
568 * include/bits/regex_scanner.tcc (_Scanner<>::_Scanner(),
569 _Scanner<>::_M_scan_normal(), _Scanner<>::_M_eat_escape_ecma(),
570 _Scanner<>::_M_eat_escape_posix(), _Scanner<>::_M_eat_escape_awk()):
571 Likewise.
572 * include/std/regex: Add <cstring> for using strchr.
573
574 2014-01-17 Tim Shen <timshen91@gmail.com>
575
576 * bits/regex_automaton.tcc: Indentation fix.
577 * bits/regex_compiler.h (__compile_nfa<>(), _Compiler<>,
578 _RegexTranslator<> _AnyMatcher<>, _CharMatcher<>,
579 _BracketMatcher<>): Add bool option template parameters and
580 specializations to make matching more efficient and space saving.
581 * bits/regex_compiler.tcc: Likewise.
582
583 2014-01-15 François Dumont <fdumont@gcc.gnu.org>
584
585 PR libstdc++/59712
586 * include/bits/hashtable_policy.h: Fix some long lines.
587 * include/bits/hashtable.h (__hash_code_base_access): Define and
588 use it to check its _M_bucket_index noexcept qualification. Use
589 also in place of...
590 (__access_protected_ctor): ...this.
591 * testsuite/23_containers/unordered_set/instantiation_neg.cc:
592 Adapt line number.
593 * testsuite/23_containers/unordered_set/
594 not_default_constructible_hash_neg.cc: Likewise.
595
596 2014-01-13 François Dumont <fdumont@gcc.gnu.org>
597
598 * include/debug/set.h (set): Implement C++11 allocator-aware
599 container requirements.
600 * include/debug/map.h (map): Likewise.
601 * include/debug/multiset.h (multiset): Likewise.
602 * include/debug/multimap.h (multimap): Likewise.
603 * include/debug/set.h (set::operator=(set&&)): Add noexcept and
604 fix implementation regarding management of safe iterators.
605 * include/debug/map.h (map::operator=(map&&)): Likewise.
606 * include/debug/multiset.h (multiset::operator=(multiset&&)): Likewise.
607 * include/debug/multimap.h (multimap::operator=(multimap&&)):
608 Likewise.
609 * include/debug/set.h (set::operator=(std::initializer_list<>)):
610 Rely on the same operator from normal mode.
611 * include/debug/map.h (map::operator=(std::initializer_list<>)):
612 Likewise.
613 * include/debug/multiset.h
614 (multiset::operator=(std::initializer_list<>)): Likewise.
615 * include/debug/multimap.h
616 (multimap::operator=(std::initializer_list<>)): Likewise.
617 * include/debug/set.h (set::swap(set&)): Add noexcept
618 specification, add allocator equality check.
619 * include/debug/map.h (map::swap(map&)): Likewise.
620 * include/debug/multiset.h (multiset::swap(multiset&)): Likewise.
621 * include/debug/multimap.h (multimap::swap(multimap&)): Likewise.
622
623 2014-01-10 Jonathan Wakely <jwakely@redhat.com>
624
625 PR libstdc++/59698
626 * doc/xml/manual/status_cxx1998.xml (iso.1998.specific): Markup
627 and stylistic improvements.
628 * doc/xml/manual/codecvt.xml (std.localization.facet.codecvt): Likewise
629 and update for C++11.
630 * doc/xml/manual/ctype.xml (std.localization.facet.ctype): Likewise.
631
632 PR libstdc++/59687
633 * doc/xml/manual/backwards_compatibility.xml
634 (backwards.third.nocreate_noreplace): Correct and expand.
635
636 PR libstdc++/59699
637 * doc/xml/manual/support.xml (std.support.types.null): Update links.
638
639 2014-01-09 Jonathan Wakely <jwakely@redhat.com>
640
641 PR libstdc++/59738
642 * include/bits/stl_vector.h (vector<>::_M_move_assign): Restore
643 support for non-Movable types.
644
645 PR libstdc++/59680
646 * src/c++11/thread.cc (__sleep_for): Fix call to ::sleep.
647
648 2014-01-08 François Dumont <fdumont@gcc.gnu.org>
649
650 * include/bits/stl_vector.h (std::vector<>::_M_move_assign): Pass
651 *this allocator instance when building temporary vector instance
652 so that *this allocator does not get moved.
653 * include/debug/safe_base.h
654 (_Safe_sequence_base(_Safe_sequence_base&&)): New.
655 * include/debug/vector (__gnu_debug::vector<>(vector&&)): Use new
656 move constructor from _Safe_sequence_base.
657 (__gnu_debug::vector<>(vector&&, const allocator_type&)): Swap
658 safe iterators if the instance is moved.
659 (__gnu_debug::vector<>::operator=(vector&&)): Likewise.
660 * testsuite/23_containers/vector/allocator/move.cc (test01): Add
661 check on a vector iterator.
662 * testsuite/23_containers/vector/allocator/move_assign.cc
663 (test02): Likewise.
664 (test03): New, test with a non-propagating allocator.
665 * testsuite/23_containers/vector/debug/move_assign_neg.cc: New.
666
667 2014-01-07 Tim Shen <timshen91@gmail.com>
668
669 * include/bits/regex_compiler.h (_AnyMatcher<>::_AnyMatcher(),
670 _AnyMatcher<>::operator(), _AnyMatcher<>::_M_apply(),
671 _CharMatcher<>::_CharMatcher(), _CharMatcher<>::_M_translate(),
672 _BracketMatcher<>::_BracketMatcher(), _BracketMatcher<>::operator(),
673 _BracketMatcher<>::_M_add_char(),
674 _BracketMatcher<>::_M_add_collating_element(),
675 _BracketMatcher<>::_M_add_equivalence_class(),
676 _BracketMatcher<>::_M_add_character_class(),
677 _BracketMatcher<>::_M_make_range(), _BracketMatcher<>::_M_ready(),
678 _BracketMatcher<>::_M_apply(), _BracketMatcher<>::_M_make_cache()):
679 Fix _AnyMatcher behavior of POSIX style and move _M_flags
680 to template parameter; Add cache for _BracketMatcher. Adjust
681 declarations from here...
682 * include/bits/regex.h (basic_regex<>::imbue()): ...to here. Also,
683 imbuing a regex will trigger a recompilation to rebuild the cache.
684 * include/bits/regex_compiler.tcc (_Compiler<>::_M_atom(),
685 _Compiler<>::_M_bracket_expression()): Adjust matchers' caller for
686 different template bool parameters.
687 * include/bits/regex_executor.h: Remove unnecessary declarations.
688 * include/std/regex: Adjust including orders.
689 * testsuite/28_regex/traits/char/user_defined.cc: New.
690 * testsuite/28_regex/traits/wchar_t/user_defined.cc: New.
691
692 2014-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
693
694 * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerate.
695 * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Likewise.
696 * config/abi/post/solaris2.10/baseline_symbols.txt: Likewise.
697 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
698 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
699
700 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
701
702 Update copyright years
703
704 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
705
706 * testsuite/18_support/new_handler.cc,
707 testsuite/18_support/terminate_handler.cc,
708 testsuite/18_support/unexpected_handler.cc: Use the standard form for
709 the copyright notice.
710 \f
711 Copyright (C) 2014 Free Software Foundation, Inc.
712
713 Copying and distribution of this file, with or without modification,
714 are permitted in any medium without royalty provided the copyright
715 notice and this notice are preserved.