1 2017-09-04 Daniel Kruegler <daniel.kruegler@gmail.com>
4 Implement LWG 2946, LWG 2758's resolution missed further corrections
5 * include/bits/basic_string.h (basic_string::compare): Add missing
6 required noexcept specifications.
7 (basic_string): Introduce internal _S_to_string_view and __sv_wrapper
8 for implicit string_view conversion.
9 (basic_string::basic_string): Fix explicit string_view conversion by
10 implicit conversion using _S_to_string_view and __sv_wrapper.
11 (basic_string): Introduce internal basic_string(__sv_wrapper, Alloc)
13 (basic_string): Fix operator=(T) template by operator=(const T&)
14 template for uncopyable types (PR 79162).
15 (basic_string::operator+=, basic_string::append, basic_string::assign)
16 (basic_string::insert, basic_string::replace, basic_string::find)
17 (basic_string::rfind, basic_string::find_first_of)
18 (basic_string::find_last_of, basic_string::find_first_not_of)
19 (basic_string::find_last_not_of, basic_string::compare): Replace
20 __sv_type argument by template const T& (LWG 2946) and correct
21 documentation describing __sv_type argument.
22 (basic_string::find, basic_string::rfind, basic_string::find_first_of)
23 (basic_string::find_last_of, basic_string::find_first_not_of)
24 (basic_string::find_last_not_of, basic_string::compare): Replace
25 unconditional noexcept specification by conditional noexcept
26 specification to partially balance the removal of noexcept by LWG 2946.
27 * testsuite/21_strings/basic_string/79162.cc: New.
28 * testsuite/21_strings/basic_string/lwg2946.cc: New.
30 2017-08-31 Jonathan Wakely <jwakely@redhat.com>
33 * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
34 Adjust null pointer constant to avoid warning.
36 2017-08-24 François Dumont <fdumont@gcc.gnu.org>
38 * include/bits/stl_list.h
39 [!_GLIBCXX_INLINE_VERSION](_List_base<>::_S_distance): Remove.
40 (_List_impl(_Node_alloc_type&&, _List_impl&&)): New.
41 (_List_base(_Node_alloc_type&&, _List_base&&)): New, use latter.
42 [!_GLIBCXX_INLINE_VERSION](_List_base(_Node_alloc_type&&,_List_base&&)):
44 (_List_base(_Node_alloc_type&&)): New.
45 [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_distance): Remove.
46 [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_node_count): Remove.
47 (list<>::_M_node_count): New.
48 (list<>::size()): Adapt to call latter.
49 (list<>::_S_distance(const_iterator, const_iterator)): New.
50 (list<>::splice(iterator, list&, const_iterator, const_iterator)):
52 (list(list&&, const allocator_type&, true_type)): New.
53 (list(list&&, const allocator_type&, false_type)): New.
54 (list(list&&, const allocator_type&)): Adapt to call latters.
56 2017-08-21 Jonathan Wakely <jwakely@redhat.com>
59 * include/bits/stl_iterator_base_types.h (__iterator_category): Add
60 constexpr for C++11 and later.
61 * testsuite/24_iterators/container_access.cc: Add target selector.
62 * testsuite/24_iterators/range_access.cc: Fix clause number in
64 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
65 * testsuite/24_iterators/range_access_cpp17.cc: New.
67 2017-08-21 Richard Biener <rguenther@suse.de>
69 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Run all
70 tests with -flto as well if supported.
72 2017-08-20 Martin Sebor <msebor@redhat.com>
75 * src/c++98/compatibility.cc (_GLIBCXX_3_4_SYMVER): Declare alias
76 target as a C++ function with no prototype.
77 (_GLIBCXX_3_4_5_SYMVER): Ditto.
79 2017-08-20 John David Anglin <danglin@gcc.gnu.org>
82 * testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__.
84 2017-08-18 Jonathan Wakely <jwakely@redhat.com>
86 * include/bits/hashtable_policy.h (_ReuseOrAllocNode): Remove
87 __value_alloc_type and __value_alloc_traits typedefs.
88 (_ReuseOrAllocNode::operator()): Call construct and destroy on the
90 (_Hashtable_alloc): Simplify __value_alloc_traits typedef.
91 (_Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&&...)): Call
92 construct on the node allocator.
93 (_Hashtable_alloc<_NodeAlloc>::_M_deallocate_node(__node_type*)): Call
94 destroy on the node allocator.
97 * include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
98 size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
99 const _ExtractKey&, const allocator_type&)): Let destructor do clean
100 up if an exception is thrown.
101 * testsuite/23_containers/unordered_map/cons/81891.cc: New.
103 2017-08-11 Jonathan Wakely <jwakely@redhat.com>
106 * testsuite/27_io/basic_fstream/53984.cc: Adjust test for targets
107 that allow opening a directory as a FILE and reading from it.
109 2017-08-09 Jonathan Wakely <jwakely@redhat.com>
111 * include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP):
112 Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use
113 __is_identifier to set it.
115 2017-08-09 Katsuhiko Nishimra <ktns.87@gmail.com>
117 * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
118 __is_identifier instead of __has_builtin.
120 2017-08-09 Jonathan Wakely <jwakely@redhat.com>
124 * config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)):
125 Call fflush on the stream instead of calling sync() while _M_cfile is
126 null. Restore original value of errno.
127 * testsuite/ext/stdio_filebuf/char/79820.cc: New.
128 * testsuite/ext/stdio_filebuf/char/81751.cc: New.
130 2017-07-31 Marek Polacek <polacek@redhat.com>
133 * include/bits/stl_stack.h: Fix typo.
135 2017-07-26 Jonathan Wakely <jwakely@redhat.com>
137 * testsuite/27_io/basic_fstream/53984.cc: Fix test.
139 2017-07-26 Paolo Carlini <paolo.carlini@oracle.com>
141 * testsuite/27_io/basic_fstream/53984.cc: Fix typo in dg-require
144 2017-07-25 Jonathan Wakely <jwakely@redhat.com>
147 * include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment.
148 * include/bits/istream.tcc (basic_istream::sentry): Handle exceptions
150 * include/std/istream: Adjust comments for formatted input functions
151 and unformatted input functions.
152 * testsuite/27_io/basic_fstream/53984.cc: New.
153 * testsuite/27_io/basic_istream/sentry/char/53984.cc: New.
155 * include/bits/ios_base.h (ios_base::io_state, ios_base::open_mode)
156 (ios_base::seek_dir): Remove for C++17.
157 * include/std/streambuf (basic_streambuf::stossc): Remove for C++17.
158 Add deprecated attribute for C++11 and C++14.
159 * testsuite/27_io/types/1.cc: Don't run for C++17 and later.
160 * testsuite/27_io/types/4.cc: New.
162 2017-07-23 Michael Collison <michael.collison@arm.com>
164 Add optimized implementation of mersenne twister for aarch64
165 * config/cpu/aarch64/opt/ext/opt_random.h: New file.
166 (__arch64_recursion): New function.
167 (__aarch64_lsr_128): New function.
168 (__aarch64_lsl_128): New function.
169 (operator==): New function.
170 (simd_fast_mersenne_twister_engine): Implement
172 * config/cpu/aarch64/opt/bits/opt_random.h: New file.
173 * include/ext/random: (simd_fast_mersenne_twister_engine):
174 add _M_state private array.
176 2017-07-23 François Dumont <fdumont@gcc.gnu.org>
179 * include/bits/algorithmfwd.h: Reorganize versioned namespace.
180 * include/bits/basic_string.h: Likewise.
181 * include/bits/c++config: Likewise.
182 * include/bits/deque.tcc: Likewise.
183 * include/bits/forward_list.h: Likewise.
184 * include/bits/forward_list.tcc: Likewise.
185 * include/bits/hashtable_policy.h: Likewise.
186 * include/bits/list.tcc: Likewise.
187 * include/bits/move.h: Likewise.
188 * include/bits/quoted_string.h: Likewise.
189 * include/bits/random.h: Likewise.
190 * include/bits/random.tcc: Likewise.
191 * include/bits/regex.h: Likewise.
192 * include/bits/regex.tcc: Likewise.
193 * include/bits/regex_automaton.h: Likewise.
194 * include/bits/regex_automaton.tcc: Likewise.
195 * include/bits/regex_compiler.h: Likewise.
196 * include/bits/regex_compiler.tcc: Likewise.
197 * include/bits/regex_constants.h: Likewise.
198 * include/bits/regex_error.h: Likewise.
199 * include/bits/regex_executor.h: Likewise.
200 * include/bits/regex_executor.tcc: Likewise.
201 * include/bits/regex_scanner.h: Likewise.
202 * include/bits/regex_scanner.tcc: Likewise.
203 * include/bits/specfun.h: Likewise.
204 * include/bits/stl_algo.h: Likewise.
205 * include/bits/stl_algobase.h: Likewise.
206 * include/bits/stl_bvector.h: Likewise.
207 * include/bits/stl_deque.h: Likewise.
208 * include/bits/stl_iterator.h: Likewise.
209 * include/bits/stl_iterator_base_funcs.h: Likewise.
210 * include/bits/stl_list.h: Likewise.
211 * include/bits/stl_map.h: Likewise.
212 * include/bits/stl_multimap.h: Likewise.
213 * include/bits/stl_multiset.h: Likewise.
214 * include/bits/stl_relops.h: Likewise.
215 * include/bits/stl_set.h: Likewise.
216 * include/bits/stl_vector.h: Likewise.
217 * include/bits/uniform_int_dist.h: Likewise.
218 * include/bits/unordered_map.h: Likewise.
219 * include/bits/unordered_set.h: Likewise.
220 * include/bits/vector.tcc: Likewise.
221 * include/c_global/cmath: Likewise.
222 * include/c_std/cmath: Likewise.
223 * include/decimal/decimal: Likewise.
224 * include/decimal/decimal.h: Likewise.
225 * include/experimental/algorithm: Likewise.
226 * include/experimental/any: Likewise.
227 * include/experimental/array: Likewise.
228 * include/experimental/bits/erase_if.h: Likewise.
229 * include/experimental/bits/fs_dir.h: Likewise.
230 * include/experimental/bits/fs_fwd.h: Likewise.
231 * include/experimental/bits/fs_ops.h: Likewise.
232 * include/experimental/bits/fs_path.h: Likewise.
233 * include/experimental/bits/lfts_config.h: Likewise.
234 * include/experimental/bits/shared_ptr.h: Likewise.
235 * include/experimental/bits/string_view.tcc: Likewise.
236 * include/experimental/chrono: Likewise.
237 * include/experimental/deque: Likewise.
238 * include/experimental/filesystem: Likewise.
239 * include/experimental/forward_list: Likewise.
240 * include/experimental/functional: Likewise.
241 * include/experimental/iterator: Likewise.
242 * include/experimental/list: Likewise.
243 * include/experimental/map: Likewise.
244 * include/experimental/memory: Likewise.
245 * include/experimental/memory_resource: Likewise.
246 * include/experimental/numeric: Likewise.
247 * include/experimental/optional: Likewise.
248 * include/experimental/propagate_const: Likewise.
249 * include/experimental/random: Likewise.
250 * include/experimental/ratio: Likewise.
251 * include/experimental/regex: Likewise.
252 * include/experimental/set: Likewise.
253 * include/experimental/source_location: Likewise.
254 * include/experimental/string: Likewise.
255 * include/experimental/string_view: Likewise.
256 * include/experimental/system_error: Likewise.
257 * include/experimental/tuple: Likewise.
258 * include/experimental/type_traits: Likewise.
259 * include/experimental/unordered_map: Likewise.
260 * include/experimental/unordered_set: Likewise.
261 * include/experimental/utility: Likewise.
262 * include/experimental/vector: Likewise.
263 * include/ext/bitmap_allocator.h: Likewise.
264 * include/ext/codecvt_specializations.h: Likewise.
265 * include/ext/rope: Likewise.
266 * include/ext/typelist.h: Likewise.
267 * include/std/chrono: Likewise.
268 * include/std/complex: Likewise.
269 * include/std/functional: Likewise.
270 * include/std/numeric: Likewise.
271 * include/std/string_view: Likewise.
272 * include/std/thread: Likewise.
273 * include/std/variant: Likewise.
274 * include/tr1/array: Likewise.
275 * include/tr1/bessel_function.tcc: Likewise.
276 * include/tr1/beta_function.tcc: Likewise.
277 * include/tr1/cmath: Likewise.
278 * include/tr1/complex: Likewise.
279 * include/tr1/ell_integral.tcc: Likewise.
280 * include/tr1/exp_integral.tcc: Likewise.
281 * include/tr1/functional: Likewise.
282 * include/tr1/functional_hash.h: Likewise.
283 * include/tr1/gamma.tcc: Likewise.
284 * include/tr1/hashtable.h: Likewise.
285 * include/tr1/hashtable_policy.h: Likewise.
286 * include/tr1/hypergeometric.tcc: Likewise.
287 * include/tr1/legendre_function.tcc: Likewise.
288 * include/tr1/modified_bessel_func.tcc: Likewise.
289 * include/tr1/poly_hermite.tcc: Likewise.
290 * include/tr1/poly_laguerre.tcc: Likewise.
291 * include/tr1/random.h: Likewise.
292 * include/tr1/random.tcc: Likewise.
293 * include/tr1/regex: Likewise.
294 * include/tr1/riemann_zeta.tcc: Likewise.
295 * include/tr1/shared_ptr.h: Likewise.
296 * include/tr1/special_function_util.h: Likewise.
297 * include/tr1/tuple: Likewise.
298 * include/tr1/type_traits: Likewise.
299 * include/tr1/unordered_map.h: Likewise.
300 * include/tr1/unordered_set.h: Likewise.
301 * include/tr1/utility: Likewise.
302 * include/tr2/bool_set: Likewise.
303 * include/tr2/bool_set.tcc: Likewise.
304 * include/tr2/dynamic_bitset: Likewise.
305 * include/tr2/dynamic_bitset.tcc: Likewise.
306 * include/tr2/ratio: Likewise.
307 * include/tr2/type_traits: Likewise.
308 * src/c++11/chrono.cc: Likewise.
309 * src/c++11/compatibility-c++0x.cc: Likewise.
310 * src/c++11/compatibility-chrono.cc: Likewise.
311 * src/c++11/cxx11-shim_facets.cc: Likewise.
312 * src/c++11/hashtable_c++0x.cc: Likewise.
313 * src/c++11/placeholders.cc: Likewise.
314 * src/c++11/thread.cc: Likewise.
315 * src/c++98/bitmap_allocator.cc: Likewise.
316 * src/c++98/hashtable_tr1.cc: Likewise.
317 * src/c++98/list.cc: Likewise.
318 * src/shared/hashtable-aux.cc: Likewise.
319 * testsuite/20_util/duration/literals/range.cc: Adapt line number.
320 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
321 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
322 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
323 * testsuite/20_util/forward/c_neg.cc: Likewise.
324 * testsuite/20_util/forward/f_neg.cc: Likewise.
325 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
326 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
327 * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
328 * python/libstdcxx/v6/printers.py: Adapt.
330 2017-07-20 Jonathan Wakely <jwakely@redhat.com>
332 * config/allocator/malloc_allocator_base.h [__SANITIZE_ADDRESS__]
333 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
334 * config/allocator/new_allocator_base.h [__SANITIZE_ADDRESS__]
335 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
336 * doc/xml/manual/using.xml (_GLIBCXX_SANITIZE_VECTOR): Document macro.
337 * include/bits/stl_vector.h [_GLIBCXX_SANITIZE_VECTOR]
338 (_Vector_impl::_Asan, _Vector_impl::_Asan::_Reinit)
339 (_Vector_impl::_Asan::_Grow, _GLIBCXX_ASAN_ANNOTATE_REINIT)
340 (_GLIBCXX_ASAN_ANNOTATE_GROW, _GLIBCXX_ASAN_ANNOTATE_GREW)
341 (_GLIBCXX_ASAN_ANNOTATE_SHRINK, _GLIBCXX_ASAN_ANNOTATE_BEFORE_DEALLOC):
342 Define annotation helper types and macros.
343 (vector::~vector, vector::push_back, vector::pop_back)
344 (vector::_M_erase_at_end): Add annotations.
345 * include/bits/vector.tcc (vector::reserve, vector::emplace_back)
346 (vector::insert, vector::_M_erase, vector::operator=)
347 (vector::_M_fill_assign, vector::_M_assign_aux)
348 (vector::_M_insert_rval, vector::_M_emplace_aux)
349 (vector::_M_insert_aux, vector::_M_realloc_insert)
350 (vector::_M_fill_insert, vector::_M_default_append)
351 (vector::_M_shrink_to_fit, vector::_M_range_insert): Annotate.
353 2017-07-19 Jonathan Wakely <jwakely@redhat.com>
356 * include/bits/vector.tcc (vector::_M_range_insert<_InputIterator>):
357 Only insert elements one-by-one when inserting at the end.
358 * testsuite/performance/23_containers/insert/81476.cc: New.
360 2017-07-19 Volker Reichelt <v.reichelt@netcologne.de>
362 * libsupc++/new (bad_array_new_length): Remove redundant
363 semicolon after in-class member function definition.
364 * include/bits/locale_facets.h (ctype_byname, num_put): Likewise.
365 * include/bits/locale_facets_nonio.h (time_put_byname): Likewise.
366 * include/bits/random.h (mersenne_twister_engine): Likewise.
367 * include/tr1/random.h (mersenne_twister): Likewise
368 * include/ext/random (simd_fast_mersenne_twister_engine): Likewise.
369 * include/ext/rope (char_producer, _Rope_char_consumer,
370 _Rope_self_destruct_ptr, _Rope_const_iterator, _Rope_iterator):
372 * include/ext/ropeimpl.h (_Rope_flatten_char_consumer,
373 _Rope_insert_char_consumer): Likewise.
375 2017-07-19 Jonathan Wakely <jwakely@redhat.com>
377 * include/bits/fstream.tcc (basic_filebuf::xsgetn)
378 (basic_filebuf::xsputn, basic_filebuf::seekoff): Fix indentation.
380 * testsuite/util/testsuite_iterators.h: Fix indentation.
382 * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: Add dg-require.
384 2017-07-18 Jonathan Wakely <jwakely@redhat.com>
387 * include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer
388 pointers for write mode after reading.
389 * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New.
391 2017-07-18 François Dumont <fdumont@gcc.gnu.org>
393 * include/bits/stl_list.h
394 (struct _List_node_header): New.
395 (_List_impl()): Fix noexcept qualification.
396 (_List_impl(_List_impl&&)): New, default.
397 (_List_base()): Default.
398 (_List_base(_List_base&&)): Default.
399 (_List_base::_M_move_nodes): Adapt to use
400 _List_node_header._M_move_nodes.
401 (_List_base::_M_init): Likewise.
403 (list<>(list&&)): Default.
404 (list<>::_M_move_assign(list&&, true_type)): Use _M_move_nodes.
405 (__distance(_List_const_iterator<>, _List_const_iterator<>,
406 input_iterator_tag)): Adapt.
407 * testsuite/23_containers/list/allocator/default_init.cc: New.
409 2017-07-15 Jonathan Wakely <jwakely@redhat.com>
411 * include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter
413 * testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments.
414 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction
415 with std::adopt_lock_t.
416 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check
419 2017-07-14 Jason Merrill <jason@redhat.com>
420 Jonathan Wakely <jwakely@redhat.com>
422 * include/std/variant (variant::variant(_Tp&&)): Constrain to remove
423 the constructor for empty variants from the candidate functions
424 during class template argument deduction.
425 * testsuite/20_util/variant/deduction.cc: New.
427 2017-07-11 Jonathan Wakely <jwakely@redhat.com>
429 * doc/xml/faq.xml: Update several old entries. Improve
431 * doc/xml/manual/intro.xml: Add anchors to each DR.
432 * doc/html/*: Regenerate.
434 2017-07-10 Jonathan Wakely <jwakely@redhat.com>
436 * testsuite/abi/pr42230.cc: Add header for std::free.
439 * include/bits/sstream.tcc (basic_stringbuf::overflow)
440 (basic_stringbuf::basic_stringbuf(const __string_type&, ios::mode))
441 (basic_stringbuf::str()): Construct new strings with an allocator.
442 * testsuite/27_io/basic_stringbuf/cons/81381.cc: New.
445 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
446 Declare basic_stringbuf to be a friend.
447 * include/bits/sstream.tcc (basic_stringbuf::overflow)
448 [_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
449 * include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
450 length to buffer length.
451 * testsuite/27_io/basic_stringstream/assign/81338.cc: New.
453 2017-07-06 Jonathan Wakely <jwakely@redhat.com>
455 * testsuite/20_util/specialized_algorithms/memory_management_tools/
457 * testsuite/22_locale/locale/cons/5.cc: Remove redundant restoration
458 of original environment and free memory.
460 * testsuite/abi/pr42230.cc: Free memory.
461 * testsuite/util/testsuite_abi.cc (demangle): Return std::string
462 instead of pointer that might need freeing.
463 * testsuite/util/testsuite_abi.h (demangle): Likewise.
464 * testsuite/util/testsuite_hooks.cc (verify_demangle): Free memory.
466 * include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add
467 deleted overload to prevent dangling references to rvalues.
468 * include/experimental/memory_resource
469 (polymorphic_allocator::construct): Do not call __use_alloc with
472 2017-06-27 Tim Shen <timshen@google.com>
475 * include/std/variant (variant::variant, variant::~variant,
476 variant::operator=): Implement triviality forwarding for four
477 special member functions.
478 * testsuite/20_util/variant/compile.cc: Tests.
480 2017-06-27 Jonathan Wakely <jwakely@redhat.com>
483 * testsuite/25_algorithms/sample/81221.cc: Disable except for
487 * include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not
489 * testsuite/25_algorithms/sample/81221.cc: New.
491 2017-06-22 Jonathan Wakely <jwakely@redhat.com>
494 * include/bits/stl_bvector.h (vector<bool>::_M_initialize_value):
495 Do not pass null pointer to memset.
497 2017-06-21 Ville Voutilainen <ville.voutilainen@gmail.com>
501 * include/std/istream:
502 (__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
503 (__do_is_convertible_to_basic_istream_impl): Likewise.
504 (__is_convertible_to_basic_istream_impl): Likewise.
505 (__is_convertible_to_basic_istream): Use the new base.
506 (__rvalue_istream_type): New.
507 (operator>>(_Istream&&, _Tp&&)): Use the new helper alias
508 for the SFINAE check, convert to the helper alias type before
509 doing the actual extraction.
510 * include/std/ostream:
511 (__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
512 (__do_is_convertible_to_basic_ostream_impl): Likewise.
513 (__is_convertible_to_basic_ostream_impl): Likewise.
514 (__is_convertible_to_basic_ostream): Use the new base.
515 (__rvalue_ostream_type): New.
516 (operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
517 for the SFINAE check, convert to the helper alias type before
518 doing the actual insertion.
519 * testsuite/27_io/rvalue_streams-2.cc: Add new tests.
521 2017-06-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
523 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
525 2017-06-21 Jonathan Wakely <jwakely@redhat.com>
528 * configure: Regenerate.
530 2017-06-20 Uros Bizjak <ubizjak@gmail.com>
532 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
534 2017-06-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
536 * testsuite/20_util/variant/index_type.cc: Allow for all ilp32 and
539 2017-06-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
541 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
542 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
543 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
544 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
545 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
546 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
548 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
549 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
552 2017-06-18 H.J. Lu <hongjiu.lu@intel.com>
555 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
557 2017-06-18 Andreas Schwab <schwab@linux-m68k.org>
560 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
562 2017-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
564 * testsuite: Remove dg-skip-if, dg-xfail-if, dg-xfail-run-if
567 2017-06-17 Jonathan Wakely <jwakely@redhat.com>
570 * testsuite/23_containers/vector/bool/80893.cc: Add { target c++11 }.
572 2017-06-16 Jonathan Wakely <jwakely@redhat.com>
574 * include/bits/shared_ptr.h (get_deleter): Add overload matching
576 * include/bits/shared_ptr_base.h (__shared_ptr): Declare new
577 get_deleter overload as a friend.
578 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: New.
580 2017-06-16 Jakub Jelinek <jakub@redhat.com>
583 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
584 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
585 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
587 2017-06-16 Jonathan Wakely <jwakely@redhat.com>
589 * include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
590 * testsuite/22_locale/conversions/buffer/2.cc: New.
593 * acinclude.m4: Bump libtool_VERSION.
594 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
595 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
596 * config/abi/pre/gnu.ver: Add wstring constructor symbols to
597 GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol
598 to new GLIBCXX_3.4.25 version.
599 * doc/xml/manual/abi.xml: Document new versions.
600 * doc/html/*: Regenerate.
601 * testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
602 constructors to ensure required symbols are exported.
603 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
604 * testsuite/util/testsuite_abi.cc: Add new version.
606 * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
608 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
610 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
612 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
613 missing return statements.
614 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
616 * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
618 * testsuite/special_functions/14_expint/pr68397.cc: Likewise.
620 2017-06-16 François Dumont <fdumont@gcc.gnu.org>
622 * include/bits/stl_bvector.h
623 (__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)):
625 (std::fill(_Bit_iterator, _Bit_iterator, bool)): Adapt.
626 (_Bvector_impl_data): New.
627 (_Bvector_impl): Inherits from latter.
628 (_Bvector_impl(_Bit_alloc_type&&)): Delete.
629 (_Bvector_impl(_Bvector_impl&&)): New, default.
630 (_Bvector_base()): Default.
631 (_Bvector_base(_Bvector_base&&)): Default.
632 (_Bvector_base::_M_move_data(_Bvector_base&&)): New.
633 (vector(vector&&, const allocator_type&)): Use latter.
634 (vector<bool>::operator=(vector&&)): Likewise.
635 (vector<bool>::vector()): Default.
636 (vector<bool>::vector(vector&&)): Default.
637 (vector<bool>::assign(_InputIterator, _InputIterator)): Use
639 (vector<bool>::assign(initializer_list<bool>)): Likewise.
640 (vector<bool>::_M_initialize_value(bool)): New.
641 (vector<bool>(size_type, const bool&, const allocator_type&)): Use
643 (vector<bool>::_M_initialize_dispatch(_Integer, _Integer, __true_type)):
645 (vector<bool>::_M_fill_assign(size_t, bool)): Likewise.
647 2017-06-15 François Dumont <fdumont@gcc.gnu.org>
649 * src/c++98/tree.cc [!_GLIBCXX_INLINE_VERSION]
650 (_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete.
652 2017-06-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
654 * testsuite: Add dg-require-effective-target pthread to -pthread
656 Remove explicit target lists from dg-do and dg-options.
658 * testsuite/30_threads/async/forced_unwind.cc: Remove explit
659 target list from dg-options.
660 * testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise.
662 * 30_threads/shared_mutex/cons/1.cc: Likewise.
663 Pass -pthread for all targets.
664 * 30_threads/shared_mutex/try_lock/1.cc: Likewise.
665 * 30_threads/shared_mutex/try_lock/2.cc: Likewise.
666 * 30_threads/shared_mutex/unlock/1.cc: Likewise.
668 * testsuite/30_threads/this_thread/57060.cc: Require c++11 via
669 dg-require-effective-target.
671 2017-06-14 Jonathan Wakely <jwakely@redhat.com>
673 * doc/xml/manual/test.xml: Correct instructions on running tests.
674 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to
675 pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
676 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
678 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise.
679 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
680 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
681 exceptions_failbit.cc: Likewise.
682 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
683 exceptions_failbit.cc: Likewise.
684 * testsuite/27_io/basic_istream/extractors_other/char/
685 exceptions_null.cc: Likewise.
686 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
687 exceptions_null.cc: Likewise.
688 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
689 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
690 * testsuite/27_io/basic_ostream/inserters_other/char/
691 exceptions_null.cc: Likewise.
692 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
693 exceptions_null.cc: Likewise.
694 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
696 2017-06-12 Pedro Alves <palves@redhat.com>
698 * doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
700 * doc/html/*: Regenerate.
702 * include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
704 (__cpp_lib_constexpr_char_traits): Uncomment.
705 (__constant_string_p, __constant_char_array_p): New.
706 (std::char_traits<char>, std::char_traits<wchar_t>): Add
707 _GLIBCXX17_CONSTEXPR on compare, length and find and use
708 __constant_string_p, __constant_char_array_p and
709 __builtin_constant_p to defer to __gnu_cxx::char_traits at compile
712 * testsuite/21_strings/char_traits/requirements/
713 constexpr_functions_c++17.cc: Uncomment
714 __cpp_lib_constexpr_char_traits tests. Uncomment
715 test_compare<char>, test_length<char>, test_find<char>,
716 test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
719 2017-06-12 François Dumont <fdumont@gcc.gnu.org>
721 * include/bits/stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator
723 * testsuite/util/testsuite_allocator.h
724 (__gnu_test::default_init_allocator<>) New.
725 * testsuite/23_containers/set/allocator/default_init.cc: New.
726 * testsuite/23_containers/map/allocator/default_init.cc: New.
728 2017-06-12 Jonathan Wakely <jwakely@redhat.com>
731 * src/c++11/thread.cc (execute_native_thread_routine): Remove
732 try-block so that exceptions propagate out of the thread and terminate
733 is called by the exception-handling runtime.
734 (execute_native_thread_routine_compat): Likewise.
735 * testsuite/30_threads/thread/cons/terminate.cc: New.
737 2017-06-09 Jonathan Wakely <jwakely@redhat.com>
739 * doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
740 * include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
742 * include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
743 (_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
744 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
746 * include/bits/forward_list.h (forward_list): Add deduction guide.
747 * include/bits/stl_deque.h (deque): Likewise.
748 * include/bits/stl_list.h (list): Likewise.
749 * include/bits/stl_vector.h (vector): Likewise.
750 * testsuite/23_containers/deque/cons/deduction.cc: New.
751 * testsuite/23_containers/forward_list/cons/deduction.cc: New.
752 * testsuite/23_containers/list/cons/deduction.cc: New.
753 * testsuite/23_containers/vector/cons/deduction.cc: New.
755 2017-06-08 Jonathan Wakely <jwakely@redhat.com>
758 * include/bits/std_function.h (function::function(function&&))
759 (function::operator=(funtion&&)): Add noexcept.
760 * testsuite/20_util/function/assign/move.cc: Check for noexcept.
761 * testsuite/20_util/function/cons/move.cc: Likewise.
763 2017-06-07 Jonathan Wakely <jwakely@redhat.com>
765 * include/bits/regex.h (basic_regex): Add deduction guide from P0433.
766 * testsuite/28_regex/basic_regex/ctors/deduction.cc: New.
769 * include/bits/regex.h (basic_regex): Adjust call to __compile_nfa
770 so iterator type is deduced.
771 * include/bits/regex_compiler.h (__compile_nfa): Reorder template
772 parameters to allow iterator type to be deduced.
773 * testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
775 * include/bits/alloc_traits.h (__is_allocator, _RequireAllocator):
776 New trait and alias for detecting Allocator-like types.
777 * include/bits/basic_string.h (basic_string): Add deduction guide
779 * include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): Add template
780 parameter with default template argument that causes substitution
781 failures for types that cannot be allocators.
782 * testsuite/21_strings/basic_string/cons/char/deduction.cc: New.
783 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: New.
785 2017-06-02 Jonathan Wakely <jwakely@redhat.com>
788 * include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
789 (__erased_hash): Remove constexpr specifier and qualify calls to
791 (__erased_dtor): Remove constexpr specifier and use _Destroy.
793 2017-06-05 Jonathan Wakely <jwakely@redhat.com>
795 * include/bits/stl_iterator_base_funcs.h
796 (__advance<_RandomAccessIterator, _Distance>): Optimize for next/prev
797 cases where incrementing or decrementing a single step.
799 * include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
800 (__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
801 specifiers as per LWG 2873 and LWG 2942.
802 * testsuite/20_util/owner_less/noexcept.cc: New.
803 * testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
805 * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
807 2017-06-03 Andreas Schwab <schwab@linux-m68k.org>
809 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
811 2017-06-03 Eric Botcazou <ebotcazou@adacore.com>
813 * src/filesystem/dir.cc (fs::_Dir::advance): Use std::exchange.
815 2017-06-02 Jonathan Wakely <jwakely@redhat.com>
818 * doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
819 * include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
820 Transform eof value to U+FFFD.
821 * testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
822 * testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
823 * testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.
825 * libsupc++/Makefile.am: Remove custom targets for files that need to
826 be compiled as C++11 or C++14.
827 * libsupc++/Makefile.in: Regenerate.
828 * libsupc++/del_ops.cc: Use pragma to disable -Wsized-deallocation
830 * libsupc++/del_opvs.cc: Likewise.
832 2017-06-02 Richard Biener <rguenther@suse.de>
833 Markus Eisenmann <meisenmann.lba@fh-salzburg.ac.at>
836 * libsupc++/eh_alloc.cc (pool::free): Keep list properly
837 sorted and add missing freelist item merging cases.
839 2017-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
841 (GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
842 Remove *-solaris* section.
843 * configure: Regenerate.
845 2017-05-31 Jonathan Wakely <jwakely@redhat.com>
848 * include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
849 null pointer dereference when size is zero.
850 * testsuite/23_containers/vector/bool/80893.cc: New.
851 * testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
852 Add non-explicit constructor from nullptr.
853 (PointerBase::derived() const): Add const-qualified overload.
855 2017-05-20 Tim Shen <timshen@google.com>
858 * include/std/variant(variant::variant): SFINAE on is_same first.
859 * testsuite/20_util/variant/any.cc: test case.
861 2017-05-24 Jonathan Wakely <jwakely@redhat.com>
863 * src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__
864 instead of fixed number of bits.
866 2017-05-24 Andreas Schwab <schwab@suse.de>
868 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
869 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
871 2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
872 Jonathan Wakely <jwakely@redhat.com>
875 * acinclude.m4: Bump libtool_VERSION.
876 * config/abi/pre/gnu.ver: Create GLIBCXX_3.4.24 with new symbol.
877 * config.h.in: Regenerate.
878 * configure: Regenerate.
879 * configure.ac: Add test for <linux/random.h>.
880 * doc/xml/manual/abi.xml: Document new library version.
881 * include/bits/random.h (random_device::entropy)
882 [_GLIBCXX_USE_RANDOM_TR1]: Add call to new _M_getentropy member.
883 (random_device::_M_getentropy): Declare.
884 * src/c++11/random.cc (random_device::_M_getentropy): Define.
885 * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.24 to known
886 versions, and make it the latest version.
888 2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
891 * include/bits/locale_facets.tcc (num_get::_M_extract_int): Add
892 explicit conversion to avoid signed overflow.
894 2017-05-19 Jonathan Wakely <jwakely@redhat.com>
897 * include/bits/stl_algo.h (search): Add new overload for C++17.
898 * testsuite/25_algorithms/search/searcher.cc: New.
900 2017-05-18 Jonathan Wakely <jwakely@redhat.com>
903 * include/std/functional (_Mem_fn_traits_base): Add specializations
904 for noexcept member function types.
905 * testsuite/20_util/function_objects/mem_fn/80478.cc: New test.
907 2017-05-18 Jonathan Wakely <jwakely@redhat.com>
909 * doc/xml/manual/policy_data_structures.xml: Fix typo.
910 * doc/xml/manual/test_policy_data_structures.xml: Likewise.
911 * doc/html/*: Regenerate.
913 * doc/xml/manual/abi.xml: Document latest library versions.
914 * doc/xml/manual/build_hacking.xml: Document requirement to update
915 abi.xml when bumping library versions.
916 * doc/html/*: Regenerate.
918 2017-05-17 Jonathan Wakely <jwakely@redhat.com>
920 * include/bits/refwrap.h: Fix Doxygen warning.
921 * include/bits/specfun.h: Likewise.
922 * include/bits/std_function.h: Likewise.
923 * include/bits/stl_algo.h (set_union, set_intersection)
924 (set_difference, set_symmetric_difference): Add Doxygen @param tags
925 for output iterator parameters.
926 * include/bits/stl_iterator.h (inserter): Add Doxygen @param tag for
928 * include/std/mutex (try_lock, lock): Change Mutex to Lockable in
931 2017-05-17 Ville Voutilainen <ville.voutilainen@gmail.com>
933 Implement new C++ intrinsics __is_assignable and __is_constructible.
934 * include/std/type_traits (__do_is_static_castable_impl): Remove.
935 (__is_static_castable_impl, __is_static_castable_safe): Likewise.
936 (__is_static_castable, __do_is_direct_constructible_impl): Likewise.
937 (__is_direct_constructible_impl): Likewise.
938 (__is_direct_constructible_new_safe): Likewise.
939 (__is_base_to_derived_ref, __is_lvalue_to_rvalue_ref): Likewise.
940 (__is_direct_constructible_ref_cast): Likewise.
941 (__is_direct_constructible_new, __is_direct_constructible): Likewise.
942 (__do_is_nary_constructible_impl): Likewise.
943 (__is_nary_constructible_impl, __is_nary_constructible): Likewise.
944 (__is_constructible_impl): Likewise.
945 (is_constructible): Call the intrinsic.
946 (__is_assignable_helper): Remove.
947 (is_assignable): Call the intrinsic.
948 (is_trivially_constructible): Likewise.
949 (__is_trivially_copy_constructible_impl): New.
950 (is_trivially_copy_constructible): Use it.
951 (__is_trivially_move_constructible_impl): New.
952 (is_trivially_move_constructible): Use it.
953 (is_trivially_assignable): Call the intrinsic.
954 (__is_trivially_copy_assignable_impl): New.
955 (is_trivially_copy_assignable): Use it.
956 (__is_trivially_move_assignable_impl): New.
957 (is_trivially_move_assignable): Use it.
958 (testsuite/20_util/declval/requirements/1_neg.cc): Adjust.
959 (testsuite/20_util/is_trivially_copy_assignable/value.cc):
961 (testsuite/20_util/is_trivially_copy_constructible/value.cc): Likewise.
962 (testsuite/20_util/is_trivially_move_assignable/value.cc): Likewise.
963 (testsuite/20_util/is_trivially_move_constructible/value.cc): Likewise.
964 (testsuite/20_util/make_signed/requirements/typedefs_neg.cc): Adjust.
965 (testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc):
968 2017-05-16 Jonathan Wakely <jwakely@redhat.com>
970 * testsuite/experimental/source_location/1.cc: Change expected result
971 for source_location::current() used in default member initializer.
973 * doc/xml/manual/status_cxx2017.xml: Update status table.
974 * doc/html/*: Regenerate.
975 * include/Makefile.am: Add new header.
976 * include/Makefile.in: Regenerate.
977 * include/experimental/source_location: New header implementing N4519.
978 * testsuite/experimental/source_location/1.cc: New test.
981 * include/bits/shared_ptr_base.h [!__cpp_rtti] (type_info): Declare
982 outside versioned namespace.
984 * configure: Regenerate.
986 2017-05-16 Marc Glisse <marc.glisse@inria.fr>
988 * include/std/optional (_Optional_base::_M_get): Check precondition.
989 * testsuite/20_util/optional/cons/value_neg.cc: Update line numbers.
991 2017-05-16 Jonathan Wakely <jwakely@redhat.com>
993 * doc/xml/manual/appendix_contributing.xml: Link to test docs and
994 note higher DejaGnu version requirement.
995 * doc/html/*: Regenerate.
997 * doc/xml/manual/appendix_contributing.xml: Link to the list of bad
999 * doc/html/*: Regenerate.
1001 2017-05-15 Jonathan Wakely <jwakely@redhat.com>
1004 * include/bits/node_handle.h (_Node_insert_return): Reorder members.
1005 (tuple_size, tuple_element): Remove partial specializations.
1006 * include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
1007 const_iterator for std::set.
1008 * testsuite/23_containers/map/modifiers/extract.cc: New.
1009 * testsuite/23_containers/set/modifiers/extract.cc: New.
1010 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
1011 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
1013 2017-05-12 Jonathan Wakely <jwakely@redhat.com>
1016 * include/std/utility (tuple_size<cv T>): Only define partial
1017 specializations when tuple_size<T>::value is valid.
1018 * testsuite/20_util/tuple/78939.cc: New.
1019 * testsuite/20_util/tuple/cv_tuple_size_neg.cc: New.
1021 2017-05-11 François Dumont <fdumont@gcc.gnu.org>
1023 * include/bits/stl_tree.h [_GLIBCXX_INLINE_VERSION]
1024 (_Rb_tree_impl<>): Remove _Is_pod_comparator
1027 * include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
1028 (__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
1029 (__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
1031 (__gnu_debug::_Error_formatter::_M_format_word): Remove.
1032 (__gnu_debug::_Error_formatter::_M_print_word): Remove.
1033 (__gnu_debug::_Error_formatter::_M_print_string): Remove.
1034 (__gnu_debug::_Error_formatter::_M_get_max_length): Remove.
1035 * src/c++11/debug.cc: Adapt.
1036 * config/abi/pre/gnu-versioned-namespace.ver: Adapt.
1038 2017-05-11 Jonathan Wakely <jwakely@redhat.com>
1040 * doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
1041 * doc/xml/manual/mt_allocator.xml: Likewise.
1042 * doc/html/*: Regenerate.
1045 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Define
1046 function to get unique fake std::type_info reference.
1047 (_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Compare to
1048 _S_ti() fake reference.
1049 (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Share
1050 single implementation with or without RTTI enable.
1051 [!__cpp_rtti]: Pass fake reference to _M_get_deleter.
1052 * testsuite/20_util/shared_ptr/creation/alloc.cc: Change expected
1053 allocation and deallocation counts.
1054 * testsuite/20_util/shared_ptr/creation/single_allocation.cc: New.
1055 * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
1058 2017-05-10 François Dumont <fdumont@gcc.gnu.org>
1060 Bump version namespace.
1061 * config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
1062 from __7 to __8. Bump GLIBCXX_7.0 to GLIBCXX_8.0.
1063 * acinclude.m4 (libtool_VERSION): Bump to 8:0:0.
1064 * include/bits/c++config: Adapt.
1065 * include/bits/regex.h: Adapt.
1066 * include/experimental/bits/fs_fwd.h: Adapt.
1067 * include/experimental/bits/lfts_config.h: Adapt.
1068 * include/std/variant: Adapt.
1069 * python/libstdcxx/v6/printers.py: Adapt.
1070 * testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
1072 * include/bits/stl_algobase.h (std::__iter_swap<false>): Remove
1073 _GLIBCXX_MOVE usage.
1075 2017-05-09 Jason Merrill <jason@redhat.com>
1077 * testsuite/24_iterators/container_access.cc (test03): Make il3 static.
1079 2017-05-08 Jonathan Wakely <jwakely@redhat.com>
1081 * include/std/optional: Use a separate static_assert per condition.
1082 * testsuite/20_util/optional/cons/value_neg.cc: Update dg-error line
1085 * doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
1086 * doc/html/*: Regenerate.
1088 2017-05-02 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
1091 * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
1093 2017-04-29 François Dumont <fdumont@gcc.gnu.org>
1095 * testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
1098 2017-04-28 Jonathan Wakely <jwakely@redhat.com>
1101 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
1102 assertions to ensure type is destructible.
1103 (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
1104 * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
1105 Move to stl_construct.h.
1106 * testsuite/20_util/specialized_algorithms/memory_management_tools/
1107 destroy_neg.cc: New test.
1108 * testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
1110 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
1111 superfluous "" in dg-error.
1113 2017-04-28 Tom de Vries <tom@codesourcery.com>
1115 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
1116 superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
1118 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
1120 * include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
1121 (PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
1122 * testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
1125 2017-04-26 Jonathan Wakely <jwakely@redhat.com>
1127 * testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
1128 comment. Ensure first test works because allocator type propagates and
1129 not because is_always_equal is true.
1130 * testsuite/23_containers/vector/52591.cc: Likewise. Restore original
1131 testcase that instantiates the move-assignment operator.
1133 2017-04-24 Jonathan Wakely <jwakely@redhat.com>
1136 * include/bits/random.tcc (gamma_distribution::operator()): Fix magic
1137 number used in loop condition.
1140 * include/bits/refwrap.h (ref, cref): Qualify calls.
1141 * testsuite/20_util/reference_wrapper/80504.cc: New test.
1144 * include/experimental/optional (optional::swap): Fix exception
1147 2017-04-21 Jonathan Wakely <jwakely@redhat.com>
1150 * include/std/future (_State_baseV2::_Setter::operator()): Remove
1151 _S_check calls that are done after the pointer to the shared state is
1152 already dereferenced.
1153 (_State_baseV2::_Setter<_Res, void>): Define specialization for void
1154 as partial specialization so it can be defined within the definition
1156 (_State_baseV2::__setter): Call _S_check.
1157 (_State_baseV2::__setter(promise<void>*)): Add overload for use by
1158 promise<void>::set_value and promise<void>::set_value_at_thread_exit.
1159 (promise<T>, promise<T&>, promise<void>): Make _State a friend.
1160 (_State_baseV2::_Setter<void, void>): Remove explicit specialization.
1161 (promise<void>::set_value, promise<void>::set_value_at_thread_exit):
1162 Use new __setter overload.
1163 * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
1164 * testsuite/30_threads/promise/members/set_exception.cc: Test
1165 promise<T&> and promise<void> specializations.
1166 * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
1167 Test for no_state error condition.
1168 * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
1170 * include/backward/auto_ptr.h: Ignore deprecated warnings from use
1172 * include/bits/shared_ptr.h: Likewise.
1173 * include/bits/shared_ptr_base.h: Likewise.
1174 * include/bits/unique_ptr.h: Likewise.
1175 * libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
1177 * libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
1178 * libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
1180 * libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
1183 2017-04-20 Edward Smith-Rowland <3dw4rd@verizon.net>
1185 PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
1186 * include/tr1/exp_integral.tcc: Increase iteration limits.
1187 * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
1188 pr68397.cc: New test.
1189 * testsuite/special_functions/14_expint/pr68397.cc: New test.
1191 2017-04-20 Jonathan Wakely <jwakely@redhat.com>
1194 * include/std/atomic [!_GLIBCXX_USE_C99_STDINT_TR1] (atomic_int8_t)
1195 (atomic_uint8_t, atomic_int16_t, atomic_uint16_t, atomic_int32_t,
1196 (atomic_uint32_t, atomic_int64_t, atomic_uint64_t)
1197 (atomic_int_least8_t, atomic_uint_least8_t, atomic_int_least16_t)
1198 (atomic_uint_least16_t, atomic_int_least32_t, atomic_uint_least32_t)
1199 (atomic_int_least64_t, atomic_uint_least64_t, atomic_int_fast8_t)
1200 (atomic_uint_fast8_t, atomic_int_fast16_t, atomic_uint_fast16_t)
1201 (atomic_int_fast32_t, atomic_uint_fast32_t, atomic_int_fast64_t)
1202 (atomic_uint_fast64_t, atomic_intmax_t, atomic_uintmax_t): Don't
1205 2017-04-19 Jonathan Wakely <jwakely@redhat.com>
1207 * doc/xml/manual/abi.xml: Rephrase one of the references to the
1209 * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
1210 * doc/html/*: Regenerate.
1212 * libsupc++/new: Update comment on #endif directive.
1215 * include/experimental/bits/fs_dir.h (directory_iterator)
1216 (recursive_directory_iterator): Remove noexcept from defaulted
1220 * include/std/type_traits (is_aggregate): Change __has_builtin checks.
1221 * libsupc++/new (launder): Likewise.
1223 2017-04-18 Jonathan Wakely <jwakely@redhat.com>
1225 * include/std/functional (default_searcher, __boyer_moore_array_base)
1226 (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
1227 (boyer_moore_horspool_searcher): Remove redundant namespace
1229 (default_searcher::operator()): Construct return value early and
1230 advance second member in-place.
1231 (boyer_moore_horspool_searcher::operator()): Increment random access
1232 iterator directly instead of using std::next.
1233 (boyer_moore_searcher::operator()): Fix return value.
1234 * testsuite/20_util/function_objects/searchers.cc: Check both parts
1237 2017-04-12 Gerald Pfeifer <gerald@pfeifer.com>
1239 * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
1240 * doc/xml/manual/abi.xml. Ditto (thrice).
1242 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
1244 * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
1245 * doc/html/*: Regenerate.
1247 * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
1248 that no longer fail.
1250 * include/bits/ios_base.h: Correct comment.
1251 * testsuite/util/testsuite_hooks.h: Likewise.
1253 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1254 * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
1255 directories for debug, parallel and profile headers.
1256 * doc/html/*: Regenerate.
1258 * include/bits/char_traits.h (__gnu_cxx::char_traits): Add
1259 _GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
1260 (std::char_traits<char>, std::char_traits<wchar_t>): Add
1261 _GLIBCXX17_CONSTEXPR on assign.
1262 (std::char_traits<char16_t>, std::char_traits<char32_t>): Add
1263 _GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
1264 * testsuite/21_strings/char_traits/requirements/
1265 constexpr_functions_c++17.cc: New test.
1267 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
1270 * include/bits/stl_pair.h (__nonesuch_no_braces): New.
1271 (operator=(typename conditional<
1272 __and_<is_copy_assignable<_T1>,
1273 is_copy_assignable<_T2>>::value,
1274 const pair&, const __nonesuch&>::type)): Change __nonesuch
1275 to __nonesuch_no_braces.
1276 (operator=(typename conditional<
1277 __not_<__and_<is_copy_assignable<_T1>,
1278 is_copy_assignable<_T2>>>::value,
1279 const pair&, const __nonesuch&>::type)): Likewise.
1280 (operator=(typename conditional<
1281 __and_<is_move_assignable<_T1>,
1282 is_move_assignable<_T2>>::value,
1283 pair&&, __nonesuch&&>::type)): Likewise.
1284 * testsuite/20_util/pair/79141.cc: New.
1286 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
1288 Implement std::is_aggregate.
1289 * include/std/type_traits (is_aggregate, is_aggregate_v): New.
1290 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
1292 * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
1293 * testsuite/20_util/is_aggregate/value.cc: Likewise.
1295 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1297 Adjust optional's pretty printer for LWG 2900.
1298 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
1299 Look at the nested payload in case of non-experimental optional.
1301 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1303 Implement LWG 2900, The copy and move constructors
1304 of optional are not constexpr.
1305 * include/std/optional (_Optional_payload): New.
1306 (_Optional_base): Remove the bool parameter.
1307 (_Optional_base<_Tp, false>): Remove.
1308 (_Optional_base()): Adjust.
1309 (_Optional_base(nullopt_t)): Likewise.
1310 (_Optional_base(in_place_t, _Args&&...)): Likewise.
1311 (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
1313 (_Optional_base(const _Optional_base&)): Likewise.
1314 (_Optional_base(_Optional_base&&)): Likewise.
1315 (operator=(const _Optional_base&)): Likewise.
1316 (operator=(_Optional_base&&)): Likewise.
1317 (~_Optional_base()): Remove.
1318 (_M_is_engaged()): Adjust.
1319 (_M_get()): Likewise.
1320 (_M_construct(_Args&&...)): Likewise.
1321 (_M_destruct()): Likewise.
1322 (_M_reset()): Likewise.
1323 (_Optional_base::_Empty_byte): Remove.
1324 (_Optional_base::_M_empty): Remove.
1325 (_Optional_base::_M_payload): Adjust.
1326 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1327 * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
1329 2017-03-28 Jonathan Wakely <jwakely@redhat.com>
1332 * include/bits/random.tcc (generate_canonical): Use std::nextafter
1333 or numeric_limits::epsilon() to reduce out-of-range values.
1334 * testsuite/26_numerics/random/uniform_real_distribution/operators/
1335 64351.cc: Verify complexity requirement is met.
1337 * doc/xml/manual/abi.xml: Add xml:id anchor.
1338 * doc/xml/manual/using.xml (manual.intro.using.macros): Document
1339 _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
1340 (concurrency.io.structure): Add markup.
1341 * doc/html/*: Regenerate.
1344 * include/bits/shared_ptr_base.h
1345 (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
1346 non-const and then use remove_cv to get unqualified type.
1347 * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
1348 cast away constness on object created const.
1349 * testsuite/20_util/shared_ptr/cons/80229.cc: New test.
1351 2017-03-26 Markus Trippelsdorf <markus@trippelsdorf.de>
1354 * include/bits/stl_tree.h:
1355 (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
1357 2017-03-23 Jonathan Wakely <jwakely@redhat.com>
1359 * testsuite/23_containers/array/tuple_interface/
1360 tuple_element_debug_neg.cc: Adjust dg-error.
1361 * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
1362 define a valid strict weak ordering.
1363 * testsuite/23_containers/priority_queue/67085.cc: Disable test for
1364 Debug Mode, due to debug checks making extra copies of predicate.
1365 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
1368 * doc/xml/faq.xml: Add link.
1369 * doc/xml/manual/backwards_compatibility.xml: Remove outdated
1370 information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
1371 * doc/xml/manual/io.xml: Update broken link.
1372 * doc/html/*: Regenerate.
1374 2017-03-23 Daniel Kruegler <daniel.kruegler@gmail.com>
1376 Implement LWG 2686, Why is std::hash specialized for error_code,
1377 but not error_condition?
1378 * include/std/system_error (hash<error_condition>): Define for C++17.
1379 * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
1380 Instantiate test for error_condition.
1381 * testsuite/20_util/hash/requirements/explicit_instantiation.cc
1382 (hash<error_condition>): Instantiate hash<error_condition>.
1384 * include/bits/c++config (_GLIBCXX17_INLINE): Define.
1385 * include/bits/regex_constants.h (All std::regex_constants constants):
1386 Add _GLIBCXX17_INLINE as per P0607R0.
1387 * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
1389 * include/bits/stl_pair.h (piecewise_construct): Likewise.
1390 * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
1391 (__is_uses_allocator_constructible_v)
1392 (__is_nothrow_uses_allocator_constructible_v): Likewise.
1393 * include/std/chrono (treat_as_floating_point_v): Likewise.
1394 * include/std/functional (is_bind_expression_v, is_placeholder_v):
1396 * include/std/optional (nullopt): Likewise.
1397 * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
1398 ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
1399 * include/std/system_error (is_error_code_enum_v)
1400 (is_error_condition_enum_v): Likewise.
1401 * include/std/tuple (tuple_size_v, ignore): Likewise.
1402 (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
1403 constexpr as per LWG 2933.
1404 * include/std/type_traits (All variable templates): Add
1405 _GLIBCXX17_INLINE as per P0607R0.
1406 * include/std/variant (variant_size_v, variant_npos, __index_of_v)
1407 (__tuple_count_v, __exactly_once): Likewise.
1408 * testsuite/18_support/headers/new/synopsis.cc
1409 (hardware_destructive_interference_size)
1410 (hardware_constructive_interference_size): Likewise for commented-out
1412 * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
1413 test function for constexpr std::ignore (LWG 2773).
1414 * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
1417 2017-03-22 Jonathan Wakely <jwakely@redhat.com>
1419 * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
1421 * include/bits/std_function.h (function): Likewise.
1422 * include/bits/stl_pair.h (pair): Likewise.
1423 * include/debug/array (__gnu_debug::array): Likewise.
1424 * include/std/array (array): Likewise.
1425 * include/std/functional (make_default_searcher)
1426 (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
1427 Remove generator functions.
1428 * include/std/tuple (tuple): Add deduction guides.
1429 * include/std/valarray (valarray): Likewise.
1430 * testsuite/20_util/function_objects/searchers.cc: Adjust to use
1431 class template argument deduction instead of generator functions.
1432 * testsuite/20_util/function/cons/deduction.cc: New test.
1433 * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
1434 * testsuite/20_util/optional/cons/deduction.cc: ... here.
1435 * testsuite/20_util/pair/cons/deduction.cc: New test.
1436 * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
1437 * testsuite/20_util/tuple/cons/deduction.cc: New test.
1438 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
1439 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
1440 * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
1441 * testsuite/23_containers/array/cons/deduction.cc: New test.
1442 * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
1443 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
1445 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
1446 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
1448 * testsuite/26_numerics/valarray/deduction.cc: New test.
1449 * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
1450 * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
1451 * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
1453 2017-03-20 François Dumont <fdumont@gcc.gnu.org>
1455 * include/bits/stl_deque.h (deque): Access allocator value_type only if
1456 concept checks are enabled.
1457 * include/bits/stl_stack.h (stack): Likewise.
1458 * include/bits/stl_vector.h (vector): Likewise.
1459 * include/bits/stl_list.h (list): Likewise and check
1460 _SGIAssignableConcept only in C++03.
1461 * include/bits/stl_map.h (map): Likewise.
1462 * include/bits/stl_set.h (set): Likewise.
1463 * include/bits/stl_multimap.h (multimap): Likewise.
1464 * include/bits/stl_multiset.h (multiset): Likewise.
1465 * include/bits/stl_queue.h (queue, priority_queue): Likewise.
1467 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
1469 * doc/xml/manual/appendix_contributing.xml: Convert link to
1471 Update link to the C++ standard at ansi.org.
1473 * doc/xml/faq.xml: Remove information redundant with the above;
1474 instead add a reference.
1476 2017-03-17 Jonathan Wakely <jwakely@redhat.com>
1478 * src/c++11/codecvt.cc (range): Add non-type template parameter and
1479 define oerloaded operators for reading and writing code units.
1480 (range<Elem, false>): Define partial specialization for accessing
1481 wide characters in potentially unaligned byte ranges.
1482 (ucs2_span(const char16_t*, const char16_t*, ...))
1483 (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
1484 to range<const char16_t, false> in order to avoid unaligned reads.
1485 (__codecvt_utf16_base<char16_t>::do_out)
1486 (__codecvt_utf16_base<char32_t>::do_out)
1487 (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
1488 unaligned data to avoid unaligned writes.
1489 (__codecvt_utf16_base<char16_t>::do_in)
1490 (__codecvt_utf16_base<char32_t>::do_in)
1491 (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
1492 error if there are unprocessable trailing bytes.
1493 (__codecvt_utf16_base<char16_t>::do_length)
1494 (__codecvt_utf16_base<char32_t>::do_length)
1495 (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
1496 range<const char16_t, false> to span functions.
1497 * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
1499 2017-03-16 Jonathan Wakely <jwakely@redhat.com>
1502 * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
1505 * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
1506 (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
1507 char16_t to work with UTF-16 instead of UTF-8.
1508 * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
1510 * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
1511 (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
1512 (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
1513 (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
1514 (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
1515 (__codecvt_utf8_utf16_base<char32_t>)
1516 (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
1517 do_max_length() return values.
1518 * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
1519 * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
1520 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
1523 * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
1525 * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
1526 for manipulating codecvt_mode values.
1527 (read_utf16_bom): Compare input to BOM constants instead of integral
1528 constants that depend on endianness. Take mode parameter by
1529 reference and adjust it, to distinguish between no BOM present and
1530 UTF-16BE BOM present.
1531 (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
1532 (surrogates): New enumeration type.
1533 (utf16_in, utf16_out): Add surrogates parameter to choose between
1534 UTF-16 and UCS2 behaviour.
1535 (utf16_span, ucs2_span): Use std::min not std::max.
1536 (ucs2_out): Use std::min not std::max. Disallow surrogate pairs.
1537 (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
1538 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
1539 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
1542 * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
1543 as a surrogate pair.
1544 (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
1545 for internal representation.
1546 (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
1547 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
1550 * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
1551 (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
1552 invalid instantiations using function types for _Compare argument.
1553 * testsuite/25_algorithms/make_heap/80064.cc: New test.
1556 * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
1557 for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
1559 2017-03-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1561 Implement LWG 2857, {variant,optional,any}::emplace should
1562 return the constructed value.
1563 * include/std/any (emplace(_Args&&...)): Change the return type and
1564 return a reference to the constructed value.
1565 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1566 * include/std/optional (emplace(_Args&&...)): Likewise.
1567 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1568 * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
1569 (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
1570 (emplace<_Np>(_Args&&...)): Likewise.
1571 (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
1572 * testsuite/20_util/any/assign/emplace.cc: Add tests for
1573 checking the return value of emplace.
1574 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1575 * testsuite/20_util/optional/assignment/6.cc: Add tests for
1576 checking the return value of emplace.
1577 * testsuite/20_util/variant/run.cc: Likewise.
1579 2017-03-15 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
1582 * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
1584 (push_heap): Remove the wrong checking using is_heap.
1585 (make_heap): Remove the assertion using is_heap.
1586 * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
1588 (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
1591 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
1594 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
1596 * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
1599 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
1601 * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
1603 * config.h.in: Regenerate.
1604 * configure: Regenerate.
1605 * doc/Makefile.in: Regenerate.
1607 2017-03-14 Jonathan Wakely <jwakely@redhat.com>
1610 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1611 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
1612 with a constrained template.
1613 [!_GLIBCXX_USE_CXX11_ABI]
1614 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
1615 * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
1616 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
1618 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1621 * include/bits/list.tcc (merge(list&&)): Use const for the size_t
1623 (merge(list&&, _StrictWeakOrdering)): Likewise.
1624 * testsuite/23_containers/list/operations/80034.cc: New.
1626 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1628 Implement LWG 2806, Base class of bad_optional_access.
1629 * include/std/optional (bad_optional_access):
1630 Derive from std::exception.
1631 (bad_optional_access::bad_optional_access): Adjust.
1632 (bad_optional_access::what): New.
1633 (__throw_bad_optional_access(const char*)):
1634 Remove the parameter and adjust calls.
1635 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1636 * testsuite/20_util/optional/typedefs.cc: Likewise.
1638 2017-03-12 Ville Voutilainen <ville.voutilainen@gmail.com>
1640 Implement LWG 2934, optional<const T> doesn't compare with T.
1641 * include/std/optional
1642 (operator==(const optional<_Tp>&, const optional<_Tp>&)):
1643 Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
1644 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
1645 Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
1646 (operator<(const optional<_Tp>&, const optional<_Tp>&)):
1647 Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
1648 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
1649 Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
1650 (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
1651 Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
1652 (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
1653 Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
1654 (operator==(const optional<_Tp>&, const _Tp&)):
1655 Turn into operator==(const optional<_Tp>&, const _Up&).
1656 (operator==(const _Tp&, const optional<_Tp>&)):
1657 Turn into operator==(const _Up&, const optional<_Tp>&).
1658 (operator!=(const optional<_Tp>&, const _Tp&)):
1659 Turn into operator!=(const optional<_Tp>&, const _Up&).
1660 (operator!=(const _Tp&, const optional<_Tp>&)):
1661 Turn into operator!=(const _Up&, const optional<_Tp>&).
1662 (operator<(const optional<_Tp>&, const _Tp&)):
1663 Turn into operator<(const optional<_Tp>&, const _Up&).
1664 (operator<(const _Tp&, const optional<_Tp>&)):
1665 Turn into operator<(const _Up&, const optional<_Tp>&).
1666 (operator>(const optional<_Tp>&, const _Tp&)):
1667 Turn into operator>(const optional<_Tp>&, const _Up&).
1668 (operator>(const _Tp&, const optional<_Tp>&)):
1669 Turn into operator>(const _Up&, const optional<_Tp>&).
1670 (operator<=(const optional<_Tp>&, const _Tp&)):
1671 Turn into operator<=(const optional<_Tp>&, const _Up&).
1672 (operator<=(const _Tp&, const optional<_Tp>&)):
1673 Turn into operator<=(const _Up&, const optional<_Tp>&).
1674 (operator>=(const optional<_Tp>&, const _Tp&)):
1675 Turn into operator>=(const optional<_Tp>&, const _Up&).
1676 (operator>=(const _Tp&, const optional<_Tp>&)):
1677 Turn into operator>=(const _Up&, const optional<_Tp>&).
1678 * testsuite/20_util/optional/relops/7.cc: New.
1680 2017-03-10 Jonathan Wakely <jwakely@redhat.com>
1682 * testsuite/17_intro/names.cc: Undefine macros that clash with
1683 identifiers in AIX system headers.
1685 * include/bits/invoke.h (__invoke): Use __invoke_result instead of
1686 result_of, and __is_nothrow_invocable instead of
1687 __is_nothrow_callable.
1688 * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
1689 instead of __is_callable.
1690 * include/std/functional (invoke): use invoke_result_t instead of
1691 result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
1692 (_Not_fn): Use __invoke_result instead of result_of.
1693 * include/std/type_traits (__result_of_memobj, __result_of_memfun):
1694 Remove partial specializations for reference_wrapper types.
1695 (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
1696 (__invoke_result): Define replacement for result_of and then use it to
1698 (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
1699 with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
1701 (invoke_result, invoke_result_t): Define for C++17.
1702 (is_callable, is_nothrow_callable): Replace with is_invocable,
1703 is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
1704 (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
1705 is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
1706 * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
1707 instead of is_nothrow_callable_v.
1708 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1710 * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
1711 instead of is_callable.
1712 * testsuite/20_util/is_callable/*: Rename directory and adjust tests
1714 * testsuite/20_util/is_nothrow_callable/*: Likewise.
1715 * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
1717 * testsuite/20_util/variant/hash.cc: Likewise.
1719 2017-03-10 George Lander <george.lander@arm.com>
1721 * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
1722 _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
1723 * configure: Regenerate.
1725 2017-03-09 Jonathan Wakely <jwakely@redhat.com>
1727 * include/std/functional (_Not_fn): Define macro to simplify
1728 repetitive function definitions.
1730 * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
1731 * include/c_global/cstddef (std::byte): Define for C++17.
1732 * testsuite/18_support/byte/global_neg.cc: New test.
1733 * testsuite/18_support/byte/ops.cc: New test.
1734 * testsuite/18_support/byte/requirements.cc: New test.
1736 2017-03-05 Jonathan Wakely <jwakely@redhat.com>
1738 * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
1739 * doc/html/*: Regenerate.
1740 * include/std/mutex (scoped_lock): Implement new C++17 template.
1741 * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
1742 * testsuite/30_threads/scoped_lock/requirements/
1743 explicit_instantiation.cc: New test.
1744 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
1746 2017-03-02 Gerald Pfeifer <gerald@pfeifer.com>
1747 François Dumont <frs.dumont@gmail.com>
1748 Jonathan Wakely <jwakely@redhat.com>
1750 * doc/xml/manual/debug_mode.xml: Update and simplify note
1751 on link- and run-time coexistence.
1753 2017-03-02 Jonathan Wakely <jwakely@redhat.com>
1755 * testsuite/17_intro/headers/names.cc: Rename to ...
1756 * testsuite/17_intro/names.cc: ... here.
1759 * include/bits/hashtable_policy.h (__clp2): Use reserved names for
1760 parameters and local variables.
1761 * include/bits/ios_base.h (make_error_code, make_error_condition):
1763 * include/bits/list.tcc (list::sort): Likewise.
1764 * include/bits/mask_array.h (mask_array): Likewise.
1765 * include/bits/regex.h (regex_token_iterator): Likewise.
1766 * include/bits/slice_array.h (slice_array): Likewise.
1767 * include/bits/stl_algo.h (__sample): Likewise.
1768 * include/std/memory (undeclare_no_pointers): Likewise.
1769 * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
1771 * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
1772 * testsuite/17_intro/headers/names.cc: New test.
1775 * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
1776 result_of that loses top-level cv-qualifiers.
1777 * testsuite/20_util/bind/79798.cc: New test.
1779 2017-03-01 Gerald Pfeifer <gerald@pfeifer.com>
1781 * doc/xml/manual/documentation_hacking.xml: Tweak link to
1784 2017-02-23 Jonathan Wakely <jwakely@redhat.com>
1786 * include/experimental/iterator: Include <iterator>.
1787 * testsuite/experimental/iterator/requirements.cc: Check for contents
1790 2017-02-19 Dinka Ranns <dinka.ranns@googlemail.com>
1792 C++17 GB50 resolution
1793 * include/std/chrono (duration::operator++()): Add
1794 _GLIBCXX17_CONSTEXPR.
1795 (duration::operator++(int)): Likewise.
1796 (duration::operator--()): Likewise.
1797 (duration::operator--(int)): Likewise.
1798 (duration::operator+=(const duration&)): Likewise.
1799 (duration::operator-=(const duration&)): Likewise.
1800 (duration::operator*=(const rep&)): Likewise.
1801 (duration::operator/=(const rep&)): Likewise.
1802 (duration::operator%=(const rep&)): Likewise.
1803 (duration::operator%=(const duration&)): Likewise.
1804 (time_point::operator+=(const duration&)): Likewise.
1805 (time_point::operator-=(const duration&)): Likewise.
1806 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
1807 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
1808 * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
1810 2017-02-19 Gerald Pfeifer <gerald@pfeifer.com>
1812 * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
1814 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
1816 * doc/xml/manual/io.xml: Update link to groups.google.com.
1817 Tweak link description.
1819 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
1821 * doc/xml/manual/profile_mode.xml: Fix link.
1823 2017-02-16 Gerald Pfeifer <gerald@pfeifer.com>
1825 * doc/xml/manual/policy_data_structures.xml: Simplify and
1826 standardize references to boost.org.
1827 * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
1828 * doc/xml/manual/shared_ptr.xml: Ditto.
1830 2017-02-16 Jonathan Wakely <jwakely@redhat.com>
1833 * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
1834 written to buffer, not length remaining in buffer.
1836 2017-02-15 Tim Shen <timshen@google.com>
1839 * include/std/variant (operator<(), operator>(), operator<=(),
1840 operator>=(), operator==(), operator!=()): Implement P0393R3.
1841 * testsuite/20_util/variant/compile.cc: Adjust tests.
1842 * testsuite/20_util/variant/run.cc: Adjust tests.
1844 2017-02-15 Tim Shen <timshen@google.com>
1847 * include/std/variant (visit()): Forward variant types to the return
1848 type detection code.
1849 * testsuite/20_util/variant/compile.cc: Add test cases.
1851 2017-02-13 H.J. Lu <hongjiu.lu@intel.com>
1854 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
1856 2017-02-13 Jakub Jelinek <jakub@redhat.com>
1859 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1860 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1861 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
1862 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1863 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
1864 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
1865 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
1866 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
1867 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1869 2017-02-13 Jonathan Wakely <jwakely@redhat.com>
1872 * include/std/future (__future_base::_Task_state::_M_run)
1873 (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
1874 result_of expressions.
1875 * testsuite/30_threads/packaged_task/79486.cc: New.
1877 2017-02-11 Jonathan Wakely <jwakely@redhat.com>
1880 * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
1881 (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
1882 __is_callable check.
1883 * testsuite/20_util/shared_ptr/cons/79467.cc: New.
1885 * include/bits/atomic_base.h: Re-indent.
1887 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
1889 * doc/xml/manual/profile_mode.xml: Update a paper reference.
1891 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
1893 * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
1895 2017-02-08 Jonathan Wakely <jwakely@redhat.com>
1897 * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
1899 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
1900 broken links to texts that are no longer online.
1901 * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
1903 * doc/xml/manual/using.xml: Update links to memory model information.
1904 * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
1905 Standard-Library Exception Safety".
1906 * doc/html/*: Regenerate.
1908 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
1910 * doc/xml/manual/profile_mode.xml: Unbreak link to
1911 "Optimizing Sorting with Machine Learning Algorithms".
1913 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
1915 * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
1917 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
1919 * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
1922 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
1924 * doc/html/ext/lwg-active.html: Remove.
1925 * doc/html/ext/lwg-closed.html: Ditto.
1926 * doc/html/ext/lwg-defects.html: Ditto.
1928 * doc/Makefile.am (xml_extradir): Remove.
1930 (stamp-html-docbook-lwg): Remove recipe...
1931 (stamp-html-docbook-data): ...and its use here.
1932 * doc/Makefile.in: Regenerate.
1934 * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
1935 the relationship to the upstream working group.
1936 Replace a local link to ../ext/lwg-active.html by the upstream one.
1937 Replace all reference to ../ext/lwg-defects.html by a new entity
1938 &DR; which refers to the upstream address.
1940 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
1942 * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
1944 2017-02-06 Jonathan Wakely <jwakely@redhat.com>
1947 * testsuite/20_util/duration/literals/range.cc: Prune extra output
1950 2017-02-06 Gerald Pfeifer <gerald@pfeifer.com>
1952 * doc/xml/manual/documentation_hacking.xml: Update URL of the
1953 DocBook Element Reference. Use that term as link description
1954 instead of "online".
1955 epubcheck has moved to GitHub.
1956 Remove obsolete link to DocBook Publishing Tools.
1958 2017-02-03 Jonathan Wakely <jwakely@redhat.com>
1961 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
1962 so new ios::failure can be caught even when old ABI is the default.
1963 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
1964 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
1965 exceptions_failbit.cc: Likewise.
1966 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
1967 exceptions_failbit.cc: Likewise.
1968 * testsuite/27_io/basic_istream/extractors_other/char/
1969 exceptions_null.cc: Likewise.
1970 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
1971 exceptions_null.cc: Likewise.
1972 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
1973 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
1974 * testsuite/27_io/basic_ostream/inserters_other/char/
1975 exceptions_null.cc: Likewise.
1976 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
1977 exceptions_null.cc: Likewise.
1978 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
1981 * src/c++11/Makefile.am: Add new files.
1982 * src/c++11/Makefile.in: Regenerate.
1983 * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
1984 (operator<<, operator>>, getline): Move explicit instantiations to ...
1985 * src/c++11/cow-string-io-inst.cc: ... new file.
1986 * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
1987 (operator<<, operator>>, getline): Move explicit instantiations to ...
1988 * src/c++11/cow-wstring-io-inst.cc: ... new file.
1989 * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
1990 (__throw_future_error, __throw_bad_function_call):
1991 (__throw_regex_error): Move functions for C++11 exceptions to the
1992 files that define the exception types.
1993 * src/c++11/functional.cc (__throw_bad_function_call): Move here.
1994 * src/c++11/future.cc (__throw_future_error): Likewise.
1995 * src/c++11/ios.cc (__throw_ios_failure): Likewise.
1996 * src/c++11/regex.cc (__throw_regex_error): Likewise.
1997 * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
1998 representation directly instead of calling __int_to_char.
1999 * src/c++11/sso_string.cc (__sso_string): New file for definition
2000 of __sso_string type.
2001 * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
2002 explicit instantiations of narrow string I/O functions.
2003 * src/c++11/system_error.cc (__throw_system_error): Move here.
2004 (__sso_string): Move to new file.
2005 * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
2006 explicit instantiations of wide string I/O functions.
2007 * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
2008 (operator>>, getline): Remove explicit instantiations from here.
2010 2017-02-02 H.J. Lu <hongjiu.lu@intel.com>
2012 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
2014 2017-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2016 * configure.host: Separate Solaris/SPARC and x86 baselines.
2017 * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
2018 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
2019 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
2020 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
2022 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
2023 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
2024 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
2025 * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
2026 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
2027 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
2028 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
2030 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
2031 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
2032 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
2034 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
2035 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
2036 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
2037 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
2038 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
2039 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
2041 2017-02-01 Jonathan Wakely <jwakely@redhat.com>
2044 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
2046 (_Iter_comp_to_iter): Likewise.
2047 * testsuite/25_algorithms/search/78346.cc: New test.
2050 * config/abi/pre/gnu.ver: Remove recently added symbols.
2051 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2052 (basic_string::_M_copy_assign): Remove.
2053 (basic_string::operator=(const basic_string&)): Don't dispatch to
2054 _M_copy_assign. If source object is small just deallocate, otherwise
2055 perform new allocation before making any changes.
2056 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
2057 (basic_string::_M_copy_assign(const basic_string&, true_type)):
2059 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2060 Test cases where the allocators are equal or the string is small.
2061 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2064 2017-01-30 Ville Voutilainen <ville.voutilainen@gmail.com>
2066 Implement LWG 2825, LWG 2756 breaks class template argument
2067 deduction for optional.
2068 * include/std/optional: Add a deduction guide.
2069 * testsuite/20_util/optional/cons/deduction_guide.cc: New.
2071 2017-01-27 Jonathan Wakely <jwakely@redhat.com>
2074 * config/abi/pre/gnu.ver: Add new symbols.
2075 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2076 (basic_string::_M_copy_assign): New overloaded functions to perform
2078 (basic_string::operator=(const basic_string&)): Dispatch to
2080 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
2081 (basic_string::_M_copy_assign(const basic_string&, true_type)):
2082 Define, performing rollback on exception.
2083 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2084 Test exception-safety guarantee.
2085 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2087 * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
2090 2017-01-26 Jonathan Wakely <jwakely@redhat.com>
2093 * include/tr1/complex (conj): Remove using-declaration and restore
2094 overloads, reverting previous change.
2096 * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
2098 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
2099 Mark as unsupported in C++98 mode.
2100 * testsuite/23_containers/queue/requirements/constructible.cc:
2102 * testsuite/23_containers/stack/requirements/constructible.cc:
2104 * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
2107 * include/bits/c++config (literals::string_view_literals::__7): Add.
2108 Only declare versioned namespaces for the relevant C++ dialects.
2109 * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
2110 Add versioning macros.
2111 * include/experimental/bits/lfts_config.h:
2112 (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
2113 * include/experimental/string_view (fundamentals_v2::__detail):
2114 Add versioning macros.
2115 (fundamentals_v2::__detail::__identity): Remove.
2116 (fundamentals_v2::__detail::__idt): Use common_type instead of
2117 __detail::__identity.
2118 * include/std/string_view (__detail::__identity, __detail::__idt):
2120 (literals::string_view_literals): Fix nesting of versioning macros.
2123 * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
2124 [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
2125 && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
2126 Retrieve original pointer value allocated by malloc.
2127 * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
2128 && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
2129 && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
2130 Define, adjusting pointer value allocated by malloc and storing for
2131 retrieval by operator delete.
2133 2017-01-26 Jakub Jelinek <jakub@redhat.com>
2135 * libsupc++/eh_atomics.h: Update copyright years.
2136 * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
2138 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
2142 * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
2143 (proj(T), conj(T)): Change return types per DR 1522.
2144 * include/tr1/complex (conj): Remove overloads and use std::conj.
2145 * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
2146 * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
2147 * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
2148 real(T) and imag(T). Allow testing for C++11 too.
2150 2017-01-24 Jonathan Wakely <jwakely@redhat.com>
2153 * include/experimental/string_view (operator==): Check sizes first.
2154 * include/std/string_view (operator==): Likewise.
2156 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
2158 * testsuite/experimental/array/make_array.cc: Restore <functional>
2161 2017-01-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
2163 * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
2165 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
2168 * include/experimental/array (__make_array_elem): New class template
2169 and partial specialization.
2170 (__is_reference_wrapper): Move into __make_array_elem specialization.
2171 (make_array): Use __make_array_elem to determine element type and move
2172 static assertion into specialization. Qualify std::forward call.
2173 (to_array): Add exception specifiation.
2174 * testsuite/experimental/array/make_array.cc: Test argument types
2175 without a common type.
2176 * testsuite/experimental/array/neg.cc: Adjust expected error message.
2178 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
2180 * doc/xml/manual/debug.xml: code.google.com uses https now.
2182 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
2184 * doc/xml/manual/test.xml: Fix link into gccint online manual.
2186 2017-01-21 Ville Voutilainen <ville.voutilainen@gmail.com>
2188 Make poisoned hashes SFINAE away the call operator of the hash.
2189 * include/bits/functional_hash.h
2190 (__poison_hash::__enable_hash_call): New.
2191 * include/std/optional (__optional_hash_call_base): New.
2192 (hash<optional<_Tp>>): Derive from the new base,
2193 move the hash function into that base.
2194 * include/std/variant (__variant_hash_call_base_impl): New.
2195 (__variant_hash_call_base): Likewise.
2196 (hash<variant<_Types...>>): Derive from the new base,
2197 move the hash function into that base.
2198 * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
2199 * testsuite/20_util/variant/hash.cc: Likewise.
2201 2017-01-20 Joe Seymour <joe.s@somniumtech.com>
2203 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
2204 * configure: Regenerate.
2206 2017-01-20 Jonathan Wakely <jwakely@redhat.com>
2209 * include/bits/random.h (uniform_real_distribution::param_type)
2210 (normal_distribution::param_type, lognormal_distribution::param_type)
2211 (gamma_distribution::param_type, chi_squared_distribution::param_type)
2212 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
2213 (student_t_distribution::param_type)
2214 (bernoulli_distribution::param_type, binomial_distribution::param_type)
2215 (geometric_distribution::param_type)
2216 (negative_binomial_distribution::param_type)
2217 (poisson_distribution::param_type)
2218 (exponential_distribution::param_type)
2219 (weibull_distribution::param_type)
2220 (extreme_value_distribution::param_type)
2221 (discrete_distribution::param_type)
2222 (piecewise_constant_distribution::param_type)
2223 (piecewise_linear_distribution::param_type): Define operator!=.
2224 * include/bits/uniform_int_dist.h
2225 (uniform_int_distribution::param_type): Likewise.
2226 * include/ext/random (beta_distribution::param_type)
2227 (rice_distribution::param_type, nakagami_distribution::param_type)
2228 (pareto_distribution::param_type, k_distribution::param_type)
2229 (arcsine_distribution::param_type, hoyt_distribution::param_type)
2230 (triangular_distribution::param_type)
2231 (von_mises_distribution::param_type)
2232 (hypergeometric_distribution::param_type)
2233 (logistic_distribution::param_type)
2234 (uniform_on_sphere_distribution::param_type)
2235 (uniform_inside_sphere_distribution::param_type): Likewise.
2236 * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
2237 Test construction with param_type.
2238 * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
2240 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
2242 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
2244 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
2246 * testsuite/26_numerics/random/extreme_value_distribution/cons/
2248 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
2250 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
2252 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
2254 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
2256 * testsuite/26_numerics/random/negative_binomial_distribution/cons/
2258 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
2260 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
2262 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
2264 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
2266 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
2268 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
2270 * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
2271 * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
2272 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
2273 * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
2275 * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
2276 * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
2277 * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
2278 * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
2279 * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
2280 * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
2281 * testsuite/ext/random/triangular_distribution/cons/parms.cc:
2283 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
2285 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
2288 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
2289 (__allocator_traits_base::__size_type): Remove.
2290 (allocator_traits::_Ptr): New class template to detect const and void
2291 pointer types without instantiating pointer_traits::rebind
2293 (allocator_traits::_Diff): Likewise for detecting difference_type.
2294 (allocator_traits::_Size): New class template to detect size_type
2295 without instantiating make_unsigned unnecessarily.
2296 * include/bits/ptr_traits.h (pointer_traits::element_type): Use
2297 __detected_or_t instead of __detected_or_t_.
2298 * include/std/type_traits (__detected_or_t_): Remove.
2299 * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
2303 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
2304 Replace with class template using void_t.
2305 (__alloc_rebind): Define in terms of
2306 __allocator_traits_base::__rebind.
2307 (allocator_traits): Remove unconditional static_assert for
2309 * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
2310 (pointer_traits::__rebind): Replace with class template using void_t.
2311 (pointer_traits::rebind): Define in terms of __rebind.
2312 (pointer_traits): Remove unconditional static_assert for rebind.
2313 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
2314 * testsuite/20_util/pointer_traits/rebind.cc: New test.
2317 * include/experimental/any (__any_caster): Avoid instantiating
2318 manager function for types that can't be stored in any.
2319 * include/std/any (__any_caster): Likewise.
2320 * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
2321 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
2324 * include/bits/stl_algo.h (is_partitioned): Use increment instead of
2327 2017-01-19 Jonathan Wakely <jwakely@redhat.com>
2330 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
2332 (__enable_shared_from_this): Declare __shared_ptr as a friend.
2333 * testsuite/ext/shared_ptr/1.cc: New test.
2336 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
2338 * testsuite/25_algorithms/is_partitioned/2.cc: New test.
2340 * doc/xml/manual/abi.xml: Fix typo.
2341 * doc/html/manual/abi.html: Likewise.
2344 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
2345 converting constructors from _Iter_less_iter.
2346 (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
2348 (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
2349 (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
2350 * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
2351 (__make_heap, __sort_heap): Change _Compare parameters to references.
2352 (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
2353 (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
2354 functions as lvalues.
2355 (is_heap): Call __is_heap_until directly to avoid copying __comp.
2356 * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
2357 count copies during construction with empty sequence.
2360 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
2361 (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
2362 * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
2364 * testsuite/25_algorithms/make_heap/movable.cc: New test.
2367 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
2368 (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
2369 _GLIBCXX_MOVE when passing comparison function to other functions.
2370 (is_heap_until, is_heap): Use std::move when passing comparison
2372 * testsuite/23_containers/priority_queue/67085.cc: New test.
2375 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
2376 macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
2377 Document that the deprecated _GLIBCXX_VERSION macro was removed for
2379 * doc/html/*: Regenerate.
2380 * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
2381 * include/Makefile.in: Regenerate.
2382 * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
2383 * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
2386 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
2389 * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
2390 aligned buffer instead of default-initialized variable.
2391 * testsuite/29_atomics/atomic/69301.cc: New test.
2392 * include/experimental/memory (observer_ptr::release): Use reserved
2394 * include/ext/pointer.h (_Pointer_adapter::operator++(int))
2395 (_Pointer_adapter::operator--(int)): Likewise.
2398 * include/experimental/random (randint): Use temporary instead of
2399 thread_local static.
2401 2017-01-17 Joshua Conner <joshconner@google.com>
2403 * crossconfig.m4: Add fuchsia OS.
2404 * configure: Regenerate.
2406 2017-01-17 Jonathan Wakely <jwakely@redhat.com>
2409 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
2410 __GLIBCXX__ macro is not useful. Remove redundant date information
2411 and link to the GCC release timeline.
2412 (abi.versioning.active): Move partial sentence into the previous
2414 * doc/html/*: Regenerate.
2417 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
2418 of remove_reference.
2419 * testsuite/18_support/nested_exception/79114.cc: New test.
2421 2017-01-17 Jakub Jelinek <jakub@redhat.com>
2424 * configure.ac: Add GCC_BASE_VER.
2425 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
2426 get version from BASE-VER file.
2427 * po/Makefile.in: Regenerated.
2428 * libsupc++/Makefile.in: Regenerated.
2429 * testsuite/Makefile.in: Regenerated.
2430 * src/Makefile.in: Regenerated.
2431 * configure: Regenerated.
2432 * Makefile.in: Regenerated.
2433 * include/Makefile.in: Regenerated.
2434 * doc/Makefile.in: Regenerated.
2435 * python/Makefile.in: Regenerated.
2436 * src/c++11/Makefile.in: Regenerated.
2437 * src/c++98/Makefile.in: Regenerated.
2438 * src/filesystem/Makefile.in: Regenerated.
2440 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
2443 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
2445 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
2446 for test, so new ios::failure can be caught.
2447 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2448 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
2449 exceptions_failbit.cc: Likewise.
2450 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2451 exceptions_failbit.cc: Likewise.
2452 * testsuite/27_io/basic_istream/extractors_other/char/
2453 exceptions_null.cc: Likewise.
2454 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
2455 exceptions_null.cc: Likewise.
2456 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2457 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2458 * testsuite/27_io/basic_ostream/inserters_other/char/
2459 exceptions_null.cc: Likewise.
2460 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2461 exceptions_null.cc: Likewise.
2462 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2465 * include/bits/locale_classes.h (locale::facet::__shim): Change from
2466 private to protected.
2467 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
2468 make locale::facet::__shim accessible.
2470 2017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
2473 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
2474 (merge(list&&, _StrictWeakOrdering)): Likewise.
2475 * testsuite/23_containers/list/operations/78389.cc: Add
2476 better test for the sizes.
2478 2017-01-14 Jonathan Wakely <jwakely@redhat.com>
2480 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
2481 Skip test when -D_GLIBCXX_PROFILE mode is included in options.
2482 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
2483 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
2485 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
2486 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
2487 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
2488 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
2489 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
2491 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
2493 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
2495 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
2497 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2499 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
2500 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
2501 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
2502 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
2503 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
2504 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
2505 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
2506 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
2507 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
2508 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
2509 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
2510 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2511 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
2513 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
2516 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
2517 retry fclose on EINTR.
2519 * include/profile/base.h: Remove unused header that leads to header
2520 cycle in C++17 mode.
2523 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
2524 Make _If_sv private.
2525 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
2526 basic_string_view arguments.
2529 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
2530 redundant option from cxxflags.
2531 (check_effective_target_cxx11-abi): Define.
2532 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
2534 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
2535 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2537 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
2539 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
2540 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
2542 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
2544 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
2545 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
2547 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2549 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
2551 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
2553 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
2555 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
2557 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
2559 * testsuite/23_containers/list/61347.cc: Likewise.
2560 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
2561 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
2563 2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2566 * include/bits/list.tcc (merge(list&&)):
2567 Adjust list sizes if the comparator throws.
2568 (merge(list&&, _StrictWeakOrdering)): Likewise.
2569 (sort()): Splice elements back from the scratch buffers
2570 if the comparator throws.
2571 (sort(_StrictWeakOrdering)): Likewise.
2572 * testsuite/23_containers/list/operations/78389.cc: New.
2574 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
2576 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
2577 XFAIL for C++17 until node reinsertion supports fancy pointers.
2580 * testsuite/20_util/add_pointer/value.cc: Test forming function
2583 2017-01-13 Michael Brune <lucdanton@free.fr>
2586 * include/std/type_traits (__is_referenceable): Handle noexcept
2589 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
2592 * include/bits/stl_queue.h (queue, priority_queue): Remove default
2593 member-initializers and define default constructors as templates with
2595 * include/bits/stl_stack.h (stack): Likewise.
2596 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
2598 * testsuite/23_containers/priority_queue/requirements/
2599 explicit_instantiation/1.cc: Test more instantiations.
2600 * testsuite/23_containers/priority_queue/requirements/
2601 explicit_instantiation/1_c++98.cc: Likewise.
2602 * testsuite/23_containers/queue/requirements/constructible.cc: New.
2603 * testsuite/23_containers/stack/requirements/constructible.cc: New.
2606 * doc/xml/manual/intro.xml: Document LWG 2781 change.
2607 * doc/html/*: Regenerate.
2608 * include/std/functional (_Function_base::_Ref_manager): Remove.
2609 (_Function_handler): Remove partial specializations for
2611 (function::target): Remove special case for const qualification.
2612 * testsuite/20_util/function/6.cc: Adjust tests for target type.
2613 * testsuite/20_util/function/7.cc: Likewise.
2614 * testsuite/20_util/function/8.cc: Likewise.
2616 2017-01-11 Jonathan Wakely <jwakely@redhat.com>
2619 * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
2620 (map::equal_range): Fix return type of heterogeneous overloads.
2621 * include/bits/stl_multimap.h (multimap::lower_bound)
2622 (multimap::upper_bound, multimap::equal_range): Likewise.
2623 * include/bits/stl_multiset.h (multiset::lower_bound)
2624 (multiset::upper_bound, multiset::equal_range): Likewise.
2625 * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
2626 (set::equal_range): Likewise.
2627 * testsuite/23_containers/map/operations/2.cc
2628 * testsuite/23_containers/multimap/operations/2.cc
2629 * testsuite/23_containers/multiset/operations/2.cc
2630 * testsuite/23_containers/set/operations/2.cc
2633 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
2634 the heterogeneous comparison can only find one match.
2635 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
2636 * testsuite/23_containers/map/operations/2.cc: Test count works with
2637 comparison function that just partitions rather than sorting.
2638 * testsuite/23_containers/set/operations/2.cc: Likewise.
2640 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
2642 Reduce the size of variant, it doesn't need an index of
2643 type size_t internally.
2644 * include/std/variant (parse_numbers.h): New include.
2645 (__select_index): New.
2646 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
2647 _index_type for comparison with variant_npos.
2648 (_Variant_storage<false, _Types...>::__index_type): New.
2649 (_Variant_storage<false, _Types...>::_M_index): Change the
2650 type from size_t to __index_type.
2651 (_Variant_storage<true, _Types...>::__index_type): New.
2652 (_Variant_storage<true, _Types...>::_M_index): Change the
2653 type from size_t to __index_type.
2654 (_Variant_base::_M_valid): Use _Storage::__index_type
2655 for comparison with variant_npos.
2656 (variant::index): Use _Base::_Storage::__index_type
2657 for comparison with variant_npos.
2658 * testsuite/20_util/variant/index_type.cc: New.
2660 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
2662 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
2663 effective target selector to prevent running in C++17 mode.
2666 * include/bits/stl_queue.h (queue::c): Add default member initializer.
2667 (queue::queue()): Add constructor and define as defaulted.
2668 (queue::queue(_Sequence&&)): Remove default argument.
2669 (priority_queue::c, priority_queue::comp): Add default member
2671 (priority_queue::priority_queue()): Add constructor and define as
2673 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
2674 Remove default argument for first parameter.
2675 * include/bits/stl_stack.h (stack::c): Add default member initializer.
2676 (stack::stack()): Add constructor and define as defaulted.
2677 (stack::stack(const _Sequence&)): Remove default argument.
2678 * testsuite/23_containers/priority_queue/requirements/
2679 explicit_instantiation/1.cc: Test explicit instantiation with
2680 non-DefaultConstructible sequence.
2681 * testsuite/23_containers/priority_queue/77528.cc: New test.
2682 * testsuite/23_containers/priority_queue/requirements/
2683 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
2684 * testsuite/23_containers/queue/77528.cc: New test.
2685 * testsuite/23_containers/queue/requirements/explicit_instantiation/
2686 1.cc: Test explicit instantiation with non-DefaultConstructible
2688 * testsuite/23_containers/queue/requirements/explicit_instantiation/
2689 1_c++0x.cc: Replace with 1_c++98.cc.
2690 * testsuite/23_containers/stack/77528.cc: New test.
2691 * testsuite/23_containers/stack/requirements/explicit_instantiation/
2692 1.cc: Test explicit instantiation with non-DefaultConstructible
2694 * testsuite/23_containers/stack/requirements/explicit_instantiation/
2695 1_c++0x.cc: Replace with 1_c++98.cc.
2697 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
2699 * include/bits/locale_facets_nonio.tcc
2700 (time_get::_M_extract_via_format): Avoid compilation errors with
2701 non-standard struct tm.
2703 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
2704 Jonathan Wakely <jwakely@redhat.com>
2706 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
2707 (is_specialization, strip_versioned_namespace): New helpers functions
2708 to work with symbols in the versioned namespace.
2709 (Printer.add_version): Add second name using versioned namespace.
2710 (add_one_template_type_printer, add_one_type_printer): Add second
2711 type printers using versioned namespace.
2712 (register_type_printers): Add template type printer for basic_string.
2713 (build_libstdcxx_dictionary): Remove dead code.
2714 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
2715 versioned namespace.
2716 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
2718 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
2720 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
2723 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
2724 functions separately on darwin and if they're missing define
2725 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
2726 * config.h.in: Regenerate.
2727 * configure: Regenerate.
2728 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
2729 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
2731 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
2732 to detect correct thread_local destructors.
2733 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
2736 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
2737 Aditya Kumar <hiraditya@msn.com>
2740 * include/bits/basic_string.tcc
2741 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
2743 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
2745 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
2746 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
2748 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
2749 Include <cassert> header.
2752 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
2753 * configure: Regenerate.
2755 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
2756 Jonathan Wakely <jwakely@redhat.com>
2758 * include/std/variant (variant, swap): Replace __and_ usage with fold
2761 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2764 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
2765 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
2766 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
2767 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
2769 * aclocal.m4: Regenerate.
2770 * configure: Regenerate.
2771 * Makefile.in, doc/Makefile.in, include/Makefile.in,
2772 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
2773 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
2774 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
2776 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
2778 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
2781 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
2782 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
2783 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
2784 move function objects.
2785 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
2786 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
2787 * testsuite/25_algorithms/sort/78991.cc: New test.
2789 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
2791 * include/bits/std_function.h (function::_Signature_type): Remove.
2792 (function::function(_Functor)): Adjust.
2794 2017-01-05 Tim Shen <timshen@google.com>
2797 * include/std/variant (__gen_vtable_impl): rename __unused to
2798 __dimensions to avoid naming conflict.
2800 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
2803 * config.h.in: Regenerate.
2804 * configure: Likewise.
2805 * configure.ac: Check for __cxa_thread_atexit.
2806 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
2807 Don't define __cxa_thread_atexit if libc provides it.
2809 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
2811 Implement 2801, Default-constructibility of unique_ptr.
2812 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
2813 (unique_ptr::_DeleterConstraint): Likewise.
2814 (unique_ptr()): Constrain.
2815 (unique_ptr(pointer)): Likewise.
2816 (unique_ptr(nullptr_t)): Likewise.
2817 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
2818 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
2819 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
2820 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
2821 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
2822 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
2823 * testsuite/20_util/unique_ptr/cons/default.cc: New.
2824 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
2826 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
2827 Jonathan Wakely <jwakely@redhat.com>
2830 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
2831 * config.h.in: Regenerate.
2832 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
2833 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
2834 exports for exception_ptr, nested_exception, and future conditional.
2835 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
2836 exports for exception_ptr, nested_exception, and future conditional.
2837 * configure: Regenerate.
2838 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
2839 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
2840 * libsupc++/eh_atomics.h: New file for internal use only.
2841 (__eh_atomic_inc, __eh_atomic_dec): New.
2842 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
2843 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
2844 (rethrow_exception): Use eh_atomics.h reference counting helpers.
2845 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
2846 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
2847 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
2848 * libsupc++/exception_ptr.h: Likewise.
2849 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
2850 * libsupc++/nested_exception.cc: Remove check for
2851 ATOMIC_INT_LOCK_FREE.
2852 * libsupc++/nested_exception.h: Likewise.
2853 * src/c++11/future.cc: Likewise.
2854 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
2855 * testsuite/18_support/nested_exception/*: Likewise.
2856 * testsuite/30_threads/async/*: Likewise.
2857 * testsuite/30_threads/future/*: Likewise.
2858 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
2859 * testsuite/30_threads/packaged_task/*: Likewise.
2860 * testsuite/30_threads/promise/*: Likewise.
2861 * testsuite/30_threads/shared_future/*: Likewise.
2863 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
2865 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
2866 defaults to https; adjust reference.
2868 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
2871 * include/std/thread (thread(const thread&&)): Add deleted
2873 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
2875 * doc/xml/manual/spine.xml: Update copyright years.
2876 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
2877 * doc/xml/manual/test.xml: Likewise.
2878 * doc/html/*: Regenerate.
2880 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
2882 * doc/xml/faq.xml: Update address of C++ ABI link.
2883 * doc/xml/manual/abi.xml: Ditto.
2885 2017-01-01 Jakub Jelinek <jakub@redhat.com>
2887 Update copyright years.
2889 Copyright (C) 2017 Free Software Foundation, Inc.
2891 Copying and distribution of this file, with or without modification,
2892 are permitted in any medium without royalty provided the copyright
2893 notice and this notice are preserved.