tuple (tuple_size<cv _Tp>): Implement LWG 2313.
[gcc.git] / libstdc++-v3 / ChangeLog
1 2014-05-15 Jonathan Wakely <jwakely@redhat.com>
2
3 * include/std/tuple (tuple_size<cv _Tp>): Implement LWG 2313.
4 * include/std/array (tuple_size, tuple_element): Add Doxygen comments.
5 * include/std/utility (tuple_size, tuple_element): Likewise.
6 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
7 Adjust dg-error line number.
8
9 2014-05-14 Jonathan Wakely <jwakely@redhat.com>
10
11 * include/std/tuple (__add_c_ref, __add_ref, __add_r_ref): Remove.
12 (__tuple_element_t): Define.
13 (tuple_element): Use __tuple_element_t.
14 (__cv_tuple_size): Define.
15 (tuple_size<cv _Tp>): Use __cv_tuple_size.
16 (get, __get_helper, __get_helper2): Remove uses of __add_ref etc.
17 (get<_Tp>(tuple<_Types...>&&)): Use forward instead of move.
18 (__tuple_compare): Remove size check, re-order parameters.
19 (operator==, operator<): Use static_assert to check requirements.
20 * include/std/functional (__volget): use __tuple_element_t.
21 * testsuite/20_util/tuple/element_access/get_by_type.cc: Test rvalues.
22 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
23
24 2014-05-13 Jonathan Wakely <jwakely@redhat.com>
25
26 PR libstdc++/60497
27 * include/std/tuple (get, __tuple_compare): Qualify more calls to
28 prevent ADL. Cast comparison results to bool.
29 * testsuite/20_util/tuple/60497.cc: Test accessing rvalues.
30 * testsuite/20_util/tuple/comparison_operators/overloaded.cc: New.
31
32 PR libstdc++/60497
33 * include/debug/array (get): Qualify call to other get overload.
34 * include/profile/array (get): Likewise.
35 * include/std/array (get): Likewise.
36 * include/std/functional (_Mu, _Bind, _Bind_result): Qualify std::get.
37 * include/std/mutex (unique_lock, call_once): Use __addressof.
38 (__unlock_impl): Remove unused template.
39 (__try_to_lock): Declare inline.
40 (__try_lock_impl::__do_try_lock): Qualify function calls.
41 (lock): Avoid narrowing conversion.
42 * testsuite/20_util/bind/60497.cc: New.
43 * testsuite/23_containers/array/element_access/60497.cc: New.
44 * testsuite/30_threads/call_once/60497.cc: New.
45 * testsuite/30_threads/unique_lock/cons/60497.cc: New.
46
47 2014-05-09 Jonathan Wakely <jwakely@redhat.com>
48
49 * config/abi/pre/gnu.ver (GLIBCXX_3.4.20): Correct regex_error export.
50 (GLIBCXX_3.4.21): Export base object constructor for regex_error.
51 * acinclude.m4 (libtool_VERSION): Bump.
52 * configure: Regenerate.
53 * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.21 version.
54 * testsuite/28_regex/regex_error/base.cc: New.
55
56 2014-05-08 Joshua Gay <jgay@gnu.org>
57
58 PR libstdc++/61117
59 * doc/xml/faq.xml (faq.license.what_restrictions): Replace "open
60 source" with "free software".
61 * doc/html/faq.html: Likewise.
62
63 2014-05-08 Jonathan Wakely <jwakely@redhat.com>
64
65 PR libstdc++/57394
66 * include/bits/ios_base.h (ios_base(const ios_base&)): Define as
67 deleted for C++11.
68 (operator=(const ios_base&)): Likewise.
69 * include/std/streambuf: Remove trailing whitespace.
70 (basic_streambuf(const basic_streambuf&)): Fix initializer for
71 _M_out_end. Define as defaulted for C++11.
72 (operator=(const basic_streambuf&)): Define as defaulted for C++11.
73 (swap(basic_streambuf&)): Define for C++11.
74 * testsuite/27_io/basic_streambuf/cons/57394.cc: New.
75
76 PR libstdc++/13860
77 * include/std/fstream (basic_filebuf): Enforce requirements on traits.
78
79 * include/std/iostream: Fix URL in comment.
80 * src/c++98/ios_init.cc: Fix path in comment.
81
82 2014-05-08 Paolo Carlini <paolo.carlini@oracle.com>
83
84 * acinclude.m4 ([GLIBCXX_ENABLE_C99]): Avoid -Wwrite-strings warning.
85 * configure: Regenerate.
86
87 2014-05-07 Jonathan Wakely <jwakely@redhat.com>
88
89 PR libstdc++/61023
90 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): Copy the
91 comparison function.
92 * testsuite/23_containers/set/cons/61023.cc: New.
93
94 PR libstdc++/61086
95 * include/bits/stl_iterator.h (__normal_iterator::_M_const_cast):
96 Remove.
97 * include/bits/stl_vector.h (vector::insert, vector::erase): Use
98 arithmetic to obtain a mutable iterator from const_iterator.
99 * include/bits/vector.tcc (vector::insert): Likewise.
100 * include/debug/vector (vector::erase): Likewise.
101 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
102 Adjust dg-error line number.
103 * testsuite/23_containers/vector/requirements/dr438/
104 constructor_1_neg.cc: Likewise.
105 * testsuite/23_containers/vector/requirements/dr438/
106 constructor_2_neg.cc: Likewise.
107 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
108 Likewise.
109
110 2014-05-06 Paolo Carlini <paolo.carlini@oracle.com>
111
112 * include/Makefile.in: Regenerate.
113
114 2014-05-06 François Dumont <fdumont@gcc.gnu.org>
115
116 * include/debug/macros.h [__glibcxx_check_equal_allocs]: Add
117 parameter to pass the 2 instances to check allocator equality.
118 * include/debug/safe_container.h: New, define _Safe_container<>.
119 * include/Makefile.am: Add previous.
120 * include/debug/deque (std::__debug::deque<>): Inherit
121 _Safe_container<>. Use default implementation for all special
122 functions.
123 * include/debug/forward_list (std::__debug::forward_list<>):
124 Likewise.
125 * include/debug/list (std::__debug::list<>): Likewise.
126 * include/debug/map.h (std::__debug::map<>): Likewise.
127 * include/debug/multimap.h (std::__debug::multimap<>): Likewise.
128 * include/debug/set.h (std::__debug::set<>): Likewise.
129 * include/debug/multiset.h (std::__debug::multiset<>): Likewise.
130 * include/debug/string (std::__debug::basic_string<>): Likewise.
131 * include/debug/unordered_map
132 (std::__debug::unordered_map<>): Likewise.
133 (std::__debug::unordered_multimap<>): Likewise.
134 * include/debug/unordered_set
135 (std::__debug::unordered_set<>): Likewise.
136 (std::__debug::unordered_multiset<>): Likewise.
137 * include/debug/vector (std::__debug::vector<>): Likewise.
138 * include/debug/safe_base.h (_Safe_sequence_base()): Add
139 noexcept.
140 (_Safe_sequence_base(_Safe_sequence_base&&): Remove.
141 (~_Safe_sequence_base()): Add noexcept.
142 * include/debug/safe_sequence.h
143 (std::__debug::_Safe_node_sequence<>): New.
144 * include/debug/safe_unordered_base.h
145 (_Safe_unordered_container_base()): Add noexcept.
146 (~_Safe_unordered_container_base()): Likewise.
147 (_M_swap(_Safe_unordered_container_base&)): Likewise.
148 * include/debug/safe_unordered_container.h:
149 (_Safe_unordered_container<>::_M_invalidate_locals()): New.
150 (_Safe_unordered_container<>::_M_invalidate_all()): New.
151 * src/c++11/debug.cc: Limit includes, adapt methods noexcept
152 qualifications.
153 * testsuite/util/debug/checks.h (check_construct1): Just implement
154 an invalid constructor invocation and no other operations
155 potentially not supported by some types of container.
156 (check_construct2): Likewise.
157 (check_construct3): Likewise.
158 * testsuite/23_containers/forward_list/allocator/move.cc: Add
159 check on iterators to make sure they are correctly moved in debug
160 mode.
161 * testsuite/23_containers/forward_list/allocator/move_assign.cc:
162 Likewise.
163 * testsuite/23_containers/map/allocator/move.cc: Likewise.
164 * testsuite/23_containers/map/allocator/move_assign.cc: Likewise.
165 * testsuite/23_containers/multimap/allocator/move.cc: Likewise.
166 * testsuite/23_containers/multimap/allocator/move_assign.cc:
167 Likewise.
168 * testsuite/23_containers/multiset/allocator/move.cc: Likewise.
169 * testsuite/23_containers/multiset/allocator/move_assign.cc:
170 Likewise.
171 * testsuite/23_containers/set/allocator/move.cc: Likewise.
172 * testsuite/23_containers/set/allocator/move_assign.cc: Likewise.
173 * testsuite/23_containers/unordered_map/allocator/move.cc:
174 Likewise.
175 * testsuite/23_containers/unordered_map/allocator/move_assign.cc:
176 Likewise.
177 * testsuite/23_containers/unordered_multimap/allocator/move.cc:
178 Likewise.
179 * testsuite/23_containers/unordered_multimap/allocator/move_assign.cc:
180 Likewise.
181 * testsuite/23_containers/unordered_multiset/allocator/move.cc:
182 Likewise.
183 * testsuite/23_containers/unordered_multiset/allocator/move_assign.cc:
184 Likewise.
185 * testsuite/23_containers/unordered_set/allocator/move.cc:
186 Likewise.
187 * testsuite/23_containers/unordered_set/allocator/move_assign.cc:
188 Likewise.
189 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
190 New.
191 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
192 New.
193 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
194 New.
195 * testsuite/23_containers/forward_list/debug/construct4_neg.cc:
196 New.
197 * testsuite/23_containers/forward_list/debug/move_assign_neg.cc:
198 New.
199 * testsuite/23_containers/forward_list/debug/move_neg.cc: New.
200 * testsuite/23_containers/map/debug/construct5_neg.cc: New.
201 * testsuite/23_containers/map/debug/move_assign_neg.cc: New.
202 * testsuite/23_containers/map/debug/move_neg.cc: New.
203 * testsuite/23_containers/multimap/debug/construct5_neg.cc: New.
204 * testsuite/23_containers/multimap/debug/move_assign_neg.cc: New.
205 * testsuite/23_containers/multimap/debug/move_neg.cc: New.
206 * testsuite/23_containers/multiset/debug/construct5_neg.cc: New.
207 * testsuite/23_containers/multiset/debug/move_assign_neg.cc: New.
208 * testsuite/23_containers/multiset/debug/move_neg.cc: New.
209 * testsuite/23_containers/set/debug/construct5_neg.cc: New.
210 * testsuite/23_containers/set/debug/move_assign_neg.cc: New.
211 * testsuite/23_containers/set/debug/move_neg.cc: New.
212 * testsuite/23_containers/unordered_map/debug/construct5_neg.cc:
213 New.
214 * testsuite/23_containers/unordered_map/debug/move_assign_neg.cc:
215 New.
216 * testsuite/23_containers/unordered_map/debug/move_neg.cc: New.
217 * testsuite/23_containers/unordered_multimap/debug/construct5_neg.cc:
218 New.
219 * testsuite/23_containers/unordered_multimap/debug/move_assign_neg.cc:
220 New.
221 * testsuite/23_containers/unordered_multimap/debug/move_neg.cc:
222 New.
223 * testsuite/23_containers/unordered_multiset/debug/construct5_neg.cc:
224 New.
225 * testsuite/23_containers/unordered_multiset/debug/move_assign_neg.cc:
226 New.
227 * testsuite/23_containers/unordered_multiset/debug/move_neg.cc:
228 New.
229 * testsuite/23_containers/unordered_set/debug/construct5_neg.cc:
230 New.
231 * testsuite/23_containers/unordered_set/debug/move_assign_neg.cc:
232 New.
233 * testsuite/23_containers/unordered_set/debug/move_neg.cc: New.
234 * testsuite/23_containers/vector/debug/move_neg.cc: New.
235
236 2014-05-05 Andreas Schwab <schwab@linux-m68k.org>
237
238 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt
239 (CXXABI_1.3.9): Remove __float128 symbols.
240
241 2014-05-02 Jonathan Wakely <jwakely@redhat.com>
242
243 PR libstdc++/59476
244 * python/libstdcxx/v6/printers.py (get_value_from_Rb_tree_node): New
245 function to handle both C++03 and C++11 _Rb_tree_node implementations.
246 (StdRbtreeIteratorPrinter, StdMapPrinter, StdSetPrinter): Use it.
247 * testsuite/libstdc++-prettyprinters/simple.cc: Update comment to
248 refer to...
249 * testsuite/libstdc++-prettyprinters/simple11.cc: New.
250
251 PR libstdc++/61036
252 * include/bits/shared_ptr_base.h (__shared_ptr::__shared_ptr(_Tp1*)):
253 Check the correct type in the static assertion.
254 * testsuite/20_util/shared_ptr/cons/61036.cc: New.
255
256 2014-04-27 Tim Shen <timshen91@gmail.com>
257
258 * include/bits/regex_automaton.h (_NFA<>::_M_insert_repeat):
259 Add _S_opcode_repeat support to distingush a loop from
260 _S_opcode_alternative.
261 * include/bits/regex_automaton.tcc (_State_base::_M_print,
262 _State_base::_M_dot, _NFA<>::_M_eliminate_dummy,
263 _StateSeq<>::_M_clone): Likewise.
264 * include/bits/regex_compiler.tcc (_Compiler<>::_M_quantifier):
265 Likewise.
266 * include/bits/regex_executor.tcc (_Executor<>::_M_dfs): Likewise.
267 * include/bits/regex_scanner.tcc (_Scanner<>::_M_eat_escape_ecma):
268 Uglify local variable __i.
269 * include/bits/regex_compiler.h (_BracketMatcher<>::_M_make_cache):
270 Use size_t instead of int to compare with vector::size().
271
272 2014-04-27 Tim Shen <timshen91@gmail.com>
273
274 * include/bits/regex_executor.h: Add _M_rep_count to track how
275 many times this repeat node are visited.
276 * include/bits/regex_executor.tcc (_Executor<>::_M_rep_once_more,
277 _Executor<>::_M_dfs): Use _M_rep_count to prevent entering
278 infinite loop.
279
280 2014-04-27 Tim Shen <timshen91@gmail.com>
281
282 * include/bits/regex.tcc (__regex_algo_impl<>): Remove
283 _GLIBCXX_REGEX_DFS_QUANTIFIERS_LIMIT and use
284 _GLIBCXX_REGEX_USE_THOMPSON_NFA instead.
285 * include/bits/regex_automaton.h: Remove quantifier counting variable.
286 * include/bits/regex_automaton.tcc (_State_base::_M_dot):
287 Adjust debug NFA dump.
288
289 2014-04-25 Lars Gullik Bjønnes <larsbj@gullik.org>
290
291 PR libstdc++/60710
292 * include/experimental/optional (operator!=): Implement in terms of
293 operator==.
294 * testsuite/experimental/optional/relops/1.cc: Remove operator!=.
295 * testsuite/experimental/optional/relops/2.cc: Likewise.
296 * testsuite/experimental/optional/relops/3.cc: Likewise.
297 * testsuite/experimental/optional/relops/4.cc: Likewise.
298 * testsuite/experimental/optional/relops/5.cc: Likewise.
299 * testsuite/experimental/optional/relops/6.cc: Likewise.
300
301 2014-04-25 Jonathan Wakely <jwakely@redhat.com>
302
303 PR libstdc++/60958
304 * include/tr1/regex (regex_traits::isctype): Comment out broken code.
305 * testsuite/util/testsuite_regex.h (regex_match_debug): Improve
306 comment.
307
308 2014-04-25 Marc Glisse <marc.glisse@inria.fr>
309
310 * testsuite/util/testsuite_abi.cc (check_version): Update for
311 CXXABI_1.3.9.
312
313 2014-04-24 Tim Shen <timshen91@gmail.com>
314
315 * include/bits/regex_automaton.tcc (_StateSeq<>::_M_clone()):
316 Do _M_alt before _M_next.
317 * testsuite/28_regex/basic_regex/multiple_quantifiers.cc: Add testcases.
318
319 2014-04-24 Marc Glisse <marc.glisse@inria.fr>
320
321 PR libstdc++/43622
322 * config/abi/pre/gnu.ver (CXXABI_1.3.9): Remove __float128 symbols.
323 * config/abi/pre/gnu-versioned-namespace.ver: Likewise.
324 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
325
326 2014-04-24 Andreas Schwab <schwab@suse.de>
327
328 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update for
329 new CXXABI_1.3.9 symbols.
330
331 2014-04-23 Andreas Schwab <schwab@linux-m68k.org>
332
333 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt
334 (CXXABI_1.3.9): New version.
335
336 2014-04-22 Marc Glisse <marc.glisse@inria.fr>
337
338 PR libstdc++/43622
339 * config/abi/pre/gnu.ver (CXXABI_1.3.9): New version, new symbols.
340 * config/abi/pre/gnu-versioned-namespace.ver: New symbols.
341 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
342
343 2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
344
345 * configure.host: Remove solaris2.9 handling.
346 Change os_include_dir to os/solaris/solaris2.10.
347 * acinclude.m4 (ac_has_gthreads): Remove solaris2.9* handling.
348 * crossconfig.m4: Remove *-solaris2.9 handling, simplify.
349 * configure: Regenerate.
350 * config/abi/post/solaris2.9: Remove.
351 * config/os/solaris/solaris2.9: Rename to ...
352 * config/os/solaris/solaris2.10: ... this.
353 * config/os/solaris/solaris2.10/os_defines.h (CLOCK_MONOTONIC):
354 Remove.
355
356 * doc/xml/manual/configure.xml (--enable-libstdcxx-threads):
357 Remove Solaris 9 reference.
358 * doc/html/manual/configure.html: Regenerate.
359
360 * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
361 Remove *-*-solaris2.9 xfail.
362 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc:
363 Likewise.
364
365 * testsuite/ext/enc_filebuf/char/13598.cc: Remove *-*-solaris2.9
366 xfail.
367
368 2014-04-16 Jonathan Wakely <jwakely@redhat.com>
369
370 * include/std/functional (__is_location_invariant): Use __or_ helper.
371
372 2014-04-15 Jonathan Wakely <jwakely@redhat.com>
373
374 PR libstdc++/60734
375 * include/bits/stl_tree.h (_Rb_tree::_M_end): Fix invalid cast.
376
377 PR libstdc++/60695
378 * include/std/atomic (atomic<_Tp>): Add static assertion.
379 * testsuite/29_atomics/atomic/60695.cc: New.
380
381 PR libstdc++/60594
382 * include/std/functional (function::_Callable): Exclude own type
383 from the callable checks.
384 * testsuite/20_util/function/60594.cc: New.
385
386 * include/bits/atomic_base.h (__atomic_base<_PTp*>::_M_type_size): Add
387 const to constexpr member functions.
388
389 * include/bits/shared_ptr.h (shared_ptr::shared_ptr(nullptr_t)): Use
390 delegating constructor.
391 * include/bits/shared_ptr_base.h
392 (__shared_ptr::__shared_ptr(nullptr_t)): Likewise
393
394 * include/std/atomic: Uglify parameter names.
395
396 PR c++/60786
397 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/
398 1.cc: Fix invalid explicit instantiations with unqualified names.
399 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/
400 2.cc: Likweise.
401 * testsuite/20_util/tuple/53648.cc: Likweise.
402 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc:
403 Likewise.
404 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc:
405 Likewise.
406 * testsuite/23_containers/unordered_map/requirements/
407 debug_container.cc: Likewise.
408 * testsuite/23_containers/unordered_map/requirements/
409 explicit_instantiation/3.cc: Likewise.
410 * testsuite/23_containers/unordered_multimap/requirements/debug.cc:
411 Likewise.
412 * testsuite/23_containers/unordered_multimap/requirements/
413 explicit_instantiation/3.cc: Likewise.
414 * testsuite/23_containers/unordered_multiset/requirements/debug.cc:
415 Likewise.
416 * testsuite/23_containers/unordered_multiset/requirements/
417 explicit_instantiation/3.cc: Likewise.
418 * testsuite/23_containers/unordered_set/requirements/
419 debug_container.cc: Likewise.
420 * testsuite/23_containers/unordered_set/requirements/
421 explicit_instantiation/3.cc: Likewise.
422
423 * testsuite/24_iterators/insert_iterator/requirements/container.cc: Do
424 not use uninitialized members in mem-initializers.
425 * testsuite/ext/throw_value/cons.cc: Fix most vexing parse.
426 * testsuite/util/testsuite_common_types.h: Update comment.
427
428 * include/experimental/string_view: Fix inconsistent exception specs.
429
430 * include/bits/shared_ptr.h (shared_ptr::shared_ptr(nullptr_t)):
431 Remove name of unused parameter.
432
433 2014-04-14 Jonathan Wakely <jwakely@redhat.com>
434
435 * include/bits/stl_vector.h (_Vector_base::_Vector_impl,
436 _Vector_base::_M_allocate): NullablePointer requirements do not
437 include initialization from literal zero, use value-initialization.
438 * include/bits/vector.tcc (vector::_M_insert_aux,
439 vector::_M_explace_back_aux): Likewise for assignment.
440
441 * include/bits/allocator.h (operator==, operator!=): Add exception
442 specifications.
443
444 PR libstdc++/60497
445 * include/std/tuple (get): Qualify calls to prevent ADL.
446 * testsuite/20_util/tuple/60497.cc: New.
447
448 * include/std/tuple (tuple_element_t): Define.
449 * testsuite/20_util/tuple/tuple_element.cc: Change to compile-only
450 test.
451 * testsuite/20_util/tuple/tuple_element_t.cc: New.
452
453 2014-04-11 Marc Glisse <marc.glisse@inria.fr>
454
455 PR libstdc++/59434
456 * include/bits/stl_iterator.h (move_iterator::reference,
457 move_iterator::operator*): Implement LWG 2106.
458 * testsuite/24_iterators/move_iterator/dr2106.cc: New file.
459
460 2014-04-11 Marc Glisse <marc.glisse@inria.fr>
461
462 * include/std/complex (__complex_exp, pow): Specify the template
463 parameter in calls to std::polar, for expression templates.
464
465 2014-04-10 Andreas Schwab <schwab@suse.de>
466
467 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Remove TLS
468 symbols.
469 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
470 * config/abi/post/mips64-linux-gnu/baseline_symbols.txt: Likewise.
471
472 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
473
474 2014-04-07 Jonathan Wakely <jwakely@redhat.com>
475
476 * testsuite/20_util/exchange/1.cc: Add missing return statements.
477 * testsuite/20_util/pair/40925.cc: Avoid most vexing parse.
478 * testsuite/22_locale/codecvt_byname/50714.cc: Add missing exception
479 specifications.
480
481 2014-04-02 Dominique d'Humieres <dominiq@lps.ens.fr>
482 Jack Howarth <howarth@bromo.med.uc.edu>
483
484 PR target/54407
485 * testsuite/30_threads/condition_variable/54185.cc: Skip for
486 darwin < 11.
487
488 2014-04-01 Jonathan Wakely <jwakely@redhat.com>
489
490 * doc/xml/manual/backwards_compatibility.xml (backwards.third.headers):
491 Update link.
492 * doc/xml/manual/policy_data_structures_biblio.xml (bibliography):
493 Fix broken links.
494 * doc/xml/manual/shared_ptr.xml (shared_ptr.impl): Likewise.
495 * doc/xml/manual/using_exceptions.xml (bibliography): Likewise.
496 * doc/xml/manual/concurrency_extensions.xml
497 (manual.ext.concurrency.impl.atomic_fallbacks): Likewise.
498 * doc/html/*: Regenerate.
499
500 2014-03-31 Lars Gullik Bjønnes <larsbj@gullik.org>
501 Jonathan Wakely <jwakely@redhat.com>
502
503 PR libstdc++/60270
504 * include/std/iomanip (_Quoted_string operator>>): Do not clear
505 string if input is not quoted.
506 * testsuite/27_io/manipulators/standard/char/60270.cc: New.
507
508 2014-03-31 Jonathan Wakely <jwakely@redhat.com>
509
510 * libsupc++/eh_ptr.cc: Improve static_assert messages.
511
512 2014-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
513
514 * testsuite/18_support/exception_ptr/60612-terminate.cc
515 (terminate, f): Wrap in _GLIBCXX_USE_C99.
516 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Likewise.
517
518 2014-03-27 Jonathan Wakely <jwakely@redhat.com>
519
520 * doc/xml/manual/io.xml (std.io.objects): Additional markup.
521
522 * doc/xml/faq.xml (faq): Refer to clauses instead of chapters.
523 * doc/xml/manual/appendix_contributing.xml (contrib.design_notes):
524 Likewise.
525 * doc/xml/manual/backwards_compatibility.xml (backwards.third):
526 Likewise.
527 * doc/xml/manual/test.xml (test.organization.layout): Likewise.
528
529 * doc/xml/manual/containers.xml (associative.bitset.size_variable):
530 Fix bad s/part/chapter/ substitutions.
531 * doc/xml/manual/io.xml (std.io): Likewise.
532 * doc/xml/manual/numerics.xml (std.numerics.generalized_ops): Likewise.
533 * doc/xml/manual/strings.xml (strings.string.Cstring): Likewise.
534
535 * doc/html/*: Regenerate.
536
537 2014-03-27 Jonathan Wakely <jwakely@redhat.com>
538
539 PR libstdc++/60612
540 * libsupc++/eh_ptr.cc: Assert __cxa_dependent_exception layout is
541 compatible with __cxa_exception.
542 * libsupc++/unwind-cxx.h (__cxa_dependent_exception): Add padding.
543 Fix typos in comments.
544 * testsuite/18_support/exception_ptr/60612-terminate.cc: New.
545 * testsuite/18_support/exception_ptr/60612-unexpected.cc: New.
546
547 2014-03-25 Jonathan Wakely <jwakely@redhat.com>
548
549 PR libstdc++/60658
550 * include/bits/atomic_base.h (__atomic_base<_PTp*>::is_lock_free()):
551 Use sizeof pointer type not the element type.
552 * testsuite/29_atomics/atomic/60658.cc: New.
553
554 2014-03-24 Jakub Jelinek <jakub@redhat.com>
555
556 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
557 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
558 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
559 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
560 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
561 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
562 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
563 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
564 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
565 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Remove TLS
566 entries.
567
568 2014-03-23 John David Anglin <danglin@gcc.gnu.org>
569
570 * testsuite/23_containers/bitset/45713.cc: Skip compile on hppa*64*-*-*.
571
572 2014-03-23 François Dumont <fdumont@gcc.gnu.org>
573
574 * include/bits/hashtable.h (_Hashtable(allocator_type)): Fix call
575 to delegated constructor.
576 (_Hashtable(size_type, _H1, key_equal, allocator_type)): Likewise.
577 (_Hashtable<_It>(_It, _It, size_type, _H1, key_equal, allocator_type)):
578 Likewise.
579 (_Hashtable(
580 initializer_list, size_type, _H1, key_equal, allocator_type)): Likewise.
581
582 2014-03-23 John David Anglin <danglin@gcc.gnu.org>
583
584 PR libstdc++/60623
585 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
586
587 2014-03-21 Jonathan Wakely <jwakely@redhat.com>
588
589 PR libstdc++/60587
590 * include/debug/functions.h (_Is_contiguous_sequence): Define.
591 (__foreign_iterator): Accept additional iterator. Do not dispatch on
592 iterator category.
593 (__foreign_iterator_aux2): Likewise. Add overload for iterators
594 from different types of debug container. Use _Is_contiguous_sequence
595 instead of is_lvalue_reference.
596 (__foreign_iterator_aux3): Accept additional iterator. Avoid
597 dereferencing past-the-end iterator.
598 (__foreign_iterator_aux4): Use const value_type* instead of
599 potentially user-defined const_pointer type.
600 * include/debug/macros.h (__glibcxx_check_insert_range): Fix comment
601 and pass end iterator to __gnu_debug::__foreign_iterator.
602 (__glibcxx_check_insert_range_after): Likewise.
603 (__glibcxx_check_max_load_factor): Fix comment.
604 * include/debug/vector (_Is_contiguous_sequence): Define partial
605 specializations.
606 * testsuite/23_containers/vector/debug/57779_neg.cc: Remove
607 -std=gnu++11 option and unused header.
608 * testsuite/23_containers/vector/debug/60587.cc: New.
609 * testsuite/23_containers/vector/debug/60587_neg.cc: New.
610
611 2014-03-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
612
613 * crossconfig.m4: Support spu-*-elf* targets.
614 * configure: Regenerate.
615
616 2014-03-18 Jonathan Wakely <jwakely@redhat.com>
617
618 PR libstdc++/60564
619 * include/std/future (__future_base::_Task_state<>): Change
620 constructors to template functions using perfect forwarding.
621 (__create_task_state): Use decayed type as stored task.
622 (packaged_task::packaged_task(_Fn&&)): Forward instead of moving.
623 * testsuite/30_threads/packaged_task/60564.cc: New.
624
625 2014-03-16 François Dumont <fdumont@gcc.gnu.org>
626
627 * scripts/create_testsuite_files: Add testsuite/experimental in
628 the list of folders to search for tests.
629
630 2014-03-15 Andreas Schwab <schwab@linux-m68k.org>
631
632 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: New file.
633
634 2014-03-15 Tim Shen <timshen91@gmail.com>
635
636 * include/bits/regex.h: Add/modify comments.
637 * include/bits/regex_compiler.h: Likewise.
638 * include/bits/regex_executor.h: Likewise.
639 * include/bits/regex_executor.tcc: Likewise.
640 * include/bits/regex_scanner.h: Likewise.
641
642 2014-03-14 Jonathan Wakely <jwakely@redhat.com>
643
644 PR ipa/58721
645 * config/abi/pre/gnu.ver (GLIBCXX_3.4.11): Remove unused pattern for
646 _ZNSt12system_errorC* symbols which are not exported on any target.
647
648 2014-03-12 Roland McGrath <mcgrathr@google.com>
649 Mark Seaborn <mseaborn@google.com>
650
651 PR libstdc++/59392
652 * libsupc++/eh_call.cc (__cxa_call_unexpected): Call __do_catch with
653 the address of a null pointer, not with a null pointer to pointer.
654 Copy comment for this case from eh_personality.cc:__cxa_call_unexpected.
655 * testsuite/18_support/bad_exception/59392.cc: New file.
656
657 2014-03-11 Jonathan Wakely <jwakely@redhat.com>
658
659 PR libstdc++/60499
660 * include/debug/forward_list (forward_list::operator=(forward_list&&)):
661 Uglify name.
662 * include/debug/map (map::operator=(map&&)): Likewise.
663 * include/debug/multimap (multimap::operator=(multimap&&)): Likewise.
664 * include/debug/multiset (multiset::operator=(multiset&&)): Likewise.
665 * include/debug/set (set::operator=(set&&)): Likewise.
666 * include/debug/unordered_map
667 (unordered_map::operator=(unordered_map&&)): Likewise.
668 (unordered_multimap::operator=(unordered_multimap&&)): Likewise.
669 * include/debug/unordered_set
670 (unordered_set::operator=(unordered_set&&)): Likewise.
671 (unordered_multiset::operator=(unordered_multiset&&)): Likewise.
672 * include/debug/vector (vector::operator=(vector&&)): Likewise.
673 * testsuite/23_containers/forward_list/debug/60499.cc: New
674 * testsuite/23_containers/map/debug/60499.cc: New
675 * testsuite/23_containers/multimap/debug/60499.cc: New
676 * testsuite/23_containers/multiset/debug/60499.cc: New
677 * testsuite/23_containers/set/debug/60499.cc: New
678 * testsuite/23_containers/unordered_map/debug/60499.cc: New
679 * testsuite/23_containers/unordered_multimap/debug/60499.cc: New
680 * testsuite/23_containers/unordered_multiset/debug/60499.cc: New
681 * testsuite/23_containers/unordered_set/debug/60499.cc: New
682 * testsuite/23_containers/vector/debug/60499.cc: New
683
684 2014-03-05 Ed Smith-Rowland <3dw4rd@verizon.net>
685
686 * doc/xml/manual/status_cxx2014.xml: Add new items and latest papers
687 for filesystem and fundamentals TS work items.
688
689 2014-03-04 Paolo Carlini <paolo.carlini@oracle.com>
690
691 PR c++/60376
692 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
693 Adjust dg-error directives.
694
695 2014-02-26 Tim Shen <timshen91@gmail.com>
696
697 * include/bits/regex.tcc (match_results<>::format,
698 regex_replace<>): Update __out after calling std::copy.
699 * testsuite/28_regex/algorithms/regex_replace/char/dr2213.cc:
700 Add testcase.
701 * testsuite/28_regex/match_results/format.cc: Likewise.
702
703 2014-02-22 Marc Glisse <marc.glisse@inria.fr>
704
705 PR libstdc++/60308
706 * include/bits/stl_deque.h (_Deque_base::_Deque_base(const
707 allocator_type&)): Remove redundant call to _M_initialize_map.
708 (deque::deque(const allocator_type&)): Initialize _Base with a
709 constructor that calls _M_initialize_map.
710
711 Partial revert:
712
713 2013-09-20 Marc Glisse <marc.glisse@inria.fr>
714 PR libstdc++/58338
715 (_Deque_base) [_Deque_base(const allocator_type&)]: Add missing call to
716 _M_initialize_map.
717
718 2014-02-21 Ed Smith-Rowland <3dw4rd@verizon.net>
719
720 Rename testsuite directory shared_mutex to shared_timed_mutex
721 for consistency.
722 * testsuite/30_threads/shared_mutex: Moved to...
723 * testsuite/30_threads/shared_timed_mutex: ...here
724
725 2014-02-20 Ed Smith-Rowland <3dw4rd@verizon.net>
726
727 Rename shared_mutex to shared_timed_mutex per C++14 acceptance of N3891.
728 * include/std/shared_mutex: Rename shared_mutex to shared_timed_mutex.
729 * testsuite/30_threads/shared_lock/locking/2.cc: Ditto.
730 * testsuite/30_threads/shared_lock/locking/4.cc: Ditto.
731 * testsuite/30_threads/shared_lock/locking/1.cc: Ditto.
732 * testsuite/30_threads/shared_lock/locking/3.cc: Ditto.
733 * testsuite/30_threads/shared_lock/requirements/
734 explicit_instantiation.cc: Ditto.
735 * testsuite/30_threads/shared_lock/requirements/typedefs.cc: Ditto.
736 * testsuite/30_threads/shared_lock/cons/2.cc: Ditto.
737 * testsuite/30_threads/shared_lock/cons/4.cc: Ditto.
738 * testsuite/30_threads/shared_lock/cons/1.cc: Ditto.
739 * testsuite/30_threads/shared_lock/cons/6.cc: Ditto.
740 * testsuite/30_threads/shared_lock/cons/3.cc: Ditto.
741 * testsuite/30_threads/shared_lock/cons/5.cc: Ditto.
742 * testsuite/30_threads/shared_lock/modifiers/2.cc: Ditto.
743 * testsuite/30_threads/shared_lock/modifiers/1.cc: Ditto.
744 * testsuite/30_threads/shared_mutex/requirements/
745 standard_layout.cc: Ditto.
746 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Ditto.
747 * testsuite/30_threads/shared_mutex/cons/1.cc: Ditto.
748 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: Ditto.
749 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Ditto.
750 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Ditto.
751
752 2014-02-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
753
754 * testsuite/22_locale/num_put/put/char/14220.cc: Don't xfail
755 execution on i?86-*-solaris2.9, remove comment.
756 * testsuite/22_locale/num_put/put/wchar_t/14220.cc: Likewise.
757
758 2014-02-09 Richard Sandiford <rdsandiford@googlemail.com>
759
760 * config/abi/post/mips64-linux-gnu/32/baseline_symbols.txt: New file.
761 * config/abi/post/mips64-linux-gnu/baseline_symbols.txt: Update.
762 * config/abi/post/mips64-linux-gnu/64/baseline_symbols.txt: Likewise.
763
764 2014-01-29 Jonathan Wakely <jwakely@redhat.com>
765
766 * include/bits/alloc_traits.h (allocator_traits::_S_allocate): Do
767 not use varargs when argument could be non-POD.
768 (__alloctr_rebind_helper): Eliminate static const bool member by
769 using true_type and false_type.
770 (allocator_traits::__allocate_helper): Likewise.
771 (allocator_traits::__construct_helper): Likewise.
772 (allocator_traits::__destroy_helper): Likewise.
773 (allocator_traits::__maxsize_helper): Likewise.
774 (allocator_traits::__select_helper): Likewise.
775 * include/bits/ptr_traits.h (__ptrtr_rebind_helper): Likewise.
776 * include/bits/stl_tree.h (_Rb_tree::operator=(const _Rb_tree&)):
777 Remove redundant condition.
778 * include/bits/stl_vector.h (vector::operator=(const vector&)):
779 Likewise.
780 (_Vector_impl::_M_allocate, _Vector_impl::_M_deallocate): Use
781 indirection through __alloc_traits.
782 * include/ext/alloc_traits.h (__allocator_always_compares_equal):
783 Eliminate static const bool members by using true_type and false_type.
784 (__gnu_cxx::__alloc_traits::__is_custom_pointer): Optimize.
785 * testsuite/util/testsuite_allocator.h (PointerBase): Define.
786 * testsuite/20_util/allocator_traits/members/allocate_hint_nonpod.cc:
787 New.
788 * testsuite/20_util/allocator_traits/requirements/typedefs2.cc: New.
789
790 PR libstdc++/59829
791 * include/bits/stl_vector.h (vector::data()): Call _M_data_ptr.
792 (vector::_M_data_ptr): New overloaded functions to ensure empty
793 vectors do not dereference the pointer.
794 * testsuite/23_containers/vector/59829.cc: New.
795 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
796 Adjust dg-error line number.
797 * testsuite/23_containers/vector/requirements/dr438/
798 constructor_1_neg.cc: Likewise.
799 * testsuite/23_containers/vector/requirements/dr438/
800 constructor_2_neg.cc: Likewise.
801 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
802 Likewise.
803
804 PR libstdc++/21609
805 * include/ext/array_allocator.h: Add deprecated attribute.
806
807 PR libstdc++/57226
808 * doc/xml/manual/debug.xml (debug.gdb): Update documentation for
809 installation and use of python printers.
810 * doc/xml/manual/status_cxx2011.xml: Update.
811 * doc/html/*: Regenerate.
812
813 2014-01-28 Jonathan Wakely <jwakely@redhat.com>
814 Kyle Lippincott <spectral@google.com>
815
816 PR libstdc++/59656
817 * include/bits/shared_ptr.h (shared_ptr): Add new non-throwing
818 constructor and grant friendship to weak_ptr.
819 (weak_ptr::lock()): Use new constructor.
820 * include/bits/shared_ptr_base.h
821 (_Sp_counted_base::_M_add_ref_lock_nothrow()): Declare new function
822 and define specializations.
823 (__shared_count): Add new non-throwing constructor.
824 (__shared_ptr): Add new non-throwing constructor and grant friendship
825 to __weak_ptr.
826 (__weak_ptr::lock()): Use new constructor.
827 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
828 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
829
830 2014-01-27 Jonathan Wakely <jwakely@redhat.com>
831
832 PR libstdc++/59215
833 * include/bits/shared_ptr_base.h
834 (_Sp_counted_base<_S_atomic>::_M_add_ref_lock()): Use relaxed atomic
835 load.
836
837 2014-01-27 Jason Merrill <jason@redhat.com>
838
839 Core DR 475
840 PR c++/41174
841 PR c++/59224
842 * libsupc++/eh_throw.cc (__cxa_throw): Set uncaughtExceptions.
843 * libsupc++/eh_alloc.cc (__cxa_allocate_dependent_exception)
844 (__cxa_allocate_exception): Don't set it here.
845
846 2014-01-26 Jonathan Wakely <jwakely@redhat.com>
847
848 * include/bits/stl_map.h: Remove anachronistic comment.
849 * include/bits/stl_multimap.h: Add whitespace.
850 * testsuite/23_containers/map/modifiers/emplace/1.cc: Use
851 -std=gnu++11 instead of -std=c++11.
852 * testsuite/23_containers/map/operators/2.cc: Likewise.
853 * testsuite/23_containers/multimap/modifiers/emplace/1.cc: Likewise.
854 * testsuite/23_containers/multiset/modifiers/emplace/1.cc: Likewise.
855 * testsuite/23_containers/set/modifiers/emplace/1.cc: Likewise.
856
857 * acinclude.m4 (GLIBCXX_ENABLE_C99): Fix typo.
858 * configure: Regenerate.
859
860 2014-01-24 Ed Smith-Rowland <3dw4rd@verizon.net>
861
862 PR libstdc++/59531
863 * testsuite/experimental/string_view/operations/copy/char/1.cc: New.
864 * testsuite/experimental/string_view/operations/copy/wchar_t/1.cc: New.
865
866 2014-01-24 Ed Smith-Rowland <3dw4rd@verizon.net>
867 Peter A. Bigot <pab@pabigot.com>
868
869 PR libstdc++/59531
870 * include/experimental/string_view
871 (copy(_CharT*, size_type, size_type) const): Correct throw string.
872 Correct copy start location.
873
874 2014-01-24 Ed Smith-Rowland <3dw4rd@verizon.net>
875 Peter A. Bigot <pab@pabigot.com>
876
877 PR libstdc++/59530
878 * include/experimental/string_view (operator[](size_type) const):
879 Fix one-off index error in debug check.
880 * testsuite/experimental/string_view/element_access/char/1.cc: Don't
881 test basic_string_view at size().
882 * testsuite/experimental/string_view/element_access/wchar_t/1.cc: Ditto.
883
884 2014-01-24 Ed Smith-Rowland <3dw4rd@verizon.net>
885 Peter A. Bigot <pab@pabigot.com>
886
887 PR libstdc++/59529
888 * include/experimental/string_view
889 (basic_string_view(const _CharT*, size_type)): Don't care if len == 0.
890 * testsuite/experimental/string_view/operations/substr/char/1.cc:
891 Comment out catch of out_of_range; No terminating null
892 in basic_string_view. Check begin == end.
893 * testsuite/experimental/string_view/operations/substr/wchar_t/1.cc:
894 Ditto.
895
896 2014-01-24 Jonathan Wakely <jwakely@redhat.com>
897
898 PR libstdc++/59548
899 * include/debug/safe_base.h (_Safe_sequence_base): Define copy
900 constructor to prevent it being implicitly defined as deleted, but
901 do not copy anything.
902 * include/debug/safe_unordered_base.h (_Safe_unordered_container_base):
903 Define copy and move constructors similar to _Safe_sequence_base's.
904 * testsuite/23_containers/unordered_map/59548.cc: New.
905
906 2014-01-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
907 Steve Ellcey <sellcey@mips.com>
908
909 * acinclude.m4 (GLIBCXX_CHECK_TMPNAM): New check for tmpnam
910 function.
911 * configure.ac: Use GLIBCXX_CHECK_TMPNAM.
912 * (configure, config.h.in): Regenerate.
913 * include/c_global/cstdio: Guard ::tmpnam with _GLIBCXX_USE_TMPNAM
914
915 2014-01-23 Jonathan Wakely <jwakely@redhat.com>
916
917 * doc/xml/faq.xml (a-how_to_set_paths): Expand FAQ answer.
918 * doc/xml/manual/abi.xml (abi.versioning.history): Correct symver.
919
920 PR libstdc++/59872
921 * include/bits/stl_map.h (map::operator=(map&&)): Fix comment.
922 * include/bits/stl_multimap.h (multimap::operator=(multimap&&)):
923 Likewise.
924 * include/bits/stl_multiset.h (multiset::operator=(multiset&&)):
925 Likewise.
926 * include/bits/stl_set.h (set::operator=(set&&)): Likewise.
927 * include/bits/stl_tree.h (_Rb_tree::_M_move_data): New overloaded
928 functions to perform moving or copying of elements from rvalue tree.
929 (_Rb_tree::_Rb_tree(_Rb_tree&&)): Use _M_move_data.
930 (_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Likewise.
931 * testsuite/23_containers/map/59872.cc: New.
932 * testsuite/23_containers/map/56613.cc: Remove duplicate include.
933
934 2014-01-22 Jonathan Wakely <jwakely@redhat.com>
935
936 * include/bits/stl_deque.h (_Deque_impl): Move comment.
937
938 PR libstdc++/58764
939 * include/bits/stl_deque.h (deque::deque(const allocator_type&):
940 Split into separate default constructor and constructor taking
941 allocator.
942 * include/bits/stl_list.h (list::list(const allocator_type&): Likewise.
943 * include/bits/stl_vector.h (vector::vector(const allocator_type&):
944 Likewise.
945 * include/debug/deque (deque::deque(const allocator_type&)): Likewise.
946 * include/debug/list (list::list(const _Allocator&)): Likewise.
947 * include/debug/map.h (map::map(const _Compare&, const _Allocator&)):
948 Likewise.
949 * include/debug/multimap.h
950 (multimap::multimap(const _Compare&, const _Allocator&)): Likewise.
951 * include/debug/set.h (set::set(const _Compare&, const _Allocator&)):
952 Likewise.
953 * include/debug/multiset.h
954 (multiset::multiset(const _Compare&, const _Allocator&)): Likewise.
955 * include/debug/vector (vector::vector(const allocator_type&)):
956 Likewise.
957 * include/profile/deque (deque::deque(const _Allocator&)): Likewise.
958 * include/profile/list (list::list(const _Allocator&)): Likewise.
959 * include/profile/map.h
960 (map::map(const _Compare&, const _Allocator&)): Likewise.
961 * include/profile/multimap.h
962 (multimap::multimap(const _Compare&, const _Allocator&)): Likewise.
963 * include/profile/set.h
964 (set::set(const _Compare&, const _Allocator&)): Likewise.
965 * include/profile/multiset.h
966 (multiset::multiset(const _Compare&, const _Allocator&)): Likewise.
967 * include/profile/vector (vector::vector(const _Allocator&)):
968 Likewise.
969 * testsuite/23_containers/deque/58764.cc: New.
970 * testsuite/23_containers/list/58764.cc: New.
971 * testsuite/23_containers/map/58764.cc: New.
972 * testsuite/23_containers/multimap/58764.cc: New.
973 * testsuite/23_containers/set/58764.cc: New.
974 * testsuite/23_containers/multiset/58764.cc: New.
975 * testsuite/23_containers/vector/58764.cc: New.
976 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
977 Adjust dg-error line number.
978 * testsuite/23_containers/deque/requirements/dr438/
979 constructor_1_neg.cc: Likewise.
980 * testsuite/23_containers/deque/requirements/dr438/
981 constructor_2_neg.cc: Likewise.
982 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
983 Likewise.
984 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
985 Likewise.
986 * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
987 Likewise.
988 * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
989 Likewise.
990 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
991 Likewise.
992 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
993 Likewise.
994 * testsuite/23_containers/vector/requirements/dr438/
995 constructor_1_neg.cc: Likewise.
996 * testsuite/23_containers/vector/requirements/dr438/
997 constructor_2_neg.cc: Likewise.
998 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
999 Likewise.
1000
1001 PR libstdc++/58764 (again)
1002 * include/bits/stl_list.h (list): Make default constructor's exception
1003 specification conditional.
1004 * include/bits/stl_vector.h (vector): Likewise.
1005 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add noexcept
1006 to default constructor.
1007 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1008 Adjust dg-error line number.
1009 * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
1010 Likewise.
1011 * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
1012 Likewise.
1013 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1014 Likewise.
1015 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
1016 Likewise.
1017 * testsuite/23_containers/vector/requirements/dr438/
1018 constructor_1_neg.cc: Likewise.
1019 * testsuite/23_containers/vector/requirements/dr438/
1020 constructor_2_neg.cc: Likewise.
1021 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
1022 Likewise.
1023
1024 2014-01-21 Tim Shen <timshen91@gmail.com>
1025
1026 * include/bits/regex.tcc: Remove incorrect `nosubs` handling.
1027 * include/bits/regex_scanner.tcc: Handle `nosubs` correctly.
1028 * testsuite/28_regex/constants/syntax_option_type.cc: Add a test case.
1029
1030 2014-01-21 Jonathan Wakely <jwakely@redhat.com>
1031
1032 PR libstdc++/56267
1033 * include/bits/hashtable.h (__cache_default): Do not depend on
1034 whether the hash function is DefaultConstructible or CopyAssignable.
1035 (_Hashtable): Adjust static assertions.
1036 * doc/xml/manual/containers.xml (containers.unordered.cache): Update.
1037 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
1038 dg-error line number.
1039 * testsuite/23_containers/unordered_set/
1040 not_default_constructible_hash_neg.cc: Remove.
1041
1042 2014-01-20 François Dumont <fdumont@gcc.gnu.org>
1043
1044 * scripts/create_testsuite_files: Add testsuite/experimental in
1045 the list of folders to search for tests.
1046 * include/experimental/string_view
1047 (basic_string_view<>::operator[]): Comment _GLIBCXX_DEBUG_ASSERT,
1048 incompatible with constexpr qualifier.
1049 (basic_string_view<>::front()): Likewise.
1050 (basic_string_view<>::back()): Likewise.
1051 * testsuite/experimental/string_view/element_access/wchar_t/2.cc:
1052 Merge dg-options directives into one.
1053 * testsuite/experimental/string_view/element_access/char/2.cc:
1054 Likewise. Remove invalid experimental namespace scope on
1055 string_view_type.
1056
1057 2014-01-20 Jonathan Wakely <jwakely@redhat.com>
1058
1059 PR libstdc++/56267
1060 * include/bits/hashtable_policy.h (_Hash_code_base<... false>): Grant
1061 friendship to _Local_iterator_base<..., false>.
1062 (_Local_iterator_base): Give protected access to all existing members.
1063 (_Local_iterator_base::_M_curr()): New public accessor.
1064 (_Local_iterator_base::_M_get_bucket()): New public accessor.
1065 (_Local_iterator_base<..., false>::_M_init()): New function to manage
1066 the lifetime of the _Hash_code_base explicitly.
1067 (_Local_iterator_base<..., false>::_M_destroy()): Likewise.
1068 (_Local_iterator_base<..., false>): Define copy constructor and copy
1069 assignment operator that use new functions to manage _Hash_code_base.
1070 (operator==(const _Local_iterator_base&, const _Local_iterator_base&),
1071 operator==(const _Local_iterator_base&, const _Local_iterator_base&)):
1072 Use public API for _Local_iterator_base.
1073 * include/debug/safe_local_iterator.h (_Safe_local_iterator): Likewise.
1074 * include/debug/unordered_map (__debug::unordered_map::erase(),
1075 __debug::unordered_multimap::erase()): Likewise.
1076 * include/debug/unordered_set (__debug::unordered_set::erase(),
1077 __debug::unordered_multiset::erase()): Likewise.
1078 * testsuite/23_containers/unordered_set/56267-2.cc: New test.
1079
1080 2014-01-19 Tim Shen <timshen91@gmail.com>
1081
1082 * include/bits/regex_compiler.h (_Comipler<>::_M_quantifier()):
1083 Fix parse error of multiple consecutive quantifiers like "a**".
1084 * include/bits/regex_compiler.tcc (_Comipler<>::_M_quantifier()):
1085 Likewise.
1086 * testsuite/28_regex/basic_regex/multiple_quantifiers.cc: New.
1087
1088 2014-01-17 François Dumont <fdumont@gcc.gnu.org>
1089
1090 * include/profile/set.h (set): Implement C++11 allocator-aware
1091 container requirements.
1092 * include/profile/map.h (map): Likewise.
1093 * include/profile/multiset.h (multiset): Likewise.
1094 * include/profile/multimap.h (multimap): Likewise.
1095 * include/profile/set.h
1096 (set::operator=(const set&)): Define as default in C++11 mode.
1097 (set::operator=(set&&)): Likewise.
1098 * include/profile/map.h
1099 (map::operator=(const map&)): Likewise.
1100 (map::operator=(map&&)): Likewise.
1101 * include/profile/multiset.h
1102 (multiset::operator=(const multiset&)): Likewise.
1103 (multiset::operator=(multiset&&)): Likewise.
1104 * include/profile/multimap.h
1105 (multimap::operator=(const multimap&)): Likewise.
1106 (multimap::operator=(multimap&&)): Likewise.
1107 * include/profile/set.h (set::operator=(std::initializer_list<>)):
1108 Rely on the same operator from normal mode.
1109 * include/profile/map.h (map::operator=(std::initializer_list<>)):
1110 Likewise.
1111 * include/profile/multiset.h
1112 (multiset::operator=(std::initializer_list<>)): Likewise.
1113 * include/profile/multimap.h
1114 (multimap::operator=(std::initializer_list<>)): Likewise.
1115 * include/profile/set.h (set::swap(set&)): Add noexcept
1116 specification.
1117 * include/profile/map.h (map::swap(map&)): Likewise.
1118 * include/profile/multiset.h (multiset::swap(multiset&)): Likewise.
1119 * include/profile/multimap.h (multimap::swap(multimap&)): Likewise.
1120
1121 2014-01-17 Tim Shen <timshen91@gmail.com>
1122
1123 * include/bits/regex_automaton.tcc (_StateSeq<>::_M_clone()): Do not
1124 use std::map.
1125 * include/bits/regex_automaton.h: Do not use std::set.
1126 * include/bits/regex_compiler.h (_BracketMatcher<>::_M_add_char(),
1127 _BracketMatcher<>::_M_add_collating_element(),
1128 _BracketMatcher<>::_M_add_equivalence_class(),
1129 _BracketMatcher<>::_M_make_range()): Likewise.
1130 * include/bits/regex_compiler.tcc (_BracketMatcher<>::_M_apply()):
1131 Likewise.
1132 * include/bits/regex_executor.h: Do not use std::queue.
1133 * include/bits/regex_executor.tcc (_Executor<>::_M_main(),
1134 _Executor<>::_M_dfs()): Likewise.
1135 * include/std/regex: Remove <map>, <set> and <queue>.
1136
1137 2014-01-17 Tim Shen <timshen91@gmail.com>
1138
1139 * include/bits/regex.h (__compile_nfa<>(), basic_regex<>::basic_regex(),
1140 basic_regex<>::assign()): Change __compile_nfa to accept
1141 const _CharT* only.
1142 * include/bits/regex_compiler.h: Change _Compiler's template
1143 argument from <_FwdIter, _TraitsT> to <_TraitsT>.
1144 * include/bits/regex_compiler.tcc: Likewise.
1145
1146 2014-01-17 Tim Shen <timshen91@gmail.com>
1147
1148 * include/bits/regex_compiler.h: Change _ScannerT into char-type
1149 templated.
1150 * include/bits/regex_scanner.h (_Scanner<>::_Scanner()): Separate
1151 _ScannerBase from _Scanner; Change _Scanner's template argument from
1152 _FwdIter to _CharT. Avoid use of std::map and std::set by using arrays
1153 instead.
1154 * include/bits/regex_scanner.tcc (_Scanner<>::_Scanner(),
1155 _Scanner<>::_M_scan_normal(), _Scanner<>::_M_eat_escape_ecma(),
1156 _Scanner<>::_M_eat_escape_posix(), _Scanner<>::_M_eat_escape_awk()):
1157 Likewise.
1158 * include/std/regex: Add <cstring> for using strchr.
1159
1160 2014-01-17 Tim Shen <timshen91@gmail.com>
1161
1162 * bits/regex_automaton.tcc: Indentation fix.
1163 * bits/regex_compiler.h (__compile_nfa<>(), _Compiler<>,
1164 _RegexTranslator<> _AnyMatcher<>, _CharMatcher<>,
1165 _BracketMatcher<>): Add bool option template parameters and
1166 specializations to make matching more efficient and space saving.
1167 * bits/regex_compiler.tcc: Likewise.
1168
1169 2014-01-15 François Dumont <fdumont@gcc.gnu.org>
1170
1171 PR libstdc++/59712
1172 * include/bits/hashtable_policy.h: Fix some long lines.
1173 * include/bits/hashtable.h (__hash_code_base_access): Define and
1174 use it to check its _M_bucket_index noexcept qualification. Use
1175 also in place of...
1176 (__access_protected_ctor): ...this.
1177 * testsuite/23_containers/unordered_set/instantiation_neg.cc:
1178 Adapt line number.
1179 * testsuite/23_containers/unordered_set/
1180 not_default_constructible_hash_neg.cc: Likewise.
1181
1182 2014-01-13 François Dumont <fdumont@gcc.gnu.org>
1183
1184 * include/debug/set.h (set): Implement C++11 allocator-aware
1185 container requirements.
1186 * include/debug/map.h (map): Likewise.
1187 * include/debug/multiset.h (multiset): Likewise.
1188 * include/debug/multimap.h (multimap): Likewise.
1189 * include/debug/set.h (set::operator=(set&&)): Add noexcept and
1190 fix implementation regarding management of safe iterators.
1191 * include/debug/map.h (map::operator=(map&&)): Likewise.
1192 * include/debug/multiset.h (multiset::operator=(multiset&&)): Likewise.
1193 * include/debug/multimap.h (multimap::operator=(multimap&&)):
1194 Likewise.
1195 * include/debug/set.h (set::operator=(std::initializer_list<>)):
1196 Rely on the same operator from normal mode.
1197 * include/debug/map.h (map::operator=(std::initializer_list<>)):
1198 Likewise.
1199 * include/debug/multiset.h
1200 (multiset::operator=(std::initializer_list<>)): Likewise.
1201 * include/debug/multimap.h
1202 (multimap::operator=(std::initializer_list<>)): Likewise.
1203 * include/debug/set.h (set::swap(set&)): Add noexcept
1204 specification, add allocator equality check.
1205 * include/debug/map.h (map::swap(map&)): Likewise.
1206 * include/debug/multiset.h (multiset::swap(multiset&)): Likewise.
1207 * include/debug/multimap.h (multimap::swap(multimap&)): Likewise.
1208
1209 2014-01-10 Jonathan Wakely <jwakely@redhat.com>
1210
1211 PR libstdc++/59698
1212 * doc/xml/manual/status_cxx1998.xml (iso.1998.specific): Markup
1213 and stylistic improvements.
1214 * doc/xml/manual/codecvt.xml (std.localization.facet.codecvt): Likewise
1215 and update for C++11.
1216 * doc/xml/manual/ctype.xml (std.localization.facet.ctype): Likewise.
1217
1218 PR libstdc++/59687
1219 * doc/xml/manual/backwards_compatibility.xml
1220 (backwards.third.nocreate_noreplace): Correct and expand.
1221
1222 PR libstdc++/59699
1223 * doc/xml/manual/support.xml (std.support.types.null): Update links.
1224
1225 2014-01-09 Jonathan Wakely <jwakely@redhat.com>
1226
1227 PR libstdc++/59738
1228 * include/bits/stl_vector.h (vector<>::_M_move_assign): Restore
1229 support for non-Movable types.
1230
1231 PR libstdc++/59680
1232 * src/c++11/thread.cc (__sleep_for): Fix call to ::sleep.
1233
1234 2014-01-08 François Dumont <fdumont@gcc.gnu.org>
1235
1236 * include/bits/stl_vector.h (std::vector<>::_M_move_assign): Pass
1237 *this allocator instance when building temporary vector instance
1238 so that *this allocator does not get moved.
1239 * include/debug/safe_base.h
1240 (_Safe_sequence_base(_Safe_sequence_base&&)): New.
1241 * include/debug/vector (__gnu_debug::vector<>(vector&&)): Use new
1242 move constructor from _Safe_sequence_base.
1243 (__gnu_debug::vector<>(vector&&, const allocator_type&)): Swap
1244 safe iterators if the instance is moved.
1245 (__gnu_debug::vector<>::operator=(vector&&)): Likewise.
1246 * testsuite/23_containers/vector/allocator/move.cc (test01): Add
1247 check on a vector iterator.
1248 * testsuite/23_containers/vector/allocator/move_assign.cc
1249 (test02): Likewise.
1250 (test03): New, test with a non-propagating allocator.
1251 * testsuite/23_containers/vector/debug/move_assign_neg.cc: New.
1252
1253 2014-01-07 Tim Shen <timshen91@gmail.com>
1254
1255 * include/bits/regex_compiler.h (_AnyMatcher<>::_AnyMatcher(),
1256 _AnyMatcher<>::operator(), _AnyMatcher<>::_M_apply(),
1257 _CharMatcher<>::_CharMatcher(), _CharMatcher<>::_M_translate(),
1258 _BracketMatcher<>::_BracketMatcher(), _BracketMatcher<>::operator(),
1259 _BracketMatcher<>::_M_add_char(),
1260 _BracketMatcher<>::_M_add_collating_element(),
1261 _BracketMatcher<>::_M_add_equivalence_class(),
1262 _BracketMatcher<>::_M_add_character_class(),
1263 _BracketMatcher<>::_M_make_range(), _BracketMatcher<>::_M_ready(),
1264 _BracketMatcher<>::_M_apply(), _BracketMatcher<>::_M_make_cache()):
1265 Fix _AnyMatcher behavior of POSIX style and move _M_flags
1266 to template parameter; Add cache for _BracketMatcher. Adjust
1267 declarations from here...
1268 * include/bits/regex.h (basic_regex<>::imbue()): ...to here. Also,
1269 imbuing a regex will trigger a recompilation to rebuild the cache.
1270 * include/bits/regex_compiler.tcc (_Compiler<>::_M_atom(),
1271 _Compiler<>::_M_bracket_expression()): Adjust matchers' caller for
1272 different template bool parameters.
1273 * include/bits/regex_executor.h: Remove unnecessary declarations.
1274 * include/std/regex: Adjust including orders.
1275 * testsuite/28_regex/traits/char/user_defined.cc: New.
1276 * testsuite/28_regex/traits/wchar_t/user_defined.cc: New.
1277
1278 2014-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1279
1280 * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerate.
1281 * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Likewise.
1282 * config/abi/post/solaris2.10/baseline_symbols.txt: Likewise.
1283 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1284 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1285
1286 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
1287
1288 Update copyright years
1289
1290 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
1291
1292 * testsuite/18_support/new_handler.cc,
1293 testsuite/18_support/terminate_handler.cc,
1294 testsuite/18_support/unexpected_handler.cc: Use the standard form for
1295 the copyright notice.
1296 \f
1297 Copyright (C) 2014 Free Software Foundation, Inc.
1298
1299 Copying and distribution of this file, with or without modification,
1300 are permitted in any medium without royalty provided the copyright
1301 notice and this notice are preserved.