1 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
3 Add support for opening file streams from wide character strings.
4 * config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
5 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
7 * config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
8 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
10 * configure.ac: Check for _wfopen.
11 * crossconfig.m4: Likewise.
12 * configure: Regenerate.
13 * config.h.in: Regenerate.
14 * include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
15 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
17 * include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
18 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
20 [_GLIBCXX_HAVE__WFOPEN]
21 (basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
22 (basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
23 (basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
24 (basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
25 (basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
26 (basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
28 * testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
29 * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
30 * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
31 * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
32 * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
33 * testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
34 * testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
36 2018-05-21 François Dumont <fdumont@gcc.gnu.org>
39 * include/bits/stl_tree.h
40 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
43 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
45 * src/filesystem/std-ops.cc (absolute): Report an error for empty
47 (weakly_canonical(const path&)): Do not call canonical on empty path.
48 (weakly_canonical(const path&, error_code&)): Likewise.
49 * testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
52 * testsuite/experimental/filesystem/path/preferred_separator.cc: Add
53 dg-require-filesystem-ts.
56 * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
57 initialize base class to avoid warnings.
59 2018-05-19 Jonathan Wakely <jwakely@redhat.com>
61 * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
62 [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
63 little_endian element in bitmask.
64 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
65 * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
67 2018-05-18 François Dumont <fdumont@gcc.gnu.org>
69 * include/bits/stl_tree.h
70 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
71 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
72 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
73 (_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
75 (map(map&&, const_allocator_type&)): Add noexcept qualitication.
76 * include/debug/multimap.h
77 (multimap(multimap&&, const_allocator_type&)): Likewise.
79 (set(set&&, const_allocator_type&)): Likewise.
80 * include/debug/multiset.h
81 (multiset(multiset&&, const_allocator_type&)): Likewise.
82 * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
84 * testsuite/23_containers/map/cons/noexcept_move_construct.cc:
86 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
88 * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
90 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
92 * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
94 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
96 * testsuite/23_containers/set/cons/noexcept_move_construct.cc:
99 2018-05-18 Jason Merrill <jason@redhat.com>
101 * include/bits/stl_deque.h (_Deque_iterator): Constrain constructor
102 for conversion to const_iterator. Add defaulted copy ops.
103 * libsupc++/new (bad_alloc): Add defaulted copy ops.
104 * libsupc++/exception.h (exception): Add defaulted copy ops.
105 * include/std/system_error (system_error): Add defaulted copy ops.
106 * include/std/stdexcept (domain_error, invalid_argument)
107 (length_error, out_of_range, range_error, overflow_error)
108 (underflow_error): Add defaulted copy ops.
109 * include/bits/stl_iterator.h (reverse_iterator): Add defaulted
111 * include/bits/allocator.h (allocator): Add defaulted copy assignment.
112 * include/ext/throw_allocator.h (condition_base): Add defaulted
113 default and copy ctor and copy assignment.
115 2018-05-18 Jonathan Wakely <jwakely@redhat.com>
118 * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
119 (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
120 (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
121 (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
123 * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
125 * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
126 braces around body of do-while.
127 * testsuite/28_regex/basic_regex/85098.cc: New
129 2018-05-17 Jonathan Wakely <jwakely@redhat.com>
132 * src/filesystem/path.cc (path::preferred_separator): Add used
134 * testsuite/experimental/filesystem/path/preferred_separator.cc: New.
137 * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
138 * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
139 Refactor to separate non-throwing and throwing implementations.
140 [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
141 if constructing the object throws.
143 2018-05-15 Jonathan Wakely <jwakely@redhat.com>
146 * include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
147 (linear_congruential_engine, mersenne_twister_engine)
148 (subtract_with_carry_engine, discard_block_engine)
149 (independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
150 constrain function templates taking seed sequences.
151 * include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
152 (mersenne_twister_engine::seed(_Sseq&))
153 (subtract_with_carry_engine::seed(_Sseq&)): Change return types to
155 * include/ext/random (simd_fast_mersenne_twister_engine): Use
156 __is_seed_seq to constrain function templates taking seed sequences.
157 * include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
158 Change return type to match declaration.
159 * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
161 * testsuite/26_numerics/random/independent_bits_engine/cons/
163 * testsuite/26_numerics/random/linear_congruential_engine/cons/
165 * testsuite/26_numerics/random/mersenne_twister_engine/cons/
167 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
168 * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
170 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
172 * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
176 * include/bits/fs_path.h (path::is_absolute()): Use same definition
177 for all operating systems.
178 * include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
179 * testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
180 * testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
181 * testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
183 * testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
184 unused <vector> header.
185 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
186 * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
187 * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
188 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
189 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
191 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
193 * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
194 * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
195 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
196 * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
197 * testsuite/experimental/filesystem/path/decompose/extension.cc:
199 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
200 * testsuite/experimental/filesystem/path/query/has_extension.cc:
202 * testsuite/experimental/filesystem/path/query/has_filename.cc:
204 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
206 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
208 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
210 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
212 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
214 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
215 * testsuite/experimental/filesystem/path/query/is_relative.cc:
219 * include/bits/fs_path.h (path::operator/=, path::append): Construct
220 temporary path before calling _M_append.
221 (path::_M_append): Change parameter to path and implement C++17
223 * testsuite/27_io/filesystem/path/append/path.cc: Add helper function
224 and more examples from the standard.
225 * testsuite/27_io/filesystem/path/append/source.cc: New.
226 * testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
227 * testsuite/27_io/filesystem/path/nonmember/append.cc: New.
229 * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
230 __invoke to prevent ADL.
232 2018-05-14 Jonathan Wakely <jwakely@redhat.com>
235 * include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
236 exceptions from _M_terminate_output().
237 * include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
238 exceptions from close().
239 * testsuite/27_io/basic_filebuf/close/81256.cc: New.
241 * include/bits/valarray_array.h (__valarray_get_memory): Remove.
242 (__valarray_get_storage): Call operator new directly. Remove ignored
243 top-level restrict qualifier and add malloc attribute instead.
244 (_Array<_Tp>::_Array(size_t)): Remove unused constructor.
247 * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
248 (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
251 * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
253 * testsuite/23_containers/set/modifiers/node_swap.cc: New.
255 2018-05-13 Ville Voutilainen <ville.voutilainen@gmail.com>
258 * testsuite/20_util/variant/80165.cc: New.
260 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
262 * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
263 * doc/xml/manual/debug_mode.xml: Add array and forward_list to list
264 of C++11 containers with Debug Mode support.
265 * doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
266 * doc/html/*: Regenerate.
268 2018-05-10 Jason Merrill <jason@redhat.com>
270 * include/bits/regex_compiler.h (_S_cache_size): Change from
271 function to variable.
273 2018-05-10 Edward Smith-Rowland <3dw4rd@verizon.net>
275 PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
276 * include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
277 argument defaulted to +1. Doxy comments on same.
278 * testsuite/special_functions/02_assoc_legendre/
279 check_value.cc: Regen.
280 * testsuite/tr1/5_numerical_facilities/special_functions/
281 02_assoc_legendre/check_value.cc: Regen.
283 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
286 * include/bits/c++config.h (__replacement_assert): Add linkage
288 * include/bits/std_abs.h: Add comment to closing brace of block.
289 * include/c_global/cstddef: Add linkage specification.
290 * include/c_global/cstring: Likewise.
291 * include/c_global/cwchar: Likewise.
293 2018-05-09 François Dumont <fdumont@gcc.gnu.org>
295 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
297 (_Safe_iterator<>::_S_constant()): ...that.
298 * include/debug/safe_local_iterator.h
299 (_Safe_local_iterator<>::_M_constant()): Rename in...
300 (_Safe_local_iterator<>::_S_constant()): ...that.
301 * include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
302 (_Iterator_state::__rbegin): New.
303 (_Iterator_state::__rmiddle): New.
304 (_Iterator_state::__rend): New.
305 (_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
306 _Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
308 (_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
309 _Is_iterator)): Likewise.
310 (_Parameter::_S_reverse_state(_Iterator_state)): New.
311 (_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
313 (_Parameter(std::reverse_iterator<> const&, const char*,
315 (_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
316 const char*, _Is_iterator)): New.
317 (_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
319 (_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
321 * testsuite/24_iterators/move_iterator/debug_neg.cc: New.
322 * testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
323 * testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
325 2018-05-09 Jonathan Wakely <jwakely@redhat.com>
327 * include/bits/std_function.h (_Base_manager::_M_get_pointer):
328 Use constexpr if in C++17 mode.
329 (_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
330 Copy from const object.
331 * testsuite/20_util/function/cons/non_copyconstructible.cc: New.
333 2018-05-08 François Dumont <fdumont@gcc.gnu.org>
335 * src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
336 [_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
339 * include/debug/macros.h (__glibcxx_check_valid_range_at): New.
340 * include/debug/functions.h (__check_valid_range): Use latter.
341 * include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
343 * include/debug/deque
344 (deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
345 * include/debug/forward_list
346 (forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
349 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
351 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
352 * include/debug/map.h
353 (map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
354 (map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
356 * include/debug/multimap.h
357 (multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
358 (multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
359 const _Alloc&)): Likewise.
360 * include/debug/set.h
361 (set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
362 (set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
364 * include/debug/multiset.h
365 (multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
366 (multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
367 const _Alloc&)): Likewise.
368 * include/debug/string
369 (basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
371 * include/debug/unordered_map
372 (unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
374 (unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
375 const _Alloc&)): Likewise.
376 * include/debug/unordered_set
377 (unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
379 (unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
380 const _Alloc&)): Likewise.
381 * include/debug/vector
382 (vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
384 * include/debug/formatter.h (_Error_formatter::_M_function): New.
385 (_Error_formatter(const char*, unsigned int)): Adapt.
386 (_Error_formatter::_M_at): Rename in...
387 (_Error_formatter::_S_at): ...that and adapt.
388 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New.
389 (_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt.
390 * src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function
393 2018-05-08 Jonathan Wakely <jwakely@redhat.com>
395 * include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
396 Use normal std::vector even in Debug Mode.
399 * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
400 to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
401 * include/Makefile.in: Regenerate.
402 * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
403 within conditional block.
405 2018-05-07 Jonathan Wakely <jwakely@redhat.com>
407 * doc/xml/manual/using.xml (table.cmd_options): Document that the
408 C++17 Filesystem implementation also needs -lstdc++fs.
411 * include/bits/fs_path.h (operator/): Permit copy elision.
412 * include/experimental/bits/fs_path.h (operator/): Likewise.
414 2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net>
416 Moar PR libstdc++/80506
417 * include/bits/random.tcc (gamma_distribution::__generate_impl()):
418 Fix magic number used in loop condition.
420 2018-05-04 Jonathan Wakely <jwakely@redhat.com>
422 PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
423 * include/std/optional (_Optional_payload): Add noexcept to default
424 constructor. Re-indent.
425 (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
426 constructor for copying disengaged payloads.
427 (_Optional_payload<_Tp, true, false, true>): Likewise.
428 (_Optional_payload<_Tp, true, true, false>): Likewise.
429 (_Optional_payload<_Tp, true, false, false>): Likewise.
430 * testsuite/20_util/optional/cons/85642.cc: New.
431 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
433 2018-05-03 Jonathan Wakely <jwakely@redhat.com>
436 * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
437 inline definitions instead of using-declarations.
438 [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
439 * testsuite/tr1/5_numerical_facilities/special_functions/
440 07_conf_hyperg/compile_cxx17.cc: New.
441 * testsuite/tr1/5_numerical_facilities/special_functions/
442 17_hyperg/compile_cxx17.cc: New.
445 * include/std/variant (visit): Qualify std::get call.
447 PR libstdc++/85632 use uintmax_t for arithmetic
448 * src/filesystem/ops.cc (experimental::filesystem::space): Perform
449 arithmetic in result type.
450 * src/filesystem/std-ops.cc (filesystem::space): Likewise.
451 * testsuite/27_io/filesystem/operations/space.cc: Check total capacity
452 is greater than free space.
453 * testsuite/experimental/filesystem/operations/space.cc: New.
455 * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
456 * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
458 * testsuite/20_util/remove_cvref/value.cc: New.
459 * testsuite/20_util/remove_cvref/value_ext.cc: New.
461 PR libstdc++/84087 LWG DR 2268 basic_string default arguments
462 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
463 (append(const basic_string&, size_type, size_type)
464 (assign(const basic_string&, size_type, size_type)
465 (insert(size_type, const basic_string&, size_type, size_type)
466 (replace(size_type,size_type,const basic_string&,size_type,size_type)
467 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
468 Add default arguments (LWG 2268).
469 [_GLIBCXX_USE_CXX11_ABI=0]
470 (append(const basic_string&, size_type, size_type)
471 (assign(const basic_string&, size_type, size_type)
472 (insert(size_type, const basic_string&, size_type, size_type)
473 (replace(size_type,size_type,const basic_string&,size_type,size_type)
474 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
476 * testsuite/21_strings/basic_string/dr2268.cc: New test.
479 * include/std/thread (thread::__not_same): New SFINAE helper.
480 (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
481 first argument is not a std::thread. Add static assertion to check
482 INVOKE expression is valid.
483 (thread::thread(thread&), thread::thread(const thread&&)): Remove.
484 (thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
485 __invoke_result for return types and remove exception specifications.
486 * testsuite/30_threads/thread/cons/84535.cc: New.
488 * include/std/future (__async_result_of): Use __invoke_result instead
491 * include/std/any (any_cast): Use __remove_cvref_t.
492 * include/std/tuple (__make_tuple): Likewise.
493 * include/std/type_traits (__remove_cvref_t): Define.
494 (__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
495 [__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
496 * include/std/variant (__erased_hash): Use __remove_cvref_t.
498 2018-05-02 François Dumont <fdumont@gcc.gnu.org>
500 * include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
501 ensure overloaded comma not used.
502 * include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
503 * include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
504 * include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
505 * testsuite/23_containers/deque/modifiers/assign/1.cc: New.
506 * testsuite/23_containers/list/modifiers/assign/1.cc: New.
507 * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
508 * testsuite/23_containers/vector/modifiers/assign/1.cc: New.
510 2018-05-02 Jonathan Wakely <jwakely@redhat.com>
513 * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
515 * src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
516 as failure. Refactor error handling.
517 * testsuite/27_io/ios_base/storage/68197.cc: New.
521 * include/bits/gslice_array.h (gslice_array): Define default
522 constructor as deleted, as per C++11 standard.
523 * include/bits/mask_array.h (mask_array): Likewise.
524 * include/bits/slice_array.h (slice_array): Likewise.
525 * include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
526 to namespace __detail.
527 (_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
529 * include/bits/valarray_before.h (_ValArrayRef): New helper for type
530 of data members in closure objects.
531 (_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
532 (_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
534 (_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
535 (_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
536 (_SBase::_M_expr): Use _ValArrayRef for type of data members.
537 * include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
538 (_ValFunClos, _RefFunClos): Move to namespace __detail and add
539 using-declarations to namespace std.
540 * testsuite/26_numerics/valarray/83860.cc: New.
542 * testsuite/backward/strstream_move.cc: Remove duplicate function
546 * include/backward/strstream (strstreambuf): Define move constructor
547 and move assignment operator.
548 (istrstream, ostrstream, strstream): Likewise.
549 * testsuite/backward/strstream_move.cc: New.
551 2018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
554 * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
555 * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
556 * configure: Regenerate.
557 * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
558 based on ENABLE_FLOAT128.
559 * include/Makefile.in: Regenerate.
560 * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
561 [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
562 _GLIBCXX_USE_FLOAT128.
564 2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
566 * configure: Regenerated.
568 2018-04-19 Jakub Jelinek <jakub@redhat.com>
570 * configure: Regenerated.
572 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
573 Jakub Jelinek <jakub@redhat.com>
576 * src/c++11/Makefile.am: Don't generate debuginfo again for
577 cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
578 * src/c++11/Makefile.in: Regenerate.
580 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
583 * testsuite/30_threads/thread/cons/terminate.cc
584 [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
586 2018-04-18 David Malcolm <dmalcolm@redhat.com>
589 * configure: Regenerate.
591 2018-04-16 Jonathan Wakely <jwakely@redhat.com>
593 * testsuite/experimental/filesystem/file_status/1.cc: Add
594 -DUSE_FILESYSTEM_TS to dg-options.
595 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
597 * testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
598 * testsuite/experimental/filesystem/iterators/
599 recursive_directory_iterator.cc: Likewise.
600 * testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
601 * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
602 * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
603 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
604 * testsuite/experimental/filesystem/operations/create_directories.cc:
606 * testsuite/experimental/filesystem/operations/create_directory.cc:
608 * testsuite/experimental/filesystem/operations/create_symlink.cc:
610 * testsuite/experimental/filesystem/operations/current_path.cc:
612 * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
613 * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
614 * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
615 * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
616 * testsuite/experimental/filesystem/operations/last_write_time.cc:
618 * testsuite/experimental/filesystem/operations/permissions.cc:
620 * testsuite/experimental/filesystem/operations/read_symlink.cc:
622 * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
623 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
624 * testsuite/experimental/filesystem/operations/status.cc: Likewise.
625 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
627 * testsuite/experimental/filesystem/path/append/path.cc: Likewise.
628 * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
629 * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
630 * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
631 * testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
632 * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
633 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
634 * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
635 * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
636 * testsuite/experimental/filesystem/path/construct/default.cc:
638 * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
639 * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
640 * testsuite/experimental/filesystem/path/construct/string_view.cc:
642 * testsuite/experimental/filesystem/path/decompose/extension.cc:
644 * testsuite/experimental/filesystem/path/decompose/filename.cc:
646 * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
648 * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
650 * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
652 * testsuite/experimental/filesystem/path/decompose/root_name.cc:
654 * testsuite/experimental/filesystem/path/decompose/root_path.cc:
656 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
657 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
659 * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
660 * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
661 * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
663 * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
665 * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
667 * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
669 * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
670 * testsuite/experimental/filesystem/path/native/string.cc: Likewise.
671 * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
673 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
674 * testsuite/experimental/filesystem/path/query/has_extension.cc:
676 * testsuite/experimental/filesystem/path/query/has_filename.cc:
678 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
680 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
682 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
684 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
686 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
688 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
689 * testsuite/experimental/filesystem/path/query/is_relative.cc:
692 2018-04-13 Jonathan Wakely <jwakely@redhat.com>
694 * src/c++11/Makefile.am: Fix sed command.
695 * src/c++11/Makefile.in: Regenerate.
697 * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
698 handle mangled names starting with double underscores on darwin.
699 * src/c++11/Makefile.in: Regenerate.
701 2018-04-12 Jonathan Wakely <jwakely@redhat.com>
703 * src/c++11/Makefile.am: Fix comment.
704 * src/c++11/Makefile.in: Regenerate.
705 * src/c++11/cxx11-ios_failure.cc: Fix comment.
706 * src/c++98/ios_failure.cc: Likewise.
708 * src/c++11/ios.cc: Remove redundant macro definition.
710 2018-04-11 Jonathan Wakely <jwakely@redhat.com>
712 * doc/xml/manual/abi.xml: Document header locations in recent
714 * doc/xml/manual/evolution.xml: Add API changes since GCC 5.
715 * doc/xml/manual/spine.xml: Update copyright years.
716 * doc/xml/manual/strings.xml: Adjust tolower example to avoid
718 * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
719 * doc/html/*: Regenerate.
721 2018-04-10 Jonathan Wakely <jwakely@redhat.com>
723 * doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
724 * doc/xml/manual/backwards_compatibility.xml: Likewise.
725 * doc/xml/manual/containers.xml: Likewise.
726 * doc/xml/manual/debug_mode.xml: Likewise.
727 * doc/xml/manual/extensions.xml: Likewise.
728 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
729 * doc/xml/manual/using.xml: Likewise.
730 * doc/xml/manual/utilities.xml: Likewise.
733 * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
734 cxx11-ios_failure.cc to rewrite type info for __ios_failure.
735 * src/c++11/Makefile.in: Regenerate.
736 * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
738 [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
739 * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
740 * src/c++98/ios_failure.cc (__construct_ios_failure)
741 (__destroy_ios_failure, is_ios_failure_handler): New functions.
742 [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
743 * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
744 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
745 handler types, to always catch std::ios_base::failure.
746 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
747 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
748 exceptions_failbit.cc: Likewise.
749 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
750 exceptions_failbit.cc: Likewise.
751 * testsuite/27_io/basic_istream/extractors_other/char/
752 exceptions_null.cc: Likewise.
753 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
754 exceptions_null.cc: Likewise.
755 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
756 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
757 * testsuite/27_io/basic_ostream/inserters_other/char/
758 exceptions_null.cc: Likewise.
759 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
760 exceptions_null.cc: Likewise.
761 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
763 2018-04-05 Jonathan Wakely <jwakely@redhat.com>
765 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
766 __get calls to avoid ADL and avoid ambiguity due to Clang bug.
768 2018-04-03 Jonathan Wakely <jwakely@redhat.com>
771 * include/std/variant (_Move_assign_base::operator=): Fix incorrect
773 * testsuite/20_util/variant/85183.cc: New.
775 2018-03-26 Jonathan Wakely <jwakely@redhat.com>
777 * include/std/variant (__get): Qualify calls to avoid ADL.
778 (__select_index): Adjust whitespace.
779 (variant): Add using-declaration to workaround Clang bug.
781 2018-03-22 Jonathan Wakely <jwakely@redhat.com>
784 * include/bits/stl_function.h (greater::__not_overloaded)
785 (less::__not_overloaded, greater_equal::__not_overloaded)
786 (less_equal::__not_overloaded): Fix ambiguous specializations.
787 * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
788 tests for type with overloaded operators.
790 2018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
793 * testsuite/experimental/memory_resource/resource_adaptor.cc:
794 xfail execution on 32-bit Solaris/x86.
796 2018-03-21 Jonathan Wakely <jwakely@redhat.com>
798 * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
799 VERIFY instead of assert.
800 * testsuite/20_util/hash/84998.cc: New test.
801 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
802 copy of test adjusted for Debug Mode.
803 * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
806 2018-03-20 François Dumont <fdumont@gcc.gnu.org>
809 * include/bits/stl_bvector.h: Fix std::hash friend declaration.
810 * include/std/bitset: Likewise.
811 * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
813 * include/bits/stl_multimap.h (std::multimap<>): Likewise.
814 * include/bits/stl_multiset.h (std::multiset<>): Likewise.
815 * include/bits/stl_set.h (std::set<>): Likewise.
816 * include/bits/unordered_map.h (std::unordered_map<>): Fix
817 _Hash_merge_helper friend declaration.
818 (std::unordered_multimap<>): Likewise.
819 * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
820 (std::unordered_multiset<>): Likewise.
822 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
824 * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
825 trailing slash for domain level link.
826 * doc/xml/faq.xml: Ditto.
827 * doc/xml/manual/appendix_free.xml (software): Ditto.
828 * doc/xml/manual/intro.xml: Ditto.
829 * doc/xml/manual/spine.xml: Ditto.
830 * doc/xml/spine.xml: Ditto.
832 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
834 * doc/xml/manual/documentation_hacking.xml: Adjust link to
837 2018-03-17 Jonathan Wakely <jwakely@redhat.com>
839 * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
842 2018-03-14 Jonathan Wakely <jwakely@redhat.com>
845 * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
846 (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
847 to ensure total order for pointers.
848 (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
849 Add operator() overloads for pointer arguments and make generic
850 overloads dispatch to new _S_cmp functions when comparisons would
851 use built-in operators for pointers.
852 * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
854 2018-03-12 Jonathan Wakely <jwakely@redhat.com>
858 * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
859 * configure: Regenerate.
860 * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
861 (aligned_alloc): Add using-declaration.
862 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
864 2018-03-09 François Dumont <fdumont@gcc.gnu.org>
866 * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
867 Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
870 2018-03-09 Jonathan Wakely <jwakely@redhat.com>
873 * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
874 Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
876 src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
877 src/filesystem/std-ops.cc (create_dir): Likewise.
879 2018-03-08 François Dumont <fdumont@gcc.gnu.org>
881 * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
882 (StdListIteratorPrinter): Inherit from latter.
883 (StdFwdListIteratorPrinter): New, inherit from latter.
884 (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
885 when iterator has no associated container.
886 (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
887 __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
889 * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
890 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
892 2018-03-06 Ville Voutilainen <ville.voutilainen@gmail.com>
895 * include/std/optional (_Optional_payload): Split into multiple
896 specializations that can handle different cases of trivial or
897 non-trivial assignment operators.
898 * testsuite/20_util/optional/84601.cc: New.
899 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
901 2018-03-02 Jonathan Wakely <jwakely@redhat.com>
904 * include/bits/parse_numbers.h (_Number_help): Add partial
905 specialization to handle digit separators. Adjust partial
906 specialization for recursion temrination to require _Pow == 1ULL.
907 * testsuite/20_util/duration/literals/84671.cc: New
909 2018-02-27 Ville Voutilainen <ville.voutilainen@gmail.com>
911 Implement the missing bits of LWG 2769
912 * include/std/any (any_cast(const any&)): Add static_assert.
913 (any_cast(any&)): Likewise.
914 (any_cast(any&&)): Likewise, and remove the handling
915 for copyable-but-not-movable type.
916 * testsuite/20_util/any/misc/any_cast.cc: Adjust.
917 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
920 2018-02-23 Jonathan Wakely <jwakely@redhat.com>
923 * include/std/thread (thread::__make_invoker): Construct tuple
924 directly instead of using make_tuple.
925 * testsuite/30_threads/async/84532.cc: New.
926 * testsuite/30_threads/thread/84532.cc: New.
928 2018-02-20 François Dumont <fdumont@gcc.gnu.org>
930 * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
931 (template<> __aligned_buffer): Define as __aligned_membuf alias.
933 2018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
936 * configure: Regenerate.
938 2018-02-15 Jonathan Wakely <jwakely@redhat.com>
941 * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
942 * configure: Regenerate.
943 * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
945 * include/Makefile.in: Regenerate.
947 2018-01-29 Jonathan Wakely <jwakely@redhat.com>
950 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
951 Add -ffloat-store to options for m68k and ia32.
953 * doc/xml/faq.xml: Update copyright years.
954 * doc/html/*: Regenerate.
957 * include/std/any (any::__do_emplace): Only set _M_manager after
958 constructing the contained object.
959 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
960 * testsuite/20_util/any/modifiers/83658.cc: New test.
962 2018-01-25 Jonathan Wakely <jwakely@redhat.com>
965 * include/c_global/cstddef (__byte_operand): Define primary template.
966 * testsuite/18_support/byte/81076.cc: New test.
968 2018-01-19 Christophe Lyon <christophe.lyon@linaro.org>
970 * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
971 dg-options and dg-add-options order.
972 * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
973 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
975 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
976 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
978 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
980 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
981 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
983 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
985 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
987 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
989 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
991 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
993 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
995 * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
997 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
998 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
999 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1000 * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
1001 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1002 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1003 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1004 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1005 * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
1007 * testsuite/special_functions/19_sph_bessel/check_nan.cc:
1009 * testsuite/special_functions/20_sph_legendre/check_nan.cc:
1011 * testsuite/special_functions/21_sph_neumann/check_nan.cc:
1014 2018-01-18 Uros Bizjak <ubizjak@gmail.com>
1016 * configure.ac (AC_CHECK_HEADERS): Add linux/types.h. Conditionally
1017 include linux/types.h when checking linux/random.h header.
1018 * config.h.in: Regenerate.
1020 * src/c++11/random.cc: Conditionally include linux/types.h.
1022 2018-01-16 Eric Botcazou <ebotcazou@adacore.com>
1024 * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
1026 2018-01-16 Jonathan Wakely <jwakely@redhat.com>
1029 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
1030 pattern with exact match for std::cerr.
1032 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
1035 * include/bits/random.h (chi_squared_distribution::param): Update
1036 gamma distribution parameter.
1037 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
1041 * include/std/type_traits (has_unique_object_representations_v): Add
1043 * testsuite/20_util/has_unique_object_representations/value.cc: Check
1046 2018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1048 Make optional conditionally
1049 trivially_{copy,move}_{constructible,assignable}
1050 * include/std/optional (_Optional_payload): Fix the comment in
1051 the class head and turn into a primary and one specialization.
1052 (_Optional_payload::_M_engaged): Strike the NSDMI.
1053 (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
1055 (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
1057 (_Optional_payload<_Tp, false>::_M_get): Likewise.
1058 (_Optional_payload<_Tp, false>::_M_reset): Likewise.
1059 (_Optional_base_impl): Likewise.
1060 (_Optional_base): Turn into a primary and three specializations.
1061 (optional(nullopt)): Change the base init.
1062 * testsuite/20_util/optional/assignment/8.cc: New.
1063 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
1064 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1066 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
1069 * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
1070 (get_template_arg_list): New.
1071 (StdVariantPrinter._template_args): Remove, use get_template_arg_list
1073 (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
1074 of strings and regular expressions.
1075 (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
1076 (FilteringTypePrinter): Add docstring. Match using startswith. Use
1077 strip_inline_namespaces instead of strip_versioned_namespace.
1078 (add_one_type_printer): Prepend namespace to match argument.
1079 (register_type_printers): Add type printers for char16_t and char32_t
1080 string types and for types using cxx11 ABI. Update calls to
1081 add_one_template_type_printer to provide default argument dicts.
1082 * testsuite/libstdc++-prettyprinters/80276.cc: New test.
1083 * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
1084 basic_string<unsigned char> and basic_string<signed char>.
1085 * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
1086 to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
1088 2018-01-14 Andreas Schwab <schwab@linux-m68k.org>
1091 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1093 2018-01-13 Tim Shen <timshen@google.com>
1096 * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
1097 * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
1098 * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
1100 2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1103 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
1104 Remove dg-xfail-run-if.
1106 2018-01-10 François Dumont <fdumont@gcc.gnu.org>
1108 * include/bits/forward_list.h
1109 (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
1110 (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
1111 (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
1112 (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
1113 (_Fwd_list_impl()): Add noexcept qualification.
1114 (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
1115 (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
1116 (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
1117 (_Fwd_list_base()): Default.
1118 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
1119 (_Fwd_list_base(_Fwd_list_base&&)): Default.
1120 (forward_list<>()): Default.
1121 (forward_list<>(forward_list&&)): Default.
1122 (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
1123 (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
1124 (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
1125 * include/bits/forward_list.tcc
1126 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
1127 _M_impl._M_head move assignment.
1128 (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
1129 * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
1131 2018-01-09 Jonathan Wakely <jwakely@redhat.com>
1134 * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
1135 (UniquePointerPrinter): Print correct template argument, not type of
1137 (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
1139 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
1141 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
1142 weak_ptr of array types.
1144 2018-01-09 François Dumont <fdumont@gcc.gnu.org>
1147 * include/bits/hashtable_policy.h
1148 (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
1150 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
1151 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
1152 Add false_type parameter.
1153 (_Insert_base::insert): Adapt.
1154 * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
1156 (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
1157 Add __n_elt parameter, defaulted to 1.
1158 (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
1159 policy _M_need_rehash.
1160 (_Hashtable::_M_merge_unique): Pass target number of elements to add to
1161 produce only 1 rehash if necessary.
1162 * testsuite/23_containers/unordered_map/insert/83709.cc: New.
1163 * testsuite/23_containers/unordered_set/insert/83709.cc: New.
1165 2018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr>
1166 Jonathan Wakely <jwakely@redhat.com>
1168 PR libstdc++/59253 (partial)
1169 * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
1170 type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
1171 (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
1173 * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
1174 of unique_ptr printer.
1175 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
1176 output of shared_ptr printer.
1178 2018-01-05 Jonathan Wakely <jwakely@redhat.com>
1181 * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
1182 unnecessary symlink_status call.
1183 (remove_all(const path&, error_code&)): Use filesystem::remove.
1184 * src/filesystem/std-ops.cc: Likewise.
1187 * src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with
1191 * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
1192 report an error for ENOENT.
1193 (remove_all(const path&)): Fix type of result variable.
1194 (remove_all(const path&, error_code&)): Use non-throwing increment
1195 for directory iterator. Call POSIX remove directly to avoid redundant
1196 calls to symlink_status. Do not report errors for ENOENT.
1197 * src/filesystem/std-ops.cc: Likewise.
1198 * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
1200 * testsuite/experimental/filesystem/operations/remove_all.cc:
1203 2018-01-04 Jonathan Wakely <jwakely@redhat.com>
1206 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
1207 redundant call to ec.clear().
1208 (remove_all(const path&, error_code&))): Do not return an error for
1210 * src/filesystem/std-ops.cc: Likewise.
1211 * testsuite/27_io/filesystem/operations/remove.cc: New test.
1212 * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
1213 results for non-existent paths.
1214 * testsuite/experimental/filesystem/operations/remove.cc: New test.
1215 * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
1216 expected results for non-existent paths.
1218 * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
1219 check status_known once.
1220 * include/experimental/bits/fs_ops.h: Likewise.
1223 * include/std/functional (__is_byte_like): New trait.
1224 (__is_std_equal_to): Remove.
1225 (__boyer_moore_base_t): Use __is_byte_like instead of
1227 * include/experimental/functional (__is_std_equal_to): Remove.
1228 (__boyer_moore_base_t): Use __is_byte_like instead of
1230 * testsuite/20_util/function_objects/83607.cc: New test.
1232 2018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com>
1234 Protect optional's deduction guide with the feature macro
1235 * include/std/optional: Use the feature macro.
1237 2018-01-03 Jakub Jelinek <jakub@redhat.com>
1239 Update copyright years.
1241 Copyright (C) 2018 Free Software Foundation, Inc.
1243 Copying and distribution of this file, with or without modification,
1244 are permitted in any medium without royalty provided the copyright
1245 notice and this notice are preserved.