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