1 2014-01-24 Jonathan Wakely <jwakely@redhat.com>
4 * include/debug/safe_base.h (_Safe_sequence_base): Define copy
5 constructor to prevent it being implicitly defined as deleted, but
7 * include/debug/safe_unordered_base.h (_Safe_unordered_container_base):
8 Define copy and move constructors similar to _Safe_sequence_base's.
9 * testsuite/23_containers/unordered_map/59548.cc: New.
11 2014-01-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
12 Steve Ellcey <sellcey@mips.com>
14 * acinclude.m4 (GLIBCXX_CHECK_TMPNAM): New check for tmpnam
16 * configure.ac: Use GLIBCXX_CHECK_TMPNAM.
17 * (configure, config.h.in): Regenerate.
18 * include/c_global/cstdio: Guard ::tmpnam with _GLIBCXX_USE_TMPNAM
20 2014-01-23 Jonathan Wakely <jwakely@redhat.com>
22 * doc/xml/faq.xml (a-how_to_set_paths): Expand FAQ answer.
23 * doc/xml/manual/abi.xml (abi.versioning.history): Correct symver.
26 * include/bits/stl_map.h (map::operator=(map&&)): Fix comment.
27 * include/bits/stl_multimap.h (multimap::operator=(multimap&&)):
29 * include/bits/stl_multiset.h (multiset::operator=(multiset&&)):
31 * include/bits/stl_set.h (set::operator=(set&&)): Likewise.
32 * include/bits/stl_tree.h (_Rb_tree::_M_move_data): New overloaded
33 functions to perform moving or copying of elements from rvalue tree.
34 (_Rb_tree::_Rb_tree(_Rb_tree&&)): Use _M_move_data.
35 (_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Likewise.
36 * testsuite/23_containers/map/59872.cc: New.
37 * testsuite/23_containers/map/56613.cc: Remove duplicate include.
39 2014-01-22 Jonathan Wakely <jwakely@redhat.com>
41 * include/bits/stl_deque.h (_Deque_impl): Move comment.
44 * include/bits/stl_deque.h (deque::deque(const allocator_type&):
45 Split into separate default constructor and constructor taking
47 * include/bits/stl_list.h (list::list(const allocator_type&): Likewise.
48 * include/bits/stl_vector.h (vector::vector(const allocator_type&):
50 * include/debug/deque (deque::deque(const allocator_type&)): Likewise.
51 * include/debug/list (list::list(const _Allocator&)): Likewise.
52 * include/debug/map.h (map::map(const _Compare&, const _Allocator&)):
54 * include/debug/multimap.h
55 (multimap::multimap(const _Compare&, const _Allocator&)): Likewise.
56 * include/debug/set.h (set::set(const _Compare&, const _Allocator&)):
58 * include/debug/multiset.h
59 (multiset::multiset(const _Compare&, const _Allocator&)): Likewise.
60 * include/debug/vector (vector::vector(const allocator_type&)):
62 * include/profile/deque (deque::deque(const _Allocator&)): Likewise.
63 * include/profile/list (list::list(const _Allocator&)): Likewise.
64 * include/profile/map.h
65 (map::map(const _Compare&, const _Allocator&)): Likewise.
66 * include/profile/multimap.h
67 (multimap::multimap(const _Compare&, const _Allocator&)): Likewise.
68 * include/profile/set.h
69 (set::set(const _Compare&, const _Allocator&)): Likewise.
70 * include/profile/multiset.h
71 (multiset::multiset(const _Compare&, const _Allocator&)): Likewise.
72 * include/profile/vector (vector::vector(const _Allocator&)):
74 * testsuite/23_containers/deque/58764.cc: New.
75 * testsuite/23_containers/list/58764.cc: New.
76 * testsuite/23_containers/map/58764.cc: New.
77 * testsuite/23_containers/multimap/58764.cc: New.
78 * testsuite/23_containers/set/58764.cc: New.
79 * testsuite/23_containers/multiset/58764.cc: New.
80 * testsuite/23_containers/vector/58764.cc: New.
81 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
82 Adjust dg-error line number.
83 * testsuite/23_containers/deque/requirements/dr438/
84 constructor_1_neg.cc: Likewise.
85 * testsuite/23_containers/deque/requirements/dr438/
86 constructor_2_neg.cc: Likewise.
87 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
89 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
91 * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
93 * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
95 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
97 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
99 * testsuite/23_containers/vector/requirements/dr438/
100 constructor_1_neg.cc: Likewise.
101 * testsuite/23_containers/vector/requirements/dr438/
102 constructor_2_neg.cc: Likewise.
103 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
106 PR libstdc++/58764 (again)
107 * include/bits/stl_list.h (list): Make default constructor's exception
108 specification conditional.
109 * include/bits/stl_vector.h (vector): Likewise.
110 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add noexcept
111 to default constructor.
112 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
113 Adjust dg-error line number.
114 * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
116 * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
118 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
120 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
122 * testsuite/23_containers/vector/requirements/dr438/
123 constructor_1_neg.cc: Likewise.
124 * testsuite/23_containers/vector/requirements/dr438/
125 constructor_2_neg.cc: Likewise.
126 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
129 2014-01-21 Tim Shen <timshen91@gmail.com>
131 * include/bits/regex.tcc: Remove incorrect `nosubs` handling.
132 * include/bits/regex_scanner.tcc: Handle `nosubs` correctly.
133 * testsuite/28_regex/constants/syntax_option_type.cc: Add a test case.
135 2014-01-21 Jonathan Wakely <jwakely@redhat.com>
138 * include/bits/hashtable.h (__cache_default): Do not depend on
139 whether the hash function is DefaultConstructible or CopyAssignable.
140 (_Hashtable): Adjust static assertions.
141 * doc/xml/manual/containers.xml (containers.unordered.cache): Update.
142 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
143 dg-error line number.
144 * testsuite/23_containers/unordered_set/
145 not_default_constructible_hash_neg.cc: Remove.
147 2014-01-20 François Dumont <fdumont@gcc.gnu.org>
149 * scripts/create_testsuite_files: Add testsuite/experimental in
150 the list of folders to search for tests.
151 * include/experimental/string_view
152 (basic_string_view<>::operator[]): Comment _GLIBCXX_DEBUG_ASSERT,
153 incompatible with constexpr qualifier.
154 (basic_string_view<>::front()): Likewise.
155 (basic_string_view<>::back()): Likewise.
156 * testsuite/experimental/string_view/element_access/wchar_t/2.cc:
157 Merge dg-options directives into one.
158 * testsuite/experimental/string_view/element_access/char/2.cc:
159 Likewise. Remove invalid experimental namespace scope on
162 2014-01-20 Jonathan Wakely <jwakely@redhat.com>
165 * include/bits/hashtable_policy.h (_Hash_code_base<... false>): Grant
166 friendship to _Local_iterator_base<..., false>.
167 (_Local_iterator_base): Give protected access to all existing members.
168 (_Local_iterator_base::_M_curr()): New public accessor.
169 (_Local_iterator_base::_M_get_bucket()): New public accessor.
170 (_Local_iterator_base<..., false>::_M_init()): New function to manage
171 the lifetime of the _Hash_code_base explicitly.
172 (_Local_iterator_base<..., false>::_M_destroy()): Likewise.
173 (_Local_iterator_base<..., false>): Define copy constructor and copy
174 assignment operator that use new functions to manage _Hash_code_base.
175 (operator==(const _Local_iterator_base&, const _Local_iterator_base&),
176 operator==(const _Local_iterator_base&, const _Local_iterator_base&)):
177 Use public API for _Local_iterator_base.
178 * include/debug/safe_local_iterator.h (_Safe_local_iterator): Likewise.
179 * include/debug/unordered_map (__debug::unordered_map::erase(),
180 __debug::unordered_multimap::erase()): Likewise.
181 * include/debug/unordered_set (__debug::unordered_set::erase(),
182 __debug::unordered_multiset::erase()): Likewise.
183 * testsuite/23_containers/unordered_set/56267-2.cc: New test.
185 2014-01-19 Tim Shen <timshen91@gmail.com>
187 * include/bits/regex_compiler.h (_Comipler<>::_M_quantifier()):
188 Fix parse error of multiple consecutive quantifiers like "a**".
189 * include/bits/regex_compiler.tcc (_Comipler<>::_M_quantifier()):
191 * testsuite/28_regex/basic_regex/multiple_quantifiers.cc: New.
193 2014-01-17 François Dumont <fdumont@gcc.gnu.org>
195 * include/profile/set.h (set): Implement C++11 allocator-aware
196 container requirements.
197 * include/profile/map.h (map): Likewise.
198 * include/profile/multiset.h (multiset): Likewise.
199 * include/profile/multimap.h (multimap): Likewise.
200 * include/profile/set.h
201 (set::operator=(const set&)): Define as default in C++11 mode.
202 (set::operator=(set&&)): Likewise.
203 * include/profile/map.h
204 (map::operator=(const map&)): Likewise.
205 (map::operator=(map&&)): Likewise.
206 * include/profile/multiset.h
207 (multiset::operator=(const multiset&)): Likewise.
208 (multiset::operator=(multiset&&)): Likewise.
209 * include/profile/multimap.h
210 (multimap::operator=(const multimap&)): Likewise.
211 (multimap::operator=(multimap&&)): Likewise.
212 * include/profile/set.h (set::operator=(std::initializer_list<>)):
213 Rely on the same operator from normal mode.
214 * include/profile/map.h (map::operator=(std::initializer_list<>)):
216 * include/profile/multiset.h
217 (multiset::operator=(std::initializer_list<>)): Likewise.
218 * include/profile/multimap.h
219 (multimap::operator=(std::initializer_list<>)): Likewise.
220 * include/profile/set.h (set::swap(set&)): Add noexcept
222 * include/profile/map.h (map::swap(map&)): Likewise.
223 * include/profile/multiset.h (multiset::swap(multiset&)): Likewise.
224 * include/profile/multimap.h (multimap::swap(multimap&)): Likewise.
226 2014-01-17 Tim Shen <timshen91@gmail.com>
228 * include/bits/regex_automaton.tcc (_StateSeq<>::_M_clone()): Do not
230 * include/bits/regex_automaton.h: Do not use std::set.
231 * include/bits/regex_compiler.h (_BracketMatcher<>::_M_add_char(),
232 _BracketMatcher<>::_M_add_collating_element(),
233 _BracketMatcher<>::_M_add_equivalence_class(),
234 _BracketMatcher<>::_M_make_range()): Likewise.
235 * include/bits/regex_compiler.tcc (_BracketMatcher<>::_M_apply()):
237 * include/bits/regex_executor.h: Do not use std::queue.
238 * include/bits/regex_executor.tcc (_Executor<>::_M_main(),
239 _Executor<>::_M_dfs()): Likewise.
240 * include/std/regex: Remove <map>, <set> and <queue>.
242 2014-01-17 Tim Shen <timshen91@gmail.com>
244 * include/bits/regex.h (__compile_nfa<>(), basic_regex<>::basic_regex(),
245 basic_regex<>::assign()): Change __compile_nfa to accept
247 * include/bits/regex_compiler.h: Change _Compiler's template
248 argument from <_FwdIter, _TraitsT> to <_TraitsT>.
249 * include/bits/regex_compiler.tcc: Likewise.
251 2014-01-17 Tim Shen <timshen91@gmail.com>
253 * include/bits/regex_compiler.h: Change _ScannerT into char-type
255 * include/bits/regex_scanner.h (_Scanner<>::_Scanner()): Separate
256 _ScannerBase from _Scanner; Change _Scanner's template argument from
257 _FwdIter to _CharT. Avoid use of std::map and std::set by using arrays
259 * include/bits/regex_scanner.tcc (_Scanner<>::_Scanner(),
260 _Scanner<>::_M_scan_normal(), _Scanner<>::_M_eat_escape_ecma(),
261 _Scanner<>::_M_eat_escape_posix(), _Scanner<>::_M_eat_escape_awk()):
263 * include/std/regex: Add <cstring> for using strchr.
265 2014-01-17 Tim Shen <timshen91@gmail.com>
267 * bits/regex_automaton.tcc: Indentation fix.
268 * bits/regex_compiler.h (__compile_nfa<>(), _Compiler<>,
269 _RegexTranslator<> _AnyMatcher<>, _CharMatcher<>,
270 _BracketMatcher<>): Add bool option template parameters and
271 specializations to make matching more efficient and space saving.
272 * bits/regex_compiler.tcc: Likewise.
274 2014-01-15 François Dumont <fdumont@gcc.gnu.org>
277 * include/bits/hashtable_policy.h: Fix some long lines.
278 * include/bits/hashtable.h (__hash_code_base_access): Define and
279 use it to check its _M_bucket_index noexcept qualification. Use
281 (__access_protected_ctor): ...this.
282 * testsuite/23_containers/unordered_set/instantiation_neg.cc:
284 * testsuite/23_containers/unordered_set/
285 not_default_constructible_hash_neg.cc: Likewise.
287 2014-01-13 François Dumont <fdumont@gcc.gnu.org>
289 * include/debug/set.h (set): Implement C++11 allocator-aware
290 container requirements.
291 * include/debug/map.h (map): Likewise.
292 * include/debug/multiset.h (multiset): Likewise.
293 * include/debug/multimap.h (multimap): Likewise.
294 * include/debug/set.h (set::operator=(set&&)): Add noexcept and
295 fix implementation regarding management of safe iterators.
296 * include/debug/map.h (map::operator=(map&&)): Likewise.
297 * include/debug/multiset.h (multiset::operator=(multiset&&)): Likewise.
298 * include/debug/multimap.h (multimap::operator=(multimap&&)):
300 * include/debug/set.h (set::operator=(std::initializer_list<>)):
301 Rely on the same operator from normal mode.
302 * include/debug/map.h (map::operator=(std::initializer_list<>)):
304 * include/debug/multiset.h
305 (multiset::operator=(std::initializer_list<>)): Likewise.
306 * include/debug/multimap.h
307 (multimap::operator=(std::initializer_list<>)): Likewise.
308 * include/debug/set.h (set::swap(set&)): Add noexcept
309 specification, add allocator equality check.
310 * include/debug/map.h (map::swap(map&)): Likewise.
311 * include/debug/multiset.h (multiset::swap(multiset&)): Likewise.
312 * include/debug/multimap.h (multimap::swap(multimap&)): Likewise.
314 2014-01-10 Jonathan Wakely <jwakely@redhat.com>
317 * doc/xml/manual/status_cxx1998.xml (iso.1998.specific): Markup
318 and stylistic improvements.
319 * doc/xml/manual/codecvt.xml (std.localization.facet.codecvt): Likewise
320 and update for C++11.
321 * doc/xml/manual/ctype.xml (std.localization.facet.ctype): Likewise.
324 * doc/xml/manual/backwards_compatibility.xml
325 (backwards.third.nocreate_noreplace): Correct and expand.
328 * doc/xml/manual/support.xml (std.support.types.null): Update links.
330 2014-01-09 Jonathan Wakely <jwakely@redhat.com>
333 * include/bits/stl_vector.h (vector<>::_M_move_assign): Restore
334 support for non-Movable types.
337 * src/c++11/thread.cc (__sleep_for): Fix call to ::sleep.
339 2014-01-08 François Dumont <fdumont@gcc.gnu.org>
341 * include/bits/stl_vector.h (std::vector<>::_M_move_assign): Pass
342 *this allocator instance when building temporary vector instance
343 so that *this allocator does not get moved.
344 * include/debug/safe_base.h
345 (_Safe_sequence_base(_Safe_sequence_base&&)): New.
346 * include/debug/vector (__gnu_debug::vector<>(vector&&)): Use new
347 move constructor from _Safe_sequence_base.
348 (__gnu_debug::vector<>(vector&&, const allocator_type&)): Swap
349 safe iterators if the instance is moved.
350 (__gnu_debug::vector<>::operator=(vector&&)): Likewise.
351 * testsuite/23_containers/vector/allocator/move.cc (test01): Add
352 check on a vector iterator.
353 * testsuite/23_containers/vector/allocator/move_assign.cc
355 (test03): New, test with a non-propagating allocator.
356 * testsuite/23_containers/vector/debug/move_assign_neg.cc: New.
358 2014-01-07 Tim Shen <timshen91@gmail.com>
360 * include/bits/regex_compiler.h (_AnyMatcher<>::_AnyMatcher(),
361 _AnyMatcher<>::operator(), _AnyMatcher<>::_M_apply(),
362 _CharMatcher<>::_CharMatcher(), _CharMatcher<>::_M_translate(),
363 _BracketMatcher<>::_BracketMatcher(), _BracketMatcher<>::operator(),
364 _BracketMatcher<>::_M_add_char(),
365 _BracketMatcher<>::_M_add_collating_element(),
366 _BracketMatcher<>::_M_add_equivalence_class(),
367 _BracketMatcher<>::_M_add_character_class(),
368 _BracketMatcher<>::_M_make_range(), _BracketMatcher<>::_M_ready(),
369 _BracketMatcher<>::_M_apply(), _BracketMatcher<>::_M_make_cache()):
370 Fix _AnyMatcher behavior of POSIX style and move _M_flags
371 to template parameter; Add cache for _BracketMatcher. Adjust
372 declarations from here...
373 * include/bits/regex.h (basic_regex<>::imbue()): ...to here. Also,
374 imbuing a regex will trigger a recompilation to rebuild the cache.
375 * include/bits/regex_compiler.tcc (_Compiler<>::_M_atom(),
376 _Compiler<>::_M_bracket_expression()): Adjust matchers' caller for
377 different template bool parameters.
378 * include/bits/regex_executor.h: Remove unnecessary declarations.
379 * include/std/regex: Adjust including orders.
380 * testsuite/28_regex/traits/char/user_defined.cc: New.
381 * testsuite/28_regex/traits/wchar_t/user_defined.cc: New.
383 2014-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
385 * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerate.
386 * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Likewise.
387 * config/abi/post/solaris2.10/baseline_symbols.txt: Likewise.
388 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
389 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
391 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
393 Update copyright years
395 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
397 * testsuite/18_support/new_handler.cc,
398 testsuite/18_support/terminate_handler.cc,
399 testsuite/18_support/unexpected_handler.cc: Use the standard form for
400 the copyright notice.
402 Copyright (C) 2014 Free Software Foundation, Inc.
404 Copying and distribution of this file, with or without modification,
405 are permitted in any medium without royalty provided the copyright
406 notice and this notice are preserved.