1 2014-01-28 Jonathan Wakely <jwakely@redhat.com>
2 Kyle Lippincott <spectral@google.com>
5 * include/bits/shared_ptr.h (shared_ptr): Add new non-throwing
6 constructor and grant friendship to weak_ptr.
7 (weak_ptr::lock()): Use new constructor.
8 * include/bits/shared_ptr_base.h
9 (_Sp_counted_base::_M_add_ref_lock_nothrow()): Declare new function
10 and define specializations.
11 (__shared_count): Add new non-throwing constructor.
12 (__shared_ptr): Add new non-throwing constructor and grant friendship
14 (__weak_ptr::lock()): Use new constructor.
15 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
16 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
18 2014-01-27 Jonathan Wakely <jwakely@redhat.com>
21 * include/bits/shared_ptr_base.h
22 (_Sp_counted_base<_S_atomic>::_M_add_ref_lock()): Use relaxed atomic
25 2014-01-27 Jason Merrill <jason@redhat.com>
30 * libsupc++/eh_throw.cc (__cxa_throw): Set uncaughtExceptions.
31 * libsupc++/eh_alloc.cc (__cxa_allocate_dependent_exception)
32 (__cxa_allocate_exception): Don't set it here.
34 2014-01-26 Jonathan Wakely <jwakely@redhat.com>
36 * include/bits/stl_map.h: Remove anachronistic comment.
37 * include/bits/stl_multimap.h: Add whitespace.
38 * testsuite/23_containers/map/modifiers/emplace/1.cc: Use
39 -std=gnu++11 instead of -std=c++11.
40 * testsuite/23_containers/map/operators/2.cc: Likewise.
41 * testsuite/23_containers/multimap/modifiers/emplace/1.cc: Likewise.
42 * testsuite/23_containers/multiset/modifiers/emplace/1.cc: Likewise.
43 * testsuite/23_containers/set/modifiers/emplace/1.cc: Likewise.
45 * acinclude.m4 (GLIBCXX_ENABLE_C99): Fix typo.
46 * configure: Regenerate.
48 2014-01-24 Ed Smith-Rowland <3dw4rd@verizon.net>
51 * testsuite/experimental/string_view/operations/copy/char/1.cc: New.
52 * testsuite/experimental/string_view/operations/copy/wchar_t/1.cc: New.
54 2014-01-24 Ed Smith-Rowland <3dw4rd@verizon.net>
55 Peter A. Bigot <pab@pabigot.com>
58 * include/experimental/string_view
59 (copy(_CharT*, size_type, size_type) const): Correct throw string.
60 Correct copy start location.
62 2014-01-24 Ed Smith-Rowland <3dw4rd@verizon.net>
63 Peter A. Bigot <pab@pabigot.com>
66 * include/experimental/string_view (operator[](size_type) const):
67 Fix one-off index error in debug check.
68 * testsuite/experimental/string_view/element_access/char/1.cc: Don't
69 test basic_string_view at size().
70 * testsuite/experimental/string_view/element_access/wchar_t/1.cc: Ditto.
72 2014-01-24 Ed Smith-Rowland <3dw4rd@verizon.net>
73 Peter A. Bigot <pab@pabigot.com>
76 * include/experimental/string_view
77 (basic_string_view(const _CharT*, size_type)): Don't care if len == 0.
78 * testsuite/experimental/string_view/operations/substr/char/1.cc:
79 Comment out catch of out_of_range; No terminating null
80 in basic_string_view. Check begin == end.
81 * testsuite/experimental/string_view/operations/substr/wchar_t/1.cc:
84 2014-01-24 Jonathan Wakely <jwakely@redhat.com>
87 * include/debug/safe_base.h (_Safe_sequence_base): Define copy
88 constructor to prevent it being implicitly defined as deleted, but
90 * include/debug/safe_unordered_base.h (_Safe_unordered_container_base):
91 Define copy and move constructors similar to _Safe_sequence_base's.
92 * testsuite/23_containers/unordered_map/59548.cc: New.
94 2014-01-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
95 Steve Ellcey <sellcey@mips.com>
97 * acinclude.m4 (GLIBCXX_CHECK_TMPNAM): New check for tmpnam
99 * configure.ac: Use GLIBCXX_CHECK_TMPNAM.
100 * (configure, config.h.in): Regenerate.
101 * include/c_global/cstdio: Guard ::tmpnam with _GLIBCXX_USE_TMPNAM
103 2014-01-23 Jonathan Wakely <jwakely@redhat.com>
105 * doc/xml/faq.xml (a-how_to_set_paths): Expand FAQ answer.
106 * doc/xml/manual/abi.xml (abi.versioning.history): Correct symver.
109 * include/bits/stl_map.h (map::operator=(map&&)): Fix comment.
110 * include/bits/stl_multimap.h (multimap::operator=(multimap&&)):
112 * include/bits/stl_multiset.h (multiset::operator=(multiset&&)):
114 * include/bits/stl_set.h (set::operator=(set&&)): Likewise.
115 * include/bits/stl_tree.h (_Rb_tree::_M_move_data): New overloaded
116 functions to perform moving or copying of elements from rvalue tree.
117 (_Rb_tree::_Rb_tree(_Rb_tree&&)): Use _M_move_data.
118 (_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Likewise.
119 * testsuite/23_containers/map/59872.cc: New.
120 * testsuite/23_containers/map/56613.cc: Remove duplicate include.
122 2014-01-22 Jonathan Wakely <jwakely@redhat.com>
124 * include/bits/stl_deque.h (_Deque_impl): Move comment.
127 * include/bits/stl_deque.h (deque::deque(const allocator_type&):
128 Split into separate default constructor and constructor taking
130 * include/bits/stl_list.h (list::list(const allocator_type&): Likewise.
131 * include/bits/stl_vector.h (vector::vector(const allocator_type&):
133 * include/debug/deque (deque::deque(const allocator_type&)): Likewise.
134 * include/debug/list (list::list(const _Allocator&)): Likewise.
135 * include/debug/map.h (map::map(const _Compare&, const _Allocator&)):
137 * include/debug/multimap.h
138 (multimap::multimap(const _Compare&, const _Allocator&)): Likewise.
139 * include/debug/set.h (set::set(const _Compare&, const _Allocator&)):
141 * include/debug/multiset.h
142 (multiset::multiset(const _Compare&, const _Allocator&)): Likewise.
143 * include/debug/vector (vector::vector(const allocator_type&)):
145 * include/profile/deque (deque::deque(const _Allocator&)): Likewise.
146 * include/profile/list (list::list(const _Allocator&)): Likewise.
147 * include/profile/map.h
148 (map::map(const _Compare&, const _Allocator&)): Likewise.
149 * include/profile/multimap.h
150 (multimap::multimap(const _Compare&, const _Allocator&)): Likewise.
151 * include/profile/set.h
152 (set::set(const _Compare&, const _Allocator&)): Likewise.
153 * include/profile/multiset.h
154 (multiset::multiset(const _Compare&, const _Allocator&)): Likewise.
155 * include/profile/vector (vector::vector(const _Allocator&)):
157 * testsuite/23_containers/deque/58764.cc: New.
158 * testsuite/23_containers/list/58764.cc: New.
159 * testsuite/23_containers/map/58764.cc: New.
160 * testsuite/23_containers/multimap/58764.cc: New.
161 * testsuite/23_containers/set/58764.cc: New.
162 * testsuite/23_containers/multiset/58764.cc: New.
163 * testsuite/23_containers/vector/58764.cc: New.
164 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
165 Adjust dg-error line number.
166 * testsuite/23_containers/deque/requirements/dr438/
167 constructor_1_neg.cc: Likewise.
168 * testsuite/23_containers/deque/requirements/dr438/
169 constructor_2_neg.cc: Likewise.
170 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
172 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
174 * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
176 * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
178 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
180 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
182 * testsuite/23_containers/vector/requirements/dr438/
183 constructor_1_neg.cc: Likewise.
184 * testsuite/23_containers/vector/requirements/dr438/
185 constructor_2_neg.cc: Likewise.
186 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
189 PR libstdc++/58764 (again)
190 * include/bits/stl_list.h (list): Make default constructor's exception
191 specification conditional.
192 * include/bits/stl_vector.h (vector): Likewise.
193 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add noexcept
194 to default constructor.
195 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
196 Adjust dg-error line number.
197 * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
199 * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
201 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
203 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
205 * testsuite/23_containers/vector/requirements/dr438/
206 constructor_1_neg.cc: Likewise.
207 * testsuite/23_containers/vector/requirements/dr438/
208 constructor_2_neg.cc: Likewise.
209 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
212 2014-01-21 Tim Shen <timshen91@gmail.com>
214 * include/bits/regex.tcc: Remove incorrect `nosubs` handling.
215 * include/bits/regex_scanner.tcc: Handle `nosubs` correctly.
216 * testsuite/28_regex/constants/syntax_option_type.cc: Add a test case.
218 2014-01-21 Jonathan Wakely <jwakely@redhat.com>
221 * include/bits/hashtable.h (__cache_default): Do not depend on
222 whether the hash function is DefaultConstructible or CopyAssignable.
223 (_Hashtable): Adjust static assertions.
224 * doc/xml/manual/containers.xml (containers.unordered.cache): Update.
225 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
226 dg-error line number.
227 * testsuite/23_containers/unordered_set/
228 not_default_constructible_hash_neg.cc: Remove.
230 2014-01-20 François Dumont <fdumont@gcc.gnu.org>
232 * scripts/create_testsuite_files: Add testsuite/experimental in
233 the list of folders to search for tests.
234 * include/experimental/string_view
235 (basic_string_view<>::operator[]): Comment _GLIBCXX_DEBUG_ASSERT,
236 incompatible with constexpr qualifier.
237 (basic_string_view<>::front()): Likewise.
238 (basic_string_view<>::back()): Likewise.
239 * testsuite/experimental/string_view/element_access/wchar_t/2.cc:
240 Merge dg-options directives into one.
241 * testsuite/experimental/string_view/element_access/char/2.cc:
242 Likewise. Remove invalid experimental namespace scope on
245 2014-01-20 Jonathan Wakely <jwakely@redhat.com>
248 * include/bits/hashtable_policy.h (_Hash_code_base<... false>): Grant
249 friendship to _Local_iterator_base<..., false>.
250 (_Local_iterator_base): Give protected access to all existing members.
251 (_Local_iterator_base::_M_curr()): New public accessor.
252 (_Local_iterator_base::_M_get_bucket()): New public accessor.
253 (_Local_iterator_base<..., false>::_M_init()): New function to manage
254 the lifetime of the _Hash_code_base explicitly.
255 (_Local_iterator_base<..., false>::_M_destroy()): Likewise.
256 (_Local_iterator_base<..., false>): Define copy constructor and copy
257 assignment operator that use new functions to manage _Hash_code_base.
258 (operator==(const _Local_iterator_base&, const _Local_iterator_base&),
259 operator==(const _Local_iterator_base&, const _Local_iterator_base&)):
260 Use public API for _Local_iterator_base.
261 * include/debug/safe_local_iterator.h (_Safe_local_iterator): Likewise.
262 * include/debug/unordered_map (__debug::unordered_map::erase(),
263 __debug::unordered_multimap::erase()): Likewise.
264 * include/debug/unordered_set (__debug::unordered_set::erase(),
265 __debug::unordered_multiset::erase()): Likewise.
266 * testsuite/23_containers/unordered_set/56267-2.cc: New test.
268 2014-01-19 Tim Shen <timshen91@gmail.com>
270 * include/bits/regex_compiler.h (_Comipler<>::_M_quantifier()):
271 Fix parse error of multiple consecutive quantifiers like "a**".
272 * include/bits/regex_compiler.tcc (_Comipler<>::_M_quantifier()):
274 * testsuite/28_regex/basic_regex/multiple_quantifiers.cc: New.
276 2014-01-17 François Dumont <fdumont@gcc.gnu.org>
278 * include/profile/set.h (set): Implement C++11 allocator-aware
279 container requirements.
280 * include/profile/map.h (map): Likewise.
281 * include/profile/multiset.h (multiset): Likewise.
282 * include/profile/multimap.h (multimap): Likewise.
283 * include/profile/set.h
284 (set::operator=(const set&)): Define as default in C++11 mode.
285 (set::operator=(set&&)): Likewise.
286 * include/profile/map.h
287 (map::operator=(const map&)): Likewise.
288 (map::operator=(map&&)): Likewise.
289 * include/profile/multiset.h
290 (multiset::operator=(const multiset&)): Likewise.
291 (multiset::operator=(multiset&&)): Likewise.
292 * include/profile/multimap.h
293 (multimap::operator=(const multimap&)): Likewise.
294 (multimap::operator=(multimap&&)): Likewise.
295 * include/profile/set.h (set::operator=(std::initializer_list<>)):
296 Rely on the same operator from normal mode.
297 * include/profile/map.h (map::operator=(std::initializer_list<>)):
299 * include/profile/multiset.h
300 (multiset::operator=(std::initializer_list<>)): Likewise.
301 * include/profile/multimap.h
302 (multimap::operator=(std::initializer_list<>)): Likewise.
303 * include/profile/set.h (set::swap(set&)): Add noexcept
305 * include/profile/map.h (map::swap(map&)): Likewise.
306 * include/profile/multiset.h (multiset::swap(multiset&)): Likewise.
307 * include/profile/multimap.h (multimap::swap(multimap&)): Likewise.
309 2014-01-17 Tim Shen <timshen91@gmail.com>
311 * include/bits/regex_automaton.tcc (_StateSeq<>::_M_clone()): Do not
313 * include/bits/regex_automaton.h: Do not use std::set.
314 * include/bits/regex_compiler.h (_BracketMatcher<>::_M_add_char(),
315 _BracketMatcher<>::_M_add_collating_element(),
316 _BracketMatcher<>::_M_add_equivalence_class(),
317 _BracketMatcher<>::_M_make_range()): Likewise.
318 * include/bits/regex_compiler.tcc (_BracketMatcher<>::_M_apply()):
320 * include/bits/regex_executor.h: Do not use std::queue.
321 * include/bits/regex_executor.tcc (_Executor<>::_M_main(),
322 _Executor<>::_M_dfs()): Likewise.
323 * include/std/regex: Remove <map>, <set> and <queue>.
325 2014-01-17 Tim Shen <timshen91@gmail.com>
327 * include/bits/regex.h (__compile_nfa<>(), basic_regex<>::basic_regex(),
328 basic_regex<>::assign()): Change __compile_nfa to accept
330 * include/bits/regex_compiler.h: Change _Compiler's template
331 argument from <_FwdIter, _TraitsT> to <_TraitsT>.
332 * include/bits/regex_compiler.tcc: Likewise.
334 2014-01-17 Tim Shen <timshen91@gmail.com>
336 * include/bits/regex_compiler.h: Change _ScannerT into char-type
338 * include/bits/regex_scanner.h (_Scanner<>::_Scanner()): Separate
339 _ScannerBase from _Scanner; Change _Scanner's template argument from
340 _FwdIter to _CharT. Avoid use of std::map and std::set by using arrays
342 * include/bits/regex_scanner.tcc (_Scanner<>::_Scanner(),
343 _Scanner<>::_M_scan_normal(), _Scanner<>::_M_eat_escape_ecma(),
344 _Scanner<>::_M_eat_escape_posix(), _Scanner<>::_M_eat_escape_awk()):
346 * include/std/regex: Add <cstring> for using strchr.
348 2014-01-17 Tim Shen <timshen91@gmail.com>
350 * bits/regex_automaton.tcc: Indentation fix.
351 * bits/regex_compiler.h (__compile_nfa<>(), _Compiler<>,
352 _RegexTranslator<> _AnyMatcher<>, _CharMatcher<>,
353 _BracketMatcher<>): Add bool option template parameters and
354 specializations to make matching more efficient and space saving.
355 * bits/regex_compiler.tcc: Likewise.
357 2014-01-15 François Dumont <fdumont@gcc.gnu.org>
360 * include/bits/hashtable_policy.h: Fix some long lines.
361 * include/bits/hashtable.h (__hash_code_base_access): Define and
362 use it to check its _M_bucket_index noexcept qualification. Use
364 (__access_protected_ctor): ...this.
365 * testsuite/23_containers/unordered_set/instantiation_neg.cc:
367 * testsuite/23_containers/unordered_set/
368 not_default_constructible_hash_neg.cc: Likewise.
370 2014-01-13 François Dumont <fdumont@gcc.gnu.org>
372 * include/debug/set.h (set): Implement C++11 allocator-aware
373 container requirements.
374 * include/debug/map.h (map): Likewise.
375 * include/debug/multiset.h (multiset): Likewise.
376 * include/debug/multimap.h (multimap): Likewise.
377 * include/debug/set.h (set::operator=(set&&)): Add noexcept and
378 fix implementation regarding management of safe iterators.
379 * include/debug/map.h (map::operator=(map&&)): Likewise.
380 * include/debug/multiset.h (multiset::operator=(multiset&&)): Likewise.
381 * include/debug/multimap.h (multimap::operator=(multimap&&)):
383 * include/debug/set.h (set::operator=(std::initializer_list<>)):
384 Rely on the same operator from normal mode.
385 * include/debug/map.h (map::operator=(std::initializer_list<>)):
387 * include/debug/multiset.h
388 (multiset::operator=(std::initializer_list<>)): Likewise.
389 * include/debug/multimap.h
390 (multimap::operator=(std::initializer_list<>)): Likewise.
391 * include/debug/set.h (set::swap(set&)): Add noexcept
392 specification, add allocator equality check.
393 * include/debug/map.h (map::swap(map&)): Likewise.
394 * include/debug/multiset.h (multiset::swap(multiset&)): Likewise.
395 * include/debug/multimap.h (multimap::swap(multimap&)): Likewise.
397 2014-01-10 Jonathan Wakely <jwakely@redhat.com>
400 * doc/xml/manual/status_cxx1998.xml (iso.1998.specific): Markup
401 and stylistic improvements.
402 * doc/xml/manual/codecvt.xml (std.localization.facet.codecvt): Likewise
403 and update for C++11.
404 * doc/xml/manual/ctype.xml (std.localization.facet.ctype): Likewise.
407 * doc/xml/manual/backwards_compatibility.xml
408 (backwards.third.nocreate_noreplace): Correct and expand.
411 * doc/xml/manual/support.xml (std.support.types.null): Update links.
413 2014-01-09 Jonathan Wakely <jwakely@redhat.com>
416 * include/bits/stl_vector.h (vector<>::_M_move_assign): Restore
417 support for non-Movable types.
420 * src/c++11/thread.cc (__sleep_for): Fix call to ::sleep.
422 2014-01-08 François Dumont <fdumont@gcc.gnu.org>
424 * include/bits/stl_vector.h (std::vector<>::_M_move_assign): Pass
425 *this allocator instance when building temporary vector instance
426 so that *this allocator does not get moved.
427 * include/debug/safe_base.h
428 (_Safe_sequence_base(_Safe_sequence_base&&)): New.
429 * include/debug/vector (__gnu_debug::vector<>(vector&&)): Use new
430 move constructor from _Safe_sequence_base.
431 (__gnu_debug::vector<>(vector&&, const allocator_type&)): Swap
432 safe iterators if the instance is moved.
433 (__gnu_debug::vector<>::operator=(vector&&)): Likewise.
434 * testsuite/23_containers/vector/allocator/move.cc (test01): Add
435 check on a vector iterator.
436 * testsuite/23_containers/vector/allocator/move_assign.cc
438 (test03): New, test with a non-propagating allocator.
439 * testsuite/23_containers/vector/debug/move_assign_neg.cc: New.
441 2014-01-07 Tim Shen <timshen91@gmail.com>
443 * include/bits/regex_compiler.h (_AnyMatcher<>::_AnyMatcher(),
444 _AnyMatcher<>::operator(), _AnyMatcher<>::_M_apply(),
445 _CharMatcher<>::_CharMatcher(), _CharMatcher<>::_M_translate(),
446 _BracketMatcher<>::_BracketMatcher(), _BracketMatcher<>::operator(),
447 _BracketMatcher<>::_M_add_char(),
448 _BracketMatcher<>::_M_add_collating_element(),
449 _BracketMatcher<>::_M_add_equivalence_class(),
450 _BracketMatcher<>::_M_add_character_class(),
451 _BracketMatcher<>::_M_make_range(), _BracketMatcher<>::_M_ready(),
452 _BracketMatcher<>::_M_apply(), _BracketMatcher<>::_M_make_cache()):
453 Fix _AnyMatcher behavior of POSIX style and move _M_flags
454 to template parameter; Add cache for _BracketMatcher. Adjust
455 declarations from here...
456 * include/bits/regex.h (basic_regex<>::imbue()): ...to here. Also,
457 imbuing a regex will trigger a recompilation to rebuild the cache.
458 * include/bits/regex_compiler.tcc (_Compiler<>::_M_atom(),
459 _Compiler<>::_M_bracket_expression()): Adjust matchers' caller for
460 different template bool parameters.
461 * include/bits/regex_executor.h: Remove unnecessary declarations.
462 * include/std/regex: Adjust including orders.
463 * testsuite/28_regex/traits/char/user_defined.cc: New.
464 * testsuite/28_regex/traits/wchar_t/user_defined.cc: New.
466 2014-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
468 * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerate.
469 * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Likewise.
470 * config/abi/post/solaris2.10/baseline_symbols.txt: Likewise.
471 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
472 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
474 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
476 Update copyright years
478 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
480 * testsuite/18_support/new_handler.cc,
481 testsuite/18_support/terminate_handler.cc,
482 testsuite/18_support/unexpected_handler.cc: Use the standard form for
483 the copyright notice.
485 Copyright (C) 2014 Free Software Foundation, Inc.
487 Copying and distribution of this file, with or without modification,
488 are permitted in any medium without royalty provided the copyright
489 notice and this notice are preserved.