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