1 2014-01-24 Ed Smith-Rowland <3dw4rd@verizon.net>
4 * testsuite/experimental/string_view/operations/copy/char/1.cc: New.
5 * testsuite/experimental/string_view/operations/copy/wchar_t/1.cc: New.
7 2014-01-24 Ed Smith-Rowland <3dw4rd@verizon.net>
8 Peter A. Bigot <pab@pabigot.com>
11 * include/experimental/string_view
12 (copy(_CharT*, size_type, size_type) const): Correct throw string.
13 Correct copy start location.
15 2014-01-24 Ed Smith-Rowland <3dw4rd@verizon.net>
16 Peter A. Bigot <pab@pabigot.com>
19 * include/experimental/string_view (operator[](size_type) const):
20 Fix one-off index error in debug check.
21 * testsuite/experimental/string_view/element_access/char/1.cc: Don't
22 test basic_string_view at size().
23 * testsuite/experimental/string_view/element_access/wchar_t/1.cc: Ditto.
25 2014-01-24 Ed Smith-Rowland <3dw4rd@verizon.net>
26 Peter A. Bigot <pab@pabigot.com>
29 * include/experimental/string_view
30 (basic_string_view(const _CharT*, size_type)): Don't care if len == 0.
31 * testsuite/experimental/string_view/operations/substr/char/1.cc:
32 Comment out catch of out_of_range; No terminating null
33 in basic_string_view. Check begin == end.
34 * testsuite/experimental/string_view/operations/substr/wchar_t/1.cc:
37 2014-01-24 Jonathan Wakely <jwakely@redhat.com>
40 * include/debug/safe_base.h (_Safe_sequence_base): Define copy
41 constructor to prevent it being implicitly defined as deleted, but
43 * include/debug/safe_unordered_base.h (_Safe_unordered_container_base):
44 Define copy and move constructors similar to _Safe_sequence_base's.
45 * testsuite/23_containers/unordered_map/59548.cc: New.
47 2014-01-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
48 Steve Ellcey <sellcey@mips.com>
50 * acinclude.m4 (GLIBCXX_CHECK_TMPNAM): New check for tmpnam
52 * configure.ac: Use GLIBCXX_CHECK_TMPNAM.
53 * (configure, config.h.in): Regenerate.
54 * include/c_global/cstdio: Guard ::tmpnam with _GLIBCXX_USE_TMPNAM
56 2014-01-23 Jonathan Wakely <jwakely@redhat.com>
58 * doc/xml/faq.xml (a-how_to_set_paths): Expand FAQ answer.
59 * doc/xml/manual/abi.xml (abi.versioning.history): Correct symver.
62 * include/bits/stl_map.h (map::operator=(map&&)): Fix comment.
63 * include/bits/stl_multimap.h (multimap::operator=(multimap&&)):
65 * include/bits/stl_multiset.h (multiset::operator=(multiset&&)):
67 * include/bits/stl_set.h (set::operator=(set&&)): Likewise.
68 * include/bits/stl_tree.h (_Rb_tree::_M_move_data): New overloaded
69 functions to perform moving or copying of elements from rvalue tree.
70 (_Rb_tree::_Rb_tree(_Rb_tree&&)): Use _M_move_data.
71 (_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Likewise.
72 * testsuite/23_containers/map/59872.cc: New.
73 * testsuite/23_containers/map/56613.cc: Remove duplicate include.
75 2014-01-22 Jonathan Wakely <jwakely@redhat.com>
77 * include/bits/stl_deque.h (_Deque_impl): Move comment.
80 * include/bits/stl_deque.h (deque::deque(const allocator_type&):
81 Split into separate default constructor and constructor taking
83 * include/bits/stl_list.h (list::list(const allocator_type&): Likewise.
84 * include/bits/stl_vector.h (vector::vector(const allocator_type&):
86 * include/debug/deque (deque::deque(const allocator_type&)): Likewise.
87 * include/debug/list (list::list(const _Allocator&)): Likewise.
88 * include/debug/map.h (map::map(const _Compare&, const _Allocator&)):
90 * include/debug/multimap.h
91 (multimap::multimap(const _Compare&, const _Allocator&)): Likewise.
92 * include/debug/set.h (set::set(const _Compare&, const _Allocator&)):
94 * include/debug/multiset.h
95 (multiset::multiset(const _Compare&, const _Allocator&)): Likewise.
96 * include/debug/vector (vector::vector(const allocator_type&)):
98 * include/profile/deque (deque::deque(const _Allocator&)): Likewise.
99 * include/profile/list (list::list(const _Allocator&)): Likewise.
100 * include/profile/map.h
101 (map::map(const _Compare&, const _Allocator&)): Likewise.
102 * include/profile/multimap.h
103 (multimap::multimap(const _Compare&, const _Allocator&)): Likewise.
104 * include/profile/set.h
105 (set::set(const _Compare&, const _Allocator&)): Likewise.
106 * include/profile/multiset.h
107 (multiset::multiset(const _Compare&, const _Allocator&)): Likewise.
108 * include/profile/vector (vector::vector(const _Allocator&)):
110 * testsuite/23_containers/deque/58764.cc: New.
111 * testsuite/23_containers/list/58764.cc: New.
112 * testsuite/23_containers/map/58764.cc: New.
113 * testsuite/23_containers/multimap/58764.cc: New.
114 * testsuite/23_containers/set/58764.cc: New.
115 * testsuite/23_containers/multiset/58764.cc: New.
116 * testsuite/23_containers/vector/58764.cc: New.
117 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
118 Adjust dg-error line number.
119 * testsuite/23_containers/deque/requirements/dr438/
120 constructor_1_neg.cc: Likewise.
121 * testsuite/23_containers/deque/requirements/dr438/
122 constructor_2_neg.cc: Likewise.
123 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
125 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
127 * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
129 * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
131 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
133 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
135 * testsuite/23_containers/vector/requirements/dr438/
136 constructor_1_neg.cc: Likewise.
137 * testsuite/23_containers/vector/requirements/dr438/
138 constructor_2_neg.cc: Likewise.
139 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
142 PR libstdc++/58764 (again)
143 * include/bits/stl_list.h (list): Make default constructor's exception
144 specification conditional.
145 * include/bits/stl_vector.h (vector): Likewise.
146 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add noexcept
147 to default constructor.
148 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
149 Adjust dg-error line number.
150 * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
152 * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
154 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
156 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
158 * testsuite/23_containers/vector/requirements/dr438/
159 constructor_1_neg.cc: Likewise.
160 * testsuite/23_containers/vector/requirements/dr438/
161 constructor_2_neg.cc: Likewise.
162 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
165 2014-01-21 Tim Shen <timshen91@gmail.com>
167 * include/bits/regex.tcc: Remove incorrect `nosubs` handling.
168 * include/bits/regex_scanner.tcc: Handle `nosubs` correctly.
169 * testsuite/28_regex/constants/syntax_option_type.cc: Add a test case.
171 2014-01-21 Jonathan Wakely <jwakely@redhat.com>
174 * include/bits/hashtable.h (__cache_default): Do not depend on
175 whether the hash function is DefaultConstructible or CopyAssignable.
176 (_Hashtable): Adjust static assertions.
177 * doc/xml/manual/containers.xml (containers.unordered.cache): Update.
178 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
179 dg-error line number.
180 * testsuite/23_containers/unordered_set/
181 not_default_constructible_hash_neg.cc: Remove.
183 2014-01-20 François Dumont <fdumont@gcc.gnu.org>
185 * scripts/create_testsuite_files: Add testsuite/experimental in
186 the list of folders to search for tests.
187 * include/experimental/string_view
188 (basic_string_view<>::operator[]): Comment _GLIBCXX_DEBUG_ASSERT,
189 incompatible with constexpr qualifier.
190 (basic_string_view<>::front()): Likewise.
191 (basic_string_view<>::back()): Likewise.
192 * testsuite/experimental/string_view/element_access/wchar_t/2.cc:
193 Merge dg-options directives into one.
194 * testsuite/experimental/string_view/element_access/char/2.cc:
195 Likewise. Remove invalid experimental namespace scope on
198 2014-01-20 Jonathan Wakely <jwakely@redhat.com>
201 * include/bits/hashtable_policy.h (_Hash_code_base<... false>): Grant
202 friendship to _Local_iterator_base<..., false>.
203 (_Local_iterator_base): Give protected access to all existing members.
204 (_Local_iterator_base::_M_curr()): New public accessor.
205 (_Local_iterator_base::_M_get_bucket()): New public accessor.
206 (_Local_iterator_base<..., false>::_M_init()): New function to manage
207 the lifetime of the _Hash_code_base explicitly.
208 (_Local_iterator_base<..., false>::_M_destroy()): Likewise.
209 (_Local_iterator_base<..., false>): Define copy constructor and copy
210 assignment operator that use new functions to manage _Hash_code_base.
211 (operator==(const _Local_iterator_base&, const _Local_iterator_base&),
212 operator==(const _Local_iterator_base&, const _Local_iterator_base&)):
213 Use public API for _Local_iterator_base.
214 * include/debug/safe_local_iterator.h (_Safe_local_iterator): Likewise.
215 * include/debug/unordered_map (__debug::unordered_map::erase(),
216 __debug::unordered_multimap::erase()): Likewise.
217 * include/debug/unordered_set (__debug::unordered_set::erase(),
218 __debug::unordered_multiset::erase()): Likewise.
219 * testsuite/23_containers/unordered_set/56267-2.cc: New test.
221 2014-01-19 Tim Shen <timshen91@gmail.com>
223 * include/bits/regex_compiler.h (_Comipler<>::_M_quantifier()):
224 Fix parse error of multiple consecutive quantifiers like "a**".
225 * include/bits/regex_compiler.tcc (_Comipler<>::_M_quantifier()):
227 * testsuite/28_regex/basic_regex/multiple_quantifiers.cc: New.
229 2014-01-17 François Dumont <fdumont@gcc.gnu.org>
231 * include/profile/set.h (set): Implement C++11 allocator-aware
232 container requirements.
233 * include/profile/map.h (map): Likewise.
234 * include/profile/multiset.h (multiset): Likewise.
235 * include/profile/multimap.h (multimap): Likewise.
236 * include/profile/set.h
237 (set::operator=(const set&)): Define as default in C++11 mode.
238 (set::operator=(set&&)): Likewise.
239 * include/profile/map.h
240 (map::operator=(const map&)): Likewise.
241 (map::operator=(map&&)): Likewise.
242 * include/profile/multiset.h
243 (multiset::operator=(const multiset&)): Likewise.
244 (multiset::operator=(multiset&&)): Likewise.
245 * include/profile/multimap.h
246 (multimap::operator=(const multimap&)): Likewise.
247 (multimap::operator=(multimap&&)): Likewise.
248 * include/profile/set.h (set::operator=(std::initializer_list<>)):
249 Rely on the same operator from normal mode.
250 * include/profile/map.h (map::operator=(std::initializer_list<>)):
252 * include/profile/multiset.h
253 (multiset::operator=(std::initializer_list<>)): Likewise.
254 * include/profile/multimap.h
255 (multimap::operator=(std::initializer_list<>)): Likewise.
256 * include/profile/set.h (set::swap(set&)): Add noexcept
258 * include/profile/map.h (map::swap(map&)): Likewise.
259 * include/profile/multiset.h (multiset::swap(multiset&)): Likewise.
260 * include/profile/multimap.h (multimap::swap(multimap&)): Likewise.
262 2014-01-17 Tim Shen <timshen91@gmail.com>
264 * include/bits/regex_automaton.tcc (_StateSeq<>::_M_clone()): Do not
266 * include/bits/regex_automaton.h: Do not use std::set.
267 * include/bits/regex_compiler.h (_BracketMatcher<>::_M_add_char(),
268 _BracketMatcher<>::_M_add_collating_element(),
269 _BracketMatcher<>::_M_add_equivalence_class(),
270 _BracketMatcher<>::_M_make_range()): Likewise.
271 * include/bits/regex_compiler.tcc (_BracketMatcher<>::_M_apply()):
273 * include/bits/regex_executor.h: Do not use std::queue.
274 * include/bits/regex_executor.tcc (_Executor<>::_M_main(),
275 _Executor<>::_M_dfs()): Likewise.
276 * include/std/regex: Remove <map>, <set> and <queue>.
278 2014-01-17 Tim Shen <timshen91@gmail.com>
280 * include/bits/regex.h (__compile_nfa<>(), basic_regex<>::basic_regex(),
281 basic_regex<>::assign()): Change __compile_nfa to accept
283 * include/bits/regex_compiler.h: Change _Compiler's template
284 argument from <_FwdIter, _TraitsT> to <_TraitsT>.
285 * include/bits/regex_compiler.tcc: Likewise.
287 2014-01-17 Tim Shen <timshen91@gmail.com>
289 * include/bits/regex_compiler.h: Change _ScannerT into char-type
291 * include/bits/regex_scanner.h (_Scanner<>::_Scanner()): Separate
292 _ScannerBase from _Scanner; Change _Scanner's template argument from
293 _FwdIter to _CharT. Avoid use of std::map and std::set by using arrays
295 * include/bits/regex_scanner.tcc (_Scanner<>::_Scanner(),
296 _Scanner<>::_M_scan_normal(), _Scanner<>::_M_eat_escape_ecma(),
297 _Scanner<>::_M_eat_escape_posix(), _Scanner<>::_M_eat_escape_awk()):
299 * include/std/regex: Add <cstring> for using strchr.
301 2014-01-17 Tim Shen <timshen91@gmail.com>
303 * bits/regex_automaton.tcc: Indentation fix.
304 * bits/regex_compiler.h (__compile_nfa<>(), _Compiler<>,
305 _RegexTranslator<> _AnyMatcher<>, _CharMatcher<>,
306 _BracketMatcher<>): Add bool option template parameters and
307 specializations to make matching more efficient and space saving.
308 * bits/regex_compiler.tcc: Likewise.
310 2014-01-15 François Dumont <fdumont@gcc.gnu.org>
313 * include/bits/hashtable_policy.h: Fix some long lines.
314 * include/bits/hashtable.h (__hash_code_base_access): Define and
315 use it to check its _M_bucket_index noexcept qualification. Use
317 (__access_protected_ctor): ...this.
318 * testsuite/23_containers/unordered_set/instantiation_neg.cc:
320 * testsuite/23_containers/unordered_set/
321 not_default_constructible_hash_neg.cc: Likewise.
323 2014-01-13 François Dumont <fdumont@gcc.gnu.org>
325 * include/debug/set.h (set): Implement C++11 allocator-aware
326 container requirements.
327 * include/debug/map.h (map): Likewise.
328 * include/debug/multiset.h (multiset): Likewise.
329 * include/debug/multimap.h (multimap): Likewise.
330 * include/debug/set.h (set::operator=(set&&)): Add noexcept and
331 fix implementation regarding management of safe iterators.
332 * include/debug/map.h (map::operator=(map&&)): Likewise.
333 * include/debug/multiset.h (multiset::operator=(multiset&&)): Likewise.
334 * include/debug/multimap.h (multimap::operator=(multimap&&)):
336 * include/debug/set.h (set::operator=(std::initializer_list<>)):
337 Rely on the same operator from normal mode.
338 * include/debug/map.h (map::operator=(std::initializer_list<>)):
340 * include/debug/multiset.h
341 (multiset::operator=(std::initializer_list<>)): Likewise.
342 * include/debug/multimap.h
343 (multimap::operator=(std::initializer_list<>)): Likewise.
344 * include/debug/set.h (set::swap(set&)): Add noexcept
345 specification, add allocator equality check.
346 * include/debug/map.h (map::swap(map&)): Likewise.
347 * include/debug/multiset.h (multiset::swap(multiset&)): Likewise.
348 * include/debug/multimap.h (multimap::swap(multimap&)): Likewise.
350 2014-01-10 Jonathan Wakely <jwakely@redhat.com>
353 * doc/xml/manual/status_cxx1998.xml (iso.1998.specific): Markup
354 and stylistic improvements.
355 * doc/xml/manual/codecvt.xml (std.localization.facet.codecvt): Likewise
356 and update for C++11.
357 * doc/xml/manual/ctype.xml (std.localization.facet.ctype): Likewise.
360 * doc/xml/manual/backwards_compatibility.xml
361 (backwards.third.nocreate_noreplace): Correct and expand.
364 * doc/xml/manual/support.xml (std.support.types.null): Update links.
366 2014-01-09 Jonathan Wakely <jwakely@redhat.com>
369 * include/bits/stl_vector.h (vector<>::_M_move_assign): Restore
370 support for non-Movable types.
373 * src/c++11/thread.cc (__sleep_for): Fix call to ::sleep.
375 2014-01-08 François Dumont <fdumont@gcc.gnu.org>
377 * include/bits/stl_vector.h (std::vector<>::_M_move_assign): Pass
378 *this allocator instance when building temporary vector instance
379 so that *this allocator does not get moved.
380 * include/debug/safe_base.h
381 (_Safe_sequence_base(_Safe_sequence_base&&)): New.
382 * include/debug/vector (__gnu_debug::vector<>(vector&&)): Use new
383 move constructor from _Safe_sequence_base.
384 (__gnu_debug::vector<>(vector&&, const allocator_type&)): Swap
385 safe iterators if the instance is moved.
386 (__gnu_debug::vector<>::operator=(vector&&)): Likewise.
387 * testsuite/23_containers/vector/allocator/move.cc (test01): Add
388 check on a vector iterator.
389 * testsuite/23_containers/vector/allocator/move_assign.cc
391 (test03): New, test with a non-propagating allocator.
392 * testsuite/23_containers/vector/debug/move_assign_neg.cc: New.
394 2014-01-07 Tim Shen <timshen91@gmail.com>
396 * include/bits/regex_compiler.h (_AnyMatcher<>::_AnyMatcher(),
397 _AnyMatcher<>::operator(), _AnyMatcher<>::_M_apply(),
398 _CharMatcher<>::_CharMatcher(), _CharMatcher<>::_M_translate(),
399 _BracketMatcher<>::_BracketMatcher(), _BracketMatcher<>::operator(),
400 _BracketMatcher<>::_M_add_char(),
401 _BracketMatcher<>::_M_add_collating_element(),
402 _BracketMatcher<>::_M_add_equivalence_class(),
403 _BracketMatcher<>::_M_add_character_class(),
404 _BracketMatcher<>::_M_make_range(), _BracketMatcher<>::_M_ready(),
405 _BracketMatcher<>::_M_apply(), _BracketMatcher<>::_M_make_cache()):
406 Fix _AnyMatcher behavior of POSIX style and move _M_flags
407 to template parameter; Add cache for _BracketMatcher. Adjust
408 declarations from here...
409 * include/bits/regex.h (basic_regex<>::imbue()): ...to here. Also,
410 imbuing a regex will trigger a recompilation to rebuild the cache.
411 * include/bits/regex_compiler.tcc (_Compiler<>::_M_atom(),
412 _Compiler<>::_M_bracket_expression()): Adjust matchers' caller for
413 different template bool parameters.
414 * include/bits/regex_executor.h: Remove unnecessary declarations.
415 * include/std/regex: Adjust including orders.
416 * testsuite/28_regex/traits/char/user_defined.cc: New.
417 * testsuite/28_regex/traits/wchar_t/user_defined.cc: New.
419 2014-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
421 * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerate.
422 * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Likewise.
423 * config/abi/post/solaris2.10/baseline_symbols.txt: Likewise.
424 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
425 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
427 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
429 Update copyright years
431 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
433 * testsuite/18_support/new_handler.cc,
434 testsuite/18_support/terminate_handler.cc,
435 testsuite/18_support/unexpected_handler.cc: Use the standard form for
436 the copyright notice.
438 Copyright (C) 2014 Free Software Foundation, Inc.
440 Copying and distribution of this file, with or without modification,
441 are permitted in any medium without royalty provided the copyright
442 notice and this notice are preserved.