1 2017-08-21 Richard Biener <rguenther@suse.de>
3 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Run all
4 tests with -flto as well if supported.
6 2017-08-20 Martin Sebor <msebor@redhat.com>
9 * src/c++98/compatibility.cc (_GLIBCXX_3_4_SYMVER): Declare alias
10 target as a C++ function with no prototype.
11 (_GLIBCXX_3_4_5_SYMVER): Ditto.
13 2017-08-20 John David Anglin <danglin@gcc.gnu.org>
16 * testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__.
18 2017-08-18 Jonathan Wakely <jwakely@redhat.com>
20 * include/bits/hashtable_policy.h (_ReuseOrAllocNode): Remove
21 __value_alloc_type and __value_alloc_traits typedefs.
22 (_ReuseOrAllocNode::operator()): Call construct and destroy on the
24 (_Hashtable_alloc): Simplify __value_alloc_traits typedef.
25 (_Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&&...)): Call
26 construct on the node allocator.
27 (_Hashtable_alloc<_NodeAlloc>::_M_deallocate_node(__node_type*)): Call
28 destroy on the node allocator.
31 * include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
32 size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
33 const _ExtractKey&, const allocator_type&)): Let destructor do clean
34 up if an exception is thrown.
35 * testsuite/23_containers/unordered_map/cons/81891.cc: New.
37 2017-08-11 Jonathan Wakely <jwakely@redhat.com>
40 * testsuite/27_io/basic_fstream/53984.cc: Adjust test for targets
41 that allow opening a directory as a FILE and reading from it.
43 2017-08-09 Jonathan Wakely <jwakely@redhat.com>
45 * include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP):
46 Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use
47 __is_identifier to set it.
49 2017-08-09 Katsuhiko Nishimra <ktns.87@gmail.com>
51 * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
52 __is_identifier instead of __has_builtin.
54 2017-08-09 Jonathan Wakely <jwakely@redhat.com>
58 * config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)):
59 Call fflush on the stream instead of calling sync() while _M_cfile is
60 null. Restore original value of errno.
61 * testsuite/ext/stdio_filebuf/char/79820.cc: New.
62 * testsuite/ext/stdio_filebuf/char/81751.cc: New.
64 2017-07-31 Marek Polacek <polacek@redhat.com>
67 * include/bits/stl_stack.h: Fix typo.
69 2017-07-26 Jonathan Wakely <jwakely@redhat.com>
71 * testsuite/27_io/basic_fstream/53984.cc: Fix test.
73 2017-07-26 Paolo Carlini <paolo.carlini@oracle.com>
75 * testsuite/27_io/basic_fstream/53984.cc: Fix typo in dg-require
78 2017-07-25 Jonathan Wakely <jwakely@redhat.com>
81 * include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment.
82 * include/bits/istream.tcc (basic_istream::sentry): Handle exceptions
84 * include/std/istream: Adjust comments for formatted input functions
85 and unformatted input functions.
86 * testsuite/27_io/basic_fstream/53984.cc: New.
87 * testsuite/27_io/basic_istream/sentry/char/53984.cc: New.
89 * include/bits/ios_base.h (ios_base::io_state, ios_base::open_mode)
90 (ios_base::seek_dir): Remove for C++17.
91 * include/std/streambuf (basic_streambuf::stossc): Remove for C++17.
92 Add deprecated attribute for C++11 and C++14.
93 * testsuite/27_io/types/1.cc: Don't run for C++17 and later.
94 * testsuite/27_io/types/4.cc: New.
96 2017-07-23 Michael Collison <michael.collison@arm.com>
98 Add optimized implementation of mersenne twister for aarch64
99 * config/cpu/aarch64/opt/ext/opt_random.h: New file.
100 (__arch64_recursion): New function.
101 (__aarch64_lsr_128): New function.
102 (__aarch64_lsl_128): New function.
103 (operator==): New function.
104 (simd_fast_mersenne_twister_engine): Implement
106 * config/cpu/aarch64/opt/bits/opt_random.h: New file.
107 * include/ext/random: (simd_fast_mersenne_twister_engine):
108 add _M_state private array.
110 2017-07-23 François Dumont <fdumont@gcc.gnu.org>
113 * include/bits/algorithmfwd.h: Reorganize versioned namespace.
114 * include/bits/basic_string.h: Likewise.
115 * include/bits/c++config: Likewise.
116 * include/bits/deque.tcc: Likewise.
117 * include/bits/forward_list.h: Likewise.
118 * include/bits/forward_list.tcc: Likewise.
119 * include/bits/hashtable_policy.h: Likewise.
120 * include/bits/list.tcc: Likewise.
121 * include/bits/move.h: Likewise.
122 * include/bits/quoted_string.h: Likewise.
123 * include/bits/random.h: Likewise.
124 * include/bits/random.tcc: Likewise.
125 * include/bits/regex.h: Likewise.
126 * include/bits/regex.tcc: Likewise.
127 * include/bits/regex_automaton.h: Likewise.
128 * include/bits/regex_automaton.tcc: Likewise.
129 * include/bits/regex_compiler.h: Likewise.
130 * include/bits/regex_compiler.tcc: Likewise.
131 * include/bits/regex_constants.h: Likewise.
132 * include/bits/regex_error.h: Likewise.
133 * include/bits/regex_executor.h: Likewise.
134 * include/bits/regex_executor.tcc: Likewise.
135 * include/bits/regex_scanner.h: Likewise.
136 * include/bits/regex_scanner.tcc: Likewise.
137 * include/bits/specfun.h: Likewise.
138 * include/bits/stl_algo.h: Likewise.
139 * include/bits/stl_algobase.h: Likewise.
140 * include/bits/stl_bvector.h: Likewise.
141 * include/bits/stl_deque.h: Likewise.
142 * include/bits/stl_iterator.h: Likewise.
143 * include/bits/stl_iterator_base_funcs.h: Likewise.
144 * include/bits/stl_list.h: Likewise.
145 * include/bits/stl_map.h: Likewise.
146 * include/bits/stl_multimap.h: Likewise.
147 * include/bits/stl_multiset.h: Likewise.
148 * include/bits/stl_relops.h: Likewise.
149 * include/bits/stl_set.h: Likewise.
150 * include/bits/stl_vector.h: Likewise.
151 * include/bits/uniform_int_dist.h: Likewise.
152 * include/bits/unordered_map.h: Likewise.
153 * include/bits/unordered_set.h: Likewise.
154 * include/bits/vector.tcc: Likewise.
155 * include/c_global/cmath: Likewise.
156 * include/c_std/cmath: Likewise.
157 * include/decimal/decimal: Likewise.
158 * include/decimal/decimal.h: Likewise.
159 * include/experimental/algorithm: Likewise.
160 * include/experimental/any: Likewise.
161 * include/experimental/array: Likewise.
162 * include/experimental/bits/erase_if.h: Likewise.
163 * include/experimental/bits/fs_dir.h: Likewise.
164 * include/experimental/bits/fs_fwd.h: Likewise.
165 * include/experimental/bits/fs_ops.h: Likewise.
166 * include/experimental/bits/fs_path.h: Likewise.
167 * include/experimental/bits/lfts_config.h: Likewise.
168 * include/experimental/bits/shared_ptr.h: Likewise.
169 * include/experimental/bits/string_view.tcc: Likewise.
170 * include/experimental/chrono: Likewise.
171 * include/experimental/deque: Likewise.
172 * include/experimental/filesystem: Likewise.
173 * include/experimental/forward_list: Likewise.
174 * include/experimental/functional: Likewise.
175 * include/experimental/iterator: Likewise.
176 * include/experimental/list: Likewise.
177 * include/experimental/map: Likewise.
178 * include/experimental/memory: Likewise.
179 * include/experimental/memory_resource: Likewise.
180 * include/experimental/numeric: Likewise.
181 * include/experimental/optional: Likewise.
182 * include/experimental/propagate_const: Likewise.
183 * include/experimental/random: Likewise.
184 * include/experimental/ratio: Likewise.
185 * include/experimental/regex: Likewise.
186 * include/experimental/set: Likewise.
187 * include/experimental/source_location: Likewise.
188 * include/experimental/string: Likewise.
189 * include/experimental/string_view: Likewise.
190 * include/experimental/system_error: Likewise.
191 * include/experimental/tuple: Likewise.
192 * include/experimental/type_traits: Likewise.
193 * include/experimental/unordered_map: Likewise.
194 * include/experimental/unordered_set: Likewise.
195 * include/experimental/utility: Likewise.
196 * include/experimental/vector: Likewise.
197 * include/ext/bitmap_allocator.h: Likewise.
198 * include/ext/codecvt_specializations.h: Likewise.
199 * include/ext/rope: Likewise.
200 * include/ext/typelist.h: Likewise.
201 * include/std/chrono: Likewise.
202 * include/std/complex: Likewise.
203 * include/std/functional: Likewise.
204 * include/std/numeric: Likewise.
205 * include/std/string_view: Likewise.
206 * include/std/thread: Likewise.
207 * include/std/variant: Likewise.
208 * include/tr1/array: Likewise.
209 * include/tr1/bessel_function.tcc: Likewise.
210 * include/tr1/beta_function.tcc: Likewise.
211 * include/tr1/cmath: Likewise.
212 * include/tr1/complex: Likewise.
213 * include/tr1/ell_integral.tcc: Likewise.
214 * include/tr1/exp_integral.tcc: Likewise.
215 * include/tr1/functional: Likewise.
216 * include/tr1/functional_hash.h: Likewise.
217 * include/tr1/gamma.tcc: Likewise.
218 * include/tr1/hashtable.h: Likewise.
219 * include/tr1/hashtable_policy.h: Likewise.
220 * include/tr1/hypergeometric.tcc: Likewise.
221 * include/tr1/legendre_function.tcc: Likewise.
222 * include/tr1/modified_bessel_func.tcc: Likewise.
223 * include/tr1/poly_hermite.tcc: Likewise.
224 * include/tr1/poly_laguerre.tcc: Likewise.
225 * include/tr1/random.h: Likewise.
226 * include/tr1/random.tcc: Likewise.
227 * include/tr1/regex: Likewise.
228 * include/tr1/riemann_zeta.tcc: Likewise.
229 * include/tr1/shared_ptr.h: Likewise.
230 * include/tr1/special_function_util.h: Likewise.
231 * include/tr1/tuple: Likewise.
232 * include/tr1/type_traits: Likewise.
233 * include/tr1/unordered_map.h: Likewise.
234 * include/tr1/unordered_set.h: Likewise.
235 * include/tr1/utility: Likewise.
236 * include/tr2/bool_set: Likewise.
237 * include/tr2/bool_set.tcc: Likewise.
238 * include/tr2/dynamic_bitset: Likewise.
239 * include/tr2/dynamic_bitset.tcc: Likewise.
240 * include/tr2/ratio: Likewise.
241 * include/tr2/type_traits: Likewise.
242 * src/c++11/chrono.cc: Likewise.
243 * src/c++11/compatibility-c++0x.cc: Likewise.
244 * src/c++11/compatibility-chrono.cc: Likewise.
245 * src/c++11/cxx11-shim_facets.cc: Likewise.
246 * src/c++11/hashtable_c++0x.cc: Likewise.
247 * src/c++11/placeholders.cc: Likewise.
248 * src/c++11/thread.cc: Likewise.
249 * src/c++98/bitmap_allocator.cc: Likewise.
250 * src/c++98/hashtable_tr1.cc: Likewise.
251 * src/c++98/list.cc: Likewise.
252 * src/shared/hashtable-aux.cc: Likewise.
253 * testsuite/20_util/duration/literals/range.cc: Adapt line number.
254 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
255 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
256 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
257 * testsuite/20_util/forward/c_neg.cc: Likewise.
258 * testsuite/20_util/forward/f_neg.cc: Likewise.
259 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
260 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
261 * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
262 * python/libstdcxx/v6/printers.py: Adapt.
264 2017-07-20 Jonathan Wakely <jwakely@redhat.com>
266 * config/allocator/malloc_allocator_base.h [__SANITIZE_ADDRESS__]
267 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
268 * config/allocator/new_allocator_base.h [__SANITIZE_ADDRESS__]
269 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
270 * doc/xml/manual/using.xml (_GLIBCXX_SANITIZE_VECTOR): Document macro.
271 * include/bits/stl_vector.h [_GLIBCXX_SANITIZE_VECTOR]
272 (_Vector_impl::_Asan, _Vector_impl::_Asan::_Reinit)
273 (_Vector_impl::_Asan::_Grow, _GLIBCXX_ASAN_ANNOTATE_REINIT)
274 (_GLIBCXX_ASAN_ANNOTATE_GROW, _GLIBCXX_ASAN_ANNOTATE_GREW)
275 (_GLIBCXX_ASAN_ANNOTATE_SHRINK, _GLIBCXX_ASAN_ANNOTATE_BEFORE_DEALLOC):
276 Define annotation helper types and macros.
277 (vector::~vector, vector::push_back, vector::pop_back)
278 (vector::_M_erase_at_end): Add annotations.
279 * include/bits/vector.tcc (vector::reserve, vector::emplace_back)
280 (vector::insert, vector::_M_erase, vector::operator=)
281 (vector::_M_fill_assign, vector::_M_assign_aux)
282 (vector::_M_insert_rval, vector::_M_emplace_aux)
283 (vector::_M_insert_aux, vector::_M_realloc_insert)
284 (vector::_M_fill_insert, vector::_M_default_append)
285 (vector::_M_shrink_to_fit, vector::_M_range_insert): Annotate.
287 2017-07-19 Jonathan Wakely <jwakely@redhat.com>
290 * include/bits/vector.tcc (vector::_M_range_insert<_InputIterator>):
291 Only insert elements one-by-one when inserting at the end.
292 * testsuite/performance/23_containers/insert/81476.cc: New.
294 2017-07-19 Volker Reichelt <v.reichelt@netcologne.de>
296 * libsupc++/new (bad_array_new_length): Remove redundant
297 semicolon after in-class member function definition.
298 * include/bits/locale_facets.h (ctype_byname, num_put): Likewise.
299 * include/bits/locale_facets_nonio.h (time_put_byname): Likewise.
300 * include/bits/random.h (mersenne_twister_engine): Likewise.
301 * include/tr1/random.h (mersenne_twister): Likewise
302 * include/ext/random (simd_fast_mersenne_twister_engine): Likewise.
303 * include/ext/rope (char_producer, _Rope_char_consumer,
304 _Rope_self_destruct_ptr, _Rope_const_iterator, _Rope_iterator):
306 * include/ext/ropeimpl.h (_Rope_flatten_char_consumer,
307 _Rope_insert_char_consumer): Likewise.
309 2017-07-19 Jonathan Wakely <jwakely@redhat.com>
311 * include/bits/fstream.tcc (basic_filebuf::xsgetn)
312 (basic_filebuf::xsputn, basic_filebuf::seekoff): Fix indentation.
314 * testsuite/util/testsuite_iterators.h: Fix indentation.
316 * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: Add dg-require.
318 2017-07-18 Jonathan Wakely <jwakely@redhat.com>
321 * include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer
322 pointers for write mode after reading.
323 * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New.
325 2017-07-18 François Dumont <fdumont@gcc.gnu.org>
327 * include/bits/stl_list.h
328 (struct _List_node_header): New.
329 (_List_impl()): Fix noexcept qualification.
330 (_List_impl(_List_impl&&)): New, default.
331 (_List_base()): Default.
332 (_List_base(_List_base&&)): Default.
333 (_List_base::_M_move_nodes): Adapt to use
334 _List_node_header._M_move_nodes.
335 (_List_base::_M_init): Likewise.
337 (list<>(list&&)): Default.
338 (list<>::_M_move_assign(list&&, true_type)): Use _M_move_nodes.
339 (__distance(_List_const_iterator<>, _List_const_iterator<>,
340 input_iterator_tag)): Adapt.
341 * testsuite/23_containers/list/allocator/default_init.cc: New.
343 2017-07-15 Jonathan Wakely <jwakely@redhat.com>
345 * include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter
347 * testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments.
348 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction
349 with std::adopt_lock_t.
350 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check
353 2017-07-14 Jason Merrill <jason@redhat.com>
354 Jonathan Wakely <jwakely@redhat.com>
356 * include/std/variant (variant::variant(_Tp&&)): Constrain to remove
357 the constructor for empty variants from the candidate functions
358 during class template argument deduction.
359 * testsuite/20_util/variant/deduction.cc: New.
361 2017-07-11 Jonathan Wakely <jwakely@redhat.com>
363 * doc/xml/faq.xml: Update several old entries. Improve
365 * doc/xml/manual/intro.xml: Add anchors to each DR.
366 * doc/html/*: Regenerate.
368 2017-07-10 Jonathan Wakely <jwakely@redhat.com>
370 * testsuite/abi/pr42230.cc: Add header for std::free.
373 * include/bits/sstream.tcc (basic_stringbuf::overflow)
374 (basic_stringbuf::basic_stringbuf(const __string_type&, ios::mode))
375 (basic_stringbuf::str()): Construct new strings with an allocator.
376 * testsuite/27_io/basic_stringbuf/cons/81381.cc: New.
379 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
380 Declare basic_stringbuf to be a friend.
381 * include/bits/sstream.tcc (basic_stringbuf::overflow)
382 [_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
383 * include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
384 length to buffer length.
385 * testsuite/27_io/basic_stringstream/assign/81338.cc: New.
387 2017-07-06 Jonathan Wakely <jwakely@redhat.com>
389 * testsuite/20_util/specialized_algorithms/memory_management_tools/
391 * testsuite/22_locale/locale/cons/5.cc: Remove redundant restoration
392 of original environment and free memory.
394 * testsuite/abi/pr42230.cc: Free memory.
395 * testsuite/util/testsuite_abi.cc (demangle): Return std::string
396 instead of pointer that might need freeing.
397 * testsuite/util/testsuite_abi.h (demangle): Likewise.
398 * testsuite/util/testsuite_hooks.cc (verify_demangle): Free memory.
400 * include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add
401 deleted overload to prevent dangling references to rvalues.
402 * include/experimental/memory_resource
403 (polymorphic_allocator::construct): Do not call __use_alloc with
406 2017-06-27 Tim Shen <timshen@google.com>
409 * include/std/variant (variant::variant, variant::~variant,
410 variant::operator=): Implement triviality forwarding for four
411 special member functions.
412 * testsuite/20_util/variant/compile.cc: Tests.
414 2017-06-27 Jonathan Wakely <jwakely@redhat.com>
417 * testsuite/25_algorithms/sample/81221.cc: Disable except for
421 * include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not
423 * testsuite/25_algorithms/sample/81221.cc: New.
425 2017-06-22 Jonathan Wakely <jwakely@redhat.com>
428 * include/bits/stl_bvector.h (vector<bool>::_M_initialize_value):
429 Do not pass null pointer to memset.
431 2017-06-21 Ville Voutilainen <ville.voutilainen@gmail.com>
435 * include/std/istream:
436 (__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
437 (__do_is_convertible_to_basic_istream_impl): Likewise.
438 (__is_convertible_to_basic_istream_impl): Likewise.
439 (__is_convertible_to_basic_istream): Use the new base.
440 (__rvalue_istream_type): New.
441 (operator>>(_Istream&&, _Tp&&)): Use the new helper alias
442 for the SFINAE check, convert to the helper alias type before
443 doing the actual extraction.
444 * include/std/ostream:
445 (__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
446 (__do_is_convertible_to_basic_ostream_impl): Likewise.
447 (__is_convertible_to_basic_ostream_impl): Likewise.
448 (__is_convertible_to_basic_ostream): Use the new base.
449 (__rvalue_ostream_type): New.
450 (operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
451 for the SFINAE check, convert to the helper alias type before
452 doing the actual insertion.
453 * testsuite/27_io/rvalue_streams-2.cc: Add new tests.
455 2017-06-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
457 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
459 2017-06-21 Jonathan Wakely <jwakely@redhat.com>
462 * configure: Regenerate.
464 2017-06-20 Uros Bizjak <ubizjak@gmail.com>
466 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
468 2017-06-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
470 * testsuite/20_util/variant/index_type.cc: Allow for all ilp32 and
473 2017-06-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
475 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
476 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
477 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
478 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
479 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
480 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
482 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
483 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
486 2017-06-18 H.J. Lu <hongjiu.lu@intel.com>
489 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
491 2017-06-18 Andreas Schwab <schwab@linux-m68k.org>
494 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
496 2017-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
498 * testsuite: Remove dg-skip-if, dg-xfail-if, dg-xfail-run-if
501 2017-06-17 Jonathan Wakely <jwakely@redhat.com>
504 * testsuite/23_containers/vector/bool/80893.cc: Add { target c++11 }.
506 2017-06-16 Jonathan Wakely <jwakely@redhat.com>
508 * include/bits/shared_ptr.h (get_deleter): Add overload matching
510 * include/bits/shared_ptr_base.h (__shared_ptr): Declare new
511 get_deleter overload as a friend.
512 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: New.
514 2017-06-16 Jakub Jelinek <jakub@redhat.com>
517 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
518 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
519 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
521 2017-06-16 Jonathan Wakely <jwakely@redhat.com>
523 * include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
524 * testsuite/22_locale/conversions/buffer/2.cc: New.
527 * acinclude.m4: Bump libtool_VERSION.
528 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
529 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
530 * config/abi/pre/gnu.ver: Add wstring constructor symbols to
531 GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol
532 to new GLIBCXX_3.4.25 version.
533 * doc/xml/manual/abi.xml: Document new versions.
534 * doc/html/*: Regenerate.
535 * testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
536 constructors to ensure required symbols are exported.
537 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
538 * testsuite/util/testsuite_abi.cc: Add new version.
540 * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
542 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
544 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
546 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
547 missing return statements.
548 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
550 * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
552 * testsuite/special_functions/14_expint/pr68397.cc: Likewise.
554 2017-06-16 François Dumont <fdumont@gcc.gnu.org>
556 * include/bits/stl_bvector.h
557 (__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)):
559 (std::fill(_Bit_iterator, _Bit_iterator, bool)): Adapt.
560 (_Bvector_impl_data): New.
561 (_Bvector_impl): Inherits from latter.
562 (_Bvector_impl(_Bit_alloc_type&&)): Delete.
563 (_Bvector_impl(_Bvector_impl&&)): New, default.
564 (_Bvector_base()): Default.
565 (_Bvector_base(_Bvector_base&&)): Default.
566 (_Bvector_base::_M_move_data(_Bvector_base&&)): New.
567 (vector(vector&&, const allocator_type&)): Use latter.
568 (vector<bool>::operator=(vector&&)): Likewise.
569 (vector<bool>::vector()): Default.
570 (vector<bool>::vector(vector&&)): Default.
571 (vector<bool>::assign(_InputIterator, _InputIterator)): Use
573 (vector<bool>::assign(initializer_list<bool>)): Likewise.
574 (vector<bool>::_M_initialize_value(bool)): New.
575 (vector<bool>(size_type, const bool&, const allocator_type&)): Use
577 (vector<bool>::_M_initialize_dispatch(_Integer, _Integer, __true_type)):
579 (vector<bool>::_M_fill_assign(size_t, bool)): Likewise.
581 2017-06-15 François Dumont <fdumont@gcc.gnu.org>
583 * src/c++98/tree.cc [!_GLIBCXX_INLINE_VERSION]
584 (_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete.
586 2017-06-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
588 * testsuite: Add dg-require-effective-target pthread to -pthread
590 Remove explicit target lists from dg-do and dg-options.
592 * testsuite/30_threads/async/forced_unwind.cc: Remove explit
593 target list from dg-options.
594 * testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise.
596 * 30_threads/shared_mutex/cons/1.cc: Likewise.
597 Pass -pthread for all targets.
598 * 30_threads/shared_mutex/try_lock/1.cc: Likewise.
599 * 30_threads/shared_mutex/try_lock/2.cc: Likewise.
600 * 30_threads/shared_mutex/unlock/1.cc: Likewise.
602 * testsuite/30_threads/this_thread/57060.cc: Require c++11 via
603 dg-require-effective-target.
605 2017-06-14 Jonathan Wakely <jwakely@redhat.com>
607 * doc/xml/manual/test.xml: Correct instructions on running tests.
608 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to
609 pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
610 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
612 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise.
613 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
614 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
615 exceptions_failbit.cc: Likewise.
616 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
617 exceptions_failbit.cc: Likewise.
618 * testsuite/27_io/basic_istream/extractors_other/char/
619 exceptions_null.cc: Likewise.
620 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
621 exceptions_null.cc: Likewise.
622 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
623 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
624 * testsuite/27_io/basic_ostream/inserters_other/char/
625 exceptions_null.cc: Likewise.
626 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
627 exceptions_null.cc: Likewise.
628 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
630 2017-06-12 Pedro Alves <palves@redhat.com>
632 * doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
634 * doc/html/*: Regenerate.
636 * include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
638 (__cpp_lib_constexpr_char_traits): Uncomment.
639 (__constant_string_p, __constant_char_array_p): New.
640 (std::char_traits<char>, std::char_traits<wchar_t>): Add
641 _GLIBCXX17_CONSTEXPR on compare, length and find and use
642 __constant_string_p, __constant_char_array_p and
643 __builtin_constant_p to defer to __gnu_cxx::char_traits at compile
646 * testsuite/21_strings/char_traits/requirements/
647 constexpr_functions_c++17.cc: Uncomment
648 __cpp_lib_constexpr_char_traits tests. Uncomment
649 test_compare<char>, test_length<char>, test_find<char>,
650 test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
653 2017-06-12 François Dumont <fdumont@gcc.gnu.org>
655 * include/bits/stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator
657 * testsuite/util/testsuite_allocator.h
658 (__gnu_test::default_init_allocator<>) New.
659 * testsuite/23_containers/set/allocator/default_init.cc: New.
660 * testsuite/23_containers/map/allocator/default_init.cc: New.
662 2017-06-12 Jonathan Wakely <jwakely@redhat.com>
665 * src/c++11/thread.cc (execute_native_thread_routine): Remove
666 try-block so that exceptions propagate out of the thread and terminate
667 is called by the exception-handling runtime.
668 (execute_native_thread_routine_compat): Likewise.
669 * testsuite/30_threads/thread/cons/terminate.cc: New.
671 2017-06-09 Jonathan Wakely <jwakely@redhat.com>
673 * doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
674 * include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
676 * include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
677 (_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
678 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
680 * include/bits/forward_list.h (forward_list): Add deduction guide.
681 * include/bits/stl_deque.h (deque): Likewise.
682 * include/bits/stl_list.h (list): Likewise.
683 * include/bits/stl_vector.h (vector): Likewise.
684 * testsuite/23_containers/deque/cons/deduction.cc: New.
685 * testsuite/23_containers/forward_list/cons/deduction.cc: New.
686 * testsuite/23_containers/list/cons/deduction.cc: New.
687 * testsuite/23_containers/vector/cons/deduction.cc: New.
689 2017-06-08 Jonathan Wakely <jwakely@redhat.com>
692 * include/bits/std_function.h (function::function(function&&))
693 (function::operator=(funtion&&)): Add noexcept.
694 * testsuite/20_util/function/assign/move.cc: Check for noexcept.
695 * testsuite/20_util/function/cons/move.cc: Likewise.
697 2017-06-07 Jonathan Wakely <jwakely@redhat.com>
699 * include/bits/regex.h (basic_regex): Add deduction guide from P0433.
700 * testsuite/28_regex/basic_regex/ctors/deduction.cc: New.
703 * include/bits/regex.h (basic_regex): Adjust call to __compile_nfa
704 so iterator type is deduced.
705 * include/bits/regex_compiler.h (__compile_nfa): Reorder template
706 parameters to allow iterator type to be deduced.
707 * testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
709 * include/bits/alloc_traits.h (__is_allocator, _RequireAllocator):
710 New trait and alias for detecting Allocator-like types.
711 * include/bits/basic_string.h (basic_string): Add deduction guide
713 * include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): Add template
714 parameter with default template argument that causes substitution
715 failures for types that cannot be allocators.
716 * testsuite/21_strings/basic_string/cons/char/deduction.cc: New.
717 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: New.
719 2017-06-02 Jonathan Wakely <jwakely@redhat.com>
722 * include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
723 (__erased_hash): Remove constexpr specifier and qualify calls to
725 (__erased_dtor): Remove constexpr specifier and use _Destroy.
727 2017-06-05 Jonathan Wakely <jwakely@redhat.com>
729 * include/bits/stl_iterator_base_funcs.h
730 (__advance<_RandomAccessIterator, _Distance>): Optimize for next/prev
731 cases where incrementing or decrementing a single step.
733 * include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
734 (__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
735 specifiers as per LWG 2873 and LWG 2942.
736 * testsuite/20_util/owner_less/noexcept.cc: New.
737 * testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
739 * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
741 2017-06-03 Andreas Schwab <schwab@linux-m68k.org>
743 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
745 2017-06-03 Eric Botcazou <ebotcazou@adacore.com>
747 * src/filesystem/dir.cc (fs::_Dir::advance): Use std::exchange.
749 2017-06-02 Jonathan Wakely <jwakely@redhat.com>
752 * doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
753 * include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
754 Transform eof value to U+FFFD.
755 * testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
756 * testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
757 * testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.
759 * libsupc++/Makefile.am: Remove custom targets for files that need to
760 be compiled as C++11 or C++14.
761 * libsupc++/Makefile.in: Regenerate.
762 * libsupc++/del_ops.cc: Use pragma to disable -Wsized-deallocation
764 * libsupc++/del_opvs.cc: Likewise.
766 2017-06-02 Richard Biener <rguenther@suse.de>
767 Markus Eisenmann <meisenmann.lba@fh-salzburg.ac.at>
770 * libsupc++/eh_alloc.cc (pool::free): Keep list properly
771 sorted and add missing freelist item merging cases.
773 2017-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
775 (GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
776 Remove *-solaris* section.
777 * configure: Regenerate.
779 2017-05-31 Jonathan Wakely <jwakely@redhat.com>
782 * include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
783 null pointer dereference when size is zero.
784 * testsuite/23_containers/vector/bool/80893.cc: New.
785 * testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
786 Add non-explicit constructor from nullptr.
787 (PointerBase::derived() const): Add const-qualified overload.
789 2017-05-20 Tim Shen <timshen@google.com>
792 * include/std/variant(variant::variant): SFINAE on is_same first.
793 * testsuite/20_util/variant/any.cc: test case.
795 2017-05-24 Jonathan Wakely <jwakely@redhat.com>
797 * src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__
798 instead of fixed number of bits.
800 2017-05-24 Andreas Schwab <schwab@suse.de>
802 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
803 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
805 2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
806 Jonathan Wakely <jwakely@redhat.com>
809 * acinclude.m4: Bump libtool_VERSION.
810 * config/abi/pre/gnu.ver: Create GLIBCXX_3.4.24 with new symbol.
811 * config.h.in: Regenerate.
812 * configure: Regenerate.
813 * configure.ac: Add test for <linux/random.h>.
814 * doc/xml/manual/abi.xml: Document new library version.
815 * include/bits/random.h (random_device::entropy)
816 [_GLIBCXX_USE_RANDOM_TR1]: Add call to new _M_getentropy member.
817 (random_device::_M_getentropy): Declare.
818 * src/c++11/random.cc (random_device::_M_getentropy): Define.
819 * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.24 to known
820 versions, and make it the latest version.
822 2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
825 * include/bits/locale_facets.tcc (num_get::_M_extract_int): Add
826 explicit conversion to avoid signed overflow.
828 2017-05-19 Jonathan Wakely <jwakely@redhat.com>
831 * include/bits/stl_algo.h (search): Add new overload for C++17.
832 * testsuite/25_algorithms/search/searcher.cc: New.
834 2017-05-18 Jonathan Wakely <jwakely@redhat.com>
837 * include/std/functional (_Mem_fn_traits_base): Add specializations
838 for noexcept member function types.
839 * testsuite/20_util/function_objects/mem_fn/80478.cc: New test.
841 2017-05-18 Jonathan Wakely <jwakely@redhat.com>
843 * doc/xml/manual/policy_data_structures.xml: Fix typo.
844 * doc/xml/manual/test_policy_data_structures.xml: Likewise.
845 * doc/html/*: Regenerate.
847 * doc/xml/manual/abi.xml: Document latest library versions.
848 * doc/xml/manual/build_hacking.xml: Document requirement to update
849 abi.xml when bumping library versions.
850 * doc/html/*: Regenerate.
852 2017-05-17 Jonathan Wakely <jwakely@redhat.com>
854 * include/bits/refwrap.h: Fix Doxygen warning.
855 * include/bits/specfun.h: Likewise.
856 * include/bits/std_function.h: Likewise.
857 * include/bits/stl_algo.h (set_union, set_intersection)
858 (set_difference, set_symmetric_difference): Add Doxygen @param tags
859 for output iterator parameters.
860 * include/bits/stl_iterator.h (inserter): Add Doxygen @param tag for
862 * include/std/mutex (try_lock, lock): Change Mutex to Lockable in
865 2017-05-17 Ville Voutilainen <ville.voutilainen@gmail.com>
867 Implement new C++ intrinsics __is_assignable and __is_constructible.
868 * include/std/type_traits (__do_is_static_castable_impl): Remove.
869 (__is_static_castable_impl, __is_static_castable_safe): Likewise.
870 (__is_static_castable, __do_is_direct_constructible_impl): Likewise.
871 (__is_direct_constructible_impl): Likewise.
872 (__is_direct_constructible_new_safe): Likewise.
873 (__is_base_to_derived_ref, __is_lvalue_to_rvalue_ref): Likewise.
874 (__is_direct_constructible_ref_cast): Likewise.
875 (__is_direct_constructible_new, __is_direct_constructible): Likewise.
876 (__do_is_nary_constructible_impl): Likewise.
877 (__is_nary_constructible_impl, __is_nary_constructible): Likewise.
878 (__is_constructible_impl): Likewise.
879 (is_constructible): Call the intrinsic.
880 (__is_assignable_helper): Remove.
881 (is_assignable): Call the intrinsic.
882 (is_trivially_constructible): Likewise.
883 (__is_trivially_copy_constructible_impl): New.
884 (is_trivially_copy_constructible): Use it.
885 (__is_trivially_move_constructible_impl): New.
886 (is_trivially_move_constructible): Use it.
887 (is_trivially_assignable): Call the intrinsic.
888 (__is_trivially_copy_assignable_impl): New.
889 (is_trivially_copy_assignable): Use it.
890 (__is_trivially_move_assignable_impl): New.
891 (is_trivially_move_assignable): Use it.
892 (testsuite/20_util/declval/requirements/1_neg.cc): Adjust.
893 (testsuite/20_util/is_trivially_copy_assignable/value.cc):
895 (testsuite/20_util/is_trivially_copy_constructible/value.cc): Likewise.
896 (testsuite/20_util/is_trivially_move_assignable/value.cc): Likewise.
897 (testsuite/20_util/is_trivially_move_constructible/value.cc): Likewise.
898 (testsuite/20_util/make_signed/requirements/typedefs_neg.cc): Adjust.
899 (testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc):
902 2017-05-16 Jonathan Wakely <jwakely@redhat.com>
904 * testsuite/experimental/source_location/1.cc: Change expected result
905 for source_location::current() used in default member initializer.
907 * doc/xml/manual/status_cxx2017.xml: Update status table.
908 * doc/html/*: Regenerate.
909 * include/Makefile.am: Add new header.
910 * include/Makefile.in: Regenerate.
911 * include/experimental/source_location: New header implementing N4519.
912 * testsuite/experimental/source_location/1.cc: New test.
915 * include/bits/shared_ptr_base.h [!__cpp_rtti] (type_info): Declare
916 outside versioned namespace.
918 * configure: Regenerate.
920 2017-05-16 Marc Glisse <marc.glisse@inria.fr>
922 * include/std/optional (_Optional_base::_M_get): Check precondition.
923 * testsuite/20_util/optional/cons/value_neg.cc: Update line numbers.
925 2017-05-16 Jonathan Wakely <jwakely@redhat.com>
927 * doc/xml/manual/appendix_contributing.xml: Link to test docs and
928 note higher DejaGnu version requirement.
929 * doc/html/*: Regenerate.
931 * doc/xml/manual/appendix_contributing.xml: Link to the list of bad
933 * doc/html/*: Regenerate.
935 2017-05-15 Jonathan Wakely <jwakely@redhat.com>
938 * include/bits/node_handle.h (_Node_insert_return): Reorder members.
939 (tuple_size, tuple_element): Remove partial specializations.
940 * include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
941 const_iterator for std::set.
942 * testsuite/23_containers/map/modifiers/extract.cc: New.
943 * testsuite/23_containers/set/modifiers/extract.cc: New.
944 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
945 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
947 2017-05-12 Jonathan Wakely <jwakely@redhat.com>
950 * include/std/utility (tuple_size<cv T>): Only define partial
951 specializations when tuple_size<T>::value is valid.
952 * testsuite/20_util/tuple/78939.cc: New.
953 * testsuite/20_util/tuple/cv_tuple_size_neg.cc: New.
955 2017-05-11 François Dumont <fdumont@gcc.gnu.org>
957 * include/bits/stl_tree.h [_GLIBCXX_INLINE_VERSION]
958 (_Rb_tree_impl<>): Remove _Is_pod_comparator
961 * include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
962 (__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
963 (__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
965 (__gnu_debug::_Error_formatter::_M_format_word): Remove.
966 (__gnu_debug::_Error_formatter::_M_print_word): Remove.
967 (__gnu_debug::_Error_formatter::_M_print_string): Remove.
968 (__gnu_debug::_Error_formatter::_M_get_max_length): Remove.
969 * src/c++11/debug.cc: Adapt.
970 * config/abi/pre/gnu-versioned-namespace.ver: Adapt.
972 2017-05-11 Jonathan Wakely <jwakely@redhat.com>
974 * doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
975 * doc/xml/manual/mt_allocator.xml: Likewise.
976 * doc/html/*: Regenerate.
979 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Define
980 function to get unique fake std::type_info reference.
981 (_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Compare to
982 _S_ti() fake reference.
983 (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Share
984 single implementation with or without RTTI enable.
985 [!__cpp_rtti]: Pass fake reference to _M_get_deleter.
986 * testsuite/20_util/shared_ptr/creation/alloc.cc: Change expected
987 allocation and deallocation counts.
988 * testsuite/20_util/shared_ptr/creation/single_allocation.cc: New.
989 * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
992 2017-05-10 François Dumont <fdumont@gcc.gnu.org>
994 Bump version namespace.
995 * config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
996 from __7 to __8. Bump GLIBCXX_7.0 to GLIBCXX_8.0.
997 * acinclude.m4 (libtool_VERSION): Bump to 8:0:0.
998 * include/bits/c++config: Adapt.
999 * include/bits/regex.h: Adapt.
1000 * include/experimental/bits/fs_fwd.h: Adapt.
1001 * include/experimental/bits/lfts_config.h: Adapt.
1002 * include/std/variant: Adapt.
1003 * python/libstdcxx/v6/printers.py: Adapt.
1004 * testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
1006 * include/bits/stl_algobase.h (std::__iter_swap<false>): Remove
1007 _GLIBCXX_MOVE usage.
1009 2017-05-09 Jason Merrill <jason@redhat.com>
1011 * testsuite/24_iterators/container_access.cc (test03): Make il3 static.
1013 2017-05-08 Jonathan Wakely <jwakely@redhat.com>
1015 * include/std/optional: Use a separate static_assert per condition.
1016 * testsuite/20_util/optional/cons/value_neg.cc: Update dg-error line
1019 * doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
1020 * doc/html/*: Regenerate.
1022 2017-05-02 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
1025 * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
1027 2017-04-29 François Dumont <fdumont@gcc.gnu.org>
1029 * testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
1032 2017-04-28 Jonathan Wakely <jwakely@redhat.com>
1035 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
1036 assertions to ensure type is destructible.
1037 (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
1038 * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
1039 Move to stl_construct.h.
1040 * testsuite/20_util/specialized_algorithms/memory_management_tools/
1041 destroy_neg.cc: New test.
1042 * testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
1044 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
1045 superfluous "" in dg-error.
1047 2017-04-28 Tom de Vries <tom@codesourcery.com>
1049 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
1050 superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
1052 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
1054 * include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
1055 (PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
1056 * testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
1059 2017-04-26 Jonathan Wakely <jwakely@redhat.com>
1061 * testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
1062 comment. Ensure first test works because allocator type propagates and
1063 not because is_always_equal is true.
1064 * testsuite/23_containers/vector/52591.cc: Likewise. Restore original
1065 testcase that instantiates the move-assignment operator.
1067 2017-04-24 Jonathan Wakely <jwakely@redhat.com>
1070 * include/bits/random.tcc (gamma_distribution::operator()): Fix magic
1071 number used in loop condition.
1074 * include/bits/refwrap.h (ref, cref): Qualify calls.
1075 * testsuite/20_util/reference_wrapper/80504.cc: New test.
1078 * include/experimental/optional (optional::swap): Fix exception
1081 2017-04-21 Jonathan Wakely <jwakely@redhat.com>
1084 * include/std/future (_State_baseV2::_Setter::operator()): Remove
1085 _S_check calls that are done after the pointer to the shared state is
1086 already dereferenced.
1087 (_State_baseV2::_Setter<_Res, void>): Define specialization for void
1088 as partial specialization so it can be defined within the definition
1090 (_State_baseV2::__setter): Call _S_check.
1091 (_State_baseV2::__setter(promise<void>*)): Add overload for use by
1092 promise<void>::set_value and promise<void>::set_value_at_thread_exit.
1093 (promise<T>, promise<T&>, promise<void>): Make _State a friend.
1094 (_State_baseV2::_Setter<void, void>): Remove explicit specialization.
1095 (promise<void>::set_value, promise<void>::set_value_at_thread_exit):
1096 Use new __setter overload.
1097 * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
1098 * testsuite/30_threads/promise/members/set_exception.cc: Test
1099 promise<T&> and promise<void> specializations.
1100 * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
1101 Test for no_state error condition.
1102 * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
1104 * include/backward/auto_ptr.h: Ignore deprecated warnings from use
1106 * include/bits/shared_ptr.h: Likewise.
1107 * include/bits/shared_ptr_base.h: Likewise.
1108 * include/bits/unique_ptr.h: Likewise.
1109 * libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
1111 * libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
1112 * libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
1114 * libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
1117 2017-04-20 Edward Smith-Rowland <3dw4rd@verizon.net>
1119 PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
1120 * include/tr1/exp_integral.tcc: Increase iteration limits.
1121 * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
1122 pr68397.cc: New test.
1123 * testsuite/special_functions/14_expint/pr68397.cc: New test.
1125 2017-04-20 Jonathan Wakely <jwakely@redhat.com>
1128 * include/std/atomic [!_GLIBCXX_USE_C99_STDINT_TR1] (atomic_int8_t)
1129 (atomic_uint8_t, atomic_int16_t, atomic_uint16_t, atomic_int32_t,
1130 (atomic_uint32_t, atomic_int64_t, atomic_uint64_t)
1131 (atomic_int_least8_t, atomic_uint_least8_t, atomic_int_least16_t)
1132 (atomic_uint_least16_t, atomic_int_least32_t, atomic_uint_least32_t)
1133 (atomic_int_least64_t, atomic_uint_least64_t, atomic_int_fast8_t)
1134 (atomic_uint_fast8_t, atomic_int_fast16_t, atomic_uint_fast16_t)
1135 (atomic_int_fast32_t, atomic_uint_fast32_t, atomic_int_fast64_t)
1136 (atomic_uint_fast64_t, atomic_intmax_t, atomic_uintmax_t): Don't
1139 2017-04-19 Jonathan Wakely <jwakely@redhat.com>
1141 * doc/xml/manual/abi.xml: Rephrase one of the references to the
1143 * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
1144 * doc/html/*: Regenerate.
1146 * libsupc++/new: Update comment on #endif directive.
1149 * include/experimental/bits/fs_dir.h (directory_iterator)
1150 (recursive_directory_iterator): Remove noexcept from defaulted
1154 * include/std/type_traits (is_aggregate): Change __has_builtin checks.
1155 * libsupc++/new (launder): Likewise.
1157 2017-04-18 Jonathan Wakely <jwakely@redhat.com>
1159 * include/std/functional (default_searcher, __boyer_moore_array_base)
1160 (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
1161 (boyer_moore_horspool_searcher): Remove redundant namespace
1163 (default_searcher::operator()): Construct return value early and
1164 advance second member in-place.
1165 (boyer_moore_horspool_searcher::operator()): Increment random access
1166 iterator directly instead of using std::next.
1167 (boyer_moore_searcher::operator()): Fix return value.
1168 * testsuite/20_util/function_objects/searchers.cc: Check both parts
1171 2017-04-12 Gerald Pfeifer <gerald@pfeifer.com>
1173 * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
1174 * doc/xml/manual/abi.xml. Ditto (thrice).
1176 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
1178 * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
1179 * doc/html/*: Regenerate.
1181 * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
1182 that no longer fail.
1184 * include/bits/ios_base.h: Correct comment.
1185 * testsuite/util/testsuite_hooks.h: Likewise.
1187 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1188 * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
1189 directories for debug, parallel and profile headers.
1190 * doc/html/*: Regenerate.
1192 * include/bits/char_traits.h (__gnu_cxx::char_traits): Add
1193 _GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
1194 (std::char_traits<char>, std::char_traits<wchar_t>): Add
1195 _GLIBCXX17_CONSTEXPR on assign.
1196 (std::char_traits<char16_t>, std::char_traits<char32_t>): Add
1197 _GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
1198 * testsuite/21_strings/char_traits/requirements/
1199 constexpr_functions_c++17.cc: New test.
1201 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
1204 * include/bits/stl_pair.h (__nonesuch_no_braces): New.
1205 (operator=(typename conditional<
1206 __and_<is_copy_assignable<_T1>,
1207 is_copy_assignable<_T2>>::value,
1208 const pair&, const __nonesuch&>::type)): Change __nonesuch
1209 to __nonesuch_no_braces.
1210 (operator=(typename conditional<
1211 __not_<__and_<is_copy_assignable<_T1>,
1212 is_copy_assignable<_T2>>>::value,
1213 const pair&, const __nonesuch&>::type)): Likewise.
1214 (operator=(typename conditional<
1215 __and_<is_move_assignable<_T1>,
1216 is_move_assignable<_T2>>::value,
1217 pair&&, __nonesuch&&>::type)): Likewise.
1218 * testsuite/20_util/pair/79141.cc: New.
1220 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
1222 Implement std::is_aggregate.
1223 * include/std/type_traits (is_aggregate, is_aggregate_v): New.
1224 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
1226 * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
1227 * testsuite/20_util/is_aggregate/value.cc: Likewise.
1229 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1231 Adjust optional's pretty printer for LWG 2900.
1232 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
1233 Look at the nested payload in case of non-experimental optional.
1235 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1237 Implement LWG 2900, The copy and move constructors
1238 of optional are not constexpr.
1239 * include/std/optional (_Optional_payload): New.
1240 (_Optional_base): Remove the bool parameter.
1241 (_Optional_base<_Tp, false>): Remove.
1242 (_Optional_base()): Adjust.
1243 (_Optional_base(nullopt_t)): Likewise.
1244 (_Optional_base(in_place_t, _Args&&...)): Likewise.
1245 (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
1247 (_Optional_base(const _Optional_base&)): Likewise.
1248 (_Optional_base(_Optional_base&&)): Likewise.
1249 (operator=(const _Optional_base&)): Likewise.
1250 (operator=(_Optional_base&&)): Likewise.
1251 (~_Optional_base()): Remove.
1252 (_M_is_engaged()): Adjust.
1253 (_M_get()): Likewise.
1254 (_M_construct(_Args&&...)): Likewise.
1255 (_M_destruct()): Likewise.
1256 (_M_reset()): Likewise.
1257 (_Optional_base::_Empty_byte): Remove.
1258 (_Optional_base::_M_empty): Remove.
1259 (_Optional_base::_M_payload): Adjust.
1260 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1261 * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
1263 2017-03-28 Jonathan Wakely <jwakely@redhat.com>
1266 * include/bits/random.tcc (generate_canonical): Use std::nextafter
1267 or numeric_limits::epsilon() to reduce out-of-range values.
1268 * testsuite/26_numerics/random/uniform_real_distribution/operators/
1269 64351.cc: Verify complexity requirement is met.
1271 * doc/xml/manual/abi.xml: Add xml:id anchor.
1272 * doc/xml/manual/using.xml (manual.intro.using.macros): Document
1273 _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
1274 (concurrency.io.structure): Add markup.
1275 * doc/html/*: Regenerate.
1278 * include/bits/shared_ptr_base.h
1279 (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
1280 non-const and then use remove_cv to get unqualified type.
1281 * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
1282 cast away constness on object created const.
1283 * testsuite/20_util/shared_ptr/cons/80229.cc: New test.
1285 2017-03-26 Markus Trippelsdorf <markus@trippelsdorf.de>
1288 * include/bits/stl_tree.h:
1289 (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
1291 2017-03-23 Jonathan Wakely <jwakely@redhat.com>
1293 * testsuite/23_containers/array/tuple_interface/
1294 tuple_element_debug_neg.cc: Adjust dg-error.
1295 * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
1296 define a valid strict weak ordering.
1297 * testsuite/23_containers/priority_queue/67085.cc: Disable test for
1298 Debug Mode, due to debug checks making extra copies of predicate.
1299 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
1302 * doc/xml/faq.xml: Add link.
1303 * doc/xml/manual/backwards_compatibility.xml: Remove outdated
1304 information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
1305 * doc/xml/manual/io.xml: Update broken link.
1306 * doc/html/*: Regenerate.
1308 2017-03-23 Daniel Kruegler <daniel.kruegler@gmail.com>
1310 Implement LWG 2686, Why is std::hash specialized for error_code,
1311 but not error_condition?
1312 * include/std/system_error (hash<error_condition>): Define for C++17.
1313 * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
1314 Instantiate test for error_condition.
1315 * testsuite/20_util/hash/requirements/explicit_instantiation.cc
1316 (hash<error_condition>): Instantiate hash<error_condition>.
1318 * include/bits/c++config (_GLIBCXX17_INLINE): Define.
1319 * include/bits/regex_constants.h (All std::regex_constants constants):
1320 Add _GLIBCXX17_INLINE as per P0607R0.
1321 * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
1323 * include/bits/stl_pair.h (piecewise_construct): Likewise.
1324 * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
1325 (__is_uses_allocator_constructible_v)
1326 (__is_nothrow_uses_allocator_constructible_v): Likewise.
1327 * include/std/chrono (treat_as_floating_point_v): Likewise.
1328 * include/std/functional (is_bind_expression_v, is_placeholder_v):
1330 * include/std/optional (nullopt): Likewise.
1331 * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
1332 ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
1333 * include/std/system_error (is_error_code_enum_v)
1334 (is_error_condition_enum_v): Likewise.
1335 * include/std/tuple (tuple_size_v, ignore): Likewise.
1336 (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
1337 constexpr as per LWG 2933.
1338 * include/std/type_traits (All variable templates): Add
1339 _GLIBCXX17_INLINE as per P0607R0.
1340 * include/std/variant (variant_size_v, variant_npos, __index_of_v)
1341 (__tuple_count_v, __exactly_once): Likewise.
1342 * testsuite/18_support/headers/new/synopsis.cc
1343 (hardware_destructive_interference_size)
1344 (hardware_constructive_interference_size): Likewise for commented-out
1346 * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
1347 test function for constexpr std::ignore (LWG 2773).
1348 * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
1351 2017-03-22 Jonathan Wakely <jwakely@redhat.com>
1353 * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
1355 * include/bits/std_function.h (function): Likewise.
1356 * include/bits/stl_pair.h (pair): Likewise.
1357 * include/debug/array (__gnu_debug::array): Likewise.
1358 * include/std/array (array): Likewise.
1359 * include/std/functional (make_default_searcher)
1360 (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
1361 Remove generator functions.
1362 * include/std/tuple (tuple): Add deduction guides.
1363 * include/std/valarray (valarray): Likewise.
1364 * testsuite/20_util/function_objects/searchers.cc: Adjust to use
1365 class template argument deduction instead of generator functions.
1366 * testsuite/20_util/function/cons/deduction.cc: New test.
1367 * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
1368 * testsuite/20_util/optional/cons/deduction.cc: ... here.
1369 * testsuite/20_util/pair/cons/deduction.cc: New test.
1370 * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
1371 * testsuite/20_util/tuple/cons/deduction.cc: New test.
1372 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
1373 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
1374 * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
1375 * testsuite/23_containers/array/cons/deduction.cc: New test.
1376 * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
1377 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
1379 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
1380 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
1382 * testsuite/26_numerics/valarray/deduction.cc: New test.
1383 * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
1384 * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
1385 * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
1387 2017-03-20 François Dumont <fdumont@gcc.gnu.org>
1389 * include/bits/stl_deque.h (deque): Access allocator value_type only if
1390 concept checks are enabled.
1391 * include/bits/stl_stack.h (stack): Likewise.
1392 * include/bits/stl_vector.h (vector): Likewise.
1393 * include/bits/stl_list.h (list): Likewise and check
1394 _SGIAssignableConcept only in C++03.
1395 * include/bits/stl_map.h (map): Likewise.
1396 * include/bits/stl_set.h (set): Likewise.
1397 * include/bits/stl_multimap.h (multimap): Likewise.
1398 * include/bits/stl_multiset.h (multiset): Likewise.
1399 * include/bits/stl_queue.h (queue, priority_queue): Likewise.
1401 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
1403 * doc/xml/manual/appendix_contributing.xml: Convert link to
1405 Update link to the C++ standard at ansi.org.
1407 * doc/xml/faq.xml: Remove information redundant with the above;
1408 instead add a reference.
1410 2017-03-17 Jonathan Wakely <jwakely@redhat.com>
1412 * src/c++11/codecvt.cc (range): Add non-type template parameter and
1413 define oerloaded operators for reading and writing code units.
1414 (range<Elem, false>): Define partial specialization for accessing
1415 wide characters in potentially unaligned byte ranges.
1416 (ucs2_span(const char16_t*, const char16_t*, ...))
1417 (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
1418 to range<const char16_t, false> in order to avoid unaligned reads.
1419 (__codecvt_utf16_base<char16_t>::do_out)
1420 (__codecvt_utf16_base<char32_t>::do_out)
1421 (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
1422 unaligned data to avoid unaligned writes.
1423 (__codecvt_utf16_base<char16_t>::do_in)
1424 (__codecvt_utf16_base<char32_t>::do_in)
1425 (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
1426 error if there are unprocessable trailing bytes.
1427 (__codecvt_utf16_base<char16_t>::do_length)
1428 (__codecvt_utf16_base<char32_t>::do_length)
1429 (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
1430 range<const char16_t, false> to span functions.
1431 * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
1433 2017-03-16 Jonathan Wakely <jwakely@redhat.com>
1436 * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
1439 * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
1440 (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
1441 char16_t to work with UTF-16 instead of UTF-8.
1442 * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
1444 * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
1445 (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
1446 (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
1447 (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
1448 (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
1449 (__codecvt_utf8_utf16_base<char32_t>)
1450 (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
1451 do_max_length() return values.
1452 * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
1453 * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
1454 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
1457 * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
1459 * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
1460 for manipulating codecvt_mode values.
1461 (read_utf16_bom): Compare input to BOM constants instead of integral
1462 constants that depend on endianness. Take mode parameter by
1463 reference and adjust it, to distinguish between no BOM present and
1464 UTF-16BE BOM present.
1465 (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
1466 (surrogates): New enumeration type.
1467 (utf16_in, utf16_out): Add surrogates parameter to choose between
1468 UTF-16 and UCS2 behaviour.
1469 (utf16_span, ucs2_span): Use std::min not std::max.
1470 (ucs2_out): Use std::min not std::max. Disallow surrogate pairs.
1471 (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
1472 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
1473 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
1476 * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
1477 as a surrogate pair.
1478 (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
1479 for internal representation.
1480 (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
1481 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
1484 * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
1485 (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
1486 invalid instantiations using function types for _Compare argument.
1487 * testsuite/25_algorithms/make_heap/80064.cc: New test.
1490 * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
1491 for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
1493 2017-03-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1495 Implement LWG 2857, {variant,optional,any}::emplace should
1496 return the constructed value.
1497 * include/std/any (emplace(_Args&&...)): Change the return type and
1498 return a reference to the constructed value.
1499 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1500 * include/std/optional (emplace(_Args&&...)): Likewise.
1501 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1502 * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
1503 (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
1504 (emplace<_Np>(_Args&&...)): Likewise.
1505 (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
1506 * testsuite/20_util/any/assign/emplace.cc: Add tests for
1507 checking the return value of emplace.
1508 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1509 * testsuite/20_util/optional/assignment/6.cc: Add tests for
1510 checking the return value of emplace.
1511 * testsuite/20_util/variant/run.cc: Likewise.
1513 2017-03-15 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
1516 * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
1518 (push_heap): Remove the wrong checking using is_heap.
1519 (make_heap): Remove the assertion using is_heap.
1520 * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
1522 (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
1525 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
1528 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
1530 * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
1533 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
1535 * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
1537 * config.h.in: Regenerate.
1538 * configure: Regenerate.
1539 * doc/Makefile.in: Regenerate.
1541 2017-03-14 Jonathan Wakely <jwakely@redhat.com>
1544 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1545 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
1546 with a constrained template.
1547 [!_GLIBCXX_USE_CXX11_ABI]
1548 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
1549 * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
1550 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
1552 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1555 * include/bits/list.tcc (merge(list&&)): Use const for the size_t
1557 (merge(list&&, _StrictWeakOrdering)): Likewise.
1558 * testsuite/23_containers/list/operations/80034.cc: New.
1560 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1562 Implement LWG 2806, Base class of bad_optional_access.
1563 * include/std/optional (bad_optional_access):
1564 Derive from std::exception.
1565 (bad_optional_access::bad_optional_access): Adjust.
1566 (bad_optional_access::what): New.
1567 (__throw_bad_optional_access(const char*)):
1568 Remove the parameter and adjust calls.
1569 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1570 * testsuite/20_util/optional/typedefs.cc: Likewise.
1572 2017-03-12 Ville Voutilainen <ville.voutilainen@gmail.com>
1574 Implement LWG 2934, optional<const T> doesn't compare with T.
1575 * include/std/optional
1576 (operator==(const optional<_Tp>&, const optional<_Tp>&)):
1577 Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
1578 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
1579 Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
1580 (operator<(const optional<_Tp>&, const optional<_Tp>&)):
1581 Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
1582 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
1583 Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
1584 (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
1585 Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
1586 (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
1587 Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
1588 (operator==(const optional<_Tp>&, const _Tp&)):
1589 Turn into operator==(const optional<_Tp>&, const _Up&).
1590 (operator==(const _Tp&, const optional<_Tp>&)):
1591 Turn into operator==(const _Up&, const optional<_Tp>&).
1592 (operator!=(const optional<_Tp>&, const _Tp&)):
1593 Turn into operator!=(const optional<_Tp>&, const _Up&).
1594 (operator!=(const _Tp&, const optional<_Tp>&)):
1595 Turn into operator!=(const _Up&, const optional<_Tp>&).
1596 (operator<(const optional<_Tp>&, const _Tp&)):
1597 Turn into operator<(const optional<_Tp>&, const _Up&).
1598 (operator<(const _Tp&, const optional<_Tp>&)):
1599 Turn into operator<(const _Up&, const optional<_Tp>&).
1600 (operator>(const optional<_Tp>&, const _Tp&)):
1601 Turn into operator>(const optional<_Tp>&, const _Up&).
1602 (operator>(const _Tp&, const optional<_Tp>&)):
1603 Turn into operator>(const _Up&, const optional<_Tp>&).
1604 (operator<=(const optional<_Tp>&, const _Tp&)):
1605 Turn into operator<=(const optional<_Tp>&, const _Up&).
1606 (operator<=(const _Tp&, const optional<_Tp>&)):
1607 Turn into operator<=(const _Up&, const optional<_Tp>&).
1608 (operator>=(const optional<_Tp>&, const _Tp&)):
1609 Turn into operator>=(const optional<_Tp>&, const _Up&).
1610 (operator>=(const _Tp&, const optional<_Tp>&)):
1611 Turn into operator>=(const _Up&, const optional<_Tp>&).
1612 * testsuite/20_util/optional/relops/7.cc: New.
1614 2017-03-10 Jonathan Wakely <jwakely@redhat.com>
1616 * testsuite/17_intro/names.cc: Undefine macros that clash with
1617 identifiers in AIX system headers.
1619 * include/bits/invoke.h (__invoke): Use __invoke_result instead of
1620 result_of, and __is_nothrow_invocable instead of
1621 __is_nothrow_callable.
1622 * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
1623 instead of __is_callable.
1624 * include/std/functional (invoke): use invoke_result_t instead of
1625 result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
1626 (_Not_fn): Use __invoke_result instead of result_of.
1627 * include/std/type_traits (__result_of_memobj, __result_of_memfun):
1628 Remove partial specializations for reference_wrapper types.
1629 (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
1630 (__invoke_result): Define replacement for result_of and then use it to
1632 (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
1633 with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
1635 (invoke_result, invoke_result_t): Define for C++17.
1636 (is_callable, is_nothrow_callable): Replace with is_invocable,
1637 is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
1638 (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
1639 is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
1640 * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
1641 instead of is_nothrow_callable_v.
1642 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1644 * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
1645 instead of is_callable.
1646 * testsuite/20_util/is_callable/*: Rename directory and adjust tests
1648 * testsuite/20_util/is_nothrow_callable/*: Likewise.
1649 * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
1651 * testsuite/20_util/variant/hash.cc: Likewise.
1653 2017-03-10 George Lander <george.lander@arm.com>
1655 * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
1656 _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
1657 * configure: Regenerate.
1659 2017-03-09 Jonathan Wakely <jwakely@redhat.com>
1661 * include/std/functional (_Not_fn): Define macro to simplify
1662 repetitive function definitions.
1664 * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
1665 * include/c_global/cstddef (std::byte): Define for C++17.
1666 * testsuite/18_support/byte/global_neg.cc: New test.
1667 * testsuite/18_support/byte/ops.cc: New test.
1668 * testsuite/18_support/byte/requirements.cc: New test.
1670 2017-03-05 Jonathan Wakely <jwakely@redhat.com>
1672 * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
1673 * doc/html/*: Regenerate.
1674 * include/std/mutex (scoped_lock): Implement new C++17 template.
1675 * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
1676 * testsuite/30_threads/scoped_lock/requirements/
1677 explicit_instantiation.cc: New test.
1678 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
1680 2017-03-02 Gerald Pfeifer <gerald@pfeifer.com>
1681 François Dumont <frs.dumont@gmail.com>
1682 Jonathan Wakely <jwakely@redhat.com>
1684 * doc/xml/manual/debug_mode.xml: Update and simplify note
1685 on link- and run-time coexistence.
1687 2017-03-02 Jonathan Wakely <jwakely@redhat.com>
1689 * testsuite/17_intro/headers/names.cc: Rename to ...
1690 * testsuite/17_intro/names.cc: ... here.
1693 * include/bits/hashtable_policy.h (__clp2): Use reserved names for
1694 parameters and local variables.
1695 * include/bits/ios_base.h (make_error_code, make_error_condition):
1697 * include/bits/list.tcc (list::sort): Likewise.
1698 * include/bits/mask_array.h (mask_array): Likewise.
1699 * include/bits/regex.h (regex_token_iterator): Likewise.
1700 * include/bits/slice_array.h (slice_array): Likewise.
1701 * include/bits/stl_algo.h (__sample): Likewise.
1702 * include/std/memory (undeclare_no_pointers): Likewise.
1703 * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
1705 * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
1706 * testsuite/17_intro/headers/names.cc: New test.
1709 * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
1710 result_of that loses top-level cv-qualifiers.
1711 * testsuite/20_util/bind/79798.cc: New test.
1713 2017-03-01 Gerald Pfeifer <gerald@pfeifer.com>
1715 * doc/xml/manual/documentation_hacking.xml: Tweak link to
1718 2017-02-23 Jonathan Wakely <jwakely@redhat.com>
1720 * include/experimental/iterator: Include <iterator>.
1721 * testsuite/experimental/iterator/requirements.cc: Check for contents
1724 2017-02-19 Dinka Ranns <dinka.ranns@googlemail.com>
1726 C++17 GB50 resolution
1727 * include/std/chrono (duration::operator++()): Add
1728 _GLIBCXX17_CONSTEXPR.
1729 (duration::operator++(int)): Likewise.
1730 (duration::operator--()): Likewise.
1731 (duration::operator--(int)): Likewise.
1732 (duration::operator+=(const duration&)): Likewise.
1733 (duration::operator-=(const duration&)): Likewise.
1734 (duration::operator*=(const rep&)): Likewise.
1735 (duration::operator/=(const rep&)): Likewise.
1736 (duration::operator%=(const rep&)): Likewise.
1737 (duration::operator%=(const duration&)): Likewise.
1738 (time_point::operator+=(const duration&)): Likewise.
1739 (time_point::operator-=(const duration&)): Likewise.
1740 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
1741 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
1742 * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
1744 2017-02-19 Gerald Pfeifer <gerald@pfeifer.com>
1746 * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
1748 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
1750 * doc/xml/manual/io.xml: Update link to groups.google.com.
1751 Tweak link description.
1753 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
1755 * doc/xml/manual/profile_mode.xml: Fix link.
1757 2017-02-16 Gerald Pfeifer <gerald@pfeifer.com>
1759 * doc/xml/manual/policy_data_structures.xml: Simplify and
1760 standardize references to boost.org.
1761 * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
1762 * doc/xml/manual/shared_ptr.xml: Ditto.
1764 2017-02-16 Jonathan Wakely <jwakely@redhat.com>
1767 * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
1768 written to buffer, not length remaining in buffer.
1770 2017-02-15 Tim Shen <timshen@google.com>
1773 * include/std/variant (operator<(), operator>(), operator<=(),
1774 operator>=(), operator==(), operator!=()): Implement P0393R3.
1775 * testsuite/20_util/variant/compile.cc: Adjust tests.
1776 * testsuite/20_util/variant/run.cc: Adjust tests.
1778 2017-02-15 Tim Shen <timshen@google.com>
1781 * include/std/variant (visit()): Forward variant types to the return
1782 type detection code.
1783 * testsuite/20_util/variant/compile.cc: Add test cases.
1785 2017-02-13 H.J. Lu <hongjiu.lu@intel.com>
1788 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
1790 2017-02-13 Jakub Jelinek <jakub@redhat.com>
1793 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1794 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1795 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
1796 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1797 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
1798 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
1799 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
1800 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
1801 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1803 2017-02-13 Jonathan Wakely <jwakely@redhat.com>
1806 * include/std/future (__future_base::_Task_state::_M_run)
1807 (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
1808 result_of expressions.
1809 * testsuite/30_threads/packaged_task/79486.cc: New.
1811 2017-02-11 Jonathan Wakely <jwakely@redhat.com>
1814 * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
1815 (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
1816 __is_callable check.
1817 * testsuite/20_util/shared_ptr/cons/79467.cc: New.
1819 * include/bits/atomic_base.h: Re-indent.
1821 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
1823 * doc/xml/manual/profile_mode.xml: Update a paper reference.
1825 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
1827 * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
1829 2017-02-08 Jonathan Wakely <jwakely@redhat.com>
1831 * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
1833 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
1834 broken links to texts that are no longer online.
1835 * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
1837 * doc/xml/manual/using.xml: Update links to memory model information.
1838 * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
1839 Standard-Library Exception Safety".
1840 * doc/html/*: Regenerate.
1842 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
1844 * doc/xml/manual/profile_mode.xml: Unbreak link to
1845 "Optimizing Sorting with Machine Learning Algorithms".
1847 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
1849 * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
1851 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
1853 * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
1856 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
1858 * doc/html/ext/lwg-active.html: Remove.
1859 * doc/html/ext/lwg-closed.html: Ditto.
1860 * doc/html/ext/lwg-defects.html: Ditto.
1862 * doc/Makefile.am (xml_extradir): Remove.
1864 (stamp-html-docbook-lwg): Remove recipe...
1865 (stamp-html-docbook-data): ...and its use here.
1866 * doc/Makefile.in: Regenerate.
1868 * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
1869 the relationship to the upstream working group.
1870 Replace a local link to ../ext/lwg-active.html by the upstream one.
1871 Replace all reference to ../ext/lwg-defects.html by a new entity
1872 &DR; which refers to the upstream address.
1874 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
1876 * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
1878 2017-02-06 Jonathan Wakely <jwakely@redhat.com>
1881 * testsuite/20_util/duration/literals/range.cc: Prune extra output
1884 2017-02-06 Gerald Pfeifer <gerald@pfeifer.com>
1886 * doc/xml/manual/documentation_hacking.xml: Update URL of the
1887 DocBook Element Reference. Use that term as link description
1888 instead of "online".
1889 epubcheck has moved to GitHub.
1890 Remove obsolete link to DocBook Publishing Tools.
1892 2017-02-03 Jonathan Wakely <jwakely@redhat.com>
1895 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
1896 so new ios::failure can be caught even when old ABI is the default.
1897 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
1898 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
1899 exceptions_failbit.cc: Likewise.
1900 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
1901 exceptions_failbit.cc: Likewise.
1902 * testsuite/27_io/basic_istream/extractors_other/char/
1903 exceptions_null.cc: Likewise.
1904 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
1905 exceptions_null.cc: Likewise.
1906 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
1907 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
1908 * testsuite/27_io/basic_ostream/inserters_other/char/
1909 exceptions_null.cc: Likewise.
1910 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
1911 exceptions_null.cc: Likewise.
1912 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
1915 * src/c++11/Makefile.am: Add new files.
1916 * src/c++11/Makefile.in: Regenerate.
1917 * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
1918 (operator<<, operator>>, getline): Move explicit instantiations to ...
1919 * src/c++11/cow-string-io-inst.cc: ... new file.
1920 * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
1921 (operator<<, operator>>, getline): Move explicit instantiations to ...
1922 * src/c++11/cow-wstring-io-inst.cc: ... new file.
1923 * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
1924 (__throw_future_error, __throw_bad_function_call):
1925 (__throw_regex_error): Move functions for C++11 exceptions to the
1926 files that define the exception types.
1927 * src/c++11/functional.cc (__throw_bad_function_call): Move here.
1928 * src/c++11/future.cc (__throw_future_error): Likewise.
1929 * src/c++11/ios.cc (__throw_ios_failure): Likewise.
1930 * src/c++11/regex.cc (__throw_regex_error): Likewise.
1931 * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
1932 representation directly instead of calling __int_to_char.
1933 * src/c++11/sso_string.cc (__sso_string): New file for definition
1934 of __sso_string type.
1935 * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
1936 explicit instantiations of narrow string I/O functions.
1937 * src/c++11/system_error.cc (__throw_system_error): Move here.
1938 (__sso_string): Move to new file.
1939 * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
1940 explicit instantiations of wide string I/O functions.
1941 * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
1942 (operator>>, getline): Remove explicit instantiations from here.
1944 2017-02-02 H.J. Lu <hongjiu.lu@intel.com>
1946 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
1948 2017-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1950 * configure.host: Separate Solaris/SPARC and x86 baselines.
1951 * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
1952 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
1953 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
1954 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
1956 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
1957 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
1958 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
1959 * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
1960 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
1961 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
1962 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
1964 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
1965 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
1966 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
1968 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1969 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1970 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1971 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
1972 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
1973 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
1975 2017-02-01 Jonathan Wakely <jwakely@redhat.com>
1978 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
1980 (_Iter_comp_to_iter): Likewise.
1981 * testsuite/25_algorithms/search/78346.cc: New test.
1984 * config/abi/pre/gnu.ver: Remove recently added symbols.
1985 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1986 (basic_string::_M_copy_assign): Remove.
1987 (basic_string::operator=(const basic_string&)): Don't dispatch to
1988 _M_copy_assign. If source object is small just deallocate, otherwise
1989 perform new allocation before making any changes.
1990 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
1991 (basic_string::_M_copy_assign(const basic_string&, true_type)):
1993 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
1994 Test cases where the allocators are equal or the string is small.
1995 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1998 2017-01-30 Ville Voutilainen <ville.voutilainen@gmail.com>
2000 Implement LWG 2825, LWG 2756 breaks class template argument
2001 deduction for optional.
2002 * include/std/optional: Add a deduction guide.
2003 * testsuite/20_util/optional/cons/deduction_guide.cc: New.
2005 2017-01-27 Jonathan Wakely <jwakely@redhat.com>
2008 * config/abi/pre/gnu.ver: Add new symbols.
2009 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2010 (basic_string::_M_copy_assign): New overloaded functions to perform
2012 (basic_string::operator=(const basic_string&)): Dispatch to
2014 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
2015 (basic_string::_M_copy_assign(const basic_string&, true_type)):
2016 Define, performing rollback on exception.
2017 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2018 Test exception-safety guarantee.
2019 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2021 * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
2024 2017-01-26 Jonathan Wakely <jwakely@redhat.com>
2027 * include/tr1/complex (conj): Remove using-declaration and restore
2028 overloads, reverting previous change.
2030 * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
2032 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
2033 Mark as unsupported in C++98 mode.
2034 * testsuite/23_containers/queue/requirements/constructible.cc:
2036 * testsuite/23_containers/stack/requirements/constructible.cc:
2038 * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
2041 * include/bits/c++config (literals::string_view_literals::__7): Add.
2042 Only declare versioned namespaces for the relevant C++ dialects.
2043 * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
2044 Add versioning macros.
2045 * include/experimental/bits/lfts_config.h:
2046 (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
2047 * include/experimental/string_view (fundamentals_v2::__detail):
2048 Add versioning macros.
2049 (fundamentals_v2::__detail::__identity): Remove.
2050 (fundamentals_v2::__detail::__idt): Use common_type instead of
2051 __detail::__identity.
2052 * include/std/string_view (__detail::__identity, __detail::__idt):
2054 (literals::string_view_literals): Fix nesting of versioning macros.
2057 * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
2058 [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
2059 && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
2060 Retrieve original pointer value allocated by malloc.
2061 * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
2062 && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
2063 && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
2064 Define, adjusting pointer value allocated by malloc and storing for
2065 retrieval by operator delete.
2067 2017-01-26 Jakub Jelinek <jakub@redhat.com>
2069 * libsupc++/eh_atomics.h: Update copyright years.
2070 * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
2072 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
2076 * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
2077 (proj(T), conj(T)): Change return types per DR 1522.
2078 * include/tr1/complex (conj): Remove overloads and use std::conj.
2079 * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
2080 * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
2081 * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
2082 real(T) and imag(T). Allow testing for C++11 too.
2084 2017-01-24 Jonathan Wakely <jwakely@redhat.com>
2087 * include/experimental/string_view (operator==): Check sizes first.
2088 * include/std/string_view (operator==): Likewise.
2090 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
2092 * testsuite/experimental/array/make_array.cc: Restore <functional>
2095 2017-01-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
2097 * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
2099 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
2102 * include/experimental/array (__make_array_elem): New class template
2103 and partial specialization.
2104 (__is_reference_wrapper): Move into __make_array_elem specialization.
2105 (make_array): Use __make_array_elem to determine element type and move
2106 static assertion into specialization. Qualify std::forward call.
2107 (to_array): Add exception specifiation.
2108 * testsuite/experimental/array/make_array.cc: Test argument types
2109 without a common type.
2110 * testsuite/experimental/array/neg.cc: Adjust expected error message.
2112 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
2114 * doc/xml/manual/debug.xml: code.google.com uses https now.
2116 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
2118 * doc/xml/manual/test.xml: Fix link into gccint online manual.
2120 2017-01-21 Ville Voutilainen <ville.voutilainen@gmail.com>
2122 Make poisoned hashes SFINAE away the call operator of the hash.
2123 * include/bits/functional_hash.h
2124 (__poison_hash::__enable_hash_call): New.
2125 * include/std/optional (__optional_hash_call_base): New.
2126 (hash<optional<_Tp>>): Derive from the new base,
2127 move the hash function into that base.
2128 * include/std/variant (__variant_hash_call_base_impl): New.
2129 (__variant_hash_call_base): Likewise.
2130 (hash<variant<_Types...>>): Derive from the new base,
2131 move the hash function into that base.
2132 * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
2133 * testsuite/20_util/variant/hash.cc: Likewise.
2135 2017-01-20 Joe Seymour <joe.s@somniumtech.com>
2137 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
2138 * configure: Regenerate.
2140 2017-01-20 Jonathan Wakely <jwakely@redhat.com>
2143 * include/bits/random.h (uniform_real_distribution::param_type)
2144 (normal_distribution::param_type, lognormal_distribution::param_type)
2145 (gamma_distribution::param_type, chi_squared_distribution::param_type)
2146 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
2147 (student_t_distribution::param_type)
2148 (bernoulli_distribution::param_type, binomial_distribution::param_type)
2149 (geometric_distribution::param_type)
2150 (negative_binomial_distribution::param_type)
2151 (poisson_distribution::param_type)
2152 (exponential_distribution::param_type)
2153 (weibull_distribution::param_type)
2154 (extreme_value_distribution::param_type)
2155 (discrete_distribution::param_type)
2156 (piecewise_constant_distribution::param_type)
2157 (piecewise_linear_distribution::param_type): Define operator!=.
2158 * include/bits/uniform_int_dist.h
2159 (uniform_int_distribution::param_type): Likewise.
2160 * include/ext/random (beta_distribution::param_type)
2161 (rice_distribution::param_type, nakagami_distribution::param_type)
2162 (pareto_distribution::param_type, k_distribution::param_type)
2163 (arcsine_distribution::param_type, hoyt_distribution::param_type)
2164 (triangular_distribution::param_type)
2165 (von_mises_distribution::param_type)
2166 (hypergeometric_distribution::param_type)
2167 (logistic_distribution::param_type)
2168 (uniform_on_sphere_distribution::param_type)
2169 (uniform_inside_sphere_distribution::param_type): Likewise.
2170 * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
2171 Test construction with param_type.
2172 * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
2174 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
2176 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
2178 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
2180 * testsuite/26_numerics/random/extreme_value_distribution/cons/
2182 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
2184 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
2186 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
2188 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
2190 * testsuite/26_numerics/random/negative_binomial_distribution/cons/
2192 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
2194 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
2196 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
2198 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
2200 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
2202 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
2204 * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
2205 * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
2206 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
2207 * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
2209 * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
2210 * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
2211 * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
2212 * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
2213 * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
2214 * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
2215 * testsuite/ext/random/triangular_distribution/cons/parms.cc:
2217 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
2219 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
2222 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
2223 (__allocator_traits_base::__size_type): Remove.
2224 (allocator_traits::_Ptr): New class template to detect const and void
2225 pointer types without instantiating pointer_traits::rebind
2227 (allocator_traits::_Diff): Likewise for detecting difference_type.
2228 (allocator_traits::_Size): New class template to detect size_type
2229 without instantiating make_unsigned unnecessarily.
2230 * include/bits/ptr_traits.h (pointer_traits::element_type): Use
2231 __detected_or_t instead of __detected_or_t_.
2232 * include/std/type_traits (__detected_or_t_): Remove.
2233 * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
2237 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
2238 Replace with class template using void_t.
2239 (__alloc_rebind): Define in terms of
2240 __allocator_traits_base::__rebind.
2241 (allocator_traits): Remove unconditional static_assert for
2243 * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
2244 (pointer_traits::__rebind): Replace with class template using void_t.
2245 (pointer_traits::rebind): Define in terms of __rebind.
2246 (pointer_traits): Remove unconditional static_assert for rebind.
2247 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
2248 * testsuite/20_util/pointer_traits/rebind.cc: New test.
2251 * include/experimental/any (__any_caster): Avoid instantiating
2252 manager function for types that can't be stored in any.
2253 * include/std/any (__any_caster): Likewise.
2254 * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
2255 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
2258 * include/bits/stl_algo.h (is_partitioned): Use increment instead of
2261 2017-01-19 Jonathan Wakely <jwakely@redhat.com>
2264 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
2266 (__enable_shared_from_this): Declare __shared_ptr as a friend.
2267 * testsuite/ext/shared_ptr/1.cc: New test.
2270 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
2272 * testsuite/25_algorithms/is_partitioned/2.cc: New test.
2274 * doc/xml/manual/abi.xml: Fix typo.
2275 * doc/html/manual/abi.html: Likewise.
2278 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
2279 converting constructors from _Iter_less_iter.
2280 (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
2282 (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
2283 (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
2284 * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
2285 (__make_heap, __sort_heap): Change _Compare parameters to references.
2286 (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
2287 (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
2288 functions as lvalues.
2289 (is_heap): Call __is_heap_until directly to avoid copying __comp.
2290 * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
2291 count copies during construction with empty sequence.
2294 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
2295 (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
2296 * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
2298 * testsuite/25_algorithms/make_heap/movable.cc: New test.
2301 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
2302 (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
2303 _GLIBCXX_MOVE when passing comparison function to other functions.
2304 (is_heap_until, is_heap): Use std::move when passing comparison
2306 * testsuite/23_containers/priority_queue/67085.cc: New test.
2309 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
2310 macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
2311 Document that the deprecated _GLIBCXX_VERSION macro was removed for
2313 * doc/html/*: Regenerate.
2314 * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
2315 * include/Makefile.in: Regenerate.
2316 * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
2317 * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
2320 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
2323 * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
2324 aligned buffer instead of default-initialized variable.
2325 * testsuite/29_atomics/atomic/69301.cc: New test.
2326 * include/experimental/memory (observer_ptr::release): Use reserved
2328 * include/ext/pointer.h (_Pointer_adapter::operator++(int))
2329 (_Pointer_adapter::operator--(int)): Likewise.
2332 * include/experimental/random (randint): Use temporary instead of
2333 thread_local static.
2335 2017-01-17 Joshua Conner <joshconner@google.com>
2337 * crossconfig.m4: Add fuchsia OS.
2338 * configure: Regenerate.
2340 2017-01-17 Jonathan Wakely <jwakely@redhat.com>
2343 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
2344 __GLIBCXX__ macro is not useful. Remove redundant date information
2345 and link to the GCC release timeline.
2346 (abi.versioning.active): Move partial sentence into the previous
2348 * doc/html/*: Regenerate.
2351 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
2352 of remove_reference.
2353 * testsuite/18_support/nested_exception/79114.cc: New test.
2355 2017-01-17 Jakub Jelinek <jakub@redhat.com>
2358 * configure.ac: Add GCC_BASE_VER.
2359 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
2360 get version from BASE-VER file.
2361 * po/Makefile.in: Regenerated.
2362 * libsupc++/Makefile.in: Regenerated.
2363 * testsuite/Makefile.in: Regenerated.
2364 * src/Makefile.in: Regenerated.
2365 * configure: Regenerated.
2366 * Makefile.in: Regenerated.
2367 * include/Makefile.in: Regenerated.
2368 * doc/Makefile.in: Regenerated.
2369 * python/Makefile.in: Regenerated.
2370 * src/c++11/Makefile.in: Regenerated.
2371 * src/c++98/Makefile.in: Regenerated.
2372 * src/filesystem/Makefile.in: Regenerated.
2374 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
2377 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
2379 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
2380 for test, so new ios::failure can be caught.
2381 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2382 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
2383 exceptions_failbit.cc: Likewise.
2384 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2385 exceptions_failbit.cc: Likewise.
2386 * testsuite/27_io/basic_istream/extractors_other/char/
2387 exceptions_null.cc: Likewise.
2388 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
2389 exceptions_null.cc: Likewise.
2390 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2391 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2392 * testsuite/27_io/basic_ostream/inserters_other/char/
2393 exceptions_null.cc: Likewise.
2394 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2395 exceptions_null.cc: Likewise.
2396 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2399 * include/bits/locale_classes.h (locale::facet::__shim): Change from
2400 private to protected.
2401 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
2402 make locale::facet::__shim accessible.
2404 2017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
2407 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
2408 (merge(list&&, _StrictWeakOrdering)): Likewise.
2409 * testsuite/23_containers/list/operations/78389.cc: Add
2410 better test for the sizes.
2412 2017-01-14 Jonathan Wakely <jwakely@redhat.com>
2414 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
2415 Skip test when -D_GLIBCXX_PROFILE mode is included in options.
2416 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
2417 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
2419 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
2420 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
2421 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
2422 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
2423 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
2425 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
2427 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
2429 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
2431 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2433 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
2434 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
2435 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
2436 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
2437 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
2438 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
2439 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
2440 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
2441 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
2442 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
2443 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
2444 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2445 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
2447 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
2450 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
2451 retry fclose on EINTR.
2453 * include/profile/base.h: Remove unused header that leads to header
2454 cycle in C++17 mode.
2457 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
2458 Make _If_sv private.
2459 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
2460 basic_string_view arguments.
2463 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
2464 redundant option from cxxflags.
2465 (check_effective_target_cxx11-abi): Define.
2466 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
2468 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
2469 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2471 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
2473 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
2474 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
2476 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
2478 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
2479 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
2481 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2483 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
2485 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
2487 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
2489 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
2491 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
2493 * testsuite/23_containers/list/61347.cc: Likewise.
2494 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
2495 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
2497 2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2500 * include/bits/list.tcc (merge(list&&)):
2501 Adjust list sizes if the comparator throws.
2502 (merge(list&&, _StrictWeakOrdering)): Likewise.
2503 (sort()): Splice elements back from the scratch buffers
2504 if the comparator throws.
2505 (sort(_StrictWeakOrdering)): Likewise.
2506 * testsuite/23_containers/list/operations/78389.cc: New.
2508 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
2510 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
2511 XFAIL for C++17 until node reinsertion supports fancy pointers.
2514 * testsuite/20_util/add_pointer/value.cc: Test forming function
2517 2017-01-13 Michael Brune <lucdanton@free.fr>
2520 * include/std/type_traits (__is_referenceable): Handle noexcept
2523 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
2526 * include/bits/stl_queue.h (queue, priority_queue): Remove default
2527 member-initializers and define default constructors as templates with
2529 * include/bits/stl_stack.h (stack): Likewise.
2530 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
2532 * testsuite/23_containers/priority_queue/requirements/
2533 explicit_instantiation/1.cc: Test more instantiations.
2534 * testsuite/23_containers/priority_queue/requirements/
2535 explicit_instantiation/1_c++98.cc: Likewise.
2536 * testsuite/23_containers/queue/requirements/constructible.cc: New.
2537 * testsuite/23_containers/stack/requirements/constructible.cc: New.
2540 * doc/xml/manual/intro.xml: Document LWG 2781 change.
2541 * doc/html/*: Regenerate.
2542 * include/std/functional (_Function_base::_Ref_manager): Remove.
2543 (_Function_handler): Remove partial specializations for
2545 (function::target): Remove special case for const qualification.
2546 * testsuite/20_util/function/6.cc: Adjust tests for target type.
2547 * testsuite/20_util/function/7.cc: Likewise.
2548 * testsuite/20_util/function/8.cc: Likewise.
2550 2017-01-11 Jonathan Wakely <jwakely@redhat.com>
2553 * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
2554 (map::equal_range): Fix return type of heterogeneous overloads.
2555 * include/bits/stl_multimap.h (multimap::lower_bound)
2556 (multimap::upper_bound, multimap::equal_range): Likewise.
2557 * include/bits/stl_multiset.h (multiset::lower_bound)
2558 (multiset::upper_bound, multiset::equal_range): Likewise.
2559 * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
2560 (set::equal_range): Likewise.
2561 * testsuite/23_containers/map/operations/2.cc
2562 * testsuite/23_containers/multimap/operations/2.cc
2563 * testsuite/23_containers/multiset/operations/2.cc
2564 * testsuite/23_containers/set/operations/2.cc
2567 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
2568 the heterogeneous comparison can only find one match.
2569 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
2570 * testsuite/23_containers/map/operations/2.cc: Test count works with
2571 comparison function that just partitions rather than sorting.
2572 * testsuite/23_containers/set/operations/2.cc: Likewise.
2574 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
2576 Reduce the size of variant, it doesn't need an index of
2577 type size_t internally.
2578 * include/std/variant (parse_numbers.h): New include.
2579 (__select_index): New.
2580 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
2581 _index_type for comparison with variant_npos.
2582 (_Variant_storage<false, _Types...>::__index_type): New.
2583 (_Variant_storage<false, _Types...>::_M_index): Change the
2584 type from size_t to __index_type.
2585 (_Variant_storage<true, _Types...>::__index_type): New.
2586 (_Variant_storage<true, _Types...>::_M_index): Change the
2587 type from size_t to __index_type.
2588 (_Variant_base::_M_valid): Use _Storage::__index_type
2589 for comparison with variant_npos.
2590 (variant::index): Use _Base::_Storage::__index_type
2591 for comparison with variant_npos.
2592 * testsuite/20_util/variant/index_type.cc: New.
2594 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
2596 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
2597 effective target selector to prevent running in C++17 mode.
2600 * include/bits/stl_queue.h (queue::c): Add default member initializer.
2601 (queue::queue()): Add constructor and define as defaulted.
2602 (queue::queue(_Sequence&&)): Remove default argument.
2603 (priority_queue::c, priority_queue::comp): Add default member
2605 (priority_queue::priority_queue()): Add constructor and define as
2607 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
2608 Remove default argument for first parameter.
2609 * include/bits/stl_stack.h (stack::c): Add default member initializer.
2610 (stack::stack()): Add constructor and define as defaulted.
2611 (stack::stack(const _Sequence&)): Remove default argument.
2612 * testsuite/23_containers/priority_queue/requirements/
2613 explicit_instantiation/1.cc: Test explicit instantiation with
2614 non-DefaultConstructible sequence.
2615 * testsuite/23_containers/priority_queue/77528.cc: New test.
2616 * testsuite/23_containers/priority_queue/requirements/
2617 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
2618 * testsuite/23_containers/queue/77528.cc: New test.
2619 * testsuite/23_containers/queue/requirements/explicit_instantiation/
2620 1.cc: Test explicit instantiation with non-DefaultConstructible
2622 * testsuite/23_containers/queue/requirements/explicit_instantiation/
2623 1_c++0x.cc: Replace with 1_c++98.cc.
2624 * testsuite/23_containers/stack/77528.cc: New test.
2625 * testsuite/23_containers/stack/requirements/explicit_instantiation/
2626 1.cc: Test explicit instantiation with non-DefaultConstructible
2628 * testsuite/23_containers/stack/requirements/explicit_instantiation/
2629 1_c++0x.cc: Replace with 1_c++98.cc.
2631 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
2633 * include/bits/locale_facets_nonio.tcc
2634 (time_get::_M_extract_via_format): Avoid compilation errors with
2635 non-standard struct tm.
2637 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
2638 Jonathan Wakely <jwakely@redhat.com>
2640 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
2641 (is_specialization, strip_versioned_namespace): New helpers functions
2642 to work with symbols in the versioned namespace.
2643 (Printer.add_version): Add second name using versioned namespace.
2644 (add_one_template_type_printer, add_one_type_printer): Add second
2645 type printers using versioned namespace.
2646 (register_type_printers): Add template type printer for basic_string.
2647 (build_libstdcxx_dictionary): Remove dead code.
2648 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
2649 versioned namespace.
2650 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
2652 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
2654 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
2657 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
2658 functions separately on darwin and if they're missing define
2659 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
2660 * config.h.in: Regenerate.
2661 * configure: Regenerate.
2662 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
2663 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
2665 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
2666 to detect correct thread_local destructors.
2667 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
2670 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
2671 Aditya Kumar <hiraditya@msn.com>
2674 * include/bits/basic_string.tcc
2675 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
2677 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
2679 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
2680 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
2682 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
2683 Include <cassert> header.
2686 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
2687 * configure: Regenerate.
2689 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
2690 Jonathan Wakely <jwakely@redhat.com>
2692 * include/std/variant (variant, swap): Replace __and_ usage with fold
2695 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2698 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
2699 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
2700 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
2701 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
2703 * aclocal.m4: Regenerate.
2704 * configure: Regenerate.
2705 * Makefile.in, doc/Makefile.in, include/Makefile.in,
2706 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
2707 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
2708 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
2710 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
2712 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
2715 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
2716 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
2717 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
2718 move function objects.
2719 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
2720 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
2721 * testsuite/25_algorithms/sort/78991.cc: New test.
2723 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
2725 * include/bits/std_function.h (function::_Signature_type): Remove.
2726 (function::function(_Functor)): Adjust.
2728 2017-01-05 Tim Shen <timshen@google.com>
2731 * include/std/variant (__gen_vtable_impl): rename __unused to
2732 __dimensions to avoid naming conflict.
2734 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
2737 * config.h.in: Regenerate.
2738 * configure: Likewise.
2739 * configure.ac: Check for __cxa_thread_atexit.
2740 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
2741 Don't define __cxa_thread_atexit if libc provides it.
2743 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
2745 Implement 2801, Default-constructibility of unique_ptr.
2746 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
2747 (unique_ptr::_DeleterConstraint): Likewise.
2748 (unique_ptr()): Constrain.
2749 (unique_ptr(pointer)): Likewise.
2750 (unique_ptr(nullptr_t)): Likewise.
2751 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
2752 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
2753 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
2754 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
2755 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
2756 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
2757 * testsuite/20_util/unique_ptr/cons/default.cc: New.
2758 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
2760 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
2761 Jonathan Wakely <jwakely@redhat.com>
2764 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
2765 * config.h.in: Regenerate.
2766 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
2767 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
2768 exports for exception_ptr, nested_exception, and future conditional.
2769 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
2770 exports for exception_ptr, nested_exception, and future conditional.
2771 * configure: Regenerate.
2772 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
2773 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
2774 * libsupc++/eh_atomics.h: New file for internal use only.
2775 (__eh_atomic_inc, __eh_atomic_dec): New.
2776 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
2777 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
2778 (rethrow_exception): Use eh_atomics.h reference counting helpers.
2779 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
2780 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
2781 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
2782 * libsupc++/exception_ptr.h: Likewise.
2783 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
2784 * libsupc++/nested_exception.cc: Remove check for
2785 ATOMIC_INT_LOCK_FREE.
2786 * libsupc++/nested_exception.h: Likewise.
2787 * src/c++11/future.cc: Likewise.
2788 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
2789 * testsuite/18_support/nested_exception/*: Likewise.
2790 * testsuite/30_threads/async/*: Likewise.
2791 * testsuite/30_threads/future/*: Likewise.
2792 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
2793 * testsuite/30_threads/packaged_task/*: Likewise.
2794 * testsuite/30_threads/promise/*: Likewise.
2795 * testsuite/30_threads/shared_future/*: Likewise.
2797 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
2799 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
2800 defaults to https; adjust reference.
2802 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
2805 * include/std/thread (thread(const thread&&)): Add deleted
2807 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
2809 * doc/xml/manual/spine.xml: Update copyright years.
2810 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
2811 * doc/xml/manual/test.xml: Likewise.
2812 * doc/html/*: Regenerate.
2814 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
2816 * doc/xml/faq.xml: Update address of C++ ABI link.
2817 * doc/xml/manual/abi.xml: Ditto.
2819 2017-01-01 Jakub Jelinek <jakub@redhat.com>
2821 Update copyright years.
2823 Copyright (C) 2017 Free Software Foundation, Inc.
2825 Copying and distribution of this file, with or without modification,
2826 are permitted in any medium without royalty provided the copyright
2827 notice and this notice are preserved.