1 2017-08-31 Jonathan Wakely <jwakely@redhat.com>
4 * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
5 Adjust null pointer constant to avoid warning.
7 2017-08-24 François Dumont <fdumont@gcc.gnu.org>
9 * include/bits/stl_list.h
10 [!_GLIBCXX_INLINE_VERSION](_List_base<>::_S_distance): Remove.
11 (_List_impl(_Node_alloc_type&&, _List_impl&&)): New.
12 (_List_base(_Node_alloc_type&&, _List_base&&)): New, use latter.
13 [!_GLIBCXX_INLINE_VERSION](_List_base(_Node_alloc_type&&,_List_base&&)):
15 (_List_base(_Node_alloc_type&&)): New.
16 [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_distance): Remove.
17 [!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_node_count): Remove.
18 (list<>::_M_node_count): New.
19 (list<>::size()): Adapt to call latter.
20 (list<>::_S_distance(const_iterator, const_iterator)): New.
21 (list<>::splice(iterator, list&, const_iterator, const_iterator)):
23 (list(list&&, const allocator_type&, true_type)): New.
24 (list(list&&, const allocator_type&, false_type)): New.
25 (list(list&&, const allocator_type&)): Adapt to call latters.
27 2017-08-21 Jonathan Wakely <jwakely@redhat.com>
30 * include/bits/stl_iterator_base_types.h (__iterator_category): Add
31 constexpr for C++11 and later.
32 * testsuite/24_iterators/container_access.cc: Add target selector.
33 * testsuite/24_iterators/range_access.cc: Fix clause number in
35 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
36 * testsuite/24_iterators/range_access_cpp17.cc: New.
38 2017-08-21 Richard Biener <rguenther@suse.de>
40 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Run all
41 tests with -flto as well if supported.
43 2017-08-20 Martin Sebor <msebor@redhat.com>
46 * src/c++98/compatibility.cc (_GLIBCXX_3_4_SYMVER): Declare alias
47 target as a C++ function with no prototype.
48 (_GLIBCXX_3_4_5_SYMVER): Ditto.
50 2017-08-20 John David Anglin <danglin@gcc.gnu.org>
53 * testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__.
55 2017-08-18 Jonathan Wakely <jwakely@redhat.com>
57 * include/bits/hashtable_policy.h (_ReuseOrAllocNode): Remove
58 __value_alloc_type and __value_alloc_traits typedefs.
59 (_ReuseOrAllocNode::operator()): Call construct and destroy on the
61 (_Hashtable_alloc): Simplify __value_alloc_traits typedef.
62 (_Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&&...)): Call
63 construct on the node allocator.
64 (_Hashtable_alloc<_NodeAlloc>::_M_deallocate_node(__node_type*)): Call
65 destroy on the node allocator.
68 * include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
69 size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
70 const _ExtractKey&, const allocator_type&)): Let destructor do clean
71 up if an exception is thrown.
72 * testsuite/23_containers/unordered_map/cons/81891.cc: New.
74 2017-08-11 Jonathan Wakely <jwakely@redhat.com>
77 * testsuite/27_io/basic_fstream/53984.cc: Adjust test for targets
78 that allow opening a directory as a FILE and reading from it.
80 2017-08-09 Jonathan Wakely <jwakely@redhat.com>
82 * include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP):
83 Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use
84 __is_identifier to set it.
86 2017-08-09 Katsuhiko Nishimra <ktns.87@gmail.com>
88 * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
89 __is_identifier instead of __has_builtin.
91 2017-08-09 Jonathan Wakely <jwakely@redhat.com>
95 * config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)):
96 Call fflush on the stream instead of calling sync() while _M_cfile is
97 null. Restore original value of errno.
98 * testsuite/ext/stdio_filebuf/char/79820.cc: New.
99 * testsuite/ext/stdio_filebuf/char/81751.cc: New.
101 2017-07-31 Marek Polacek <polacek@redhat.com>
104 * include/bits/stl_stack.h: Fix typo.
106 2017-07-26 Jonathan Wakely <jwakely@redhat.com>
108 * testsuite/27_io/basic_fstream/53984.cc: Fix test.
110 2017-07-26 Paolo Carlini <paolo.carlini@oracle.com>
112 * testsuite/27_io/basic_fstream/53984.cc: Fix typo in dg-require
115 2017-07-25 Jonathan Wakely <jwakely@redhat.com>
118 * include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment.
119 * include/bits/istream.tcc (basic_istream::sentry): Handle exceptions
121 * include/std/istream: Adjust comments for formatted input functions
122 and unformatted input functions.
123 * testsuite/27_io/basic_fstream/53984.cc: New.
124 * testsuite/27_io/basic_istream/sentry/char/53984.cc: New.
126 * include/bits/ios_base.h (ios_base::io_state, ios_base::open_mode)
127 (ios_base::seek_dir): Remove for C++17.
128 * include/std/streambuf (basic_streambuf::stossc): Remove for C++17.
129 Add deprecated attribute for C++11 and C++14.
130 * testsuite/27_io/types/1.cc: Don't run for C++17 and later.
131 * testsuite/27_io/types/4.cc: New.
133 2017-07-23 Michael Collison <michael.collison@arm.com>
135 Add optimized implementation of mersenne twister for aarch64
136 * config/cpu/aarch64/opt/ext/opt_random.h: New file.
137 (__arch64_recursion): New function.
138 (__aarch64_lsr_128): New function.
139 (__aarch64_lsl_128): New function.
140 (operator==): New function.
141 (simd_fast_mersenne_twister_engine): Implement
143 * config/cpu/aarch64/opt/bits/opt_random.h: New file.
144 * include/ext/random: (simd_fast_mersenne_twister_engine):
145 add _M_state private array.
147 2017-07-23 François Dumont <fdumont@gcc.gnu.org>
150 * include/bits/algorithmfwd.h: Reorganize versioned namespace.
151 * include/bits/basic_string.h: Likewise.
152 * include/bits/c++config: Likewise.
153 * include/bits/deque.tcc: Likewise.
154 * include/bits/forward_list.h: Likewise.
155 * include/bits/forward_list.tcc: Likewise.
156 * include/bits/hashtable_policy.h: Likewise.
157 * include/bits/list.tcc: Likewise.
158 * include/bits/move.h: Likewise.
159 * include/bits/quoted_string.h: Likewise.
160 * include/bits/random.h: Likewise.
161 * include/bits/random.tcc: Likewise.
162 * include/bits/regex.h: Likewise.
163 * include/bits/regex.tcc: Likewise.
164 * include/bits/regex_automaton.h: Likewise.
165 * include/bits/regex_automaton.tcc: Likewise.
166 * include/bits/regex_compiler.h: Likewise.
167 * include/bits/regex_compiler.tcc: Likewise.
168 * include/bits/regex_constants.h: Likewise.
169 * include/bits/regex_error.h: Likewise.
170 * include/bits/regex_executor.h: Likewise.
171 * include/bits/regex_executor.tcc: Likewise.
172 * include/bits/regex_scanner.h: Likewise.
173 * include/bits/regex_scanner.tcc: Likewise.
174 * include/bits/specfun.h: Likewise.
175 * include/bits/stl_algo.h: Likewise.
176 * include/bits/stl_algobase.h: Likewise.
177 * include/bits/stl_bvector.h: Likewise.
178 * include/bits/stl_deque.h: Likewise.
179 * include/bits/stl_iterator.h: Likewise.
180 * include/bits/stl_iterator_base_funcs.h: Likewise.
181 * include/bits/stl_list.h: Likewise.
182 * include/bits/stl_map.h: Likewise.
183 * include/bits/stl_multimap.h: Likewise.
184 * include/bits/stl_multiset.h: Likewise.
185 * include/bits/stl_relops.h: Likewise.
186 * include/bits/stl_set.h: Likewise.
187 * include/bits/stl_vector.h: Likewise.
188 * include/bits/uniform_int_dist.h: Likewise.
189 * include/bits/unordered_map.h: Likewise.
190 * include/bits/unordered_set.h: Likewise.
191 * include/bits/vector.tcc: Likewise.
192 * include/c_global/cmath: Likewise.
193 * include/c_std/cmath: Likewise.
194 * include/decimal/decimal: Likewise.
195 * include/decimal/decimal.h: Likewise.
196 * include/experimental/algorithm: Likewise.
197 * include/experimental/any: Likewise.
198 * include/experimental/array: Likewise.
199 * include/experimental/bits/erase_if.h: Likewise.
200 * include/experimental/bits/fs_dir.h: Likewise.
201 * include/experimental/bits/fs_fwd.h: Likewise.
202 * include/experimental/bits/fs_ops.h: Likewise.
203 * include/experimental/bits/fs_path.h: Likewise.
204 * include/experimental/bits/lfts_config.h: Likewise.
205 * include/experimental/bits/shared_ptr.h: Likewise.
206 * include/experimental/bits/string_view.tcc: Likewise.
207 * include/experimental/chrono: Likewise.
208 * include/experimental/deque: Likewise.
209 * include/experimental/filesystem: Likewise.
210 * include/experimental/forward_list: Likewise.
211 * include/experimental/functional: Likewise.
212 * include/experimental/iterator: Likewise.
213 * include/experimental/list: Likewise.
214 * include/experimental/map: Likewise.
215 * include/experimental/memory: Likewise.
216 * include/experimental/memory_resource: Likewise.
217 * include/experimental/numeric: Likewise.
218 * include/experimental/optional: Likewise.
219 * include/experimental/propagate_const: Likewise.
220 * include/experimental/random: Likewise.
221 * include/experimental/ratio: Likewise.
222 * include/experimental/regex: Likewise.
223 * include/experimental/set: Likewise.
224 * include/experimental/source_location: Likewise.
225 * include/experimental/string: Likewise.
226 * include/experimental/string_view: Likewise.
227 * include/experimental/system_error: Likewise.
228 * include/experimental/tuple: Likewise.
229 * include/experimental/type_traits: Likewise.
230 * include/experimental/unordered_map: Likewise.
231 * include/experimental/unordered_set: Likewise.
232 * include/experimental/utility: Likewise.
233 * include/experimental/vector: Likewise.
234 * include/ext/bitmap_allocator.h: Likewise.
235 * include/ext/codecvt_specializations.h: Likewise.
236 * include/ext/rope: Likewise.
237 * include/ext/typelist.h: Likewise.
238 * include/std/chrono: Likewise.
239 * include/std/complex: Likewise.
240 * include/std/functional: Likewise.
241 * include/std/numeric: Likewise.
242 * include/std/string_view: Likewise.
243 * include/std/thread: Likewise.
244 * include/std/variant: Likewise.
245 * include/tr1/array: Likewise.
246 * include/tr1/bessel_function.tcc: Likewise.
247 * include/tr1/beta_function.tcc: Likewise.
248 * include/tr1/cmath: Likewise.
249 * include/tr1/complex: Likewise.
250 * include/tr1/ell_integral.tcc: Likewise.
251 * include/tr1/exp_integral.tcc: Likewise.
252 * include/tr1/functional: Likewise.
253 * include/tr1/functional_hash.h: Likewise.
254 * include/tr1/gamma.tcc: Likewise.
255 * include/tr1/hashtable.h: Likewise.
256 * include/tr1/hashtable_policy.h: Likewise.
257 * include/tr1/hypergeometric.tcc: Likewise.
258 * include/tr1/legendre_function.tcc: Likewise.
259 * include/tr1/modified_bessel_func.tcc: Likewise.
260 * include/tr1/poly_hermite.tcc: Likewise.
261 * include/tr1/poly_laguerre.tcc: Likewise.
262 * include/tr1/random.h: Likewise.
263 * include/tr1/random.tcc: Likewise.
264 * include/tr1/regex: Likewise.
265 * include/tr1/riemann_zeta.tcc: Likewise.
266 * include/tr1/shared_ptr.h: Likewise.
267 * include/tr1/special_function_util.h: Likewise.
268 * include/tr1/tuple: Likewise.
269 * include/tr1/type_traits: Likewise.
270 * include/tr1/unordered_map.h: Likewise.
271 * include/tr1/unordered_set.h: Likewise.
272 * include/tr1/utility: Likewise.
273 * include/tr2/bool_set: Likewise.
274 * include/tr2/bool_set.tcc: Likewise.
275 * include/tr2/dynamic_bitset: Likewise.
276 * include/tr2/dynamic_bitset.tcc: Likewise.
277 * include/tr2/ratio: Likewise.
278 * include/tr2/type_traits: Likewise.
279 * src/c++11/chrono.cc: Likewise.
280 * src/c++11/compatibility-c++0x.cc: Likewise.
281 * src/c++11/compatibility-chrono.cc: Likewise.
282 * src/c++11/cxx11-shim_facets.cc: Likewise.
283 * src/c++11/hashtable_c++0x.cc: Likewise.
284 * src/c++11/placeholders.cc: Likewise.
285 * src/c++11/thread.cc: Likewise.
286 * src/c++98/bitmap_allocator.cc: Likewise.
287 * src/c++98/hashtable_tr1.cc: Likewise.
288 * src/c++98/list.cc: Likewise.
289 * src/shared/hashtable-aux.cc: Likewise.
290 * testsuite/20_util/duration/literals/range.cc: Adapt line number.
291 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
292 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
293 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
294 * testsuite/20_util/forward/c_neg.cc: Likewise.
295 * testsuite/20_util/forward/f_neg.cc: Likewise.
296 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
297 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
298 * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
299 * python/libstdcxx/v6/printers.py: Adapt.
301 2017-07-20 Jonathan Wakely <jwakely@redhat.com>
303 * config/allocator/malloc_allocator_base.h [__SANITIZE_ADDRESS__]
304 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
305 * config/allocator/new_allocator_base.h [__SANITIZE_ADDRESS__]
306 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
307 * doc/xml/manual/using.xml (_GLIBCXX_SANITIZE_VECTOR): Document macro.
308 * include/bits/stl_vector.h [_GLIBCXX_SANITIZE_VECTOR]
309 (_Vector_impl::_Asan, _Vector_impl::_Asan::_Reinit)
310 (_Vector_impl::_Asan::_Grow, _GLIBCXX_ASAN_ANNOTATE_REINIT)
311 (_GLIBCXX_ASAN_ANNOTATE_GROW, _GLIBCXX_ASAN_ANNOTATE_GREW)
312 (_GLIBCXX_ASAN_ANNOTATE_SHRINK, _GLIBCXX_ASAN_ANNOTATE_BEFORE_DEALLOC):
313 Define annotation helper types and macros.
314 (vector::~vector, vector::push_back, vector::pop_back)
315 (vector::_M_erase_at_end): Add annotations.
316 * include/bits/vector.tcc (vector::reserve, vector::emplace_back)
317 (vector::insert, vector::_M_erase, vector::operator=)
318 (vector::_M_fill_assign, vector::_M_assign_aux)
319 (vector::_M_insert_rval, vector::_M_emplace_aux)
320 (vector::_M_insert_aux, vector::_M_realloc_insert)
321 (vector::_M_fill_insert, vector::_M_default_append)
322 (vector::_M_shrink_to_fit, vector::_M_range_insert): Annotate.
324 2017-07-19 Jonathan Wakely <jwakely@redhat.com>
327 * include/bits/vector.tcc (vector::_M_range_insert<_InputIterator>):
328 Only insert elements one-by-one when inserting at the end.
329 * testsuite/performance/23_containers/insert/81476.cc: New.
331 2017-07-19 Volker Reichelt <v.reichelt@netcologne.de>
333 * libsupc++/new (bad_array_new_length): Remove redundant
334 semicolon after in-class member function definition.
335 * include/bits/locale_facets.h (ctype_byname, num_put): Likewise.
336 * include/bits/locale_facets_nonio.h (time_put_byname): Likewise.
337 * include/bits/random.h (mersenne_twister_engine): Likewise.
338 * include/tr1/random.h (mersenne_twister): Likewise
339 * include/ext/random (simd_fast_mersenne_twister_engine): Likewise.
340 * include/ext/rope (char_producer, _Rope_char_consumer,
341 _Rope_self_destruct_ptr, _Rope_const_iterator, _Rope_iterator):
343 * include/ext/ropeimpl.h (_Rope_flatten_char_consumer,
344 _Rope_insert_char_consumer): Likewise.
346 2017-07-19 Jonathan Wakely <jwakely@redhat.com>
348 * include/bits/fstream.tcc (basic_filebuf::xsgetn)
349 (basic_filebuf::xsputn, basic_filebuf::seekoff): Fix indentation.
351 * testsuite/util/testsuite_iterators.h: Fix indentation.
353 * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: Add dg-require.
355 2017-07-18 Jonathan Wakely <jwakely@redhat.com>
358 * include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer
359 pointers for write mode after reading.
360 * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New.
362 2017-07-18 François Dumont <fdumont@gcc.gnu.org>
364 * include/bits/stl_list.h
365 (struct _List_node_header): New.
366 (_List_impl()): Fix noexcept qualification.
367 (_List_impl(_List_impl&&)): New, default.
368 (_List_base()): Default.
369 (_List_base(_List_base&&)): Default.
370 (_List_base::_M_move_nodes): Adapt to use
371 _List_node_header._M_move_nodes.
372 (_List_base::_M_init): Likewise.
374 (list<>(list&&)): Default.
375 (list<>::_M_move_assign(list&&, true_type)): Use _M_move_nodes.
376 (__distance(_List_const_iterator<>, _List_const_iterator<>,
377 input_iterator_tag)): Adapt.
378 * testsuite/23_containers/list/allocator/default_init.cc: New.
380 2017-07-15 Jonathan Wakely <jwakely@redhat.com>
382 * include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter
384 * testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments.
385 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction
386 with std::adopt_lock_t.
387 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check
390 2017-07-14 Jason Merrill <jason@redhat.com>
391 Jonathan Wakely <jwakely@redhat.com>
393 * include/std/variant (variant::variant(_Tp&&)): Constrain to remove
394 the constructor for empty variants from the candidate functions
395 during class template argument deduction.
396 * testsuite/20_util/variant/deduction.cc: New.
398 2017-07-11 Jonathan Wakely <jwakely@redhat.com>
400 * doc/xml/faq.xml: Update several old entries. Improve
402 * doc/xml/manual/intro.xml: Add anchors to each DR.
403 * doc/html/*: Regenerate.
405 2017-07-10 Jonathan Wakely <jwakely@redhat.com>
407 * testsuite/abi/pr42230.cc: Add header for std::free.
410 * include/bits/sstream.tcc (basic_stringbuf::overflow)
411 (basic_stringbuf::basic_stringbuf(const __string_type&, ios::mode))
412 (basic_stringbuf::str()): Construct new strings with an allocator.
413 * testsuite/27_io/basic_stringbuf/cons/81381.cc: New.
416 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
417 Declare basic_stringbuf to be a friend.
418 * include/bits/sstream.tcc (basic_stringbuf::overflow)
419 [_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
420 * include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
421 length to buffer length.
422 * testsuite/27_io/basic_stringstream/assign/81338.cc: New.
424 2017-07-06 Jonathan Wakely <jwakely@redhat.com>
426 * testsuite/20_util/specialized_algorithms/memory_management_tools/
428 * testsuite/22_locale/locale/cons/5.cc: Remove redundant restoration
429 of original environment and free memory.
431 * testsuite/abi/pr42230.cc: Free memory.
432 * testsuite/util/testsuite_abi.cc (demangle): Return std::string
433 instead of pointer that might need freeing.
434 * testsuite/util/testsuite_abi.h (demangle): Likewise.
435 * testsuite/util/testsuite_hooks.cc (verify_demangle): Free memory.
437 * include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add
438 deleted overload to prevent dangling references to rvalues.
439 * include/experimental/memory_resource
440 (polymorphic_allocator::construct): Do not call __use_alloc with
443 2017-06-27 Tim Shen <timshen@google.com>
446 * include/std/variant (variant::variant, variant::~variant,
447 variant::operator=): Implement triviality forwarding for four
448 special member functions.
449 * testsuite/20_util/variant/compile.cc: Tests.
451 2017-06-27 Jonathan Wakely <jwakely@redhat.com>
454 * testsuite/25_algorithms/sample/81221.cc: Disable except for
458 * include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not
460 * testsuite/25_algorithms/sample/81221.cc: New.
462 2017-06-22 Jonathan Wakely <jwakely@redhat.com>
465 * include/bits/stl_bvector.h (vector<bool>::_M_initialize_value):
466 Do not pass null pointer to memset.
468 2017-06-21 Ville Voutilainen <ville.voutilainen@gmail.com>
472 * include/std/istream:
473 (__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
474 (__do_is_convertible_to_basic_istream_impl): Likewise.
475 (__is_convertible_to_basic_istream_impl): Likewise.
476 (__is_convertible_to_basic_istream): Use the new base.
477 (__rvalue_istream_type): New.
478 (operator>>(_Istream&&, _Tp&&)): Use the new helper alias
479 for the SFINAE check, convert to the helper alias type before
480 doing the actual extraction.
481 * include/std/ostream:
482 (__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
483 (__do_is_convertible_to_basic_ostream_impl): Likewise.
484 (__is_convertible_to_basic_ostream_impl): Likewise.
485 (__is_convertible_to_basic_ostream): Use the new base.
486 (__rvalue_ostream_type): New.
487 (operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
488 for the SFINAE check, convert to the helper alias type before
489 doing the actual insertion.
490 * testsuite/27_io/rvalue_streams-2.cc: Add new tests.
492 2017-06-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
494 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
496 2017-06-21 Jonathan Wakely <jwakely@redhat.com>
499 * configure: Regenerate.
501 2017-06-20 Uros Bizjak <ubizjak@gmail.com>
503 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
505 2017-06-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
507 * testsuite/20_util/variant/index_type.cc: Allow for all ilp32 and
510 2017-06-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
512 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
513 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
514 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
515 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
516 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
517 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
519 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
520 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
523 2017-06-18 H.J. Lu <hongjiu.lu@intel.com>
526 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
528 2017-06-18 Andreas Schwab <schwab@linux-m68k.org>
531 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
533 2017-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
535 * testsuite: Remove dg-skip-if, dg-xfail-if, dg-xfail-run-if
538 2017-06-17 Jonathan Wakely <jwakely@redhat.com>
541 * testsuite/23_containers/vector/bool/80893.cc: Add { target c++11 }.
543 2017-06-16 Jonathan Wakely <jwakely@redhat.com>
545 * include/bits/shared_ptr.h (get_deleter): Add overload matching
547 * include/bits/shared_ptr_base.h (__shared_ptr): Declare new
548 get_deleter overload as a friend.
549 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: New.
551 2017-06-16 Jakub Jelinek <jakub@redhat.com>
554 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
555 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
556 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
558 2017-06-16 Jonathan Wakely <jwakely@redhat.com>
560 * include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
561 * testsuite/22_locale/conversions/buffer/2.cc: New.
564 * acinclude.m4: Bump libtool_VERSION.
565 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
566 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
567 * config/abi/pre/gnu.ver: Add wstring constructor symbols to
568 GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol
569 to new GLIBCXX_3.4.25 version.
570 * doc/xml/manual/abi.xml: Document new versions.
571 * doc/html/*: Regenerate.
572 * testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
573 constructors to ensure required symbols are exported.
574 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
575 * testsuite/util/testsuite_abi.cc: Add new version.
577 * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
579 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
581 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
583 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
584 missing return statements.
585 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
587 * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
589 * testsuite/special_functions/14_expint/pr68397.cc: Likewise.
591 2017-06-16 François Dumont <fdumont@gcc.gnu.org>
593 * include/bits/stl_bvector.h
594 (__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)):
596 (std::fill(_Bit_iterator, _Bit_iterator, bool)): Adapt.
597 (_Bvector_impl_data): New.
598 (_Bvector_impl): Inherits from latter.
599 (_Bvector_impl(_Bit_alloc_type&&)): Delete.
600 (_Bvector_impl(_Bvector_impl&&)): New, default.
601 (_Bvector_base()): Default.
602 (_Bvector_base(_Bvector_base&&)): Default.
603 (_Bvector_base::_M_move_data(_Bvector_base&&)): New.
604 (vector(vector&&, const allocator_type&)): Use latter.
605 (vector<bool>::operator=(vector&&)): Likewise.
606 (vector<bool>::vector()): Default.
607 (vector<bool>::vector(vector&&)): Default.
608 (vector<bool>::assign(_InputIterator, _InputIterator)): Use
610 (vector<bool>::assign(initializer_list<bool>)): Likewise.
611 (vector<bool>::_M_initialize_value(bool)): New.
612 (vector<bool>(size_type, const bool&, const allocator_type&)): Use
614 (vector<bool>::_M_initialize_dispatch(_Integer, _Integer, __true_type)):
616 (vector<bool>::_M_fill_assign(size_t, bool)): Likewise.
618 2017-06-15 François Dumont <fdumont@gcc.gnu.org>
620 * src/c++98/tree.cc [!_GLIBCXX_INLINE_VERSION]
621 (_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete.
623 2017-06-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
625 * testsuite: Add dg-require-effective-target pthread to -pthread
627 Remove explicit target lists from dg-do and dg-options.
629 * testsuite/30_threads/async/forced_unwind.cc: Remove explit
630 target list from dg-options.
631 * testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise.
633 * 30_threads/shared_mutex/cons/1.cc: Likewise.
634 Pass -pthread for all targets.
635 * 30_threads/shared_mutex/try_lock/1.cc: Likewise.
636 * 30_threads/shared_mutex/try_lock/2.cc: Likewise.
637 * 30_threads/shared_mutex/unlock/1.cc: Likewise.
639 * testsuite/30_threads/this_thread/57060.cc: Require c++11 via
640 dg-require-effective-target.
642 2017-06-14 Jonathan Wakely <jwakely@redhat.com>
644 * doc/xml/manual/test.xml: Correct instructions on running tests.
645 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to
646 pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
647 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
649 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise.
650 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
651 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
652 exceptions_failbit.cc: Likewise.
653 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
654 exceptions_failbit.cc: Likewise.
655 * testsuite/27_io/basic_istream/extractors_other/char/
656 exceptions_null.cc: Likewise.
657 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
658 exceptions_null.cc: Likewise.
659 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
660 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
661 * testsuite/27_io/basic_ostream/inserters_other/char/
662 exceptions_null.cc: Likewise.
663 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
664 exceptions_null.cc: Likewise.
665 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
667 2017-06-12 Pedro Alves <palves@redhat.com>
669 * doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
671 * doc/html/*: Regenerate.
673 * include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
675 (__cpp_lib_constexpr_char_traits): Uncomment.
676 (__constant_string_p, __constant_char_array_p): New.
677 (std::char_traits<char>, std::char_traits<wchar_t>): Add
678 _GLIBCXX17_CONSTEXPR on compare, length and find and use
679 __constant_string_p, __constant_char_array_p and
680 __builtin_constant_p to defer to __gnu_cxx::char_traits at compile
683 * testsuite/21_strings/char_traits/requirements/
684 constexpr_functions_c++17.cc: Uncomment
685 __cpp_lib_constexpr_char_traits tests. Uncomment
686 test_compare<char>, test_length<char>, test_find<char>,
687 test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
690 2017-06-12 François Dumont <fdumont@gcc.gnu.org>
692 * include/bits/stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator
694 * testsuite/util/testsuite_allocator.h
695 (__gnu_test::default_init_allocator<>) New.
696 * testsuite/23_containers/set/allocator/default_init.cc: New.
697 * testsuite/23_containers/map/allocator/default_init.cc: New.
699 2017-06-12 Jonathan Wakely <jwakely@redhat.com>
702 * src/c++11/thread.cc (execute_native_thread_routine): Remove
703 try-block so that exceptions propagate out of the thread and terminate
704 is called by the exception-handling runtime.
705 (execute_native_thread_routine_compat): Likewise.
706 * testsuite/30_threads/thread/cons/terminate.cc: New.
708 2017-06-09 Jonathan Wakely <jwakely@redhat.com>
710 * doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
711 * include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
713 * include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
714 (_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
715 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
717 * include/bits/forward_list.h (forward_list): Add deduction guide.
718 * include/bits/stl_deque.h (deque): Likewise.
719 * include/bits/stl_list.h (list): Likewise.
720 * include/bits/stl_vector.h (vector): Likewise.
721 * testsuite/23_containers/deque/cons/deduction.cc: New.
722 * testsuite/23_containers/forward_list/cons/deduction.cc: New.
723 * testsuite/23_containers/list/cons/deduction.cc: New.
724 * testsuite/23_containers/vector/cons/deduction.cc: New.
726 2017-06-08 Jonathan Wakely <jwakely@redhat.com>
729 * include/bits/std_function.h (function::function(function&&))
730 (function::operator=(funtion&&)): Add noexcept.
731 * testsuite/20_util/function/assign/move.cc: Check for noexcept.
732 * testsuite/20_util/function/cons/move.cc: Likewise.
734 2017-06-07 Jonathan Wakely <jwakely@redhat.com>
736 * include/bits/regex.h (basic_regex): Add deduction guide from P0433.
737 * testsuite/28_regex/basic_regex/ctors/deduction.cc: New.
740 * include/bits/regex.h (basic_regex): Adjust call to __compile_nfa
741 so iterator type is deduced.
742 * include/bits/regex_compiler.h (__compile_nfa): Reorder template
743 parameters to allow iterator type to be deduced.
744 * testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
746 * include/bits/alloc_traits.h (__is_allocator, _RequireAllocator):
747 New trait and alias for detecting Allocator-like types.
748 * include/bits/basic_string.h (basic_string): Add deduction guide
750 * include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): Add template
751 parameter with default template argument that causes substitution
752 failures for types that cannot be allocators.
753 * testsuite/21_strings/basic_string/cons/char/deduction.cc: New.
754 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: New.
756 2017-06-02 Jonathan Wakely <jwakely@redhat.com>
759 * include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
760 (__erased_hash): Remove constexpr specifier and qualify calls to
762 (__erased_dtor): Remove constexpr specifier and use _Destroy.
764 2017-06-05 Jonathan Wakely <jwakely@redhat.com>
766 * include/bits/stl_iterator_base_funcs.h
767 (__advance<_RandomAccessIterator, _Distance>): Optimize for next/prev
768 cases where incrementing or decrementing a single step.
770 * include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
771 (__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
772 specifiers as per LWG 2873 and LWG 2942.
773 * testsuite/20_util/owner_less/noexcept.cc: New.
774 * testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
776 * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
778 2017-06-03 Andreas Schwab <schwab@linux-m68k.org>
780 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
782 2017-06-03 Eric Botcazou <ebotcazou@adacore.com>
784 * src/filesystem/dir.cc (fs::_Dir::advance): Use std::exchange.
786 2017-06-02 Jonathan Wakely <jwakely@redhat.com>
789 * doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
790 * include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
791 Transform eof value to U+FFFD.
792 * testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
793 * testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
794 * testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.
796 * libsupc++/Makefile.am: Remove custom targets for files that need to
797 be compiled as C++11 or C++14.
798 * libsupc++/Makefile.in: Regenerate.
799 * libsupc++/del_ops.cc: Use pragma to disable -Wsized-deallocation
801 * libsupc++/del_opvs.cc: Likewise.
803 2017-06-02 Richard Biener <rguenther@suse.de>
804 Markus Eisenmann <meisenmann.lba@fh-salzburg.ac.at>
807 * libsupc++/eh_alloc.cc (pool::free): Keep list properly
808 sorted and add missing freelist item merging cases.
810 2017-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
812 (GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
813 Remove *-solaris* section.
814 * configure: Regenerate.
816 2017-05-31 Jonathan Wakely <jwakely@redhat.com>
819 * include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
820 null pointer dereference when size is zero.
821 * testsuite/23_containers/vector/bool/80893.cc: New.
822 * testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
823 Add non-explicit constructor from nullptr.
824 (PointerBase::derived() const): Add const-qualified overload.
826 2017-05-20 Tim Shen <timshen@google.com>
829 * include/std/variant(variant::variant): SFINAE on is_same first.
830 * testsuite/20_util/variant/any.cc: test case.
832 2017-05-24 Jonathan Wakely <jwakely@redhat.com>
834 * src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__
835 instead of fixed number of bits.
837 2017-05-24 Andreas Schwab <schwab@suse.de>
839 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
840 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
842 2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
843 Jonathan Wakely <jwakely@redhat.com>
846 * acinclude.m4: Bump libtool_VERSION.
847 * config/abi/pre/gnu.ver: Create GLIBCXX_3.4.24 with new symbol.
848 * config.h.in: Regenerate.
849 * configure: Regenerate.
850 * configure.ac: Add test for <linux/random.h>.
851 * doc/xml/manual/abi.xml: Document new library version.
852 * include/bits/random.h (random_device::entropy)
853 [_GLIBCXX_USE_RANDOM_TR1]: Add call to new _M_getentropy member.
854 (random_device::_M_getentropy): Declare.
855 * src/c++11/random.cc (random_device::_M_getentropy): Define.
856 * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.24 to known
857 versions, and make it the latest version.
859 2017-05-23 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
862 * include/bits/locale_facets.tcc (num_get::_M_extract_int): Add
863 explicit conversion to avoid signed overflow.
865 2017-05-19 Jonathan Wakely <jwakely@redhat.com>
868 * include/bits/stl_algo.h (search): Add new overload for C++17.
869 * testsuite/25_algorithms/search/searcher.cc: New.
871 2017-05-18 Jonathan Wakely <jwakely@redhat.com>
874 * include/std/functional (_Mem_fn_traits_base): Add specializations
875 for noexcept member function types.
876 * testsuite/20_util/function_objects/mem_fn/80478.cc: New test.
878 2017-05-18 Jonathan Wakely <jwakely@redhat.com>
880 * doc/xml/manual/policy_data_structures.xml: Fix typo.
881 * doc/xml/manual/test_policy_data_structures.xml: Likewise.
882 * doc/html/*: Regenerate.
884 * doc/xml/manual/abi.xml: Document latest library versions.
885 * doc/xml/manual/build_hacking.xml: Document requirement to update
886 abi.xml when bumping library versions.
887 * doc/html/*: Regenerate.
889 2017-05-17 Jonathan Wakely <jwakely@redhat.com>
891 * include/bits/refwrap.h: Fix Doxygen warning.
892 * include/bits/specfun.h: Likewise.
893 * include/bits/std_function.h: Likewise.
894 * include/bits/stl_algo.h (set_union, set_intersection)
895 (set_difference, set_symmetric_difference): Add Doxygen @param tags
896 for output iterator parameters.
897 * include/bits/stl_iterator.h (inserter): Add Doxygen @param tag for
899 * include/std/mutex (try_lock, lock): Change Mutex to Lockable in
902 2017-05-17 Ville Voutilainen <ville.voutilainen@gmail.com>
904 Implement new C++ intrinsics __is_assignable and __is_constructible.
905 * include/std/type_traits (__do_is_static_castable_impl): Remove.
906 (__is_static_castable_impl, __is_static_castable_safe): Likewise.
907 (__is_static_castable, __do_is_direct_constructible_impl): Likewise.
908 (__is_direct_constructible_impl): Likewise.
909 (__is_direct_constructible_new_safe): Likewise.
910 (__is_base_to_derived_ref, __is_lvalue_to_rvalue_ref): Likewise.
911 (__is_direct_constructible_ref_cast): Likewise.
912 (__is_direct_constructible_new, __is_direct_constructible): Likewise.
913 (__do_is_nary_constructible_impl): Likewise.
914 (__is_nary_constructible_impl, __is_nary_constructible): Likewise.
915 (__is_constructible_impl): Likewise.
916 (is_constructible): Call the intrinsic.
917 (__is_assignable_helper): Remove.
918 (is_assignable): Call the intrinsic.
919 (is_trivially_constructible): Likewise.
920 (__is_trivially_copy_constructible_impl): New.
921 (is_trivially_copy_constructible): Use it.
922 (__is_trivially_move_constructible_impl): New.
923 (is_trivially_move_constructible): Use it.
924 (is_trivially_assignable): Call the intrinsic.
925 (__is_trivially_copy_assignable_impl): New.
926 (is_trivially_copy_assignable): Use it.
927 (__is_trivially_move_assignable_impl): New.
928 (is_trivially_move_assignable): Use it.
929 (testsuite/20_util/declval/requirements/1_neg.cc): Adjust.
930 (testsuite/20_util/is_trivially_copy_assignable/value.cc):
932 (testsuite/20_util/is_trivially_copy_constructible/value.cc): Likewise.
933 (testsuite/20_util/is_trivially_move_assignable/value.cc): Likewise.
934 (testsuite/20_util/is_trivially_move_constructible/value.cc): Likewise.
935 (testsuite/20_util/make_signed/requirements/typedefs_neg.cc): Adjust.
936 (testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc):
939 2017-05-16 Jonathan Wakely <jwakely@redhat.com>
941 * testsuite/experimental/source_location/1.cc: Change expected result
942 for source_location::current() used in default member initializer.
944 * doc/xml/manual/status_cxx2017.xml: Update status table.
945 * doc/html/*: Regenerate.
946 * include/Makefile.am: Add new header.
947 * include/Makefile.in: Regenerate.
948 * include/experimental/source_location: New header implementing N4519.
949 * testsuite/experimental/source_location/1.cc: New test.
952 * include/bits/shared_ptr_base.h [!__cpp_rtti] (type_info): Declare
953 outside versioned namespace.
955 * configure: Regenerate.
957 2017-05-16 Marc Glisse <marc.glisse@inria.fr>
959 * include/std/optional (_Optional_base::_M_get): Check precondition.
960 * testsuite/20_util/optional/cons/value_neg.cc: Update line numbers.
962 2017-05-16 Jonathan Wakely <jwakely@redhat.com>
964 * doc/xml/manual/appendix_contributing.xml: Link to test docs and
965 note higher DejaGnu version requirement.
966 * doc/html/*: Regenerate.
968 * doc/xml/manual/appendix_contributing.xml: Link to the list of bad
970 * doc/html/*: Regenerate.
972 2017-05-15 Jonathan Wakely <jwakely@redhat.com>
975 * include/bits/node_handle.h (_Node_insert_return): Reorder members.
976 (tuple_size, tuple_element): Remove partial specializations.
977 * include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
978 const_iterator for std::set.
979 * testsuite/23_containers/map/modifiers/extract.cc: New.
980 * testsuite/23_containers/set/modifiers/extract.cc: New.
981 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
982 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
984 2017-05-12 Jonathan Wakely <jwakely@redhat.com>
987 * include/std/utility (tuple_size<cv T>): Only define partial
988 specializations when tuple_size<T>::value is valid.
989 * testsuite/20_util/tuple/78939.cc: New.
990 * testsuite/20_util/tuple/cv_tuple_size_neg.cc: New.
992 2017-05-11 François Dumont <fdumont@gcc.gnu.org>
994 * include/bits/stl_tree.h [_GLIBCXX_INLINE_VERSION]
995 (_Rb_tree_impl<>): Remove _Is_pod_comparator
998 * include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
999 (__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
1000 (__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
1002 (__gnu_debug::_Error_formatter::_M_format_word): Remove.
1003 (__gnu_debug::_Error_formatter::_M_print_word): Remove.
1004 (__gnu_debug::_Error_formatter::_M_print_string): Remove.
1005 (__gnu_debug::_Error_formatter::_M_get_max_length): Remove.
1006 * src/c++11/debug.cc: Adapt.
1007 * config/abi/pre/gnu-versioned-namespace.ver: Adapt.
1009 2017-05-11 Jonathan Wakely <jwakely@redhat.com>
1011 * doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
1012 * doc/xml/manual/mt_allocator.xml: Likewise.
1013 * doc/html/*: Regenerate.
1016 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Define
1017 function to get unique fake std::type_info reference.
1018 (_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Compare to
1019 _S_ti() fake reference.
1020 (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Share
1021 single implementation with or without RTTI enable.
1022 [!__cpp_rtti]: Pass fake reference to _M_get_deleter.
1023 * testsuite/20_util/shared_ptr/creation/alloc.cc: Change expected
1024 allocation and deallocation counts.
1025 * testsuite/20_util/shared_ptr/creation/single_allocation.cc: New.
1026 * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
1029 2017-05-10 François Dumont <fdumont@gcc.gnu.org>
1031 Bump version namespace.
1032 * config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
1033 from __7 to __8. Bump GLIBCXX_7.0 to GLIBCXX_8.0.
1034 * acinclude.m4 (libtool_VERSION): Bump to 8:0:0.
1035 * include/bits/c++config: Adapt.
1036 * include/bits/regex.h: Adapt.
1037 * include/experimental/bits/fs_fwd.h: Adapt.
1038 * include/experimental/bits/lfts_config.h: Adapt.
1039 * include/std/variant: Adapt.
1040 * python/libstdcxx/v6/printers.py: Adapt.
1041 * testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
1043 * include/bits/stl_algobase.h (std::__iter_swap<false>): Remove
1044 _GLIBCXX_MOVE usage.
1046 2017-05-09 Jason Merrill <jason@redhat.com>
1048 * testsuite/24_iterators/container_access.cc (test03): Make il3 static.
1050 2017-05-08 Jonathan Wakely <jwakely@redhat.com>
1052 * include/std/optional: Use a separate static_assert per condition.
1053 * testsuite/20_util/optional/cons/value_neg.cc: Update dg-error line
1056 * doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
1057 * doc/html/*: Regenerate.
1059 2017-05-02 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
1062 * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
1064 2017-04-29 François Dumont <fdumont@gcc.gnu.org>
1066 * testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
1069 2017-04-28 Jonathan Wakely <jwakely@redhat.com>
1072 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
1073 assertions to ensure type is destructible.
1074 (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
1075 * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
1076 Move to stl_construct.h.
1077 * testsuite/20_util/specialized_algorithms/memory_management_tools/
1078 destroy_neg.cc: New test.
1079 * testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
1081 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
1082 superfluous "" in dg-error.
1084 2017-04-28 Tom de Vries <tom@codesourcery.com>
1086 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
1087 superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
1089 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
1091 * include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
1092 (PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
1093 * testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
1096 2017-04-26 Jonathan Wakely <jwakely@redhat.com>
1098 * testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
1099 comment. Ensure first test works because allocator type propagates and
1100 not because is_always_equal is true.
1101 * testsuite/23_containers/vector/52591.cc: Likewise. Restore original
1102 testcase that instantiates the move-assignment operator.
1104 2017-04-24 Jonathan Wakely <jwakely@redhat.com>
1107 * include/bits/random.tcc (gamma_distribution::operator()): Fix magic
1108 number used in loop condition.
1111 * include/bits/refwrap.h (ref, cref): Qualify calls.
1112 * testsuite/20_util/reference_wrapper/80504.cc: New test.
1115 * include/experimental/optional (optional::swap): Fix exception
1118 2017-04-21 Jonathan Wakely <jwakely@redhat.com>
1121 * include/std/future (_State_baseV2::_Setter::operator()): Remove
1122 _S_check calls that are done after the pointer to the shared state is
1123 already dereferenced.
1124 (_State_baseV2::_Setter<_Res, void>): Define specialization for void
1125 as partial specialization so it can be defined within the definition
1127 (_State_baseV2::__setter): Call _S_check.
1128 (_State_baseV2::__setter(promise<void>*)): Add overload for use by
1129 promise<void>::set_value and promise<void>::set_value_at_thread_exit.
1130 (promise<T>, promise<T&>, promise<void>): Make _State a friend.
1131 (_State_baseV2::_Setter<void, void>): Remove explicit specialization.
1132 (promise<void>::set_value, promise<void>::set_value_at_thread_exit):
1133 Use new __setter overload.
1134 * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
1135 * testsuite/30_threads/promise/members/set_exception.cc: Test
1136 promise<T&> and promise<void> specializations.
1137 * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
1138 Test for no_state error condition.
1139 * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
1141 * include/backward/auto_ptr.h: Ignore deprecated warnings from use
1143 * include/bits/shared_ptr.h: Likewise.
1144 * include/bits/shared_ptr_base.h: Likewise.
1145 * include/bits/unique_ptr.h: Likewise.
1146 * libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
1148 * libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
1149 * libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
1151 * libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
1154 2017-04-20 Edward Smith-Rowland <3dw4rd@verizon.net>
1156 PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
1157 * include/tr1/exp_integral.tcc: Increase iteration limits.
1158 * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
1159 pr68397.cc: New test.
1160 * testsuite/special_functions/14_expint/pr68397.cc: New test.
1162 2017-04-20 Jonathan Wakely <jwakely@redhat.com>
1165 * include/std/atomic [!_GLIBCXX_USE_C99_STDINT_TR1] (atomic_int8_t)
1166 (atomic_uint8_t, atomic_int16_t, atomic_uint16_t, atomic_int32_t,
1167 (atomic_uint32_t, atomic_int64_t, atomic_uint64_t)
1168 (atomic_int_least8_t, atomic_uint_least8_t, atomic_int_least16_t)
1169 (atomic_uint_least16_t, atomic_int_least32_t, atomic_uint_least32_t)
1170 (atomic_int_least64_t, atomic_uint_least64_t, atomic_int_fast8_t)
1171 (atomic_uint_fast8_t, atomic_int_fast16_t, atomic_uint_fast16_t)
1172 (atomic_int_fast32_t, atomic_uint_fast32_t, atomic_int_fast64_t)
1173 (atomic_uint_fast64_t, atomic_intmax_t, atomic_uintmax_t): Don't
1176 2017-04-19 Jonathan Wakely <jwakely@redhat.com>
1178 * doc/xml/manual/abi.xml: Rephrase one of the references to the
1180 * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
1181 * doc/html/*: Regenerate.
1183 * libsupc++/new: Update comment on #endif directive.
1186 * include/experimental/bits/fs_dir.h (directory_iterator)
1187 (recursive_directory_iterator): Remove noexcept from defaulted
1191 * include/std/type_traits (is_aggregate): Change __has_builtin checks.
1192 * libsupc++/new (launder): Likewise.
1194 2017-04-18 Jonathan Wakely <jwakely@redhat.com>
1196 * include/std/functional (default_searcher, __boyer_moore_array_base)
1197 (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
1198 (boyer_moore_horspool_searcher): Remove redundant namespace
1200 (default_searcher::operator()): Construct return value early and
1201 advance second member in-place.
1202 (boyer_moore_horspool_searcher::operator()): Increment random access
1203 iterator directly instead of using std::next.
1204 (boyer_moore_searcher::operator()): Fix return value.
1205 * testsuite/20_util/function_objects/searchers.cc: Check both parts
1208 2017-04-12 Gerald Pfeifer <gerald@pfeifer.com>
1210 * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
1211 * doc/xml/manual/abi.xml. Ditto (thrice).
1213 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
1215 * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
1216 * doc/html/*: Regenerate.
1218 * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
1219 that no longer fail.
1221 * include/bits/ios_base.h: Correct comment.
1222 * testsuite/util/testsuite_hooks.h: Likewise.
1224 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1225 * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
1226 directories for debug, parallel and profile headers.
1227 * doc/html/*: Regenerate.
1229 * include/bits/char_traits.h (__gnu_cxx::char_traits): Add
1230 _GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
1231 (std::char_traits<char>, std::char_traits<wchar_t>): Add
1232 _GLIBCXX17_CONSTEXPR on assign.
1233 (std::char_traits<char16_t>, std::char_traits<char32_t>): Add
1234 _GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
1235 * testsuite/21_strings/char_traits/requirements/
1236 constexpr_functions_c++17.cc: New test.
1238 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
1241 * include/bits/stl_pair.h (__nonesuch_no_braces): New.
1242 (operator=(typename conditional<
1243 __and_<is_copy_assignable<_T1>,
1244 is_copy_assignable<_T2>>::value,
1245 const pair&, const __nonesuch&>::type)): Change __nonesuch
1246 to __nonesuch_no_braces.
1247 (operator=(typename conditional<
1248 __not_<__and_<is_copy_assignable<_T1>,
1249 is_copy_assignable<_T2>>>::value,
1250 const pair&, const __nonesuch&>::type)): Likewise.
1251 (operator=(typename conditional<
1252 __and_<is_move_assignable<_T1>,
1253 is_move_assignable<_T2>>::value,
1254 pair&&, __nonesuch&&>::type)): Likewise.
1255 * testsuite/20_util/pair/79141.cc: New.
1257 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
1259 Implement std::is_aggregate.
1260 * include/std/type_traits (is_aggregate, is_aggregate_v): New.
1261 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
1263 * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
1264 * testsuite/20_util/is_aggregate/value.cc: Likewise.
1266 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1268 Adjust optional's pretty printer for LWG 2900.
1269 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
1270 Look at the nested payload in case of non-experimental optional.
1272 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1274 Implement LWG 2900, The copy and move constructors
1275 of optional are not constexpr.
1276 * include/std/optional (_Optional_payload): New.
1277 (_Optional_base): Remove the bool parameter.
1278 (_Optional_base<_Tp, false>): Remove.
1279 (_Optional_base()): Adjust.
1280 (_Optional_base(nullopt_t)): Likewise.
1281 (_Optional_base(in_place_t, _Args&&...)): Likewise.
1282 (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
1284 (_Optional_base(const _Optional_base&)): Likewise.
1285 (_Optional_base(_Optional_base&&)): Likewise.
1286 (operator=(const _Optional_base&)): Likewise.
1287 (operator=(_Optional_base&&)): Likewise.
1288 (~_Optional_base()): Remove.
1289 (_M_is_engaged()): Adjust.
1290 (_M_get()): Likewise.
1291 (_M_construct(_Args&&...)): Likewise.
1292 (_M_destruct()): Likewise.
1293 (_M_reset()): Likewise.
1294 (_Optional_base::_Empty_byte): Remove.
1295 (_Optional_base::_M_empty): Remove.
1296 (_Optional_base::_M_payload): Adjust.
1297 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1298 * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
1300 2017-03-28 Jonathan Wakely <jwakely@redhat.com>
1303 * include/bits/random.tcc (generate_canonical): Use std::nextafter
1304 or numeric_limits::epsilon() to reduce out-of-range values.
1305 * testsuite/26_numerics/random/uniform_real_distribution/operators/
1306 64351.cc: Verify complexity requirement is met.
1308 * doc/xml/manual/abi.xml: Add xml:id anchor.
1309 * doc/xml/manual/using.xml (manual.intro.using.macros): Document
1310 _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
1311 (concurrency.io.structure): Add markup.
1312 * doc/html/*: Regenerate.
1315 * include/bits/shared_ptr_base.h
1316 (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
1317 non-const and then use remove_cv to get unqualified type.
1318 * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
1319 cast away constness on object created const.
1320 * testsuite/20_util/shared_ptr/cons/80229.cc: New test.
1322 2017-03-26 Markus Trippelsdorf <markus@trippelsdorf.de>
1325 * include/bits/stl_tree.h:
1326 (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
1328 2017-03-23 Jonathan Wakely <jwakely@redhat.com>
1330 * testsuite/23_containers/array/tuple_interface/
1331 tuple_element_debug_neg.cc: Adjust dg-error.
1332 * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
1333 define a valid strict weak ordering.
1334 * testsuite/23_containers/priority_queue/67085.cc: Disable test for
1335 Debug Mode, due to debug checks making extra copies of predicate.
1336 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
1339 * doc/xml/faq.xml: Add link.
1340 * doc/xml/manual/backwards_compatibility.xml: Remove outdated
1341 information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
1342 * doc/xml/manual/io.xml: Update broken link.
1343 * doc/html/*: Regenerate.
1345 2017-03-23 Daniel Kruegler <daniel.kruegler@gmail.com>
1347 Implement LWG 2686, Why is std::hash specialized for error_code,
1348 but not error_condition?
1349 * include/std/system_error (hash<error_condition>): Define for C++17.
1350 * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
1351 Instantiate test for error_condition.
1352 * testsuite/20_util/hash/requirements/explicit_instantiation.cc
1353 (hash<error_condition>): Instantiate hash<error_condition>.
1355 * include/bits/c++config (_GLIBCXX17_INLINE): Define.
1356 * include/bits/regex_constants.h (All std::regex_constants constants):
1357 Add _GLIBCXX17_INLINE as per P0607R0.
1358 * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
1360 * include/bits/stl_pair.h (piecewise_construct): Likewise.
1361 * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
1362 (__is_uses_allocator_constructible_v)
1363 (__is_nothrow_uses_allocator_constructible_v): Likewise.
1364 * include/std/chrono (treat_as_floating_point_v): Likewise.
1365 * include/std/functional (is_bind_expression_v, is_placeholder_v):
1367 * include/std/optional (nullopt): Likewise.
1368 * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
1369 ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
1370 * include/std/system_error (is_error_code_enum_v)
1371 (is_error_condition_enum_v): Likewise.
1372 * include/std/tuple (tuple_size_v, ignore): Likewise.
1373 (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
1374 constexpr as per LWG 2933.
1375 * include/std/type_traits (All variable templates): Add
1376 _GLIBCXX17_INLINE as per P0607R0.
1377 * include/std/variant (variant_size_v, variant_npos, __index_of_v)
1378 (__tuple_count_v, __exactly_once): Likewise.
1379 * testsuite/18_support/headers/new/synopsis.cc
1380 (hardware_destructive_interference_size)
1381 (hardware_constructive_interference_size): Likewise for commented-out
1383 * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
1384 test function for constexpr std::ignore (LWG 2773).
1385 * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
1388 2017-03-22 Jonathan Wakely <jwakely@redhat.com>
1390 * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
1392 * include/bits/std_function.h (function): Likewise.
1393 * include/bits/stl_pair.h (pair): Likewise.
1394 * include/debug/array (__gnu_debug::array): Likewise.
1395 * include/std/array (array): Likewise.
1396 * include/std/functional (make_default_searcher)
1397 (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
1398 Remove generator functions.
1399 * include/std/tuple (tuple): Add deduction guides.
1400 * include/std/valarray (valarray): Likewise.
1401 * testsuite/20_util/function_objects/searchers.cc: Adjust to use
1402 class template argument deduction instead of generator functions.
1403 * testsuite/20_util/function/cons/deduction.cc: New test.
1404 * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
1405 * testsuite/20_util/optional/cons/deduction.cc: ... here.
1406 * testsuite/20_util/pair/cons/deduction.cc: New test.
1407 * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
1408 * testsuite/20_util/tuple/cons/deduction.cc: New test.
1409 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
1410 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
1411 * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
1412 * testsuite/23_containers/array/cons/deduction.cc: New test.
1413 * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
1414 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
1416 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
1417 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
1419 * testsuite/26_numerics/valarray/deduction.cc: New test.
1420 * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
1421 * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
1422 * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
1424 2017-03-20 François Dumont <fdumont@gcc.gnu.org>
1426 * include/bits/stl_deque.h (deque): Access allocator value_type only if
1427 concept checks are enabled.
1428 * include/bits/stl_stack.h (stack): Likewise.
1429 * include/bits/stl_vector.h (vector): Likewise.
1430 * include/bits/stl_list.h (list): Likewise and check
1431 _SGIAssignableConcept only in C++03.
1432 * include/bits/stl_map.h (map): Likewise.
1433 * include/bits/stl_set.h (set): Likewise.
1434 * include/bits/stl_multimap.h (multimap): Likewise.
1435 * include/bits/stl_multiset.h (multiset): Likewise.
1436 * include/bits/stl_queue.h (queue, priority_queue): Likewise.
1438 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
1440 * doc/xml/manual/appendix_contributing.xml: Convert link to
1442 Update link to the C++ standard at ansi.org.
1444 * doc/xml/faq.xml: Remove information redundant with the above;
1445 instead add a reference.
1447 2017-03-17 Jonathan Wakely <jwakely@redhat.com>
1449 * src/c++11/codecvt.cc (range): Add non-type template parameter and
1450 define oerloaded operators for reading and writing code units.
1451 (range<Elem, false>): Define partial specialization for accessing
1452 wide characters in potentially unaligned byte ranges.
1453 (ucs2_span(const char16_t*, const char16_t*, ...))
1454 (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
1455 to range<const char16_t, false> in order to avoid unaligned reads.
1456 (__codecvt_utf16_base<char16_t>::do_out)
1457 (__codecvt_utf16_base<char32_t>::do_out)
1458 (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
1459 unaligned data to avoid unaligned writes.
1460 (__codecvt_utf16_base<char16_t>::do_in)
1461 (__codecvt_utf16_base<char32_t>::do_in)
1462 (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
1463 error if there are unprocessable trailing bytes.
1464 (__codecvt_utf16_base<char16_t>::do_length)
1465 (__codecvt_utf16_base<char32_t>::do_length)
1466 (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
1467 range<const char16_t, false> to span functions.
1468 * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
1470 2017-03-16 Jonathan Wakely <jwakely@redhat.com>
1473 * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
1476 * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
1477 (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
1478 char16_t to work with UTF-16 instead of UTF-8.
1479 * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
1481 * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
1482 (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
1483 (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
1484 (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
1485 (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
1486 (__codecvt_utf8_utf16_base<char32_t>)
1487 (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
1488 do_max_length() return values.
1489 * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
1490 * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
1491 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
1494 * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
1496 * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
1497 for manipulating codecvt_mode values.
1498 (read_utf16_bom): Compare input to BOM constants instead of integral
1499 constants that depend on endianness. Take mode parameter by
1500 reference and adjust it, to distinguish between no BOM present and
1501 UTF-16BE BOM present.
1502 (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
1503 (surrogates): New enumeration type.
1504 (utf16_in, utf16_out): Add surrogates parameter to choose between
1505 UTF-16 and UCS2 behaviour.
1506 (utf16_span, ucs2_span): Use std::min not std::max.
1507 (ucs2_out): Use std::min not std::max. Disallow surrogate pairs.
1508 (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
1509 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
1510 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
1513 * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
1514 as a surrogate pair.
1515 (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
1516 for internal representation.
1517 (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
1518 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
1521 * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
1522 (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
1523 invalid instantiations using function types for _Compare argument.
1524 * testsuite/25_algorithms/make_heap/80064.cc: New test.
1527 * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
1528 for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
1530 2017-03-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1532 Implement LWG 2857, {variant,optional,any}::emplace should
1533 return the constructed value.
1534 * include/std/any (emplace(_Args&&...)): Change the return type and
1535 return a reference to the constructed value.
1536 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1537 * include/std/optional (emplace(_Args&&...)): Likewise.
1538 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1539 * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
1540 (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
1541 (emplace<_Np>(_Args&&...)): Likewise.
1542 (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
1543 * testsuite/20_util/any/assign/emplace.cc: Add tests for
1544 checking the return value of emplace.
1545 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1546 * testsuite/20_util/optional/assignment/6.cc: Add tests for
1547 checking the return value of emplace.
1548 * testsuite/20_util/variant/run.cc: Likewise.
1550 2017-03-15 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
1553 * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
1555 (push_heap): Remove the wrong checking using is_heap.
1556 (make_heap): Remove the assertion using is_heap.
1557 * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
1559 (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
1562 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
1565 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
1567 * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
1570 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
1572 * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
1574 * config.h.in: Regenerate.
1575 * configure: Regenerate.
1576 * doc/Makefile.in: Regenerate.
1578 2017-03-14 Jonathan Wakely <jwakely@redhat.com>
1581 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1582 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
1583 with a constrained template.
1584 [!_GLIBCXX_USE_CXX11_ABI]
1585 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
1586 * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
1587 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
1589 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1592 * include/bits/list.tcc (merge(list&&)): Use const for the size_t
1594 (merge(list&&, _StrictWeakOrdering)): Likewise.
1595 * testsuite/23_containers/list/operations/80034.cc: New.
1597 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1599 Implement LWG 2806, Base class of bad_optional_access.
1600 * include/std/optional (bad_optional_access):
1601 Derive from std::exception.
1602 (bad_optional_access::bad_optional_access): Adjust.
1603 (bad_optional_access::what): New.
1604 (__throw_bad_optional_access(const char*)):
1605 Remove the parameter and adjust calls.
1606 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1607 * testsuite/20_util/optional/typedefs.cc: Likewise.
1609 2017-03-12 Ville Voutilainen <ville.voutilainen@gmail.com>
1611 Implement LWG 2934, optional<const T> doesn't compare with T.
1612 * include/std/optional
1613 (operator==(const optional<_Tp>&, const optional<_Tp>&)):
1614 Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
1615 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
1616 Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
1617 (operator<(const optional<_Tp>&, const optional<_Tp>&)):
1618 Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
1619 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
1620 Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
1621 (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
1622 Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
1623 (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
1624 Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
1625 (operator==(const optional<_Tp>&, const _Tp&)):
1626 Turn into operator==(const optional<_Tp>&, const _Up&).
1627 (operator==(const _Tp&, const optional<_Tp>&)):
1628 Turn into operator==(const _Up&, const optional<_Tp>&).
1629 (operator!=(const optional<_Tp>&, const _Tp&)):
1630 Turn into operator!=(const optional<_Tp>&, const _Up&).
1631 (operator!=(const _Tp&, const optional<_Tp>&)):
1632 Turn into operator!=(const _Up&, const optional<_Tp>&).
1633 (operator<(const optional<_Tp>&, const _Tp&)):
1634 Turn into operator<(const optional<_Tp>&, const _Up&).
1635 (operator<(const _Tp&, const optional<_Tp>&)):
1636 Turn into operator<(const _Up&, const optional<_Tp>&).
1637 (operator>(const optional<_Tp>&, const _Tp&)):
1638 Turn into operator>(const optional<_Tp>&, const _Up&).
1639 (operator>(const _Tp&, const optional<_Tp>&)):
1640 Turn into operator>(const _Up&, const optional<_Tp>&).
1641 (operator<=(const optional<_Tp>&, const _Tp&)):
1642 Turn into operator<=(const optional<_Tp>&, const _Up&).
1643 (operator<=(const _Tp&, const optional<_Tp>&)):
1644 Turn into operator<=(const _Up&, const optional<_Tp>&).
1645 (operator>=(const optional<_Tp>&, const _Tp&)):
1646 Turn into operator>=(const optional<_Tp>&, const _Up&).
1647 (operator>=(const _Tp&, const optional<_Tp>&)):
1648 Turn into operator>=(const _Up&, const optional<_Tp>&).
1649 * testsuite/20_util/optional/relops/7.cc: New.
1651 2017-03-10 Jonathan Wakely <jwakely@redhat.com>
1653 * testsuite/17_intro/names.cc: Undefine macros that clash with
1654 identifiers in AIX system headers.
1656 * include/bits/invoke.h (__invoke): Use __invoke_result instead of
1657 result_of, and __is_nothrow_invocable instead of
1658 __is_nothrow_callable.
1659 * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
1660 instead of __is_callable.
1661 * include/std/functional (invoke): use invoke_result_t instead of
1662 result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
1663 (_Not_fn): Use __invoke_result instead of result_of.
1664 * include/std/type_traits (__result_of_memobj, __result_of_memfun):
1665 Remove partial specializations for reference_wrapper types.
1666 (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
1667 (__invoke_result): Define replacement for result_of and then use it to
1669 (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
1670 with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
1672 (invoke_result, invoke_result_t): Define for C++17.
1673 (is_callable, is_nothrow_callable): Replace with is_invocable,
1674 is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
1675 (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
1676 is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
1677 * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
1678 instead of is_nothrow_callable_v.
1679 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1681 * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
1682 instead of is_callable.
1683 * testsuite/20_util/is_callable/*: Rename directory and adjust tests
1685 * testsuite/20_util/is_nothrow_callable/*: Likewise.
1686 * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
1688 * testsuite/20_util/variant/hash.cc: Likewise.
1690 2017-03-10 George Lander <george.lander@arm.com>
1692 * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
1693 _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
1694 * configure: Regenerate.
1696 2017-03-09 Jonathan Wakely <jwakely@redhat.com>
1698 * include/std/functional (_Not_fn): Define macro to simplify
1699 repetitive function definitions.
1701 * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
1702 * include/c_global/cstddef (std::byte): Define for C++17.
1703 * testsuite/18_support/byte/global_neg.cc: New test.
1704 * testsuite/18_support/byte/ops.cc: New test.
1705 * testsuite/18_support/byte/requirements.cc: New test.
1707 2017-03-05 Jonathan Wakely <jwakely@redhat.com>
1709 * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
1710 * doc/html/*: Regenerate.
1711 * include/std/mutex (scoped_lock): Implement new C++17 template.
1712 * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
1713 * testsuite/30_threads/scoped_lock/requirements/
1714 explicit_instantiation.cc: New test.
1715 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
1717 2017-03-02 Gerald Pfeifer <gerald@pfeifer.com>
1718 François Dumont <frs.dumont@gmail.com>
1719 Jonathan Wakely <jwakely@redhat.com>
1721 * doc/xml/manual/debug_mode.xml: Update and simplify note
1722 on link- and run-time coexistence.
1724 2017-03-02 Jonathan Wakely <jwakely@redhat.com>
1726 * testsuite/17_intro/headers/names.cc: Rename to ...
1727 * testsuite/17_intro/names.cc: ... here.
1730 * include/bits/hashtable_policy.h (__clp2): Use reserved names for
1731 parameters and local variables.
1732 * include/bits/ios_base.h (make_error_code, make_error_condition):
1734 * include/bits/list.tcc (list::sort): Likewise.
1735 * include/bits/mask_array.h (mask_array): Likewise.
1736 * include/bits/regex.h (regex_token_iterator): Likewise.
1737 * include/bits/slice_array.h (slice_array): Likewise.
1738 * include/bits/stl_algo.h (__sample): Likewise.
1739 * include/std/memory (undeclare_no_pointers): Likewise.
1740 * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
1742 * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
1743 * testsuite/17_intro/headers/names.cc: New test.
1746 * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
1747 result_of that loses top-level cv-qualifiers.
1748 * testsuite/20_util/bind/79798.cc: New test.
1750 2017-03-01 Gerald Pfeifer <gerald@pfeifer.com>
1752 * doc/xml/manual/documentation_hacking.xml: Tweak link to
1755 2017-02-23 Jonathan Wakely <jwakely@redhat.com>
1757 * include/experimental/iterator: Include <iterator>.
1758 * testsuite/experimental/iterator/requirements.cc: Check for contents
1761 2017-02-19 Dinka Ranns <dinka.ranns@googlemail.com>
1763 C++17 GB50 resolution
1764 * include/std/chrono (duration::operator++()): Add
1765 _GLIBCXX17_CONSTEXPR.
1766 (duration::operator++(int)): Likewise.
1767 (duration::operator--()): Likewise.
1768 (duration::operator--(int)): Likewise.
1769 (duration::operator+=(const duration&)): Likewise.
1770 (duration::operator-=(const duration&)): Likewise.
1771 (duration::operator*=(const rep&)): Likewise.
1772 (duration::operator/=(const rep&)): Likewise.
1773 (duration::operator%=(const rep&)): Likewise.
1774 (duration::operator%=(const duration&)): Likewise.
1775 (time_point::operator+=(const duration&)): Likewise.
1776 (time_point::operator-=(const duration&)): Likewise.
1777 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
1778 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
1779 * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
1781 2017-02-19 Gerald Pfeifer <gerald@pfeifer.com>
1783 * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
1785 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
1787 * doc/xml/manual/io.xml: Update link to groups.google.com.
1788 Tweak link description.
1790 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
1792 * doc/xml/manual/profile_mode.xml: Fix link.
1794 2017-02-16 Gerald Pfeifer <gerald@pfeifer.com>
1796 * doc/xml/manual/policy_data_structures.xml: Simplify and
1797 standardize references to boost.org.
1798 * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
1799 * doc/xml/manual/shared_ptr.xml: Ditto.
1801 2017-02-16 Jonathan Wakely <jwakely@redhat.com>
1804 * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
1805 written to buffer, not length remaining in buffer.
1807 2017-02-15 Tim Shen <timshen@google.com>
1810 * include/std/variant (operator<(), operator>(), operator<=(),
1811 operator>=(), operator==(), operator!=()): Implement P0393R3.
1812 * testsuite/20_util/variant/compile.cc: Adjust tests.
1813 * testsuite/20_util/variant/run.cc: Adjust tests.
1815 2017-02-15 Tim Shen <timshen@google.com>
1818 * include/std/variant (visit()): Forward variant types to the return
1819 type detection code.
1820 * testsuite/20_util/variant/compile.cc: Add test cases.
1822 2017-02-13 H.J. Lu <hongjiu.lu@intel.com>
1825 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
1827 2017-02-13 Jakub Jelinek <jakub@redhat.com>
1830 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1831 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1832 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
1833 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1834 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
1835 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
1836 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
1837 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
1838 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1840 2017-02-13 Jonathan Wakely <jwakely@redhat.com>
1843 * include/std/future (__future_base::_Task_state::_M_run)
1844 (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
1845 result_of expressions.
1846 * testsuite/30_threads/packaged_task/79486.cc: New.
1848 2017-02-11 Jonathan Wakely <jwakely@redhat.com>
1851 * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
1852 (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
1853 __is_callable check.
1854 * testsuite/20_util/shared_ptr/cons/79467.cc: New.
1856 * include/bits/atomic_base.h: Re-indent.
1858 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
1860 * doc/xml/manual/profile_mode.xml: Update a paper reference.
1862 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
1864 * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
1866 2017-02-08 Jonathan Wakely <jwakely@redhat.com>
1868 * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
1870 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
1871 broken links to texts that are no longer online.
1872 * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
1874 * doc/xml/manual/using.xml: Update links to memory model information.
1875 * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
1876 Standard-Library Exception Safety".
1877 * doc/html/*: Regenerate.
1879 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
1881 * doc/xml/manual/profile_mode.xml: Unbreak link to
1882 "Optimizing Sorting with Machine Learning Algorithms".
1884 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
1886 * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
1888 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
1890 * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
1893 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
1895 * doc/html/ext/lwg-active.html: Remove.
1896 * doc/html/ext/lwg-closed.html: Ditto.
1897 * doc/html/ext/lwg-defects.html: Ditto.
1899 * doc/Makefile.am (xml_extradir): Remove.
1901 (stamp-html-docbook-lwg): Remove recipe...
1902 (stamp-html-docbook-data): ...and its use here.
1903 * doc/Makefile.in: Regenerate.
1905 * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
1906 the relationship to the upstream working group.
1907 Replace a local link to ../ext/lwg-active.html by the upstream one.
1908 Replace all reference to ../ext/lwg-defects.html by a new entity
1909 &DR; which refers to the upstream address.
1911 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
1913 * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
1915 2017-02-06 Jonathan Wakely <jwakely@redhat.com>
1918 * testsuite/20_util/duration/literals/range.cc: Prune extra output
1921 2017-02-06 Gerald Pfeifer <gerald@pfeifer.com>
1923 * doc/xml/manual/documentation_hacking.xml: Update URL of the
1924 DocBook Element Reference. Use that term as link description
1925 instead of "online".
1926 epubcheck has moved to GitHub.
1927 Remove obsolete link to DocBook Publishing Tools.
1929 2017-02-03 Jonathan Wakely <jwakely@redhat.com>
1932 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
1933 so new ios::failure can be caught even when old ABI is the default.
1934 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
1935 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
1936 exceptions_failbit.cc: Likewise.
1937 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
1938 exceptions_failbit.cc: Likewise.
1939 * testsuite/27_io/basic_istream/extractors_other/char/
1940 exceptions_null.cc: Likewise.
1941 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
1942 exceptions_null.cc: Likewise.
1943 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
1944 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
1945 * testsuite/27_io/basic_ostream/inserters_other/char/
1946 exceptions_null.cc: Likewise.
1947 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
1948 exceptions_null.cc: Likewise.
1949 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
1952 * src/c++11/Makefile.am: Add new files.
1953 * src/c++11/Makefile.in: Regenerate.
1954 * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
1955 (operator<<, operator>>, getline): Move explicit instantiations to ...
1956 * src/c++11/cow-string-io-inst.cc: ... new file.
1957 * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
1958 (operator<<, operator>>, getline): Move explicit instantiations to ...
1959 * src/c++11/cow-wstring-io-inst.cc: ... new file.
1960 * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
1961 (__throw_future_error, __throw_bad_function_call):
1962 (__throw_regex_error): Move functions for C++11 exceptions to the
1963 files that define the exception types.
1964 * src/c++11/functional.cc (__throw_bad_function_call): Move here.
1965 * src/c++11/future.cc (__throw_future_error): Likewise.
1966 * src/c++11/ios.cc (__throw_ios_failure): Likewise.
1967 * src/c++11/regex.cc (__throw_regex_error): Likewise.
1968 * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
1969 representation directly instead of calling __int_to_char.
1970 * src/c++11/sso_string.cc (__sso_string): New file for definition
1971 of __sso_string type.
1972 * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
1973 explicit instantiations of narrow string I/O functions.
1974 * src/c++11/system_error.cc (__throw_system_error): Move here.
1975 (__sso_string): Move to new file.
1976 * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
1977 explicit instantiations of wide string I/O functions.
1978 * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
1979 (operator>>, getline): Remove explicit instantiations from here.
1981 2017-02-02 H.J. Lu <hongjiu.lu@intel.com>
1983 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
1985 2017-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1987 * configure.host: Separate Solaris/SPARC and x86 baselines.
1988 * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
1989 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
1990 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
1991 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
1993 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
1994 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
1995 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
1996 * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
1997 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
1998 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
1999 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
2001 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
2002 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
2003 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
2005 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
2006 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
2007 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
2008 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
2009 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
2010 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
2012 2017-02-01 Jonathan Wakely <jwakely@redhat.com>
2015 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
2017 (_Iter_comp_to_iter): Likewise.
2018 * testsuite/25_algorithms/search/78346.cc: New test.
2021 * config/abi/pre/gnu.ver: Remove recently added symbols.
2022 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2023 (basic_string::_M_copy_assign): Remove.
2024 (basic_string::operator=(const basic_string&)): Don't dispatch to
2025 _M_copy_assign. If source object is small just deallocate, otherwise
2026 perform new allocation before making any changes.
2027 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
2028 (basic_string::_M_copy_assign(const basic_string&, true_type)):
2030 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2031 Test cases where the allocators are equal or the string is small.
2032 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2035 2017-01-30 Ville Voutilainen <ville.voutilainen@gmail.com>
2037 Implement LWG 2825, LWG 2756 breaks class template argument
2038 deduction for optional.
2039 * include/std/optional: Add a deduction guide.
2040 * testsuite/20_util/optional/cons/deduction_guide.cc: New.
2042 2017-01-27 Jonathan Wakely <jwakely@redhat.com>
2045 * config/abi/pre/gnu.ver: Add new symbols.
2046 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2047 (basic_string::_M_copy_assign): New overloaded functions to perform
2049 (basic_string::operator=(const basic_string&)): Dispatch to
2051 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
2052 (basic_string::_M_copy_assign(const basic_string&, true_type)):
2053 Define, performing rollback on exception.
2054 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2055 Test exception-safety guarantee.
2056 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2058 * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
2061 2017-01-26 Jonathan Wakely <jwakely@redhat.com>
2064 * include/tr1/complex (conj): Remove using-declaration and restore
2065 overloads, reverting previous change.
2067 * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
2069 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
2070 Mark as unsupported in C++98 mode.
2071 * testsuite/23_containers/queue/requirements/constructible.cc:
2073 * testsuite/23_containers/stack/requirements/constructible.cc:
2075 * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
2078 * include/bits/c++config (literals::string_view_literals::__7): Add.
2079 Only declare versioned namespaces for the relevant C++ dialects.
2080 * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
2081 Add versioning macros.
2082 * include/experimental/bits/lfts_config.h:
2083 (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
2084 * include/experimental/string_view (fundamentals_v2::__detail):
2085 Add versioning macros.
2086 (fundamentals_v2::__detail::__identity): Remove.
2087 (fundamentals_v2::__detail::__idt): Use common_type instead of
2088 __detail::__identity.
2089 * include/std/string_view (__detail::__identity, __detail::__idt):
2091 (literals::string_view_literals): Fix nesting of versioning macros.
2094 * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
2095 [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
2096 && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
2097 Retrieve original pointer value allocated by malloc.
2098 * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
2099 && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
2100 && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
2101 Define, adjusting pointer value allocated by malloc and storing for
2102 retrieval by operator delete.
2104 2017-01-26 Jakub Jelinek <jakub@redhat.com>
2106 * libsupc++/eh_atomics.h: Update copyright years.
2107 * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
2109 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
2113 * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
2114 (proj(T), conj(T)): Change return types per DR 1522.
2115 * include/tr1/complex (conj): Remove overloads and use std::conj.
2116 * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
2117 * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
2118 * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
2119 real(T) and imag(T). Allow testing for C++11 too.
2121 2017-01-24 Jonathan Wakely <jwakely@redhat.com>
2124 * include/experimental/string_view (operator==): Check sizes first.
2125 * include/std/string_view (operator==): Likewise.
2127 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
2129 * testsuite/experimental/array/make_array.cc: Restore <functional>
2132 2017-01-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
2134 * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
2136 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
2139 * include/experimental/array (__make_array_elem): New class template
2140 and partial specialization.
2141 (__is_reference_wrapper): Move into __make_array_elem specialization.
2142 (make_array): Use __make_array_elem to determine element type and move
2143 static assertion into specialization. Qualify std::forward call.
2144 (to_array): Add exception specifiation.
2145 * testsuite/experimental/array/make_array.cc: Test argument types
2146 without a common type.
2147 * testsuite/experimental/array/neg.cc: Adjust expected error message.
2149 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
2151 * doc/xml/manual/debug.xml: code.google.com uses https now.
2153 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
2155 * doc/xml/manual/test.xml: Fix link into gccint online manual.
2157 2017-01-21 Ville Voutilainen <ville.voutilainen@gmail.com>
2159 Make poisoned hashes SFINAE away the call operator of the hash.
2160 * include/bits/functional_hash.h
2161 (__poison_hash::__enable_hash_call): New.
2162 * include/std/optional (__optional_hash_call_base): New.
2163 (hash<optional<_Tp>>): Derive from the new base,
2164 move the hash function into that base.
2165 * include/std/variant (__variant_hash_call_base_impl): New.
2166 (__variant_hash_call_base): Likewise.
2167 (hash<variant<_Types...>>): Derive from the new base,
2168 move the hash function into that base.
2169 * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
2170 * testsuite/20_util/variant/hash.cc: Likewise.
2172 2017-01-20 Joe Seymour <joe.s@somniumtech.com>
2174 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
2175 * configure: Regenerate.
2177 2017-01-20 Jonathan Wakely <jwakely@redhat.com>
2180 * include/bits/random.h (uniform_real_distribution::param_type)
2181 (normal_distribution::param_type, lognormal_distribution::param_type)
2182 (gamma_distribution::param_type, chi_squared_distribution::param_type)
2183 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
2184 (student_t_distribution::param_type)
2185 (bernoulli_distribution::param_type, binomial_distribution::param_type)
2186 (geometric_distribution::param_type)
2187 (negative_binomial_distribution::param_type)
2188 (poisson_distribution::param_type)
2189 (exponential_distribution::param_type)
2190 (weibull_distribution::param_type)
2191 (extreme_value_distribution::param_type)
2192 (discrete_distribution::param_type)
2193 (piecewise_constant_distribution::param_type)
2194 (piecewise_linear_distribution::param_type): Define operator!=.
2195 * include/bits/uniform_int_dist.h
2196 (uniform_int_distribution::param_type): Likewise.
2197 * include/ext/random (beta_distribution::param_type)
2198 (rice_distribution::param_type, nakagami_distribution::param_type)
2199 (pareto_distribution::param_type, k_distribution::param_type)
2200 (arcsine_distribution::param_type, hoyt_distribution::param_type)
2201 (triangular_distribution::param_type)
2202 (von_mises_distribution::param_type)
2203 (hypergeometric_distribution::param_type)
2204 (logistic_distribution::param_type)
2205 (uniform_on_sphere_distribution::param_type)
2206 (uniform_inside_sphere_distribution::param_type): Likewise.
2207 * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
2208 Test construction with param_type.
2209 * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
2211 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
2213 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
2215 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
2217 * testsuite/26_numerics/random/extreme_value_distribution/cons/
2219 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
2221 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
2223 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
2225 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
2227 * testsuite/26_numerics/random/negative_binomial_distribution/cons/
2229 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
2231 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
2233 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
2235 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
2237 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
2239 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
2241 * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
2242 * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
2243 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
2244 * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
2246 * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
2247 * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
2248 * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
2249 * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
2250 * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
2251 * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
2252 * testsuite/ext/random/triangular_distribution/cons/parms.cc:
2254 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
2256 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
2259 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
2260 (__allocator_traits_base::__size_type): Remove.
2261 (allocator_traits::_Ptr): New class template to detect const and void
2262 pointer types without instantiating pointer_traits::rebind
2264 (allocator_traits::_Diff): Likewise for detecting difference_type.
2265 (allocator_traits::_Size): New class template to detect size_type
2266 without instantiating make_unsigned unnecessarily.
2267 * include/bits/ptr_traits.h (pointer_traits::element_type): Use
2268 __detected_or_t instead of __detected_or_t_.
2269 * include/std/type_traits (__detected_or_t_): Remove.
2270 * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
2274 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
2275 Replace with class template using void_t.
2276 (__alloc_rebind): Define in terms of
2277 __allocator_traits_base::__rebind.
2278 (allocator_traits): Remove unconditional static_assert for
2280 * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
2281 (pointer_traits::__rebind): Replace with class template using void_t.
2282 (pointer_traits::rebind): Define in terms of __rebind.
2283 (pointer_traits): Remove unconditional static_assert for rebind.
2284 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
2285 * testsuite/20_util/pointer_traits/rebind.cc: New test.
2288 * include/experimental/any (__any_caster): Avoid instantiating
2289 manager function for types that can't be stored in any.
2290 * include/std/any (__any_caster): Likewise.
2291 * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
2292 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
2295 * include/bits/stl_algo.h (is_partitioned): Use increment instead of
2298 2017-01-19 Jonathan Wakely <jwakely@redhat.com>
2301 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
2303 (__enable_shared_from_this): Declare __shared_ptr as a friend.
2304 * testsuite/ext/shared_ptr/1.cc: New test.
2307 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
2309 * testsuite/25_algorithms/is_partitioned/2.cc: New test.
2311 * doc/xml/manual/abi.xml: Fix typo.
2312 * doc/html/manual/abi.html: Likewise.
2315 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
2316 converting constructors from _Iter_less_iter.
2317 (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
2319 (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
2320 (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
2321 * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
2322 (__make_heap, __sort_heap): Change _Compare parameters to references.
2323 (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
2324 (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
2325 functions as lvalues.
2326 (is_heap): Call __is_heap_until directly to avoid copying __comp.
2327 * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
2328 count copies during construction with empty sequence.
2331 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
2332 (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
2333 * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
2335 * testsuite/25_algorithms/make_heap/movable.cc: New test.
2338 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
2339 (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
2340 _GLIBCXX_MOVE when passing comparison function to other functions.
2341 (is_heap_until, is_heap): Use std::move when passing comparison
2343 * testsuite/23_containers/priority_queue/67085.cc: New test.
2346 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
2347 macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
2348 Document that the deprecated _GLIBCXX_VERSION macro was removed for
2350 * doc/html/*: Regenerate.
2351 * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
2352 * include/Makefile.in: Regenerate.
2353 * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
2354 * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
2357 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
2360 * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
2361 aligned buffer instead of default-initialized variable.
2362 * testsuite/29_atomics/atomic/69301.cc: New test.
2363 * include/experimental/memory (observer_ptr::release): Use reserved
2365 * include/ext/pointer.h (_Pointer_adapter::operator++(int))
2366 (_Pointer_adapter::operator--(int)): Likewise.
2369 * include/experimental/random (randint): Use temporary instead of
2370 thread_local static.
2372 2017-01-17 Joshua Conner <joshconner@google.com>
2374 * crossconfig.m4: Add fuchsia OS.
2375 * configure: Regenerate.
2377 2017-01-17 Jonathan Wakely <jwakely@redhat.com>
2380 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
2381 __GLIBCXX__ macro is not useful. Remove redundant date information
2382 and link to the GCC release timeline.
2383 (abi.versioning.active): Move partial sentence into the previous
2385 * doc/html/*: Regenerate.
2388 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
2389 of remove_reference.
2390 * testsuite/18_support/nested_exception/79114.cc: New test.
2392 2017-01-17 Jakub Jelinek <jakub@redhat.com>
2395 * configure.ac: Add GCC_BASE_VER.
2396 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
2397 get version from BASE-VER file.
2398 * po/Makefile.in: Regenerated.
2399 * libsupc++/Makefile.in: Regenerated.
2400 * testsuite/Makefile.in: Regenerated.
2401 * src/Makefile.in: Regenerated.
2402 * configure: Regenerated.
2403 * Makefile.in: Regenerated.
2404 * include/Makefile.in: Regenerated.
2405 * doc/Makefile.in: Regenerated.
2406 * python/Makefile.in: Regenerated.
2407 * src/c++11/Makefile.in: Regenerated.
2408 * src/c++98/Makefile.in: Regenerated.
2409 * src/filesystem/Makefile.in: Regenerated.
2411 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
2414 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
2416 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
2417 for test, so new ios::failure can be caught.
2418 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2419 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
2420 exceptions_failbit.cc: Likewise.
2421 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2422 exceptions_failbit.cc: Likewise.
2423 * testsuite/27_io/basic_istream/extractors_other/char/
2424 exceptions_null.cc: Likewise.
2425 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
2426 exceptions_null.cc: Likewise.
2427 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2428 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2429 * testsuite/27_io/basic_ostream/inserters_other/char/
2430 exceptions_null.cc: Likewise.
2431 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2432 exceptions_null.cc: Likewise.
2433 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2436 * include/bits/locale_classes.h (locale::facet::__shim): Change from
2437 private to protected.
2438 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
2439 make locale::facet::__shim accessible.
2441 2017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
2444 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
2445 (merge(list&&, _StrictWeakOrdering)): Likewise.
2446 * testsuite/23_containers/list/operations/78389.cc: Add
2447 better test for the sizes.
2449 2017-01-14 Jonathan Wakely <jwakely@redhat.com>
2451 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
2452 Skip test when -D_GLIBCXX_PROFILE mode is included in options.
2453 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
2454 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
2456 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
2457 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
2458 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
2459 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
2460 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
2462 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
2464 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
2466 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
2468 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2470 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
2471 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
2472 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
2473 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
2474 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
2475 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
2476 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
2477 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
2478 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
2479 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
2480 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
2481 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2482 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
2484 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
2487 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
2488 retry fclose on EINTR.
2490 * include/profile/base.h: Remove unused header that leads to header
2491 cycle in C++17 mode.
2494 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
2495 Make _If_sv private.
2496 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
2497 basic_string_view arguments.
2500 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
2501 redundant option from cxxflags.
2502 (check_effective_target_cxx11-abi): Define.
2503 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
2505 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
2506 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2508 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
2510 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
2511 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
2513 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
2515 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
2516 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
2518 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2520 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
2522 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
2524 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
2526 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
2528 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
2530 * testsuite/23_containers/list/61347.cc: Likewise.
2531 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
2532 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
2534 2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2537 * include/bits/list.tcc (merge(list&&)):
2538 Adjust list sizes if the comparator throws.
2539 (merge(list&&, _StrictWeakOrdering)): Likewise.
2540 (sort()): Splice elements back from the scratch buffers
2541 if the comparator throws.
2542 (sort(_StrictWeakOrdering)): Likewise.
2543 * testsuite/23_containers/list/operations/78389.cc: New.
2545 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
2547 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
2548 XFAIL for C++17 until node reinsertion supports fancy pointers.
2551 * testsuite/20_util/add_pointer/value.cc: Test forming function
2554 2017-01-13 Michael Brune <lucdanton@free.fr>
2557 * include/std/type_traits (__is_referenceable): Handle noexcept
2560 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
2563 * include/bits/stl_queue.h (queue, priority_queue): Remove default
2564 member-initializers and define default constructors as templates with
2566 * include/bits/stl_stack.h (stack): Likewise.
2567 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
2569 * testsuite/23_containers/priority_queue/requirements/
2570 explicit_instantiation/1.cc: Test more instantiations.
2571 * testsuite/23_containers/priority_queue/requirements/
2572 explicit_instantiation/1_c++98.cc: Likewise.
2573 * testsuite/23_containers/queue/requirements/constructible.cc: New.
2574 * testsuite/23_containers/stack/requirements/constructible.cc: New.
2577 * doc/xml/manual/intro.xml: Document LWG 2781 change.
2578 * doc/html/*: Regenerate.
2579 * include/std/functional (_Function_base::_Ref_manager): Remove.
2580 (_Function_handler): Remove partial specializations for
2582 (function::target): Remove special case for const qualification.
2583 * testsuite/20_util/function/6.cc: Adjust tests for target type.
2584 * testsuite/20_util/function/7.cc: Likewise.
2585 * testsuite/20_util/function/8.cc: Likewise.
2587 2017-01-11 Jonathan Wakely <jwakely@redhat.com>
2590 * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
2591 (map::equal_range): Fix return type of heterogeneous overloads.
2592 * include/bits/stl_multimap.h (multimap::lower_bound)
2593 (multimap::upper_bound, multimap::equal_range): Likewise.
2594 * include/bits/stl_multiset.h (multiset::lower_bound)
2595 (multiset::upper_bound, multiset::equal_range): Likewise.
2596 * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
2597 (set::equal_range): Likewise.
2598 * testsuite/23_containers/map/operations/2.cc
2599 * testsuite/23_containers/multimap/operations/2.cc
2600 * testsuite/23_containers/multiset/operations/2.cc
2601 * testsuite/23_containers/set/operations/2.cc
2604 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
2605 the heterogeneous comparison can only find one match.
2606 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
2607 * testsuite/23_containers/map/operations/2.cc: Test count works with
2608 comparison function that just partitions rather than sorting.
2609 * testsuite/23_containers/set/operations/2.cc: Likewise.
2611 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
2613 Reduce the size of variant, it doesn't need an index of
2614 type size_t internally.
2615 * include/std/variant (parse_numbers.h): New include.
2616 (__select_index): New.
2617 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
2618 _index_type for comparison with variant_npos.
2619 (_Variant_storage<false, _Types...>::__index_type): New.
2620 (_Variant_storage<false, _Types...>::_M_index): Change the
2621 type from size_t to __index_type.
2622 (_Variant_storage<true, _Types...>::__index_type): New.
2623 (_Variant_storage<true, _Types...>::_M_index): Change the
2624 type from size_t to __index_type.
2625 (_Variant_base::_M_valid): Use _Storage::__index_type
2626 for comparison with variant_npos.
2627 (variant::index): Use _Base::_Storage::__index_type
2628 for comparison with variant_npos.
2629 * testsuite/20_util/variant/index_type.cc: New.
2631 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
2633 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
2634 effective target selector to prevent running in C++17 mode.
2637 * include/bits/stl_queue.h (queue::c): Add default member initializer.
2638 (queue::queue()): Add constructor and define as defaulted.
2639 (queue::queue(_Sequence&&)): Remove default argument.
2640 (priority_queue::c, priority_queue::comp): Add default member
2642 (priority_queue::priority_queue()): Add constructor and define as
2644 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
2645 Remove default argument for first parameter.
2646 * include/bits/stl_stack.h (stack::c): Add default member initializer.
2647 (stack::stack()): Add constructor and define as defaulted.
2648 (stack::stack(const _Sequence&)): Remove default argument.
2649 * testsuite/23_containers/priority_queue/requirements/
2650 explicit_instantiation/1.cc: Test explicit instantiation with
2651 non-DefaultConstructible sequence.
2652 * testsuite/23_containers/priority_queue/77528.cc: New test.
2653 * testsuite/23_containers/priority_queue/requirements/
2654 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
2655 * testsuite/23_containers/queue/77528.cc: New test.
2656 * testsuite/23_containers/queue/requirements/explicit_instantiation/
2657 1.cc: Test explicit instantiation with non-DefaultConstructible
2659 * testsuite/23_containers/queue/requirements/explicit_instantiation/
2660 1_c++0x.cc: Replace with 1_c++98.cc.
2661 * testsuite/23_containers/stack/77528.cc: New test.
2662 * testsuite/23_containers/stack/requirements/explicit_instantiation/
2663 1.cc: Test explicit instantiation with non-DefaultConstructible
2665 * testsuite/23_containers/stack/requirements/explicit_instantiation/
2666 1_c++0x.cc: Replace with 1_c++98.cc.
2668 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
2670 * include/bits/locale_facets_nonio.tcc
2671 (time_get::_M_extract_via_format): Avoid compilation errors with
2672 non-standard struct tm.
2674 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
2675 Jonathan Wakely <jwakely@redhat.com>
2677 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
2678 (is_specialization, strip_versioned_namespace): New helpers functions
2679 to work with symbols in the versioned namespace.
2680 (Printer.add_version): Add second name using versioned namespace.
2681 (add_one_template_type_printer, add_one_type_printer): Add second
2682 type printers using versioned namespace.
2683 (register_type_printers): Add template type printer for basic_string.
2684 (build_libstdcxx_dictionary): Remove dead code.
2685 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
2686 versioned namespace.
2687 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
2689 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
2691 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
2694 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
2695 functions separately on darwin and if they're missing define
2696 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
2697 * config.h.in: Regenerate.
2698 * configure: Regenerate.
2699 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
2700 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
2702 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
2703 to detect correct thread_local destructors.
2704 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
2707 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
2708 Aditya Kumar <hiraditya@msn.com>
2711 * include/bits/basic_string.tcc
2712 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
2714 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
2716 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
2717 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
2719 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
2720 Include <cassert> header.
2723 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
2724 * configure: Regenerate.
2726 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
2727 Jonathan Wakely <jwakely@redhat.com>
2729 * include/std/variant (variant, swap): Replace __and_ usage with fold
2732 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2735 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
2736 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
2737 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
2738 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
2740 * aclocal.m4: Regenerate.
2741 * configure: Regenerate.
2742 * Makefile.in, doc/Makefile.in, include/Makefile.in,
2743 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
2744 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
2745 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
2747 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
2749 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
2752 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
2753 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
2754 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
2755 move function objects.
2756 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
2757 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
2758 * testsuite/25_algorithms/sort/78991.cc: New test.
2760 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
2762 * include/bits/std_function.h (function::_Signature_type): Remove.
2763 (function::function(_Functor)): Adjust.
2765 2017-01-05 Tim Shen <timshen@google.com>
2768 * include/std/variant (__gen_vtable_impl): rename __unused to
2769 __dimensions to avoid naming conflict.
2771 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
2774 * config.h.in: Regenerate.
2775 * configure: Likewise.
2776 * configure.ac: Check for __cxa_thread_atexit.
2777 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
2778 Don't define __cxa_thread_atexit if libc provides it.
2780 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
2782 Implement 2801, Default-constructibility of unique_ptr.
2783 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
2784 (unique_ptr::_DeleterConstraint): Likewise.
2785 (unique_ptr()): Constrain.
2786 (unique_ptr(pointer)): Likewise.
2787 (unique_ptr(nullptr_t)): Likewise.
2788 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
2789 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
2790 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
2791 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
2792 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
2793 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
2794 * testsuite/20_util/unique_ptr/cons/default.cc: New.
2795 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
2797 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
2798 Jonathan Wakely <jwakely@redhat.com>
2801 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
2802 * config.h.in: Regenerate.
2803 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
2804 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
2805 exports for exception_ptr, nested_exception, and future conditional.
2806 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
2807 exports for exception_ptr, nested_exception, and future conditional.
2808 * configure: Regenerate.
2809 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
2810 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
2811 * libsupc++/eh_atomics.h: New file for internal use only.
2812 (__eh_atomic_inc, __eh_atomic_dec): New.
2813 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
2814 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
2815 (rethrow_exception): Use eh_atomics.h reference counting helpers.
2816 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
2817 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
2818 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
2819 * libsupc++/exception_ptr.h: Likewise.
2820 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
2821 * libsupc++/nested_exception.cc: Remove check for
2822 ATOMIC_INT_LOCK_FREE.
2823 * libsupc++/nested_exception.h: Likewise.
2824 * src/c++11/future.cc: Likewise.
2825 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
2826 * testsuite/18_support/nested_exception/*: Likewise.
2827 * testsuite/30_threads/async/*: Likewise.
2828 * testsuite/30_threads/future/*: Likewise.
2829 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
2830 * testsuite/30_threads/packaged_task/*: Likewise.
2831 * testsuite/30_threads/promise/*: Likewise.
2832 * testsuite/30_threads/shared_future/*: Likewise.
2834 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
2836 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
2837 defaults to https; adjust reference.
2839 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
2842 * include/std/thread (thread(const thread&&)): Add deleted
2844 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
2846 * doc/xml/manual/spine.xml: Update copyright years.
2847 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
2848 * doc/xml/manual/test.xml: Likewise.
2849 * doc/html/*: Regenerate.
2851 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
2853 * doc/xml/faq.xml: Update address of C++ ABI link.
2854 * doc/xml/manual/abi.xml: Ditto.
2856 2017-01-01 Jakub Jelinek <jakub@redhat.com>
2858 Update copyright years.
2860 Copyright (C) 2017 Free Software Foundation, Inc.
2862 Copying and distribution of this file, with or without modification,
2863 are permitted in any medium without royalty provided the copyright
2864 notice and this notice are preserved.