2018-12-23 19:05:23 +01:00
|
|
|
|
2018-12-23 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
2018-12-23 19:11:38 +01:00
|
|
|
|
* libstdc++-v3/testsuite/util/testsuite_allocator.h
|
|
|
|
|
(CustomPointerAlloc<>::allocate(size_t, pointer)): Replace by...
|
|
|
|
|
(CustomPointerAlloc<>::allocate(size_t, const_void_pointer)): ...this.
|
|
|
|
|
|
2018-12-23 19:05:23 +01:00
|
|
|
|
Respect pointer_traits on node deallocation in _ReuseOrAllocNode
|
|
|
|
|
parenthesis operator.
|
|
|
|
|
|
|
|
|
|
* include/bits/hashtable_policy.h
|
|
|
|
|
(_Hashtable_alloc<>::_M_deallocate_node_ptr(__node_type*)): New.
|
|
|
|
|
(_Hashtable_alloc<>::_M_deallocate_node(__node_type*)): Use latter.
|
|
|
|
|
(_ReuseOrAllocNode<>::operator<_Arg>()(_Arg&&)): Likewise.
|
|
|
|
|
|
2018-12-22 21:06:47 +01:00
|
|
|
|
2018-12-22 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* /config/os/bsd/darwin/ppc-extra.ver: Append long double symbols.
|
|
|
|
|
|
2018-12-20 13:32:17 +01:00
|
|
|
|
2018-12-20 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-12-20 19:12:11 +01:00
|
|
|
|
* testsuite/27_io/filesystem/operations/proximate.cc: Fix test for
|
|
|
|
|
MinGW.
|
|
|
|
|
* testsuite/27_io/filesystem/path/append/source.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
|
|
|
|
|
|
2018-12-20 13:32:17 +01:00
|
|
|
|
* testsuite/27_io/filesystem/directory_entry/lwg3171.cc: New test
|
|
|
|
|
(missed from previous commit).
|
|
|
|
|
|
2018-12-19 21:16:57 +01:00
|
|
|
|
2018-12-19 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* doc/xml/manual/abi.xml: Add missing word.
|
|
|
|
|
|
2018-12-18 16:34:43 +01:00
|
|
|
|
2018-12-18 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-12-18 17:57:36 +01:00
|
|
|
|
* include/bits/fs_dir.h (operator<<): Overload for directory_entry,
|
|
|
|
|
as per LWG 3171.
|
|
|
|
|
* testsuite/27_io/filesystem/directory_entry/lwg3171.cc: New test.
|
|
|
|
|
|
2018-12-18 17:38:13 +01:00
|
|
|
|
* src/filesystem/std-dir.cc (filesystem::_Dir::advance): Move new
|
|
|
|
|
path instead of copying.
|
|
|
|
|
|
2018-12-18 16:52:37 +01:00
|
|
|
|
* src/filesystem/std-dir.cc (filesystem::_Dir::advance): Append
|
|
|
|
|
string to lvalue to avoid creating temporary path.
|
|
|
|
|
|
2018-12-18 16:52:33 +01:00
|
|
|
|
* include/bits/fs_path.h (path::compare(const string_type&))
|
|
|
|
|
(path::compare(const value_type*)): Add noexcept and construct a
|
|
|
|
|
string view to compare to instead of a path.
|
|
|
|
|
(path::compare(basic_string_view<value_type>)): Add noexcept. Remove
|
|
|
|
|
inline definition.
|
|
|
|
|
* src/filesystem/std-path.cc (path::_Parser): Track last type read
|
|
|
|
|
from input.
|
|
|
|
|
(path::_Parser::next()): Return a final empty component when the
|
|
|
|
|
input ends in a non-root directory separator.
|
|
|
|
|
(path::_M_append(basic_string_view<value_type>)): Remove special cases
|
|
|
|
|
for trailing non-root directory separator.
|
|
|
|
|
(path::_M_concat(basic_string_view<value_type>)): Likewise.
|
|
|
|
|
(path::compare(const path&)): Implement LWG 2936.
|
|
|
|
|
(path::compare(basic_string_view<value_type>)): Define in terms of
|
|
|
|
|
components returned by parser, consistent with LWG 2936.
|
|
|
|
|
* testsuite/27_io/filesystem/path/compare/lwg2936.cc: New.
|
|
|
|
|
* testsuite/27_io/filesystem/path/compare/path.cc: Test more cases.
|
|
|
|
|
* testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
|
|
|
|
|
|
2018-12-18 16:34:43 +01:00
|
|
|
|
* include/std/string_view [__cplusplus > 201703L]
|
|
|
|
|
(basic_string_view::starts_with(basic_string_view)): Implement
|
|
|
|
|
proposed resolution of LWG 3040 to avoid redundant length check.
|
|
|
|
|
(basic_string_view::starts_with(_CharT)): Implement proposed
|
|
|
|
|
resolution of LWG 3040 to check at most one character.
|
|
|
|
|
(basic_string_view::ends_with(_CharT)): Likewise.
|
|
|
|
|
|
2018-12-17 23:43:31 +01:00
|
|
|
|
2018-12-17 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/71044
|
|
|
|
|
* src/filesystem/std-path.cc (path::_M_append): Fix off-by-one error
|
|
|
|
|
that caused a component to be lost from the iteration sequence.
|
|
|
|
|
(path::_M_concat): Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/path/append/source.cc: Test appending
|
|
|
|
|
long strings.
|
|
|
|
|
* testsuite/27_io/filesystem/path/concat/strings.cc: Test
|
|
|
|
|
concatenating long strings.
|
|
|
|
|
* testsuite/27_io/filesystem/path/construct/string_view.cc: Test
|
|
|
|
|
construction from long string.
|
|
|
|
|
|
2018-12-13 12:01:03 +01:00
|
|
|
|
2018-12-13 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-12-13 21:34:10 +01:00
|
|
|
|
* src/filesystem/std-path.cc (SLASHSLASH_IS_ROOT_NAME): New macro to
|
|
|
|
|
control whether interpret paths with two slashes as a root-name.
|
|
|
|
|
(path::operator/=(const path&)) [SLASHSLASH_IS_ROOT_NAME]: Add a
|
|
|
|
|
root-directory when appending to a root-name.
|
|
|
|
|
(path::_M_append(basic_string_view<value_type>))
|
|
|
|
|
[SLASHSLASH_IS_ROOT_NAME]: Likewise.
|
|
|
|
|
(path::operator/=(const path&)) [SLASHSLASH_IS_ROOT_NAME]: Likewise.
|
|
|
|
|
(path::_M_concat(basic_string_view<value_type>))
|
|
|
|
|
[SLASHSLASH_IS_ROOT_NAME]: Likewise.
|
|
|
|
|
(path::lexically_normal()) [SLASHSLASH_IS_ROOT_NAME]: Use += instead
|
|
|
|
|
of /= to add a root-directory to the result.
|
|
|
|
|
* testsuite/27_io/filesystem/path/decompose/root_directory.cc: Fix
|
|
|
|
|
expected result for Cygwin.
|
|
|
|
|
|
PR libstdc++/71044 optimize std::filesystem::path construction
This new implementation has a smaller footprint than the previous
implementation, due to replacing std::vector<_Cmpt> with a custom pimpl
type that only needs a single pointer. The _M_type enumeration is also
combined with the pimpl type, by using a tagged pointer, reducing
sizeof(path) further still.
Construction and modification of paths is now done more efficiently, by
splitting the input into a stack-based buffer of string_view objects
instead of a dynamically-allocated vector containing strings. Once the
final size is known only a single allocation is needed to reserve space
for it. The append and concat operations no longer require constructing
temporary path objects, nor re-parsing the entire native pathname.
This results in algorithmic improvements to path construction, and
working with large paths is much faster.
PR libstdc++/71044
* include/bits/fs_path.h (path::path(path&&)): Add noexcept when
appropriate. Move _M_cmpts instead of reparsing the native pathname.
(path::operator=(const path&)): Do not define as defaulted.
(path::operator/=, path::append): Call _M_append.
(path::concat): Call _M_concat.
(path::path(string_type, _Type): Change type of first parameter to
basic_string_view<value_type>.
(path::_M_append(basic_string_view<value_type>)): New member function.
(path::_M_concat(basic_string_view<value_type>)): New member function.
(_S_convert(value_type*, __null_terminated)): Return string view.
(_S_convert(const value_type*, __null_terminated)): Return string view.
(_S_convert(value_type*, value_type*))
(_S_convert(const value_type*, const value_type*)): Add overloads for
pairs of pointers.
(_S_convert(_InputIterator, __null_terminated)): Construct string_type
explicitly, for cases where _S_convert returns a string view.
(path::_S_is_dir_sep): Replace with non-member is_dir_sep.
(path::_M_trim, path::_M_add_root_name, path::_M_add_root_dir)
(path::_M_add_filename): Remove.
(path::_M_type()): New member function to replace _M_type data member.
(path::_List): Define new struct type instead of using std::vector.
(path::_Cmpt::_Cmpt(string_type, _Type, size_t)): Change type of
first parameter to basic_string_view<value_type>.
(path::operator+=(const path&)): Do not define inline.
(path::operator+=(const string_type&)): Call _M_concat.
(path::operator+=(const value_type*)): Likewise.
(path::operator+=(value_type)): Likewise.
(path::operator+=(basic_string_view<value_type>)): Likewise.
(path::operator/=(const path&)): Do not define inline.
(path::_M_append(path)): Remove.
* python/libstdcxx/v6/printers.py (StdPathPrinter): New printer that
understands the new path::_List type.
* src/filesystem/std-path.cc (is_dir_sep): New function to replace
path::_S_is_dir_sep.
(path::_Parser): New helper class to parse strings as paths.
(path::_List::_Impl): Define container type for path components.
(path::_List): Define members.
(path::operator=(const path&)): Define explicitly, to provide the
strong exception safety guarantee.
(path::operator/=(const path&)): Implement manually by processing
each component of the argument, rather than using _M_split_cmpts
to parse the entire string again.
(path::_M_append(string_type)): Likewise.
(path::operator+=(const path&)): Likewise.
(path::_M_concat(string_type)): Likewise.
(path::remove_filename()): Perform trim directly instead of calling
_M_trim().
(path::_M_split_cmpts()): Rewrite in terms of _Parser class.
(path::_M_trim, path::_M_add_root_name, path::_M_add_root_dir)
(path::_M_add_filename): Remove.
* testsuite/27_io/filesystem/path/append/source.cc: Test appending a
string view that aliases the path.
testsuite/27_io/filesystem/path/concat/strings.cc: Test concatenating
a string view that aliases the path.
From-SVN: r267106
2018-12-13 21:33:55 +01:00
|
|
|
|
PR libstdc++/71044
|
|
|
|
|
* include/bits/fs_path.h (path::path(path&&)): Add noexcept when
|
|
|
|
|
appropriate. Move _M_cmpts instead of reparsing the native pathname.
|
|
|
|
|
(path::operator=(const path&)): Do not define as defaulted.
|
|
|
|
|
(path::operator/=, path::append): Call _M_append.
|
|
|
|
|
(path::concat): Call _M_concat.
|
|
|
|
|
(path::path(string_type, _Type): Change type of first parameter to
|
|
|
|
|
basic_string_view<value_type>.
|
|
|
|
|
(path::_M_append(basic_string_view<value_type>)): New member function.
|
|
|
|
|
(path::_M_concat(basic_string_view<value_type>)): New member function.
|
|
|
|
|
(_S_convert(value_type*, __null_terminated)): Return string view.
|
|
|
|
|
(_S_convert(const value_type*, __null_terminated)): Return string view.
|
|
|
|
|
(_S_convert(value_type*, value_type*))
|
|
|
|
|
(_S_convert(const value_type*, const value_type*)): Add overloads for
|
|
|
|
|
pairs of pointers.
|
|
|
|
|
(_S_convert(_InputIterator, __null_terminated)): Construct string_type
|
|
|
|
|
explicitly, for cases where _S_convert returns a string view.
|
|
|
|
|
(path::_S_is_dir_sep): Replace with non-member is_dir_sep.
|
|
|
|
|
(path::_M_trim, path::_M_add_root_name, path::_M_add_root_dir)
|
|
|
|
|
(path::_M_add_filename): Remove.
|
|
|
|
|
(path::_M_type()): New member function to replace _M_type data member.
|
|
|
|
|
(path::_List): Define new struct type instead of using std::vector.
|
|
|
|
|
(path::_Cmpt::_Cmpt(string_type, _Type, size_t)): Change type of
|
|
|
|
|
first parameter to basic_string_view<value_type>.
|
|
|
|
|
(path::operator+=(const path&)): Do not define inline.
|
|
|
|
|
(path::operator+=(const string_type&)): Call _M_concat.
|
|
|
|
|
(path::operator+=(const value_type*)): Likewise.
|
|
|
|
|
(path::operator+=(value_type)): Likewise.
|
|
|
|
|
(path::operator+=(basic_string_view<value_type>)): Likewise.
|
|
|
|
|
(path::operator/=(const path&)): Do not define inline.
|
|
|
|
|
(path::_M_append(path)): Remove.
|
|
|
|
|
* python/libstdcxx/v6/printers.py (StdPathPrinter): New printer that
|
|
|
|
|
understands the new path::_List type.
|
|
|
|
|
* src/filesystem/std-path.cc (is_dir_sep): New function to replace
|
|
|
|
|
path::_S_is_dir_sep.
|
|
|
|
|
(path::_Parser): New helper class to parse strings as paths.
|
|
|
|
|
(path::_List::_Impl): Define container type for path components.
|
|
|
|
|
(path::_List): Define members.
|
|
|
|
|
(path::operator=(const path&)): Define explicitly, to provide the
|
|
|
|
|
strong exception safety guarantee.
|
|
|
|
|
(path::operator/=(const path&)): Implement manually by processing
|
|
|
|
|
each component of the argument, rather than using _M_split_cmpts
|
|
|
|
|
to parse the entire string again.
|
|
|
|
|
(path::_M_append(string_type)): Likewise.
|
|
|
|
|
(path::operator+=(const path&)): Likewise.
|
|
|
|
|
(path::_M_concat(string_type)): Likewise.
|
|
|
|
|
(path::remove_filename()): Perform trim directly instead of calling
|
|
|
|
|
_M_trim().
|
|
|
|
|
(path::_M_split_cmpts()): Rewrite in terms of _Parser class.
|
|
|
|
|
(path::_M_trim, path::_M_add_root_name, path::_M_add_root_dir)
|
|
|
|
|
(path::_M_add_filename): Remove.
|
|
|
|
|
* testsuite/27_io/filesystem/path/append/source.cc: Test appending a
|
|
|
|
|
string view that aliases the path.
|
|
|
|
|
testsuite/27_io/filesystem/path/concat/strings.cc: Test concatenating
|
|
|
|
|
a string view that aliases the path.
|
|
|
|
|
|
2018-12-13 13:26:52 +01:00
|
|
|
|
* testsuite/27_io/filesystem/path/generation/proximate.cc: Use
|
|
|
|
|
preferred directory separators for normalized paths.
|
|
|
|
|
* testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
|
|
|
|
|
|
2018-12-13 13:09:33 +01:00
|
|
|
|
* testsuite/27_io/filesystem/path/itr/traversal.cc: Fix test for
|
|
|
|
|
mingw.
|
|
|
|
|
|
2018-12-13 12:01:03 +01:00
|
|
|
|
* testsuite/27_io/filesystem/path/construct/80762.cc: Skip test if
|
|
|
|
|
the Filesystem TS support is not configured.
|
|
|
|
|
* testsuite/experimental/filesystem/path/construct/80762.cc: Likewise.
|
|
|
|
|
|
2018-12-12 17:13:43 +01:00
|
|
|
|
2018-12-12 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-12-12 17:13:49 +01:00
|
|
|
|
PR libstdc++/71044 (partial)
|
|
|
|
|
* include/bits/fs_path.h (__path_iter_distance, __path_iter_advance):
|
|
|
|
|
New friend functions to implement std::distance and std::advance more
|
|
|
|
|
efficiently.
|
|
|
|
|
(distance, advance): Add overloads for path::iterator.
|
|
|
|
|
* testsuite/27_io/filesystem/path/itr/components.cc: Test new
|
|
|
|
|
overload.
|
|
|
|
|
|
2018-12-12 17:13:43 +01:00
|
|
|
|
PR libstdc++/80762
|
|
|
|
|
* include/bits/fs_path.h (path::_Path): Use remove_cv_t and is_void.
|
|
|
|
|
* include/experimental/bits/fs_path.h (path::_Path): Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/path/construct/80762.cc: New test.
|
|
|
|
|
* testsuite/experimental/filesystem/path/construct/80762.cc: New test.
|
|
|
|
|
|
2018-12-12 09:31:01 +01:00
|
|
|
|
2018-12-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
P0595R2 - is_constant_evaluated
|
|
|
|
|
* include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED):
|
|
|
|
|
Define if __builtin_is_constant_evaluated is available.
|
|
|
|
|
* include/std/type_traits (std::is_constant_evaluated): New constexpr
|
|
|
|
|
inline function.
|
|
|
|
|
* testsuite/20_util/is_constant_evaluated/1.cc: New test.
|
|
|
|
|
* testsuite/20_util/is_constant_evaluated/noexcept.cc: New test.
|
|
|
|
|
|
2018-12-11 05:00:00 +01:00
|
|
|
|
2018-12-10 Gerald Pfeifer <gerald@pfeifer.com>
|
|
|
|
|
|
|
|
|
|
* doc/xml/manual/documentation_hacking.xml: Update reference
|
|
|
|
|
to epubcheck.
|
|
|
|
|
|
2018-12-10 16:25:02 +01:00
|
|
|
|
2018-12-10 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/is_absolute.cc: Fix
|
|
|
|
|
test to use TS, not C++17.
|
|
|
|
|
|
2018-12-06 20:42:21 +01:00
|
|
|
|
2018-12-06 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* scripts/make_exports.pl (check names): Don’t try to export
|
|
|
|
|
construction vtable symbols.
|
|
|
|
|
|
2018-12-06 20:21:32 +01:00
|
|
|
|
2018-12-06 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/64883
|
|
|
|
|
* testsuite/17_intro/headers/c++1998/all_attributes.cc: Don't test
|
|
|
|
|
always_inline on Darwin.
|
|
|
|
|
* testsuite/17_intro/headers/c++2011/all_attributes.cc: Likewise.
|
|
|
|
|
* testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise.
|
|
|
|
|
* testsuite/17_intro/headers/c++2017/all_attributes.cc: Likewise.
|
|
|
|
|
* testsuite/17_intro/headers/c++2020/all_attributes.cc: Likewise.
|
|
|
|
|
|
2018-12-04 17:26:39 +01:00
|
|
|
|
2018-12-03 Edward Smith-Rowland <3dw4rd@verizon.net>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/88341 - Complex norm doesn't compile with C++11
|
|
|
|
|
* include/std/complex (_S_do_it): Make C++20 constexpr.
|
|
|
|
|
* testsuite/26_numerics/complex/value_operations/pr88341.cc: New test.
|
|
|
|
|
|
2018-11-30 17:26:02 +01:00
|
|
|
|
2018-11-30 Edward Smith-Rowland <3dw4rd@verizon.net>
|
|
|
|
|
|
|
|
|
|
Implement P0457R2 String Prefix and Suffix Checking.
|
|
|
|
|
* include/bits/basic_string.h: Add starts_with, ends_with members.
|
|
|
|
|
* include/std/string_view: Ditto.
|
|
|
|
|
* testsuite/21_strings/basic_string/operations/starts_with/
|
|
|
|
|
char/1.cc: New test.
|
|
|
|
|
* testsuite/21_strings/basic_string/operations/starts_with/
|
|
|
|
|
wchar_t/1.cc: New test.
|
|
|
|
|
* testsuite/21_strings/basic_string/operations/ends_with/
|
|
|
|
|
char/1.cc: New test.
|
|
|
|
|
* testsuite/21_strings/basic_string/operations/ends_with/
|
|
|
|
|
wchar_t/1.cc: New test.
|
|
|
|
|
* testsuite/21_strings/basic_string_view/operations/starts_with/
|
|
|
|
|
char/1.cc: New test.
|
|
|
|
|
* testsuite/21_strings/basic_string_view/operations/starts_with/
|
|
|
|
|
wchar_t/1.cc: New test.
|
|
|
|
|
* testsuite/21_strings/basic_string_view/operations/ends_with/
|
|
|
|
|
char/1.cc: New test.
|
|
|
|
|
* testsuite/21_strings/basic_string_view/operations/ends_with/
|
|
|
|
|
wchar_t/1.cc: New test.
|
|
|
|
|
|
2018-11-30 17:12:13 +01:00
|
|
|
|
2018-11-30 Edward Smith-Rowland <3dw4rd@verizon.net>
|
|
|
|
|
|
|
|
|
|
Pre-emptively support P0646R1 for std container erasure.
|
|
|
|
|
* include/bits/erase_if.h: Accumulate and return number of erased nodes.
|
|
|
|
|
* include/std/forward_list (): Return number of erased items.
|
|
|
|
|
* include/std/list (): Ditto.
|
|
|
|
|
* include/std/map (): Ditto.
|
|
|
|
|
* include/std/set (): Ditto.
|
|
|
|
|
* include/std/string (): Ditto.
|
|
|
|
|
* include/std/unordered_map (): Ditto.
|
|
|
|
|
* include/std/unordered_set (): Ditto.
|
|
|
|
|
* include/std/vector (): Ditto.
|
2018-11-30 17:26:02 +01:00
|
|
|
|
* include/std/deque (): Ditto.
|
2018-11-30 17:12:13 +01:00
|
|
|
|
* testsuite/21_strings/basic_string/erasure.cc: Test number of erasures.
|
|
|
|
|
* testsuite/23_containers/deque/erasure.cc: Ditto.
|
|
|
|
|
* testsuite/23_containers/forward_list/erasure.cc: Ditto.
|
|
|
|
|
* testsuite/23_containers/list/erasure.cc: Ditto.
|
|
|
|
|
* testsuite/23_containers/map/erasure.cc: Ditto.
|
|
|
|
|
* testsuite/23_containers/set/erasure.cc: Ditto.
|
|
|
|
|
* testsuite/23_containers/unordered_map/erasure.cc: Ditto.
|
|
|
|
|
* testsuite/23_containers/unordered_set/erasure.cc: Ditto.
|
|
|
|
|
* testsuite/23_containers/vector/erasure.cc: Ditto.
|
|
|
|
|
|
2018-11-29 16:17:17 +01:00
|
|
|
|
2018-11-29 Edward Smith-Rowland <3dw4rd@verizon.net>
|
|
|
|
|
|
|
|
|
|
Only include bits/stl_algo.h for C++20.
|
|
|
|
|
* include/std/deque: Only include bits/stl_algo.h for C++20.
|
|
|
|
|
* include/std/string: Ditto.
|
|
|
|
|
* include/std/vector: Ditto.
|
|
|
|
|
|
2018-11-29 14:43:55 +01:00
|
|
|
|
2018-11-29 Edward Smith-Rowland <3dw4rd@verizon.net>
|
|
|
|
|
|
|
|
|
|
Fix erasure goofs.
|
|
|
|
|
* include/experimental/deque: Make inline.
|
|
|
|
|
* include/std/deque: Include bits/stl_algo.h.
|
|
|
|
|
(erase, erase_if): Make inline.
|
|
|
|
|
* include/std/string: Include bits/stl_algo.h.
|
|
|
|
|
* include/std/unordered_set: Add erase, erase_if!
|
|
|
|
|
* include/std/vector: Include bits/stl_algo.h.
|
|
|
|
|
* testsuite/21_strings/basic_string/erasure.cc:
|
|
|
|
|
Add { dg-options "-std=gnu++2a" }.
|
|
|
|
|
* testsuite/23_containers/deque/erasure.cc: Ditto.
|
|
|
|
|
* testsuite/23_containers/forward_list/erasure.cc: Ditto.
|
|
|
|
|
* testsuite/23_containers/list/erasure.cc: Ditto.
|
|
|
|
|
* testsuite/23_containers/map/erasure.cc: Ditto.
|
|
|
|
|
* testsuite/23_containers/set/erasure.cc: Ditto.
|
|
|
|
|
* testsuite/23_containers/unordered_map/erasure.cc: Ditto.
|
|
|
|
|
* testsuite/23_containers/unordered_set/erasure.cc: Ditto.
|
|
|
|
|
* testsuite/23_containers/vector/erasure.cc: Ditto.
|
|
|
|
|
|
2018-11-29 01:39:37 +01:00
|
|
|
|
2018-11-29 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-11-29 13:32:57 +01:00
|
|
|
|
PR libstdc++/88119
|
|
|
|
|
* include/ext/aligned_buffer.h (__aligned_membuf): Add comment.
|
|
|
|
|
(__aligned_buffer): Use __alignof__ instead of std::alignment_of.
|
|
|
|
|
* include/std/type_traits (alignment_of): Use alignof instead of
|
|
|
|
|
__alignof__.
|
|
|
|
|
* testsuite/20_util/alignment_of/value.cc: Fix test to check values
|
|
|
|
|
match alignof not __alignof__, as required by the standard.
|
|
|
|
|
|
2018-11-29 01:39:37 +01:00
|
|
|
|
PR libstdc++/86910
|
|
|
|
|
PR libstdc++/87846
|
|
|
|
|
* src/filesystem/ops.cc (experimental::create_directories): Report
|
|
|
|
|
an error when the path resolves to an existing non-directory (P1164).
|
|
|
|
|
* src/filesystem/std-ops.cc (create_directories): Likewise. Handle
|
|
|
|
|
empty filenames due to trailing slashes.
|
|
|
|
|
* testsuite/27_io/filesystem/operations/create_directories.cc: Test
|
|
|
|
|
when some component of the path exists and is not a directory. Test
|
|
|
|
|
trailing slashes.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/create_directories.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2018-11-28 17:53:35 +01:00
|
|
|
|
2018-11-28 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-11-28 18:07:22 +01:00
|
|
|
|
PR libstdc++/83306
|
|
|
|
|
* src/filesystem/path.cc (filesystem_error::_M_gen_what()): Create
|
|
|
|
|
string directly, instead of calling fs_err_concat.
|
|
|
|
|
|
2018-11-28 17:53:35 +01:00
|
|
|
|
PR libstdc++/83511
|
|
|
|
|
* include/std/string_view (basic_string_view::substr): Add default
|
|
|
|
|
argument to first parameter.
|
|
|
|
|
* include/experimental/string_view (basic_string_view::substr):
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/21_strings/basic_string_view/operations/substr/char/
|
|
|
|
|
83511.cc: New test.
|
|
|
|
|
* testsuite/21_strings/basic_string_view/operations/substr/wchar_t/
|
|
|
|
|
83511.cc: New test.
|
|
|
|
|
* testsuite/experimental/string_view/operations/substr/char/83511.cc:
|
|
|
|
|
New test.
|
|
|
|
|
* testsuite/experimental/string_view/operations/substr/wchar_t/83511.cc:
|
|
|
|
|
New test.
|
|
|
|
|
|
2018-11-28 17:44:25 +01:00
|
|
|
|
2018-11-28 Edward Smith-Rowland <3dw4rd@verizon.net>
|
|
|
|
|
|
|
|
|
|
Implement uniform container erasure for C++20.
|
|
|
|
|
* include/Makefile.am: Move erase_if.h.
|
|
|
|
|
* include/Makefile.in: Move erase_if.h.
|
|
|
|
|
* include/experimental/bits/erase_if.h: Move ...
|
|
|
|
|
* include/bits/erase_if.h: ... here.
|
|
|
|
|
* include/experimental/map: Move erase_if.h.
|
|
|
|
|
* include/experimental/set: Move erase_if.h.
|
|
|
|
|
* include/experimental/unordered_map: Move erase_if.h.
|
|
|
|
|
* include/experimental/unordered_set: Move erase_if.h.
|
|
|
|
|
* include/std/deque (erase_if, erase): New functions.
|
|
|
|
|
* include/std/forward_list: Ditto.
|
|
|
|
|
* include/std/list: Ditto.
|
|
|
|
|
* include/std/map: Ditto.
|
|
|
|
|
* include/std/set: Ditto.
|
|
|
|
|
* include/std/string: Ditto.
|
|
|
|
|
* include/std/unordered_map: Ditto.
|
|
|
|
|
* include/std/unordered_set: Ditto.
|
|
|
|
|
* include/std/vector: Ditto.
|
|
|
|
|
* testsuite/21_strings/basic_string/erasure.cc: New test.
|
|
|
|
|
* testsuite/23_containers/deque/erasure.cc: New test.
|
|
|
|
|
* testsuite/23_containers/forward_list/erasure.cc: New test.
|
|
|
|
|
* testsuite/23_containers/list/erasure.cc: New test.
|
|
|
|
|
* testsuite/23_containers/map/erasure.cc: New test.
|
|
|
|
|
* testsuite/23_containers/set/erasure.cc: New test.
|
|
|
|
|
* testsuite/23_containers/unordered_map/erasure.cc: New test.
|
|
|
|
|
* testsuite/23_containers/unordered_set/erasure.cc: New test.
|
|
|
|
|
* testsuite/23_containers/vector/erasure.cc: New test.
|
|
|
|
|
|
2018-11-28 14:49:47 +01:00
|
|
|
|
2018-11-28 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-11-28 16:36:56 +01:00
|
|
|
|
* doc/xml/manual/intro.xml: Document LWG 3096 change.
|
|
|
|
|
* src/filesystem/std-path.cc (path::lexically_relative(const path&)):
|
|
|
|
|
Treat a final empty element equivalently to a final dot element.
|
|
|
|
|
* testsuite/27_io/filesystem/path/generation/relative.cc: Add checks
|
|
|
|
|
for the examples in the DR.
|
|
|
|
|
|
2018-11-28 16:27:11 +01:00
|
|
|
|
PR libstdc++/83306
|
|
|
|
|
* include/bits/fs_path.h (filesystem_error): Move data members into
|
|
|
|
|
pimpl class owned by shared_ptr. Remove inline definitions of member
|
|
|
|
|
functions.
|
|
|
|
|
* src/filesystem/std-path.cc (filesystem_error::_Impl): Define.
|
|
|
|
|
(filesystem_error): Define member functions.
|
|
|
|
|
* testsuite/27_io/filesystem/filesystem_error/cons.cc: New test.
|
|
|
|
|
* testsuite/27_io/filesystem/filesystem_error/copy.cc: New test.
|
|
|
|
|
|
2018-11-28 14:49:47 +01:00
|
|
|
|
* doc/xml/manual/status_cxx2017.xml: Update C++17 status.
|
|
|
|
|
* doc/html/*: Regenerate.
|
|
|
|
|
|
PR libstdc++/67843 set shared_ptr lock policy at build-time
This resolves a longstanding issue where the lock policy for shared_ptr
reference counting depends on compilation options when the header is
included, so that different -march options can cause ABI changes. For
example, objects compiled with -march=armv7 will use atomics to
synchronize reference counts, and objects compiled with -march=armv5t
will use a mutex. That means the shared_ptr control block will have a
different layout in different objects, causing ODR violations and
undefined behaviour. This was the root cause of PR libstdc++/42734 as
well as PR libstdc++/67843.
The solution is to decide on the lock policy at build time, when
libstdc++ is configured. The configure script checks for the
availability of the necessary atomic built-ins for the target and fixes
that choice permanently. Different -march flags used to compile user
code will not cause changes to the lock policy. This results in an ABI
change for certain compilations, but only where there was already an ABI
incompatibility between the libstdc++.so library and objects built with
an incompatible -march option. In general, this means a more stable ABI
that isn't silently altered when -march flags make addition atomic ops
available.
To force a target to use "atomic" or "mutex" the new configure option
--with-libstdcxx-lock-policy can be used.
In order to turn ODR violations into linker errors, the uses of
shared_ptr in filesystem directory iterators have been replaced
with __shared_ptr, and explicit instantiations are declared. This
ensures that object files using those types cannot link to libstdc++
libs unless they use the same lock policy.
PR libstdc++/67843
* acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add new macro
that defines _GLIBCXX_HAVE_ATOMIC_LOCK_POLICY.
* config.h.in: Regenerate.
* configure: Regenerate.
* configure.ac: Use GLIBCXX_ENABLE_LOCK_POLICY.
* doc/xml/manual/configure.xml: Document new configure option.
* include/bits/fs_dir.h (directory_iterator): Use __shared_ptr
instead of shared_ptr.
(recursive_directory_iterator): Likewise.
(__shared_ptr<_Dir>): Add explicit instantiation declaration.
(__shared_ptr<recursive_directory_iterator::_Dir_stack>): Likewise.
* include/bits/shared_ptr_base.h (__allocate_shared, __make_shared):
Add default template argument for _Lock_policy template parameter.
* include/ext/concurrence.h (__default_lock_policy): Check macro
_GLIBCXX_HAVE_ATOMIC_LOCK_POLICY instead of checking if the current
target supports the builtins for compare-and-swap.
* src/filesystem/std-dir.cc (__shared_ptr<_Dir>): Add explicit
instantiation definition.
(__shared_ptr<recursive_directory_iterator::_Dir_stack>): Likewise.
(directory_iterator, recursive_directory_iterator): Use __make_shared
instead of make_shared.
From-SVN: r266533
2018-11-28 00:25:56 +01:00
|
|
|
|
2018-11-27 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-11-28 00:35:17 +01:00
|
|
|
|
* testsuite/27_io/filesystem/operations/canonical.cc: Remove
|
|
|
|
|
directory created by test.
|
|
|
|
|
* testsuite/27_io/filesystem/operations/symlink_status.cc: Remove
|
|
|
|
|
symlink created by test.
|
|
|
|
|
|
PR libstdc++/67843 set shared_ptr lock policy at build-time
This resolves a longstanding issue where the lock policy for shared_ptr
reference counting depends on compilation options when the header is
included, so that different -march options can cause ABI changes. For
example, objects compiled with -march=armv7 will use atomics to
synchronize reference counts, and objects compiled with -march=armv5t
will use a mutex. That means the shared_ptr control block will have a
different layout in different objects, causing ODR violations and
undefined behaviour. This was the root cause of PR libstdc++/42734 as
well as PR libstdc++/67843.
The solution is to decide on the lock policy at build time, when
libstdc++ is configured. The configure script checks for the
availability of the necessary atomic built-ins for the target and fixes
that choice permanently. Different -march flags used to compile user
code will not cause changes to the lock policy. This results in an ABI
change for certain compilations, but only where there was already an ABI
incompatibility between the libstdc++.so library and objects built with
an incompatible -march option. In general, this means a more stable ABI
that isn't silently altered when -march flags make addition atomic ops
available.
To force a target to use "atomic" or "mutex" the new configure option
--with-libstdcxx-lock-policy can be used.
In order to turn ODR violations into linker errors, the uses of
shared_ptr in filesystem directory iterators have been replaced
with __shared_ptr, and explicit instantiations are declared. This
ensures that object files using those types cannot link to libstdc++
libs unless they use the same lock policy.
PR libstdc++/67843
* acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add new macro
that defines _GLIBCXX_HAVE_ATOMIC_LOCK_POLICY.
* config.h.in: Regenerate.
* configure: Regenerate.
* configure.ac: Use GLIBCXX_ENABLE_LOCK_POLICY.
* doc/xml/manual/configure.xml: Document new configure option.
* include/bits/fs_dir.h (directory_iterator): Use __shared_ptr
instead of shared_ptr.
(recursive_directory_iterator): Likewise.
(__shared_ptr<_Dir>): Add explicit instantiation declaration.
(__shared_ptr<recursive_directory_iterator::_Dir_stack>): Likewise.
* include/bits/shared_ptr_base.h (__allocate_shared, __make_shared):
Add default template argument for _Lock_policy template parameter.
* include/ext/concurrence.h (__default_lock_policy): Check macro
_GLIBCXX_HAVE_ATOMIC_LOCK_POLICY instead of checking if the current
target supports the builtins for compare-and-swap.
* src/filesystem/std-dir.cc (__shared_ptr<_Dir>): Add explicit
instantiation definition.
(__shared_ptr<recursive_directory_iterator::_Dir_stack>): Likewise.
(directory_iterator, recursive_directory_iterator): Use __make_shared
instead of make_shared.
From-SVN: r266533
2018-11-28 00:25:56 +01:00
|
|
|
|
PR libstdc++/67843
|
|
|
|
|
* acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add new macro
|
|
|
|
|
that defines _GLIBCXX_HAVE_ATOMIC_LOCK_POLICY.
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* configure.ac: Use GLIBCXX_ENABLE_LOCK_POLICY.
|
|
|
|
|
* doc/xml/manual/configure.xml: Document new configure option.
|
|
|
|
|
* include/bits/fs_dir.h (directory_iterator): Use __shared_ptr
|
|
|
|
|
instead of shared_ptr.
|
|
|
|
|
(recursive_directory_iterator): Likewise.
|
|
|
|
|
(__shared_ptr<_Dir>): Add explicit instantiation declaration.
|
|
|
|
|
(__shared_ptr<recursive_directory_iterator::_Dir_stack>): Likewise.
|
|
|
|
|
* include/bits/shared_ptr_base.h (__allocate_shared, __make_shared):
|
|
|
|
|
Add default template argument for _Lock_policy template parameter.
|
|
|
|
|
* include/ext/concurrence.h (__default_lock_policy): Check macro
|
|
|
|
|
_GLIBCXX_HAVE_ATOMIC_LOCK_POLICY instead of checking if the current
|
|
|
|
|
target supports the builtins for compare-and-swap.
|
|
|
|
|
* src/filesystem/std-dir.cc (__shared_ptr<_Dir>): Add explicit
|
|
|
|
|
instantiation definition.
|
|
|
|
|
(__shared_ptr<recursive_directory_iterator::_Dir_stack>): Likewise.
|
|
|
|
|
(directory_iterator, recursive_directory_iterator): Use __make_shared
|
|
|
|
|
instead of make_shared.
|
|
|
|
|
|
2018-11-27 22:21:51 +01:00
|
|
|
|
2018-11-27 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/88199
|
|
|
|
|
* include/bits/hashtable.h (_Hashtable<>::_M_assign_elements): New.
|
|
|
|
|
(_Hashtable<>::operator=(const _Hashtable&)): Use latter.
|
|
|
|
|
(_Hashtable<>::_M_move_assign(_Hashtable&&, false_type)): Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_set/allocator/move_assign.cc
|
|
|
|
|
(test03): New.
|
|
|
|
|
|
2018-11-26 12:12:11 +01:00
|
|
|
|
2018-11-26 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/26_numerics/complex/requirements/more_constexpr.cc: Fix
|
|
|
|
|
failure on targets without __float128.
|
|
|
|
|
|
2018-11-23 19:17:04 +01:00
|
|
|
|
2018-11-23 Edward Smith-Rowland <3dw4rd@verizon.net>
|
|
|
|
|
|
|
|
|
|
Implement P0415 More constexpr for std::complex.
|
|
|
|
|
* include/std/complex (conj(complex<Tp>), norm(complex<Tp>)): Constexpr;
|
|
|
|
|
(real(Tp), imag(Tp)): Constexpr;
|
|
|
|
|
(operator@=(Tp), operator@=(complex<Tp>)): Constexpr;
|
|
|
|
|
(operator@(Tp,complex<Tp>), operator@(complex<Tp>,Tp)
|
|
|
|
|
operator@(complex<Tp>,complex<Tp>)): Constexpr.
|
|
|
|
|
* testsuite/26_numerics/complex/comparison_operators/
|
|
|
|
|
more_constexpr.cc: New test.
|
|
|
|
|
* testsuite/26_numerics/complex/operators/more_constexpr.cc: New test.
|
|
|
|
|
* testsuite/26_numerics/complex/requirements/
|
|
|
|
|
more_constexpr.cc: New test.
|
|
|
|
|
* testsuite/26_numerics/complex/value_operations/
|
|
|
|
|
more_constexpr.cc: New test.
|
|
|
|
|
* testsuite/26_numerics/headers/complex/synopsis.cc:
|
|
|
|
|
Add _GLIBCXX20_CONSTEXPR to applicable operators; Add missing proj().
|
2018-11-27 22:21:51 +01:00
|
|
|
|
* testsuite/26_numerics/headers/complex/synopsis.cc:
|
2018-11-23 19:17:04 +01:00
|
|
|
|
Add _GLIBCXX20_CONSTEXPR to relevant decls.
|
|
|
|
|
|
2018-11-23 17:12:03 +01:00
|
|
|
|
2018-11-23 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/65229
|
|
|
|
|
* python/libstdcxx/v6/printers.py (StdBitsetPrinter): Handle
|
|
|
|
|
exception thrown for std::bitset<0>.
|
|
|
|
|
* testsuite/libstdc++-prettyprinters/simple.cc: Test std::bitset<0>.
|
|
|
|
|
|
2018-11-23 16:48:56 +01:00
|
|
|
|
2018-11-23 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/87308 (partial)
|
|
|
|
|
* python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Adjust regex to
|
|
|
|
|
work around PR 88166.
|
|
|
|
|
* testsuite/libstdc++-prettyprinters/cxx17.cc: Test std::any
|
|
|
|
|
containing a local type.
|
|
|
|
|
|
2018-11-22 19:10:05 +01:00
|
|
|
|
2018-11-22 Marc Glisse <marc.glisse@inria.fr>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/87106
|
|
|
|
|
* include/bits/stl_algobase.h: Include <type_traits>.
|
|
|
|
|
(__niter_base): Add noexcept specification.
|
|
|
|
|
* include/bits/stl_deque.h: Include <bits/stl_uninitialized.h>.
|
|
|
|
|
(__is_trivially_relocatable): Specialize for deque.
|
|
|
|
|
* include/bits/stl_iterator.h: Include <type_traits>.
|
|
|
|
|
(__niter_base): Add noexcept specification.
|
|
|
|
|
* include/bits/stl_uninitialized.h (__is_trivially_relocatable):
|
|
|
|
|
Add parameter for meta-programming.
|
|
|
|
|
(__relocate_a_1, __relocate_a): Add noexcept specification.
|
|
|
|
|
* include/bits/stl_vector.h (__use_relocate): Test __relocate_a.
|
|
|
|
|
|
PR libstdc++/87520 Always pass type-punned type_info reference
The implementations of std::make_shared for -frtti and -fno-rtti are not
compatible, because they pass different arguments to
_Sp_counted_ptr_inplace::_M_get_deleter and so can't interoperate.
Either the argument doesn't match the expected value, and so the
shared_ptr::_M_ptr member is never set, or the type-punned reference is
treated as a real std::type_info object and gets dereferenced.
This patch removes the differences between -frtti and -fno-rtti, so that
typeid is never used, and the type-punned reference is used in both
cases. For backwards compatibility with existing code that passes
typeid(_Sp_make_shared_tag) that still needs to be handled, but only
after checking that the argument is not the type-punned reference (so
it's safe to treat as a real std::type_info object). The reference is
bound to an object of literal type, so that it doesn't need a guard
variable to make its initialization thread-safe.
This patch also fixes 87520 by ensuring that the type-punned reference
is bound to "a region of storage of suitable size and alignment to
contain an object of the reference's type" (as per the proposed
resolution of Core DR 453).
If all objects are built with the fixed version of GCC then -frtti and
-fno-rtti can be mixed freely and std::make_shared will work correctly.
If some objects are built with unfixed GCC versions then problems can
still arise, depending on which template instantiations are kept by the
linker.
PR libstdc++/85930
PR libstdc++/87520
* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti)
[__cpp_rtti]: Define even when RTTI is enabled. Use array of
sizeof(type_info) so that type-punned reference binds to an object
of the correct size as well as correct alignment.
(_Sp_counted_ptr_inplace::_M_get_deleter) [__cpp_rtti]: Check for
_S_ti() reference even when RTTI is enabled.
(__shared_ptr(_Sp_make_shared_tag, const _Alloc&, _Args&&...))
[__cpp_rtti]: Pass _S_ti() instead of typeid(_Sp_make_shared_tag).
From-SVN: r266376
2018-11-22 14:42:39 +01:00
|
|
|
|
2018-11-22 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/85930
|
|
|
|
|
PR libstdc++/87520
|
|
|
|
|
* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti)
|
|
|
|
|
[__cpp_rtti]: Define even when RTTI is enabled. Use array of
|
|
|
|
|
sizeof(type_info) so that type-punned reference binds to an object
|
|
|
|
|
of the correct size as well as correct alignment.
|
|
|
|
|
(_Sp_counted_ptr_inplace::_M_get_deleter) [__cpp_rtti]: Check for
|
|
|
|
|
_S_ti() reference even when RTTI is enabled.
|
|
|
|
|
(__shared_ptr(_Sp_make_shared_tag, const _Alloc&, _Args&&...))
|
|
|
|
|
[__cpp_rtti]: Pass _S_ti() instead of typeid(_Sp_make_shared_tag).
|
|
|
|
|
|
2018-11-21 23:41:07 +01:00
|
|
|
|
2018-11-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/87386
|
|
|
|
|
* testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust expected
|
|
|
|
|
line.
|
|
|
|
|
* testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/propagate_const/requirements5.cc: Likewise.
|
|
|
|
|
|
2018-11-21 19:40:37 +01:00
|
|
|
|
2018-11-21 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-11-21 19:40:55 +01:00
|
|
|
|
PR libstdc++/88111
|
|
|
|
|
* include/std/memory_resource (pool_options): Add Doxygen comments.
|
|
|
|
|
* src/c++17/memory_resource.cc (pool_sizes): Only use suitable values
|
|
|
|
|
on targets with 16-bit or 20-bit size_t type.
|
|
|
|
|
(munge_options): Make default values depend on width of size_t type.
|
|
|
|
|
|
2018-11-21 19:40:37 +01:00
|
|
|
|
PR libstdc++/88113
|
|
|
|
|
* src/c++17/memory_resource.cc (bitset::size_type): Use the smaller
|
|
|
|
|
of uint32_t and size_t.
|
|
|
|
|
(bitset::size(), bitset::free(), bitset::update_next_word())
|
|
|
|
|
(bitset::max_blocks_per_chunk(), bitset::max_word_index()): Use
|
|
|
|
|
size_type consistently instead of size_t.
|
|
|
|
|
(chunk): Adjust static_assert checking sizeof(chunk).
|
|
|
|
|
|
2018-11-20 11:42:28 +01:00
|
|
|
|
2018-11-20 Ville Voutilainen <ville.voutilainen@gmail.com>
|
|
|
|
|
|
|
|
|
|
Housekeeping for the effective targets of optional's tests.
|
|
|
|
|
* testsuite/20_util/optional/77288.cc: Adjust.
|
|
|
|
|
* testsuite/20_util/optional/84601.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/assignment/1.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/assignment/2.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/assignment/3.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/assignment/4.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/assignment/5.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/assignment/6.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/assignment/7.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/assignment/8.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/cons/77727.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/cons/copy.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/cons/deduction.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/cons/move.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/cons/trivial.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/cons/value.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/cons/value_neg.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/in_place.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/make_optional.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/nullopt.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/observers/1.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/observers/2.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/observers/3.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/observers/4.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/observers/5.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/observers/6.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/relops/1.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/relops/2.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/relops/3.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/relops/4.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/relops/5.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/relops/6.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/relops/7.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/requirements.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/swap/1.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/swap/2.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/typedefs.cc: Likewise.
|
|
|
|
|
|
2018-11-19 22:02:17 +01:00
|
|
|
|
2018-11-19 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/ext/throw_allocator.h
|
|
|
|
|
(annotate_base::insert(void*, size_t)): Use insert result to check for
|
|
|
|
|
double insert attempt.
|
|
|
|
|
(annotate_base::insert_construct(void*)): Likewise.
|
|
|
|
|
(annotate_base::check_allocated(void*, size_t)): Return found iterator.
|
|
|
|
|
(annotate_base::erase(void*, size_t)): Use latter method returned
|
|
|
|
|
iterator.
|
|
|
|
|
(annotate_base::check_constructed(void*, size_t)): Return found iterator.
|
|
|
|
|
(annotate_base::erase_construct(void*)): Use latter method returned
|
|
|
|
|
iterator.
|
|
|
|
|
|
2018-11-19 16:05:18 +01:00
|
|
|
|
2018-11-19 Ville Voutilainen <ville.voutilainen@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/87855
|
|
|
|
|
Also implement P0602R4 (variant and optional
|
|
|
|
|
should propagate copy/move triviality) for std::optional.
|
|
|
|
|
* include/std/optional (_Optional_payload): Change
|
|
|
|
|
the main constraints to check constructibility in
|
|
|
|
|
addition to assignability.
|
|
|
|
|
(operator=): Make constexpr.
|
|
|
|
|
(_M_reset): Likewise.
|
|
|
|
|
(_M_construct): Likewise.
|
|
|
|
|
(operator->): Likewise.
|
|
|
|
|
* testsuite/20_util/optional/assignment/8.cc: Adjust.
|
|
|
|
|
* testsuite/20_util/optional/assignment/9.cc: New.
|
|
|
|
|
|
2018-11-19 11:53:59 +01:00
|
|
|
|
2018-11-19 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/88084 - Implement LWG 2777
|
|
|
|
|
* include/std/string_view (basic_string_view::copy): Use traits to
|
|
|
|
|
copy.
|
|
|
|
|
* testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
|
|
|
|
|
New test.
|
|
|
|
|
* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
|
|
|
|
|
New test.
|
|
|
|
|
|
2018-11-18 19:32:26 +01:00
|
|
|
|
2018-11-18 Michele Pezzutti <mpezz@tiscali.it>
|
|
|
|
|
Edward Smith-Rowland <3dw4rd@verizon.net>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/83566 - cyl_bessel_j returns wrong result for x>1000
|
|
|
|
|
for high orders.
|
|
|
|
|
* include/tr1/bessel_function.tcc: Perform no fewer than nu/2 iterations
|
|
|
|
|
of the asymptotic series (nu is the Bessel order).
|
|
|
|
|
* testsuite/tr1/5_numerical_facilities/special_functions/
|
|
|
|
|
09_cyl_bessel_j/check_value.cc: Add tests at nu=100, 1000<=x<=2000.
|
2018-11-19 22:02:17 +01:00
|
|
|
|
* testsuite/tr1/5_numerical_facilities/special_functions/
|
2018-11-18 19:32:26 +01:00
|
|
|
|
11_cyl_neumann/check_value.cc: Ditto.
|
|
|
|
|
* testsuite/special_functions/08_cyl_bessel_j/check_value.cc: Ditto.
|
|
|
|
|
* testsuite/special_functions/10_cyl_neumann/check_value.cc: Ditto.
|
|
|
|
|
|
2018-11-18 00:35:44 +01:00
|
|
|
|
2018-11-17 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
Implement std::pmr::synchronized_pool_resource
|
|
|
|
|
* config/abi/pre/gnu.ver: Add new symbols.
|
|
|
|
|
* include/std/memory_resource [_GLIBCXX_HAS_GTHREADS]
|
|
|
|
|
(__cpp_lib_memory_resource): Define to expected value, 201603.
|
|
|
|
|
(synchronized_pool_resource): New class.
|
|
|
|
|
[!_GLIBCXX_HAS_GTHREADS] (__cpp_lib_memory_resource): Define to 1.
|
|
|
|
|
* include/std/shared_mutex (__glibcxx_rwlock_rdlock)
|
|
|
|
|
(__glibcxx_rwlock_tryrdlock, __glibcxx_rwlock_wrlock)
|
|
|
|
|
(__glibcxx_rwlock_trywrlock, __glibcxx_rwlock_unlock)
|
|
|
|
|
(__glibcxx_rwlock_destroy, __glibcxx_rwlock_init)
|
|
|
|
|
(__glibcxx_rwlock_timedrdlock, __glibcxx_rwlock_timedwrlock): Define
|
|
|
|
|
weak symbols for POSIX rwlock functions.
|
|
|
|
|
(__shared_mutex_pthread): Use weak symbols.
|
|
|
|
|
* include/std/version (__cpp_lib_memory_resource): Define.
|
|
|
|
|
* src/c++17/memory_resource.cc [_GLIBCXX_HAS_GTHREADS]
|
|
|
|
|
(synchronized_pool_resource::_TPools): New class.
|
|
|
|
|
(destroy_TPools): New function for pthread_key_create destructor.
|
|
|
|
|
(synchronized_pool_resource::synchronized_pool_resource)
|
|
|
|
|
(synchronized_pool_resource::~synchronized_pool_resource)
|
|
|
|
|
(synchronized_pool_resource::release)
|
|
|
|
|
(synchronized_pool_resource::do_allocate)
|
|
|
|
|
(synchronized_pool_resource::do_deallocate): Define public members.
|
|
|
|
|
(synchronized_pool_resource::_M_thread_specific_pools)
|
|
|
|
|
(synchronized_pool_resource::_M_alloc_tpools)
|
|
|
|
|
(synchronized_pool_resource::_M_alloc_shared_tpools): Define private
|
|
|
|
|
members.
|
|
|
|
|
* testsuite/20_util/synchronized_pool_resource/allocate.cc: New test.
|
|
|
|
|
* testsuite/20_util/synchronized_pool_resource/cons.cc: New test.
|
|
|
|
|
* testsuite/20_util/synchronized_pool_resource/is_equal.cc: New test.
|
|
|
|
|
* testsuite/20_util/synchronized_pool_resource/multithreaded.cc: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/20_util/synchronized_pool_resource/release.cc: New test.
|
|
|
|
|
* testsuite/performance/20_util/memory_resource/pools.cc: Add
|
|
|
|
|
multithreaded tests using pmr::synchronized_pool_resource.
|
|
|
|
|
|
2018-11-16 15:36:40 +01:00
|
|
|
|
2018-11-16 Renlin Li <renlin.li@arm.com>
|
|
|
|
|
Tejas Belagod <tejas.belagod@arm.com>
|
|
|
|
|
|
|
|
|
|
testsuite/lib/libstdc++.exp (check_v3_target_prop_cached): New proc.
|
|
|
|
|
(check_v3_target): Use the check_v3_target_prop_cached.
|
|
|
|
|
|
2018-11-15 01:04:12 +01:00
|
|
|
|
2018-11-15 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-11-15 01:04:19 +01:00
|
|
|
|
* scripts/check_performance: Allow tests to choose a -std flag.
|
|
|
|
|
* src/c++17/memory_resource.cc (bitset::get_first_unset()): Use local
|
|
|
|
|
variables of the right types. Call update_next_word() unconditionally.
|
|
|
|
|
* testsuite/20_util/unsynchronized_pool_resource/cons.cc: New test.
|
|
|
|
|
* testsuite/performance/20_util/memory_resource/pools.cc: New test.
|
|
|
|
|
* testsuite/util/testsuite_performance.h (time_counter): Allow
|
|
|
|
|
timer to be restarted.
|
|
|
|
|
|
2018-11-15 01:04:12 +01:00
|
|
|
|
* testsuite/20_util/unsynchronized_pool_resource/allocate.cc: Fix
|
|
|
|
|
test for 32-bit targets. Test additional allocation sizes.
|
|
|
|
|
|
2018-11-14 15:25:00 +01:00
|
|
|
|
2018-11-14 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* scripts/create_testsuite_files: Add special_functions to the list
|
|
|
|
|
of directories to search. Add comment referring to conformance.exp.
|
|
|
|
|
* testsuite/libstdc++-dg/conformance.exp: Add comment referring
|
|
|
|
|
to create_testsuite_files.
|
|
|
|
|
|
2018-11-13 23:57:44 +01:00
|
|
|
|
2018-11-13 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-11-14 00:44:39 +01:00
|
|
|
|
* src/c++17/memory_resource.cc (select_num_pools): Fix off-by-one
|
|
|
|
|
error when block_size is equal to one of the values in the array.
|
|
|
|
|
|
2018-11-14 00:02:22 +01:00
|
|
|
|
* src/c++17/memory_resource.cc (_Pool::deallocate): Restore
|
|
|
|
|
attributes to parameters that are only used in assertions.
|
|
|
|
|
|
2018-11-13 23:58:00 +01:00
|
|
|
|
* src/c++17/memory_resource.cc (bitset::find_first_unset()): Remove
|
|
|
|
|
unused function.
|
|
|
|
|
(bitset::get_first_unset()): Remove loop, if there's are unset bits
|
|
|
|
|
then _M_next_word refers to the first one and there's no need to loop.
|
|
|
|
|
(_Pool::_Pool(size_t, size_t), _Pool::block_size()): Remove dead code.
|
|
|
|
|
|
2018-11-13 23:57:53 +01:00
|
|
|
|
* src/c++17/memory_resource.cc (munge_options): Round up value of
|
|
|
|
|
largest_required_pool_block to multiple of smallest pool size. Round
|
|
|
|
|
excessively large values down to largest pool size.
|
|
|
|
|
(select_num_pools): Increase number of pools by one unless it exactly
|
|
|
|
|
matches requested largest_required_pool_block.
|
|
|
|
|
(__pool_resource::_M_alloc_pools()): Make largest pool size equal
|
|
|
|
|
largest_required_pool_block.
|
|
|
|
|
* testsuite/20_util/unsynchronized_pool_resource/options.cc: Check
|
|
|
|
|
that pool_options::largest_required_pool_block is set appropriately.
|
|
|
|
|
|
2018-11-13 23:57:48 +01:00
|
|
|
|
* src/c++17/memory_resource.cc (big_block): Improve comments.
|
|
|
|
|
(big_block::all_ones): Remove.
|
|
|
|
|
(big_block::big_block(size_t, size_t)): Use alloc_size.
|
|
|
|
|
(big_block::size()): Add comment, replace all_ones with equivalent
|
|
|
|
|
expression.
|
|
|
|
|
(big_block::align()): Shift value of correct type.
|
|
|
|
|
(big_block::alloc_size(size_t)): New function to round up size.
|
|
|
|
|
(__pool_resource::allocate(size_t, size_t)): Add comment.
|
|
|
|
|
(__pool_resource::deallocate(void*, size_t, size_t)): Likewise. Fix
|
|
|
|
|
incorrect assertion by using big_block::alloc_size(size_t).
|
|
|
|
|
* testsuite/20_util/unsynchronized_pool_resource/allocate.cc: Add
|
|
|
|
|
more tests for unpooled allocations.
|
|
|
|
|
|
2018-11-13 23:57:44 +01:00
|
|
|
|
* src/c++17/memory_resource.cc (bitset::full()): Handle edge case
|
|
|
|
|
for _M_next_word maximum value.
|
|
|
|
|
(bitset::get_first_unset(), bitset::set(size_type)): Use
|
|
|
|
|
update_next_word() to update _M_next_word.
|
|
|
|
|
(bitset::update_next_word()): New function, avoiding wraparound of
|
|
|
|
|
unsigned _M_next_word member.
|
|
|
|
|
(bitset::max_word_index()): New function.
|
|
|
|
|
(chunk::chunk(void*, uint32_t, void*, size_t)): Add assertion.
|
|
|
|
|
(chunk::max_bytes_per_chunk()): New function.
|
|
|
|
|
(pool::replenish(memory_resource*, const pool_options&)): Prevent
|
|
|
|
|
_M_blocks_per_chunk from exceeding max_blocks_per_chunk or from
|
|
|
|
|
causing chunk::max_bytes_per_chunk() to be exceeded.
|
|
|
|
|
* testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
|
|
|
|
|
New test.
|
|
|
|
|
|
2018-11-13 05:40:01 +01:00
|
|
|
|
2018-11-12 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
* libsupc++/new (std::destroying_delete_t): New.
|
|
|
|
|
|
2018-11-12 16:25:40 +01:00
|
|
|
|
2018-11-12 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/87963
|
|
|
|
|
* src/c++17/memory_resource.cc (chunk::_M_bytes): Change type from
|
|
|
|
|
unsigned to uint32_t.
|
|
|
|
|
(chunk): Fix static assertion for 64-bit targets that aren't LP64.
|
|
|
|
|
(bigblock::all_ones): Fix undefined shift.
|
|
|
|
|
|
2018-11-11 23:20:19 +01:00
|
|
|
|
2018-11-11 Hans-Peter Nilsson <hp@axis.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++-v3/54005
|
|
|
|
|
* include/bits/atomic_base.h (__atomic_base<_TTp>::is_lock_free(),
|
2018-11-11 23:21:28 +01:00
|
|
|
|
__atomic_base<_PTp*>::is_lock_free()): Call __atomic_is_lock_free
|
2018-11-11 23:20:19 +01:00
|
|
|
|
with the type-derived _S_alignment instead of __alignof the object.
|
|
|
|
|
* include/std/atomic (atomic<T>::is_lock_free()): Likewise.
|
|
|
|
|
|
2018-11-11 06:16:51 +01:00
|
|
|
|
2018-11-11 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-11-11 06:17:03 +01:00
|
|
|
|
Implement P0318R1 unwrap_ref_decay and unwrap_reference
|
|
|
|
|
* include/std/type_traits (unwrap_reference, unwrap_reference_t)
|
|
|
|
|
(unwrap_ref_decay, unwrap_ref_decay_t): New traits and aliases.
|
|
|
|
|
* testsuite/20_util/unwrap_reference/1.cc: New test.
|
|
|
|
|
* testsuite/20_util/unwrap_reference/2.cc: New test.
|
|
|
|
|
|
2018-11-11 06:16:51 +01:00
|
|
|
|
Implement P1007R3 std::assume_aligned
|
|
|
|
|
* include/std/memory (assume_aligned): Implement for C++17.
|
|
|
|
|
* testsuite/20_util/assume_aligned/1.cc: New test.
|
|
|
|
|
* testsuite/20_util/assume_aligned/2_neg.cc: New test.
|
|
|
|
|
* testsuite/20_util/assume_aligned/3.cc: New test.
|
|
|
|
|
|
2018-11-09 21:14:07 +01:00
|
|
|
|
2018-11-09 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/87787
|
|
|
|
|
* include/bits/stl_uninitialized.h (__relocate_a_1): Do not call
|
|
|
|
|
memmove when there's nothing to copy (and pointers could be null).
|
|
|
|
|
|
2018-11-07 23:41:21 +01:00
|
|
|
|
2018-11-07 Hafiz Abid Qadeer <abidh@codesourcery.com>
|
|
|
|
|
|
2018-11-09 21:13:58 +01:00
|
|
|
|
* configure: Regenerated.
|
2018-11-07 23:41:21 +01:00
|
|
|
|
|
2018-11-07 20:08:52 +01:00
|
|
|
|
2018-11-07 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/abi/pre/gnu.ver: Fix patterns for size_t parameters.
|
|
|
|
|
|
2018-11-06 22:35:27 +01:00
|
|
|
|
2018-11-06 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
Implement std::pmr::unsynchronized_pool_resource
|
|
|
|
|
* config/abi/pre/gnu.ver: Add new symbols.
|
|
|
|
|
* include/std/memory_resource (std::pmr::__pool_resource): New class.
|
|
|
|
|
(std::pmr::unsynchronized_pool_resource): New class.
|
|
|
|
|
* src/c++17/Makefile.am: Add -fimplicit-templates to flags for
|
|
|
|
|
memory_resource.cc
|
|
|
|
|
* src/c++17/Makefile.in: Regenerate.
|
|
|
|
|
* src/c++17/memory_resource.cc (bitset, chunk, big_block): New
|
|
|
|
|
internal classes.
|
|
|
|
|
(__pool_resource::_Pool): Define new class.
|
|
|
|
|
(munge_options, pool_index, select_num_pools): New internal functions.
|
|
|
|
|
(__pool_resource::__pool_resource, __pool_resource::~__pool_resource)
|
|
|
|
|
(__pool_resource::allocate, __pool_resource::deallocate)
|
|
|
|
|
(__pool_resource::_M_alloc_pools): Define member functions.
|
|
|
|
|
(unsynchronized_pool_resource::unsynchronized_pool_resource)
|
|
|
|
|
(unsynchronized_pool_resource::~unsynchronized_pool_resource)
|
|
|
|
|
(unsynchronized_pool_resource::release)
|
|
|
|
|
(unsynchronized_pool_resource::_M_find_pool)
|
|
|
|
|
(unsynchronized_pool_resource::do_allocate)
|
|
|
|
|
(unsynchronized_pool_resource::do_deallocate): Define member
|
|
|
|
|
functions.
|
|
|
|
|
* testsuite/20_util/unsynchronized_pool_resource/allocate.cc: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/20_util/unsynchronized_pool_resource/is_equal.cc: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/20_util/unsynchronized_pool_resource/options.cc: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/20_util/unsynchronized_pool_resource/release.cc: New
|
|
|
|
|
test.
|
|
|
|
|
|
2018-11-06 21:20:06 +01:00
|
|
|
|
2018-11-06 John Bytheway <jbytheway@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/87872
|
|
|
|
|
* include/debug/safe_sequence.tcc
|
|
|
|
|
(_Safe_sequence<>::_M_transfer_from_if): Skip transfer to self.
|
|
|
|
|
|
Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856).
This patch updates GCC to use autoconf 2.69 and automake 1.15.1.
(That's not the latest automake version, but it's the one used by
binutils-gdb, with which consistency is desirable, and in any case
seems a useful incremental update that should make a future update to
1.16.1 easier.)
The changes are generally similar to the binutils-gdb ones, and are
copied from there where shared files and directories are involved
(there are some further changes to such shared directories, however,
which I'd expect to apply to binutils-gdb once this patch is in GCC).
Largely, obsolete AC_PREREQ calls are removed, while many
AC_LANG_SOURCE calls are added to avoid warnings from aclocal and
autoconf. Multilib support is no longer included in core automake,
meaning that multilib.am needs copying from automake's contrib
directory into the GCC source tree. Autoconf 2.69 has Go support, so
local copies of that support are removed. I hope the D support will
soon be submitted to upstream autoconf so the local copy of that can
be removed in a future update. Changes to how automake generates
runtest calls mean quotes are removed from RUNTEST definitions in five
lib*/testsuite/Makefile.am files (libatomic, libgomp, libitm,
libphobos, libvtv; some others have RUNTEST definitions without
quotes, which are still OK); libgo and libphobos also get
-Wno-override added to AM_INIT_AUTOMAKE so those overrides of RUNTEST
do not generate automake warnings.
Note that the regeneration did not include regeneration of
fixincludes/config.h.in (attempting such regeneration resulted in all
the USED_FOR_TARGET conditionals disappearing; and I don't see
anything in the fixincludes/ directory that would result in such
conditionals being generated, unlike in the gcc/ directory). Also
note that libvtv/testsuite/other-tests/Makefile.in was not
regenerated; that directory is not listed as a subdirectory for which
Makefile.in gets regenerated by calling "automake" in libvtv/, so I'm
not sure how it's meant to be regenerated.
While I mostly fixed warnings should running aclocal / automake /
autoconf, there were various such warnings from automake in the
libgfortran, libgo, libgomp, liboffloadmic, libsanitizer, libphobos
directories that I did not fix, preferring to leave those to the
relevant subsystem maintainers. Specifically, most of those warnings
were of the following form (example from libgfortran):
Makefile.am:48: warning: source file 'caf/single.c' is in a subdirectory,
Makefile.am:48: but option 'subdir-objects' is disabled
automake: warning: possible forward-incompatibility.
automake: At least a source file is in a subdirectory, but the 'subdir-objects'
automake: automake option hasn't been enabled. For now, the corresponding output
automake: object file(s) will be placed in the top-level directory. However,
automake: this behaviour will change in future Automake versions: they
will
automake: unconditionally cause object files to be placed in the same subdirectory
automake: of the corresponding sources.
automake: You are advised to start using 'subdir-objects' option throughout your
automake: project, to avoid future incompatibilities.
I think it's best for the relevant maintainers to add subdir-objects
and do any other associated Makefile.am changes needed. In some cases
the paths in the warnings involved ../; I don't know if that adds any
extra complications to the use of subdir-objects.
I've tested this with native, cross and Canadian cross builds. The
risk of any OS-specific issues should I hope be rather lower than if a
libtool upgrade were included (we *should* do such an upgrade at some
point, but it's more complicated - it involves identifying all our
local libtool changes to see if any aren't included in the upstream
version we update to, and reverting an upstream libtool patch that's
inappropriate for use in GCC); I think it would be better to get this
update into GCC so that people can test in different configurations
and we can fix any issues found, rather than to try to get more and
more testing done before it goes in.
top level:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* multilib.am: New file. From automake.
Merge from binutils-gdb:
2018-06-19 Simon Marchi <simon.marchi@ericsson.com>
* libtool.m4: Use AC_LANG_SOURCE.
* configure.ac: Remove AC_PREREQ, use AC_LANG_SOURCE.
* ar-lib: New file.
* test-driver: New file.
* configure: Re-generate.
config:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* math.m4, tls.m4: Use AC_LANG_SOURCE.
Merge from binutils-gdb:
2018-06-19 Simon Marchi <simon.marchi@ericsson.com>
* override.m4 (_GCC_AUTOCONF_VERSION): Bump from 2.64 to 2.69.
fixincludes:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ.
* aclocal.m4, configure: Regenerate.
gcc:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE. Use single
line for second argument of AC_DEFINE_UNQUOTED.
* doc/install.texi (Tools/packages necessary for modifying GCC):
Update to autoconf 2.69 and automake 1.15.1.
* aclocal.m4, config.in, configure: Regenerate.
gnattools:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ.
* configure: Regenerate.
gotools:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* config/go.m4: Remove file.
* Makefile.am (ACLOCAL_AMFLAGS): Do not use -I ./config.
* configure.ac: Remove AC_PREREQ. Do not include config/go.m4.
* Makefile.in, aclocal.m4, configure: Regenerate.
intl:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
Merge from binutils-gdb:
2018-06-19 Simon Marchi <simon.marchi@ericsson.com>
* configure.ac: Add AC_USE_SYSTEM_EXTENSIONS, remove AC_PREREQ.
* configure: Re-generate.
* config.h.in: Re-generate.
* aclocal.m4: Re-generate.
libada:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ.
* configure: Regenerate.
libatomic:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
* acinclude.m4: Use AC_LANG_SOURCE.
* configure.ac: Remove AC_PREREQ.
* testsuite/Makefile.am (RUNTEST): Remove quotes.
* Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
Regenerate.
libbacktrace:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
* configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE.
* Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
libcc1:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ.
* Makefile.in, aclocal.m4, configure: Regenerate.
libcpp:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE.
* aclocal.m4, config.in, configure: Regenerate.
libdecnumber:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
Merge from binutils-gdb:
2018-06-19 Simon Marchi <simon.marchi@ericsson.com>
* configure.ac: Remove AC_PREREQ.
* configure: Re-generate.
* aclocal.m4.
libffi:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
(AUTOMAKE_OPTIONS): Add info-in-builddir.
(CLEANFILES): Remove doc/libffi.info.
* configure.ac: Remove AC_PREREQ.
* Makefile.in, aclocal.m4, configure, fficonfig.h.in,
include/Makefile.in, man/Makefile.in, testsuite/Makefile.in:
Regenerate.
libgcc:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE.
* configure: Regenerate.
libgfortran:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
* configure.ac: Remove AC_PREREQ.
* Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
libgo [logically part of this change but omitted from the commit]:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
* config/go.m4: Remove file.
* config/libtool.m4: Use AC_LANG_SOURCE.
* configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE. Use
-Wno-override in AM_INIT_AUTOMAKE call.
* Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
Regenerate.
libgomp:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am
(AUTOMAKE_OPTIONS): Add info-in-builddir.
(CLEANFILES): Remove libgomp.info.
* configure.ac: Remove AC_PREREQ.
* testsuite/Makefile.am (RUNTEST): Remove quotes.
* Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
Regenerate.
libhsail-rt:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ.
* Makefile.in, aclocal.m4, configure: Regenerate.
libiberty:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
Merge from binutils-gdb:
2018-06-19 Simon Marchi <simon.marchi@ericsson.com>
* configure.ac: Remove AC_PREREQ.
* configure: Re-generate.
* config.in: Re-generate.
libitm:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
(AUTOMAKE_OPTIONS): Add info-in-builddir.
(CLEANFILES): Remove libitm.info.
* configure.ac: Remove AC_PREREQ.
* testsuite/Makefile.am (RUNTEST): Remove quotes.
* Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
Regenerate.
libobjc:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ.
* aclocal.m4, config.h.in, configure: Regenerate.
liboffloadmic:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
* configure.ac: Remove AC_PREREQ.
* plugin/Makefile.am: Include multilib.am.
* plugin/configure.ac: Remove AC_PREREQ.
* Makefile.in, aclocal.m4, configure, plugin/Makefile.in,
plugin/aclocal.m4, plugin/configure: Regenerate.
libphobos:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
* configure.ac: Remove AC_PREREQ. Use -Wno-override in
AM_INIT_AUTOMAKE call.
* m4/autoconf.m4: Add extra argument to AC_LANG_DEFINE call.
* m4/druntime/os.m4: Use AC_LANG_SOURCE.
* testsuite/Makefile.am (RUNTEST): Remove quotes.
* Makefile.in, aclocal.m4, configure, libdruntime/Makefile.in,
src/Makefile.in, testsuite/Makefile.in: Regenerate.
libquadmath:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
(AUTOMAKE_OPTIONS): Remove 1.8. Add info-in-builddir.
(all-local): Define outside conditional code.
(CLEANFILES): Remove libquadmath.info.
* configure.ac: Remove AC_PREREQ.
* Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
libsanitizer:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
* configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE.
* Makefile.in, aclocal.m4, asan/Makefile.in, configure,
interception/Makefile.in, libbacktrace/Makefile.in,
lsan/Makefile.in, sanitizer_common/Makefile.in, tsan/Makefile.in,
ubsan/Makefile.in: Regenerate.
libssp:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
(AUTOMAKE_OPTIONS): Remove 1.9.5.
* configure.ac: Remove AC_PREREQ. Quote argument to
AC_RUN_IFELSE.
* Makefile.in, aclocal.m4, configure: Regenerate.
libstdc++-v3:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
* configure.ac: Remove AC_PREREQ.
* Makefile.in, aclocal.m4, configure, doc/Makefile.in,
include/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
python/Makefile.in, src/Makefile.in, src/c++11/Makefile.in,
src/c++17/Makefile.in, src/c++98/Makefile.in,
src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
libvtv:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
* configure.ac: Remove AC_PREREQ.
* testsuite/Makefile.am (RUNTEST): Remove quotes.
* Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
Regenerate.
lto-plugin:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE.
* Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
zlib:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
Merge from binutils-gdb:
2018-06-19 Simon Marchi <simon.marchi@ericsson.com>
* configure.ac: Modernize AC_INIT call, remove AC_PREREQ.
* Makefile.am (AUTOMAKE_OPTIONS): Remove 1.8, cygnus, add foreign.
* Makefile.in: Re-generate.
* aclocal.m4: Re-generate.
* configure: Re-generate.
From-SVN: r265695
2018-10-31 18:03:16 +01:00
|
|
|
|
2018-10-31 Joseph Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/82856
|
|
|
|
|
* Makefile.am: Include multilib.am.
|
|
|
|
|
* configure.ac: Remove AC_PREREQ.
|
|
|
|
|
* Makefile.in, aclocal.m4, configure, doc/Makefile.in,
|
|
|
|
|
include/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
|
|
|
|
|
python/Makefile.in, src/Makefile.in, src/c++11/Makefile.in,
|
|
|
|
|
src/c++17/Makefile.in, src/c++98/Makefile.in,
|
|
|
|
|
src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
|
|
|
|
|
|
2018-10-31 13:29:02 +01:00
|
|
|
|
2018-10-31 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-10-31 13:58:45 +01:00
|
|
|
|
* testsuite/20_util/pair/87822.cc: Test deeper nesting.
|
|
|
|
|
|
2018-10-31 13:29:02 +01:00
|
|
|
|
PR libstdc++/87822
|
|
|
|
|
* include/bits/stl_pair.h (__pair_base): Change to class template.
|
|
|
|
|
(pair): Make base class type depend on template parameters.
|
|
|
|
|
* testsuite/20_util/pair/87822.cc: New test.
|
|
|
|
|
|
2018-10-30 20:59:41 +01:00
|
|
|
|
2018-10-30 Marek Polacek <polacek@redhat.com>
|
|
|
|
|
|
|
|
|
|
Implement P0892R2, explicit(bool).
|
|
|
|
|
* testsuite/20_util/any/cons/explicit.cc: Adjust dg-error.
|
|
|
|
|
* testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
|
|
|
|
|
|
2018-10-30 15:49:32 +01:00
|
|
|
|
2018-10-30 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-10-30 15:49:43 +01:00
|
|
|
|
PR libstdc++/87809
|
|
|
|
|
* include/bits/forward_list.h (_Fwd_list_impl::_Fwd_list_impl()): Use
|
|
|
|
|
trait in exception-specification instead of possibly invalid
|
|
|
|
|
expression.
|
|
|
|
|
* include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()):
|
|
|
|
|
Likewise.
|
|
|
|
|
* include/bits/stl_list.h (_List_impl::_List_impl()): Likewise.
|
|
|
|
|
* include/bits/stl_vector.h (_Vector_impl::_Vector_impl()): Likewise.
|
|
|
|
|
* testsuite/23_containers/forward_list/cons/87809.cc: New test.
|
|
|
|
|
* testsuite/23_containers/list/cons/87809.cc: New test.
|
|
|
|
|
* testsuite/23_containers/vector/bool/cons/87809.cc: New test.
|
|
|
|
|
* testsuite/23_containers/vector/cons/87809.cc: New test.
|
|
|
|
|
|
2018-10-30 15:49:32 +01:00
|
|
|
|
PR libstdc++/87784
|
|
|
|
|
* include/tr2/dynamic_bitset (dynamic_bitset::push_back): When there
|
|
|
|
|
are no unused bits in the last block, append a new block with the
|
|
|
|
|
right value so the bit doesn't need to be set. Only increment size
|
|
|
|
|
after setting the new bit, not before.
|
|
|
|
|
* testsuite/tr2/dynamic_bitset/pr87784.cc: New test.
|
|
|
|
|
|
C++: simplify output from suggest_alternatives_for
In the C++ FE, after emitting various errors about unrecognized names,
the parser can call
suggest_alternatives_for
and/or
suggest_alternative_in_explicit_scope.
These can issue zero or more suggestions for the unrecognized name,
or various other "note" diagnostics suggesting how to fix the problem.
For example, currently g++ emits:
t.cc:12:3: error: 'gtk_widget_showall' was not declared in this scope
12 | gtk_widget_showall (w);
| ^~~~~~~~~~~~~~~~~~
t.cc:12:3: note: suggested alternative: 'gtk_widget_show_all'
12 | gtk_widget_showall (w);
| ^~~~~~~~~~~~~~~~~~
| gtk_widget_show_all
This patch consolidates the common case when there is a single
candidate, so that the error can issue a fix-it hint directly.
This simplifies the above to:
t.cc:12:3: error: 'gtk_widget_showall' was not declared in this scope;
did you mean 'gtk_widget_show_all'?
12 | gtk_widget_showall (w);
| ^~~~~~~~~~~~~~~~~~
| gtk_widget_show_all
omitting the second "note" diagnostic.
Doing so requires changing the above "suggest_" functions so that
rather than being called after "error" and emitting a note directly,
they are called before the "error", and return a name_hint, which
can contain a suggestion and/or a deferred diagnostic. The "single
candidate" case is handled via a suggestion, and the "multiple
candidates" case via a new subclass of deferred_diagnostic.
There was some complication due to the fact that we don't always have
enough location information to issue a fix-it hint. Specifically,
for the case in qualified_name_lookup_error, the location is that of
the name, but the location of the qualifier prefix isn't reliably
available. For some hints, e.g. spell-corrections, the replacement
is of the name, and for others, e.g. parent namespaces, it's for the
qualified name. The patch addresses this by splitting this case out
into a new "suggest_alternatives_in_other_namespaces" function, for
which fix-it hints aren't issued.
Another complication is that of emitting a note when
--param cxx-max-namespaces-for-diagnostic-help
is reached. The patch emulates the existing behavior by emitting
the note from a deferred_diagnostic. This potentially needs to
co-exist with another deferred_diagnostic, so it works as a decorator
around any other such deferred_diagnostic. Doing so requires slightly
extending class name_hint.
On adding test coverage for the various cases, I discovered that
after emitting a "FOO is not a namespace-name" error, we also emit
a "expected namespace-name before" error. The patch removes this
second error for the case where it's redundant, simplifying this case
from e.g.:
spellcheck-ns.C:10:24: error: 'inner_ms' is not a namespace-name
10 | using namespace outer::inner_ms;
| ^~~~~~~~
spellcheck-ns.C:10:24: note: suggested alternative: 'inner_ns'
10 | using namespace outer::inner_ms;
| ^~~~~~~~
| inner_ns
spellcheck-ns.C:10:32: error: expected namespace-name before ';' token
10 | using namespace outer::inner_ms;
| ^
to:
spellcheck-ns.C:10:24: error: 'inner_ms' is not a namespace-name;
did you mean 'inner_ns'?
10 | using namespace outer::inner_ms;
| ^~~~~~~~
| inner_ns
include/ChangeLog:
* unique-ptr.h (gnu::move): Generalize so it applies to all
lvalue references, rather than just to unique_ptr values.
gcc/c-family/ChangeLog:
* name-hint.h (name_hint::take_deferred): New member function.
gcc/c/ChangeLog:
* c-decl.c (implicit_decl_warning): Update "is there a suggestion"
logic for change to name_hint::operator bool.
(undeclared_variable): Likewise.
* c-parser.c (c_parser_declaration_or_fndef): Likewise.
(c_parser_parameter_declaration): Likewise.
gcc/cp/ChangeLog:
* cp-name-hint.h: New file.
* cp-tree.h (expr_to_string): New decl.
(suggest_alternatives_for): Move to cp-name-hint.h, changing
return type from bool to name_hint.
(suggest_alternative_in_explicit_scope): Likewise.
* error.c: Define INCLUDE_UNIQUE_PTR. Include "cp-name-hint.h".
(expr_to_string): Make non-static.
(qualified_name_lookup_error): For the non-"::" case, take
responsibity for issuing any suggestion from
suggest_alternative_in_explicit_scope, as it changes from
returning a bool to returning a name_hint. Replace fallback call
to suggest_alternatives_for to a call to
suggest_alternatives_in_other_namespaces, capturing the fact that
we don't have enough location information to issue a fix-it hint
for this case. Update the error to support emitting a fix-it hint
where appropriate. For the "::" case, take responsibility for
issuing any suggestion from suggest_alternatives_for, supporting
emitting a fix-it hint.
* lex.c: Define INCLUDE_UNIQUE_PTR. Include "gcc-rich-location.h"
and "cp-name-hint.h".
(unqualified_name_lookup_error): Take responsibility for issuing
any suggestion from suggest_alternatives_for, supporting emitting
a fix-it hint.
* name-lookup.c (class namespace_limit_reached): New subclass of
deferred_diagnostic.
(class show_candidate_location): Likewise.
(class suggest_alternatives): Likewise.
(class namespace_hints): New class.
(suggest_alternatives_for): Convert return type from bool to
name_hint, replacing all direct diagnostic emission by setting
suggestions on the return value, or creating deferred diagnostics.
Specifically, split out initial traversal of namespaces into
namespace_hints' ctor, and maybe_decorate_with_limit, and move the
rest of the implementation to
namespace_hints::convert_candidates_to_name_hint and
suggest_alternatives_for_1.
(namespace_hints::namespace_hints): New ctor, adapted from
suggest_alternatives_for's initial namespace traversal, storing
location and name, and converting locals "candidates", "limited"
and "limit" into members.
(namespace_hints::convert_candidates_to_name_hint): New member
function.
(namespace_hints::maybe_decorate_with_limit): New member function.
(suggest_alternatives_for_1): New function, based on second half
of old implementation of suggest_alternatives_for, converting from
immediate emission of suggestions to using name_hint.
(suggest_alternatives_in_other_namespaces): New function.
(maybe_suggest_missing_std_header): Convert from immediate
emission of suggestions to using name_hint, moving emission
implementation to...
(class missing_std_header): New subclass of deferred_diagnostic.
(maybe_suggest_missing_header): Convert return type from bool to
name_hint.
(suggest_alternative_in_explicit_scope): Convert from immediate
emission of suggestions to using name_hint.
* parser.c: Replace include of "c-family/name-hint.h" with
"cp-name-hint.h".
(cp_parser_diagnose_invalid_type_name): Update
"is there a suggestion" logic for change to
name_hint::operator bool. Take responsibility for emitting
fix-it hints from suggest_alternative_in_explicit_scope.
(cp_parser_namespace_name): Take responsibility for emitting
fix-it hints from suggest_alternative_in_explicit_scope. Don't
emit the "expected namespace-name" error if we've already emitted
an "is not a namespace-name" error.
gcc/testsuite/ChangeLog:
* c-c++-common/spellcheck-reserved.c: Update expected output for
C++ for merger of "did you mean" suggestions into the error
message.
* g++.dg/ext/builtin3.C: Update expected output for merger of "did
you mean" suggestion into the error.
* g++.dg/lookup/error1.C: Likewise.
* g++.dg/lookup/pr77549.C: Likewise.
* g++.dg/lookup/pr80913.C: Likewise.
* g++.dg/lookup/suggestions1.C: Likewise.
* g++.dg/lookup/suggestions2.C: New test.
* g++.dg/overload/koenig1.C: Update expected output as above.
* g++.dg/spellcheck-identifiers-2.C: Likewise.
* g++.dg/spellcheck-identifiers.C: Likewise.
* g++.dg/spellcheck-ns.C: New test.
* g++.dg/spellcheck-pr77829.C: Update expected output as above.
* g++.dg/spellcheck-pr78656.C: Likewise.
* g++.dg/spellcheck-pr79298.C: Likewise, adding
-fdiagnostics-show-caret to options.
* g++.dg/spellcheck-pr80177.C: Likewise.
* g++.dg/spellcheck-single-vs-multiple.C: New test.
* g++.dg/spellcheck-typenames.C: Update expected output as above.
* g++.dg/template/static10.C: Likewise.
* g++.old-deja/g++.mike/ns5.C: Likewise.
* g++.old-deja/g++.mike/ns7.C: Likewise.
* g++.old-deja/g++.ns/koenig5.C: Likewise.
* g++.old-deja/g++.other/lineno5.C: Likewise.
libstdc++-v3/ChangeLog:
* testsuite/17_intro/using_namespace_std_exp_neg.cc: Remove
"expected namespace-name before" error.
* testsuite/17_intro/using_namespace_std_tr1_neg.cc: Likewise.
From-SVN: r265610
2018-10-30 00:53:50 +01:00
|
|
|
|
2018-10-29 David Malcolm <dmalcolm@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/17_intro/using_namespace_std_exp_neg.cc: Remove
|
|
|
|
|
"expected namespace-name before" error.
|
|
|
|
|
* testsuite/17_intro/using_namespace_std_tr1_neg.cc: Likewise.
|
|
|
|
|
|
2018-10-28 21:57:04 +01:00
|
|
|
|
2018-10-28 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/23_containers/deque/48101_neg.cc: Remove dg-prune-output
|
|
|
|
|
'std' from regex pattern for versioned namespace compatibility.
|
|
|
|
|
* testsuite/23_containers/vector/48101_neg.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
|
|
|
|
|
|
2018-10-25 17:34:04 +02:00
|
|
|
|
2018-10-25 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/87749
|
|
|
|
|
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
|
|
|
|
|
(basic_string::operator=(basic_string&&)): For short strings copy the
|
|
|
|
|
buffer inline. Only fall back to using assign(const basic_string&) to
|
|
|
|
|
do a deep copy when reallocation is needed.
|
|
|
|
|
* testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc:
|
|
|
|
|
New test.
|
|
|
|
|
* testsuite/21_strings/basic_string/modifiers/assign/char/
|
|
|
|
|
move_assign_optim.cc: New test.
|
|
|
|
|
* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc:
|
|
|
|
|
New test.
|
|
|
|
|
* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
|
|
|
|
|
move_assign_optim.cc: New test.
|
|
|
|
|
|
Relocation (= move+destroy)
2018-10-25 Marc Glisse <marc.glisse@inria.fr>
PR libstdc++/87106
* include/bits/alloc_traits.h (_S_construct, _S_destroy, construct,
destroy): Add noexcept specification.
* include/bits/allocator.h (construct, destroy): Likewise.
* include/ext/alloc_traits.h (construct, destroy): Likewise.
* include/ext/malloc_allocator.h (construct, destroy): Likewise.
* include/ext/new_allocator.h (construct, destroy): Likewise.
* include/bits/stl_uninitialized.h (__relocate_object_a, __relocate_a,
__relocate_a_1): New functions.
(__is_trivially_relocatable): New class.
* include/bits/stl_vector.h (__use_relocate): New static member.
* include/bits/vector.tcc (reserve, _M_realloc_insert,
_M_default_append): Use __relocate_a.
(reserve, _M_assign_aux, _M_realloc_insert, _M_fill_insert,
_M_default_append, _M_range_insert): Move _GLIBCXX_ASAN_ANNOTATE_REINIT
after _Destroy.
* testsuite/23_containers/vector/modifiers/push_back/49836.cc:
Replace CopyConsOnlyType with DelAnyAssign.
From-SVN: r265485
2018-10-25 15:03:13 +02:00
|
|
|
|
2018-10-25 Marc Glisse <marc.glisse@inria.fr>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/87106
|
|
|
|
|
* include/bits/alloc_traits.h (_S_construct, _S_destroy, construct,
|
|
|
|
|
destroy): Add noexcept specification.
|
|
|
|
|
* include/bits/allocator.h (construct, destroy): Likewise.
|
|
|
|
|
* include/ext/alloc_traits.h (construct, destroy): Likewise.
|
|
|
|
|
* include/ext/malloc_allocator.h (construct, destroy): Likewise.
|
|
|
|
|
* include/ext/new_allocator.h (construct, destroy): Likewise.
|
|
|
|
|
* include/bits/stl_uninitialized.h (__relocate_object_a, __relocate_a,
|
|
|
|
|
__relocate_a_1): New functions.
|
|
|
|
|
(__is_trivially_relocatable): New class.
|
|
|
|
|
* include/bits/stl_vector.h (__use_relocate): New static member.
|
|
|
|
|
* include/bits/vector.tcc (reserve, _M_realloc_insert,
|
|
|
|
|
_M_default_append): Use __relocate_a.
|
|
|
|
|
(reserve, _M_assign_aux, _M_realloc_insert, _M_fill_insert,
|
|
|
|
|
_M_default_append, _M_range_insert): Move _GLIBCXX_ASAN_ANNOTATE_REINIT
|
|
|
|
|
after _Destroy.
|
|
|
|
|
* testsuite/23_containers/vector/modifiers/push_back/49836.cc:
|
|
|
|
|
Replace CopyConsOnlyType with DelAnyAssign.
|
|
|
|
|
|
2018-10-24 07:20:35 +02:00
|
|
|
|
2018-10-24 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
2018-10-24 François Dumont <fdumont@gcc.gnu.org>
* include/debug/safe_unordered_container.h
(_Safe_unordered_container<>::_M_invalidate_locals): Take lambda
parameter type from local end variable.
(_Safe_unordered_container<>::_M_invalidate_all): Likewise.
* include/debug/unordered_map
(unordered_map<>::begin()): Use C++11 direct initialization.
(unordered_map<>::end()): Likewise.
(unordered_map<>::cbegin()): Likewise.
(unordered_map<>::cend()): Likewise.
(unordered_map<>::begin(size_type)): Likewise.
(unordered_map<>::end(size_type)): Likewise.
(unordered_map<>::cbegin(size_type)): Likewise.
(unordered_map<>::cend(size_type)): Likewise.
(unordered_map<>::emplace<>(_Args&&...)): Likewise.
(unordered_map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
(unordered_map<>::insert(const value_type&)): Likewise.
(unordered_map<>::insert(value_type&&)): Likewise.
(unordered_map<>::insert<>(_Pair&&)): Likewise.
(unordered_map<>::insert(const_iterator, const value_type&)): Likewise.
(unordered_map<>::insert(const_iterator, value_type&&)): Likewise.
(unordered_map<>::insert<>(const_iterator, _Pair&&)): Likewise.
(unordered_map<>::try_emplace<>(const key_type&, _Args&&...)): Likewise.
(unordered_map<>::try_emplace<>(key_type&&, _Args&&...)): Likewise.
(unordered_map<>::try_emplace<>(const_iterator, const key_type&,
_Args&&...)): Likewise.
(unordered_map<>::try_emplace<>(const_iterator, key_type&&,
_Args&&...)): Likewise.
(unordered_map<>::insert_or_assign<>(const key_type&, _Obj&&)): Likewise.
(unordered_map<>::insert_or_assign<>(key_type&&, _Obj&&)): Likewise.
(unordered_map<>::insert_or_assign<>(const_iterator, const key_type&,
_Obj&&)): Likewise.
(unordered_map<>::insert_or_assign<>(const_iterator, key_type&&,
_Obj&&)): Likewise.
(unordered_map<>::insert(note_type&&)): Likewise.
(unordered_map<>::find(const key_type&)): Likewise.
(unordered_map<>::equal_range(const key_type&)): Likewise.
(unordered_map<>::_M_extract): New.
(unordered_map<>::extract(const_iterator)): Use latter.
(unordered_map<>::extract(const key_type&)): Likewise.
(unordered_map<>::_M_erase): New.
(unordered_map<>::erase(const key_type&)): Use latter.
(unordered_map<>::erase(const_iterator)): Likewise.
(unordered_map<>::erase(iterator)): Likewise.
(unordered_map<>::_M_invalidate): New.
(unordered_map<>::erase(const_iterator, const_iterator)): Use latter.
(unordered_multimap<>::begin()): Use C++11 direct initialization.
(unordered_multimap<>::end()): Likewise.
(unordered_multimap<>::cbegin()): Likewise.
(unordered_multimap<>::cend()): Likewise.
(unordered_multimap<>::begin(size_type)): Likewise.
(unordered_multimap<>::end(size_type)): Likewise.
(unordered_multimap<>::cbegin(size_type)): Likewise.
(unordered_multimap<>::cend(size_type)): Likewise.
(unordered_multimap<>::emplace<>(_Args&&...)): Likewise.
(unordered_multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
(unordered_multimap<>::insert(const value_type&)): Likewise.
(unordered_multimap<>::insert(const_iterator, const value_type&)): Likewise.
(unordered_multimap<>::insert(const_iterator, value_type&&)): Likewise.
(unordered_multimap<>::insert<>(_Pair&&)): Likewise.
(unordered_multimap<>::insert<>(const_iterator, _Pair&&)): Likewise.
(unordered_multimap<>::insert(note_type&&)): Likewise.
(unordered_multimap<>::insert(const_iterator, note_type&&)): Likewise.
(unordered_multimap<>::find(const key_type&)): Likewise.
(unordered_multimap<>::equal_range(const key_type&)): Likewise.
(unordered_multimap<>::_M_extract): New.
(unordered_multimap<>::extract(const_iterator)): Use latter.
(unordered_multimap<>::extract(const key_type&)): Likewise.
(unordered_multimap<>::_M_erase): New.
(unordered_multimap<>::erase(const_iterator)): Likewise.
(unordered_multimap<>::erase(iterator)): Likewise.
(unordered_multimap<>::_M_invalidate): New.
(unordered_multimap<>::erase(const key_type&)): Use latter.
(unordered_multimap<>::erase(const_iterator, const_iterator)): Likewise.
* include/debug/unordered_set
(unordered_set<>::begin()): Use C++11 direct initialization.
(unordered_set<>::end()): Likewise.
(unordered_set<>::cbegin()): Likewise.
(unordered_set<>::cend()): Likewise.
(unordered_set<>::begin(size_type)): Likewise.
(unordered_set<>::end(size_type)): Likewise.
(unordered_set<>::cbegin(size_type)): Likewise.
(unordered_set<>::cend(size_type)): Likewise.
(unordered_set<>::emplace<>(_Args&&...)): Likewise.
(unordered_set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
(unordered_set<>::insert(const value_type&)): Likewise.
(unordered_set<>::insert(value_type&&)): Likewise.
(unordered_set<>::insert(const_iterator, const value_type&)): Likewise.
(unordered_set<>::insert(const_iterator, value_type&&)): Likewise.
(unordered_set<>::insert(note_type&&)): Likewise.
(unordered_set<>::insert(const_iterator, note_type&&)): Likewise.
(unordered_set<>::find(const key_type&)): Likewise.
(unordered_set<>::equal_range(const key_type&)): Likewise.
(unordered_set<>::_M_extract): New.
(unordered_set<>::extract(const_iterator)): Use latter.
(unordered_set<>::extract(const key_type&)): Likewise.
(unordered_set<>::_M_erase): New.
(unordered_set<>::erase(const key_type&)): Use latter.
(unordered_set<>::erase(const_iterator)): Likewise.
(unordered_set<>::erase(iterator)): Likewise.
(unordered_set<>::_M_invalidate): New.
(unordered_set<>::erase(const_iterator, const_iterator)): Use latter.
(unordered_multiset<>::begin()): Use C++11 direct initialization.
(unordered_multiset<>::end()): Likewise.
(unordered_multiset<>::cbegin()): Likewise.
(unordered_multiset<>::cend()): Likewise.
(unordered_multiset<>::begin(size_type)): Likewise.
(unordered_multiset<>::end(size_type)): Likewise.
(unordered_multiset<>::cbegin(size_type)): Likewise.
(unordered_multiset<>::cend(size_type)): Likewise.
(unordered_multiset<>::emplace<>(_Args&&...)): Likewise.
(unordered_multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
(unordered_multiset<>::insert(const value_type&)): Likewise.
(unordered_multiset<>::insert(const_iterator, const value_type&)): Likewise.
(unordered_multiset<>::insert(value_type&&)): Likewise.
(unordered_multiset<>::insert(const_iterator, value_type&&)): Likewise.
(unordered_multiset<>::insert(node_type&&)): Likewise.
(unordered_multiset<>::insert(const_iterator, node_type&&)): Likewise.
(unordered_multiset<>::find(const key_type&)): Likewise.
(unordered_multiset<>::equal_range(const key_type&)): Likewise.
(unordered_multiset<>::_M_extract): New.
(unordered_multiset<>::extract(const_iterator)): Use latter.
(unordered_multiset<>::extract(const key_type&)): Likewise.
(unordered_multiset<>::_M_erase): New.
(unordered_multiset<>::erase(const_iterator)): Likewise.
(unordered_multiset<>::erase(iterator)): Likewise.
(unordered_multiset<>::_M_invalidate): New.
(unordered_multiset<>::erase(const key_type&)): Use latter.
(unordered_multiset<>::erase(const_iterator, const_iterator)): Likewise.
From-SVN: r265451
2018-10-24 07:40:25 +02:00
|
|
|
|
* include/debug/safe_unordered_container.h
|
|
|
|
|
(_Safe_unordered_container<>::_M_invalidate_locals): Take lambda
|
|
|
|
|
parameter type from local end variable.
|
|
|
|
|
(_Safe_unordered_container<>::_M_invalidate_all): Likewise.
|
|
|
|
|
* include/debug/unordered_map
|
|
|
|
|
(unordered_map<>::begin()): Use C++11 direct initialization.
|
|
|
|
|
(unordered_map<>::end()): Likewise.
|
|
|
|
|
(unordered_map<>::cbegin()): Likewise.
|
|
|
|
|
(unordered_map<>::cend()): Likewise.
|
|
|
|
|
(unordered_map<>::begin(size_type)): Likewise.
|
|
|
|
|
(unordered_map<>::end(size_type)): Likewise.
|
|
|
|
|
(unordered_map<>::cbegin(size_type)): Likewise.
|
|
|
|
|
(unordered_map<>::cend(size_type)): Likewise.
|
|
|
|
|
(unordered_map<>::emplace<>(_Args&&...)): Likewise.
|
|
|
|
|
(unordered_map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
|
|
|
|
|
(unordered_map<>::insert(const value_type&)): Likewise.
|
|
|
|
|
(unordered_map<>::insert(value_type&&)): Likewise.
|
|
|
|
|
(unordered_map<>::insert<>(_Pair&&)): Likewise.
|
|
|
|
|
(unordered_map<>::insert(const_iterator, const value_type&)): Likewise.
|
|
|
|
|
(unordered_map<>::insert(const_iterator, value_type&&)): Likewise.
|
|
|
|
|
(unordered_map<>::insert<>(const_iterator, _Pair&&)): Likewise.
|
|
|
|
|
(unordered_map<>::try_emplace<>(const key_type&, _Args&&...)): Likewise.
|
|
|
|
|
(unordered_map<>::try_emplace<>(key_type&&, _Args&&...)): Likewise.
|
|
|
|
|
(unordered_map<>::try_emplace<>(const_iterator, const key_type&,
|
|
|
|
|
_Args&&...)): Likewise.
|
|
|
|
|
(unordered_map<>::try_emplace<>(const_iterator, key_type&&,
|
|
|
|
|
_Args&&...)): Likewise.
|
|
|
|
|
(unordered_map<>::insert_or_assign<>(const key_type&, _Obj&&)): Likewise.
|
|
|
|
|
(unordered_map<>::insert_or_assign<>(key_type&&, _Obj&&)): Likewise.
|
|
|
|
|
(unordered_map<>::insert_or_assign<>(const_iterator, const key_type&,
|
|
|
|
|
_Obj&&)): Likewise.
|
|
|
|
|
(unordered_map<>::insert_or_assign<>(const_iterator, key_type&&,
|
|
|
|
|
_Obj&&)): Likewise.
|
|
|
|
|
(unordered_map<>::insert(note_type&&)): Likewise.
|
|
|
|
|
(unordered_map<>::find(const key_type&)): Likewise.
|
|
|
|
|
(unordered_map<>::equal_range(const key_type&)): Likewise.
|
|
|
|
|
(unordered_map<>::_M_extract): New.
|
|
|
|
|
(unordered_map<>::extract(const_iterator)): Use latter.
|
|
|
|
|
(unordered_map<>::extract(const key_type&)): Likewise.
|
|
|
|
|
(unordered_map<>::_M_erase): New.
|
|
|
|
|
(unordered_map<>::erase(const key_type&)): Use latter.
|
|
|
|
|
(unordered_map<>::erase(const_iterator)): Likewise.
|
|
|
|
|
(unordered_map<>::erase(iterator)): Likewise.
|
|
|
|
|
(unordered_map<>::_M_invalidate): New.
|
|
|
|
|
(unordered_map<>::erase(const_iterator, const_iterator)): Use latter.
|
|
|
|
|
(unordered_multimap<>::begin()): Use C++11 direct initialization.
|
|
|
|
|
(unordered_multimap<>::end()): Likewise.
|
|
|
|
|
(unordered_multimap<>::cbegin()): Likewise.
|
|
|
|
|
(unordered_multimap<>::cend()): Likewise.
|
|
|
|
|
(unordered_multimap<>::begin(size_type)): Likewise.
|
|
|
|
|
(unordered_multimap<>::end(size_type)): Likewise.
|
|
|
|
|
(unordered_multimap<>::cbegin(size_type)): Likewise.
|
|
|
|
|
(unordered_multimap<>::cend(size_type)): Likewise.
|
|
|
|
|
(unordered_multimap<>::emplace<>(_Args&&...)): Likewise.
|
|
|
|
|
(unordered_multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
|
|
|
|
|
(unordered_multimap<>::insert(const value_type&)): Likewise.
|
|
|
|
|
(unordered_multimap<>::insert(const_iterator, const value_type&)): Likewise.
|
|
|
|
|
(unordered_multimap<>::insert(const_iterator, value_type&&)): Likewise.
|
|
|
|
|
(unordered_multimap<>::insert<>(_Pair&&)): Likewise.
|
|
|
|
|
(unordered_multimap<>::insert<>(const_iterator, _Pair&&)): Likewise.
|
|
|
|
|
(unordered_multimap<>::insert(note_type&&)): Likewise.
|
|
|
|
|
(unordered_multimap<>::insert(const_iterator, note_type&&)): Likewise.
|
|
|
|
|
(unordered_multimap<>::find(const key_type&)): Likewise.
|
|
|
|
|
(unordered_multimap<>::equal_range(const key_type&)): Likewise.
|
|
|
|
|
(unordered_multimap<>::_M_extract): New.
|
|
|
|
|
(unordered_multimap<>::extract(const_iterator)): Use latter.
|
|
|
|
|
(unordered_multimap<>::extract(const key_type&)): Likewise.
|
|
|
|
|
(unordered_multimap<>::_M_erase): New.
|
|
|
|
|
(unordered_multimap<>::erase(const_iterator)): Likewise.
|
|
|
|
|
(unordered_multimap<>::erase(iterator)): Likewise.
|
|
|
|
|
(unordered_multimap<>::_M_invalidate): New.
|
|
|
|
|
(unordered_multimap<>::erase(const key_type&)): Use latter.
|
|
|
|
|
(unordered_multimap<>::erase(const_iterator, const_iterator)): Likewise.
|
|
|
|
|
* include/debug/unordered_set
|
|
|
|
|
(unordered_set<>::begin()): Use C++11 direct initialization.
|
|
|
|
|
(unordered_set<>::end()): Likewise.
|
|
|
|
|
(unordered_set<>::cbegin()): Likewise.
|
|
|
|
|
(unordered_set<>::cend()): Likewise.
|
|
|
|
|
(unordered_set<>::begin(size_type)): Likewise.
|
|
|
|
|
(unordered_set<>::end(size_type)): Likewise.
|
|
|
|
|
(unordered_set<>::cbegin(size_type)): Likewise.
|
|
|
|
|
(unordered_set<>::cend(size_type)): Likewise.
|
|
|
|
|
(unordered_set<>::emplace<>(_Args&&...)): Likewise.
|
|
|
|
|
(unordered_set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
|
|
|
|
|
(unordered_set<>::insert(const value_type&)): Likewise.
|
|
|
|
|
(unordered_set<>::insert(value_type&&)): Likewise.
|
|
|
|
|
(unordered_set<>::insert(const_iterator, const value_type&)): Likewise.
|
|
|
|
|
(unordered_set<>::insert(const_iterator, value_type&&)): Likewise.
|
|
|
|
|
(unordered_set<>::insert(note_type&&)): Likewise.
|
|
|
|
|
(unordered_set<>::insert(const_iterator, note_type&&)): Likewise.
|
|
|
|
|
(unordered_set<>::find(const key_type&)): Likewise.
|
|
|
|
|
(unordered_set<>::equal_range(const key_type&)): Likewise.
|
|
|
|
|
(unordered_set<>::_M_extract): New.
|
|
|
|
|
(unordered_set<>::extract(const_iterator)): Use latter.
|
|
|
|
|
(unordered_set<>::extract(const key_type&)): Likewise.
|
|
|
|
|
(unordered_set<>::_M_erase): New.
|
|
|
|
|
(unordered_set<>::erase(const key_type&)): Use latter.
|
|
|
|
|
(unordered_set<>::erase(const_iterator)): Likewise.
|
|
|
|
|
(unordered_set<>::erase(iterator)): Likewise.
|
|
|
|
|
(unordered_set<>::_M_invalidate): New.
|
|
|
|
|
(unordered_set<>::erase(const_iterator, const_iterator)): Use latter.
|
|
|
|
|
(unordered_multiset<>::begin()): Use C++11 direct initialization.
|
|
|
|
|
(unordered_multiset<>::end()): Likewise.
|
|
|
|
|
(unordered_multiset<>::cbegin()): Likewise.
|
|
|
|
|
(unordered_multiset<>::cend()): Likewise.
|
|
|
|
|
(unordered_multiset<>::begin(size_type)): Likewise.
|
|
|
|
|
(unordered_multiset<>::end(size_type)): Likewise.
|
|
|
|
|
(unordered_multiset<>::cbegin(size_type)): Likewise.
|
|
|
|
|
(unordered_multiset<>::cend(size_type)): Likewise.
|
|
|
|
|
(unordered_multiset<>::emplace<>(_Args&&...)): Likewise.
|
|
|
|
|
(unordered_multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
|
|
|
|
|
(unordered_multiset<>::insert(const value_type&)): Likewise.
|
|
|
|
|
(unordered_multiset<>::insert(const_iterator, const value_type&)): Likewise.
|
|
|
|
|
(unordered_multiset<>::insert(value_type&&)): Likewise.
|
|
|
|
|
(unordered_multiset<>::insert(const_iterator, value_type&&)): Likewise.
|
|
|
|
|
(unordered_multiset<>::insert(node_type&&)): Likewise.
|
|
|
|
|
(unordered_multiset<>::insert(const_iterator, node_type&&)): Likewise.
|
|
|
|
|
(unordered_multiset<>::find(const key_type&)): Likewise.
|
|
|
|
|
(unordered_multiset<>::equal_range(const key_type&)): Likewise.
|
|
|
|
|
(unordered_multiset<>::_M_extract): New.
|
|
|
|
|
(unordered_multiset<>::extract(const_iterator)): Use latter.
|
|
|
|
|
(unordered_multiset<>::extract(const key_type&)): Likewise.
|
|
|
|
|
(unordered_multiset<>::_M_erase): New.
|
|
|
|
|
(unordered_multiset<>::erase(const_iterator)): Likewise.
|
|
|
|
|
(unordered_multiset<>::erase(iterator)): Likewise.
|
|
|
|
|
(unordered_multiset<>::_M_invalidate): New.
|
|
|
|
|
(unordered_multiset<>::erase(const key_type&)): Use latter.
|
|
|
|
|
(unordered_multiset<>::erase(const_iterator, const_iterator)): Likewise.
|
|
|
|
|
|
2018-10-24 07:20:35 +02:00
|
|
|
|
* include/c_global/cstddef: Add versioned namespace.
|
|
|
|
|
|
2018-10-23 15:10:26 +02:00
|
|
|
|
2018-10-23 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/87704
|
|
|
|
|
* include/bits/unique_ptr.h (unique_ptr::unique_ptr(nullptr_t)): Do
|
|
|
|
|
not delegate to default constructor.
|
|
|
|
|
(unique_ptr<T[], D>::unique_ptr(nullptr_t)): Likewise.
|
|
|
|
|
* testsuite/20_util/unique_ptr/cons/incomplete.cc: New test.
|
|
|
|
|
|
2018-10-20 22:00:45 +02:00
|
|
|
|
2018-10-20 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/util/testsuite_containers.h
|
|
|
|
|
(forward_members_unordered<>::forward_members_unordered
|
|
|
|
|
(const value_type&)): Add local_iterator pre and post increment checks.
|
|
|
|
|
* config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 new symbol.
|
|
|
|
|
|
2018-10-19 15:37:05 +02:00
|
|
|
|
2018-10-19 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-10-19 23:50:15 +02:00
|
|
|
|
* testsuite/23_containers/array/requirements/explicit_instantiation/
|
|
|
|
|
3.cc: Skip test when compiled with a -std=c++NN strict mode.
|
|
|
|
|
* testsuite/23_containers/deque/requirements/explicit_instantiation/
|
|
|
|
|
3.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/forward_list/requirements/
|
|
|
|
|
explicit_instantiation/3.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/list/requirements/explicit_instantiation/
|
|
|
|
|
3.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/map/requirements/explicit_instantiation/
|
|
|
|
|
3.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/multimap/requirements/explicit_instantiation/
|
|
|
|
|
3.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/multiset/requirements/explicit_instantiation/
|
|
|
|
|
3.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/set/requirements/explicit_instantiation/
|
|
|
|
|
3.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_map/requirements/
|
|
|
|
|
explicit_instantiation/3.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_multimap/requirements/
|
|
|
|
|
explicit_instantiation/3.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_multiset/requirements/
|
|
|
|
|
explicit_instantiation/3.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_set/requirements/
|
|
|
|
|
explicit_instantiation/3.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/vector/ext_pointer/explicit_instantiation/
|
|
|
|
|
3.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/vector/requirements/explicit_instantiation/
|
|
|
|
|
3.cc: Likewise.
|
|
|
|
|
|
2018-10-19 23:50:03 +02:00
|
|
|
|
* testsuite/23_containers/deque/48101_neg.cc: Prune additional errors
|
|
|
|
|
printed when __STRICT_ANSI__ is defined.
|
|
|
|
|
* testsuite/23_containers/forward_list/48101_neg.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/list/48101_neg.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/multiset/48101_neg.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/set/48101_neg.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_set/48101_neg.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/vector/48101_neg.cc: Likewise.
|
|
|
|
|
|
2018-10-19 23:49:49 +02:00
|
|
|
|
* testsuite/23_containers/forward_list/requirements/
|
|
|
|
|
explicit_instantiation/5.cc [__STRICT_ANSI__]: Don't test non-standard
|
|
|
|
|
extension.
|
|
|
|
|
* testsuite/23_containers/list/requirements/explicit_instantiation/
|
|
|
|
|
5.cc [__STRICT_ANSI__]: Likewise.
|
|
|
|
|
* testsuite/23_containers/map/requirements/explicit_instantiation/5.cc
|
|
|
|
|
[__STRICT_ANSI__]: Likewise.
|
|
|
|
|
* testsuite/23_containers/multimap/requirements/explicit_instantiation/
|
|
|
|
|
5.cc [__STRICT_ANSI__]: Likewise.
|
|
|
|
|
* testsuite/23_containers/multiset/requirements/explicit_instantiation/
|
|
|
|
|
5.cc [__STRICT_ANSI__]: Likewise.
|
|
|
|
|
* testsuite/23_containers/set/requirements/explicit_instantiation/5.cc
|
|
|
|
|
[__STRICT_ANSI__]: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_map/requirements/debug_container.cc
|
|
|
|
|
[__STRICT_ANSI__]: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_map/requirements/
|
|
|
|
|
explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_multimap/requirements/
|
|
|
|
|
explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_multiset/requirements/
|
|
|
|
|
explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_set/requirements/
|
|
|
|
|
explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
|
|
|
|
|
|
2018-10-19 23:49:40 +02:00
|
|
|
|
* testsuite/20_util/scoped_allocator/1.cc: Use allocator with correct
|
|
|
|
|
value type for the container.
|
|
|
|
|
* testsuite/23_containers/forward_list/cons/14.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/map/56613.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_map/55043.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_map/allocator/copy.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_map/allocator/copy_assign.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_map/allocator/minimal.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_map/allocator/move.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_map/allocator/move_assign.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_map/allocator/noexcept.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_map/cons/81891.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_map/requirements/exception/
|
|
|
|
|
basic.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_map/requirements/exception/
|
|
|
|
|
generation_prohibited.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_map/requirements/exception/
|
|
|
|
|
propagation_consistent.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_multimap/55043.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_multimap/allocator/copy.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_multimap/allocator/copy_assign.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_multimap/allocator/minimal.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_multimap/allocator/move.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_multimap/allocator/move_assign.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_multimap/allocator/noexcept.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_multimap/requirements/exception/
|
|
|
|
|
basic.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_multimap/requirements/exception/
|
|
|
|
|
generation_prohibited.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_multimap/requirements/exception/
|
|
|
|
|
propagation_consistent.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/unordered_multimap/requirements/
|
|
|
|
|
explicit_instantiation/5.cc: Likewise.
|
|
|
|
|
* testsuite/ext/malloc_allocator/sanity.cc: Likewise.
|
|
|
|
|
|
2018-10-19 23:49:32 +02:00
|
|
|
|
* ext/special_functions/airy_ai/check_nan.cc: Skip test for
|
|
|
|
|
non-standard extension when a strict -std=c++NN dialect is used.
|
|
|
|
|
* ext/special_functions/airy_ai/check_value.cc: Likewise.
|
|
|
|
|
* ext/special_functions/airy_ai/compile.cc: Likewise.
|
|
|
|
|
* ext/special_functions/airy_bi/check_nan.cc: Likewise.
|
|
|
|
|
* ext/special_functions/airy_bi/check_value.cc: Likewise.
|
|
|
|
|
* ext/special_functions/airy_bi/compile.cc: Likewise.
|
|
|
|
|
* ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
|
|
|
|
|
* ext/special_functions/conf_hyperg/check_value.cc: Likewise.
|
|
|
|
|
* ext/special_functions/conf_hyperg/compile.cc: Likewise.
|
|
|
|
|
* ext/special_functions/hyperg/check_nan.cc: Likewise.
|
|
|
|
|
* ext/special_functions/hyperg/check_value.cc: Likewise.
|
|
|
|
|
* ext/special_functions/hyperg/compile.cc: Likewise.
|
|
|
|
|
|
2018-10-19 23:49:19 +02:00
|
|
|
|
* testsuite/23_containers/list/requirements/explicit_instantiation/
|
|
|
|
|
5_c++0x.cc: Remove redundant test that is functionally identical to
|
|
|
|
|
the 5.cc test.
|
|
|
|
|
* testsuite/23_containers/map/requirements/explicit_instantiation/
|
|
|
|
|
5_c++0x.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/multimap/requirements/explicit_instantiation/
|
|
|
|
|
5_c++0x.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/multiset/requirements/explicit_instantiation/
|
|
|
|
|
5_c++0x.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/set/requirements/explicit_instantiation/
|
|
|
|
|
5_c++0x.cc: Likewise.
|
|
|
|
|
|
2018-10-19 15:46:24 +02:00
|
|
|
|
* include/bits/regex_executor.tcc (_Backref_matcher::_M_apply): Use
|
|
|
|
|
_GLIBCXX_STD_A to refer to normal mode algorithms.
|
|
|
|
|
* testsuite/28_regex/headers/regex/parallel_mode.cc: New test.
|
|
|
|
|
* testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Remove empty
|
|
|
|
|
whitespace.
|
|
|
|
|
|
2018-10-19 15:37:05 +02:00
|
|
|
|
* include/debug/map.h (map::erase(iterator)): Add abi-tag so that
|
|
|
|
|
C++11 version mangles differently from incompatible C++98 version.
|
|
|
|
|
* include/debug/multimap.h (multimap::erase(iterator)): Likewise.
|
|
|
|
|
* include/debug/multiset.h (multiset::erase(iterator))
|
|
|
|
|
(multiset::erase(const_iterator, const_iterator)): Likewise.
|
|
|
|
|
* include/debug/set.h (set::erase(iterator))
|
|
|
|
|
(multiset::erase(const_iterator, const_iterator)): Likewise.
|
|
|
|
|
|
2018-10-18 17:38:50 +02:00
|
|
|
|
2018-10-18 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-10-18 22:04:55 +02:00
|
|
|
|
* testsuite/20_util/duration/cons/2.cc: Add -ffloat-store to fix
|
|
|
|
|
failure when compiled without optimisation.
|
|
|
|
|
* testsuite/ext/profile/mutex_extensions_neg.cc: Prune additional
|
|
|
|
|
errors caused by C++17 std::pmr alias templates.
|
|
|
|
|
|
2018-10-18 21:57:25 +02:00
|
|
|
|
PR libstdc++/87642
|
|
|
|
|
* config/locale/gnu/monetary_members.cc
|
|
|
|
|
(moneypunct<char, true>::_M_initialize_moneypunct): Use
|
|
|
|
|
__narrow_multibyte_chars to convert multibyte thousands separators
|
|
|
|
|
to a single char.
|
|
|
|
|
* config/locale/gnu/numeric_members.cc
|
|
|
|
|
(numpunct<char>::_M_initialize_numpunct): Likewise.
|
|
|
|
|
(__narrow_multibyte_chars): New function.
|
|
|
|
|
|
2018-10-18 17:38:50 +02:00
|
|
|
|
PR libstdc++/87641
|
|
|
|
|
* include/bits/valarray_array.h (__valarray_sum): Use first element
|
|
|
|
|
to initialize accumulator instead of value-initializing it.
|
|
|
|
|
(__valarray_product<_Tp>): Move to ...
|
|
|
|
|
* src/c++98/valarray.cc (__valarray_product<_Tp>): Here. Use first
|
|
|
|
|
element to initialize accumulator.
|
|
|
|
|
(__valarray_product(const valarray<size_t>&)): Remove const_cast made
|
|
|
|
|
unnecessary by LWG 389.
|
|
|
|
|
* testsuite/26_numerics/valarray/87641.cc: New test.
|
|
|
|
|
|
2018-10-18 07:36:02 +02:00
|
|
|
|
2018-10-18 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Partial revert.
|
|
|
|
|
2018-10-08 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/debug/list (list<>::cbegin()): Use C++11 direct
|
|
|
|
|
initialization.
|
|
|
|
|
(list<>::cend()): Likewise.
|
|
|
|
|
(list<>::erase(const_iterator, const_iterator)): Ensure consistent
|
|
|
|
|
iterator comparisons.
|
|
|
|
|
(list<>::splice(const_iterator, list&&, const_iterator,
|
|
|
|
|
const_iterator)): Likewise.
|
|
|
|
|
|
|
|
|
|
Partial revert.
|
|
|
|
|
2018-10-15 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/debug/vector (vector<>::cbegin()): Use C++11 direct
|
|
|
|
|
initialization.
|
|
|
|
|
(vector<>::cend()): Likewise.
|
|
|
|
|
(vector<>::insert(const_iterator, const _Tp&)): Use consistent
|
|
|
|
|
iterator comparison.
|
|
|
|
|
(vector<>::erase(const_iterator)): Likewise.
|
|
|
|
|
(vector<>::erase(const_iterator, const_iterator)): Likewise.
|
|
|
|
|
|
2018-10-17 21:08:51 +02:00
|
|
|
|
2018-10-17 Ville Voutilainen <ville.voutilainen@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/87619
|
|
|
|
|
* include/std/variant (__select_index): Fix an off-by-one.
|
|
|
|
|
* testsuite/20_util/variant/87619.cc: New.
|
|
|
|
|
|
2018-10-16 16:49:29 +02:00
|
|
|
|
2018-10-16 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-10-17 00:42:39 +02:00
|
|
|
|
* include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
|
|
|
|
|
Fix default constructor to call correct function.
|
|
|
|
|
|
2018-10-16 18:13:00 +02:00
|
|
|
|
* testsuite/experimental/net/internet/address/v4/creation.cc: Do not
|
|
|
|
|
declare ip in global namespace, to avoid collision with struct ip
|
|
|
|
|
defined in <netinet/ip.h>.
|
|
|
|
|
|
2018-10-16 18:12:51 +02:00
|
|
|
|
* include/experimental/bits/net.h: Move versioned namespace macros
|
|
|
|
|
to correct location.
|
|
|
|
|
* include/experimental/buffer: Likewise.
|
|
|
|
|
* include/experimental/executor: Likewise.
|
|
|
|
|
* include/experimental/internet: Likewise.
|
|
|
|
|
* include/experimental/io_context: Likewise.
|
|
|
|
|
* include/experimental/netfwd: Likewise.
|
|
|
|
|
* include/experimental/socket: Likewise.
|
|
|
|
|
* include/experimental/timer: Likewise.
|
|
|
|
|
|
Use autoconf to check for features needed by Networking TS
* config.h.in: Regenerate.
* configure: Regenerate.
* configure.ac: Check for headers used by Networking TS.
* include/experimental/executor: Include <condition_variable>
instead of <mutex>.
* include/experimental/internet: Use autoconf macros for available
headers. Include <sys/socket.h> for. Remove <cstring> and use
__builtin_memcpy and __builtin_strchr.
(resolver_errc) [!_GLIBCXX_HAVE_NETDB_H]: Do not define.
(address_v4::to_string, address_v6::to_string)
[!_GLIBCXX_HAVE_ARPA_INET_H]: Likewise.
(basic_resolver_results) [!_GLIBCXX_HAVE_NETDB_H]: Make private
constructors report errors.
[!_GLIBCXX_HAVE_NETINET_TCP_H] (tcp::no_delay): Do not define.
* include/experimental/io_context: Likewise.
* include/experimental/socket: Likewise.
[!_GLIBCXX_HAVE_SYS_SOCKET_H, !_GLIBCXX_HAVE_POLL_H] (socket_base): Do
not define nested types when relevant header not available.
(__socket_impl::native_non_blocking) [!_GLIBCXX_HAVE_FCNTL_H]: Report
an error.
(__basic_socket_impl::open, __basic_socket_impl::local_endpoint)
(__basic_socket_impl::bind) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
(__basic_socket_impl::io_control) [!_GLIBCXX_HAVE_SYS_IOCTL_H]:
Likewise.
(basic_socket::at_mark, basic_socket::shutdown)
(basic_socket::remote_endpoint, basic_socket::connect)
(basic_socket::async_connect) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
(basic_socket::available) [_GLIBCXX_HAVE_SYS_IOCTL_H]: Check macro
for <sys/ioctl.h> availability.
(basic_socket::wait) [!_GLIBCXX_HAVE_POLL_H]: Likewise.
(basic_datagram_socket::receive, basic_datagram_socket::async_receive)
(basic_datagram_socket::receive_from)
(basic_datagram_socket::async_receive_from)
(basic_datagram_socket::send, basic_datagram_socket::async_send)
(basic_datagram_socket::send_to, basic_datagram_socket::async_send_to)
[!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
(basic_stream_socket::receive, basic_stream_socket::async_receive)
(basic_stream_socket::send, basic_stream_socket::async_send)
[!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
(basic_socket_acceptor::listen, basic_socket_acceptor::accept)
(basic_socket_acceptor::async_accept) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
Likewise.
(basic_socket_acceptor::wait) [!_GLIBCXX_HAVE_POLL_H]: Likewise.
From-SVN: r265203
2018-10-16 18:12:32 +02:00
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* configure.ac: Check for headers used by Networking TS.
|
|
|
|
|
* include/experimental/executor: Include <condition_variable>
|
|
|
|
|
instead of <mutex>.
|
|
|
|
|
* include/experimental/internet: Use autoconf macros for available
|
|
|
|
|
headers. Include <sys/socket.h> for. Remove <cstring> and use
|
|
|
|
|
__builtin_memcpy and __builtin_strchr.
|
|
|
|
|
(resolver_errc) [!_GLIBCXX_HAVE_NETDB_H]: Do not define.
|
|
|
|
|
(address_v4::to_string, address_v6::to_string)
|
|
|
|
|
[!_GLIBCXX_HAVE_ARPA_INET_H]: Likewise.
|
|
|
|
|
(basic_resolver_results) [!_GLIBCXX_HAVE_NETDB_H]: Make private
|
|
|
|
|
constructors report errors.
|
|
|
|
|
[!_GLIBCXX_HAVE_NETINET_TCP_H] (tcp::no_delay): Do not define.
|
|
|
|
|
* include/experimental/io_context: Likewise.
|
|
|
|
|
* include/experimental/socket: Likewise.
|
|
|
|
|
[!_GLIBCXX_HAVE_SYS_SOCKET_H, !_GLIBCXX_HAVE_POLL_H] (socket_base): Do
|
|
|
|
|
not define nested types when relevant header not available.
|
|
|
|
|
(__socket_impl::native_non_blocking) [!_GLIBCXX_HAVE_FCNTL_H]: Report
|
|
|
|
|
an error.
|
|
|
|
|
(__basic_socket_impl::open, __basic_socket_impl::local_endpoint)
|
|
|
|
|
(__basic_socket_impl::bind) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
|
|
|
|
|
(__basic_socket_impl::io_control) [!_GLIBCXX_HAVE_SYS_IOCTL_H]:
|
|
|
|
|
Likewise.
|
|
|
|
|
(basic_socket::at_mark, basic_socket::shutdown)
|
|
|
|
|
(basic_socket::remote_endpoint, basic_socket::connect)
|
|
|
|
|
(basic_socket::async_connect) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
|
|
|
|
|
(basic_socket::available) [_GLIBCXX_HAVE_SYS_IOCTL_H]: Check macro
|
|
|
|
|
for <sys/ioctl.h> availability.
|
|
|
|
|
(basic_socket::wait) [!_GLIBCXX_HAVE_POLL_H]: Likewise.
|
|
|
|
|
(basic_datagram_socket::receive, basic_datagram_socket::async_receive)
|
|
|
|
|
(basic_datagram_socket::receive_from)
|
|
|
|
|
(basic_datagram_socket::async_receive_from)
|
|
|
|
|
(basic_datagram_socket::send, basic_datagram_socket::async_send)
|
|
|
|
|
(basic_datagram_socket::send_to, basic_datagram_socket::async_send_to)
|
|
|
|
|
[!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
|
|
|
|
|
(basic_stream_socket::receive, basic_stream_socket::async_receive)
|
|
|
|
|
(basic_stream_socket::send, basic_stream_socket::async_send)
|
|
|
|
|
[!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
|
|
|
|
|
(basic_socket_acceptor::listen, basic_socket_acceptor::accept)
|
|
|
|
|
(basic_socket_acceptor::async_accept) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
|
|
|
|
|
Likewise.
|
|
|
|
|
(basic_socket_acceptor::wait) [!_GLIBCXX_HAVE_POLL_H]: Likewise.
|
|
|
|
|
|
2018-10-16 17:37:10 +02:00
|
|
|
|
* testsuite/experimental/net/headers.cc: Remove dg-options.
|
|
|
|
|
* testsuite/experimental/net/buffer/arithmetic.cc: Replace dg-options
|
|
|
|
|
with dg-do using effective target.
|
|
|
|
|
* testsuite/experimental/net/buffer/const.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/net/buffer/creation.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/net/buffer/mutable.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/net/buffer/size.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/net/buffer/traits.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/net/execution_context/use_service.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/net/internet/address/v4/comparisons.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/net/internet/address/v4/cons.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/net/internet/address/v4/creation.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/net/internet/address/v4/members.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/net/internet/resolver/base.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/net/internet/resolver/ops/lookup.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/net/internet/resolver/ops/reverse.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/net/timer/waitable/cons.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/net/timer/waitable/dest.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
|
|
|
|
|
|
2018-10-16 17:24:00 +02:00
|
|
|
|
* include/experimental/socket (basic_socket::at_mark): Add missing
|
|
|
|
|
return.
|
|
|
|
|
|
2018-10-16 16:49:29 +02:00
|
|
|
|
* acinclude.m4 (GLIBCXX_CHECK_RANDOM_TR1): Replace with ...
|
|
|
|
|
(GLIBCXX_CHECK_DEV_RANDOM): New macro with more descriptive name.
|
|
|
|
|
Define _GLIBCXX_USE_DEV_RANDOM as well as _GLIBCXX_USE_RANDOM_TR1.
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* configure.ac: Use GLIBCXX_CHECK_DEV_RANDOM instead of
|
|
|
|
|
GLIBCXX_CHECK_RANDOM_TR1.
|
|
|
|
|
crossconfig.m4: Likewise.
|
|
|
|
|
* include/bits/random.h (random_device): Use _GLIBCXX_USE_DEV_RANDOM
|
|
|
|
|
instead of _GLIBCXX_USE_RANDOM_TR1.
|
|
|
|
|
* testsuite/26_numerics/random/random_device/cons/token.cc: Likewise.
|
|
|
|
|
|
2018-10-16 14:27:52 +02:00
|
|
|
|
2018-10-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/dg-options.exp (add_options_for_net_ts): New proc.
|
|
|
|
|
* testsuite/experimental/net/internet/address/v4/comparisons.cc:
|
|
|
|
|
Add dg-add-options net_ts.
|
|
|
|
|
* testsuite/experimental/net/internet/address/v4/cons.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/net/internet/address/v4/creation.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/net/internet/address/v4/members.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/net/internet/resolver/base.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/net/internet/resolver/ops/lookup.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/net/internet/resolver/ops/reverse.cc: Likewise.
|
|
|
|
|
|
2018-10-16 13:14:37 +02:00
|
|
|
|
2018-10-16 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-10-16 14:06:05 +02:00
|
|
|
|
* testsuite/20_util/duration/literals/range_neg.cc: Adjust pruned
|
|
|
|
|
diagnostic to account for quotes around 'constexpr'.
|
|
|
|
|
* testsuite/23_containers/deque/capacity/max_size.cc: Define static
|
|
|
|
|
variable.
|
|
|
|
|
* testsuite/23_containers/vector/capacity/max_size.cc: Likewise.
|
|
|
|
|
|
2018-10-16 13:14:37 +02:00
|
|
|
|
PR libstdc++/87618
|
|
|
|
|
* config/abi/pre/gnu.ver: Fix typos in patterns for basic_stringbuf.
|
|
|
|
|
* testsuite/27_io/basic_stringbuf/cons/char/default.cc: Disable
|
|
|
|
|
optimisation to check constructor definition can be linked to.
|
|
|
|
|
* testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: Likewise.
|
|
|
|
|
|
2018-10-15 14:58:51 +02:00
|
|
|
|
2018-10-15 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-10-15 15:55:42 +02:00
|
|
|
|
* testsuite/22_locale/numpunct/members/char/3.cc: Adjust test to
|
|
|
|
|
account for change to glibc it_IT localedata (glibc bz#10797).
|
|
|
|
|
|
2018-10-15 14:58:51 +02:00
|
|
|
|
PR libstdc++/87587
|
|
|
|
|
* src/c++11/cxx11-shim_facets.cc: Suppress -Wabi warnings.
|
|
|
|
|
|
2018-10-15 07:24:51 +02:00
|
|
|
|
2018-10-15 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/debug/vector (vector<>::cbegin()): Use C++11 direct
|
|
|
|
|
initialization.
|
|
|
|
|
(vector<>::cend()): Likewise.
|
|
|
|
|
(vector<>::emplace(const_iterator, _Args&&...)): Likewise and use
|
|
|
|
|
consistent iterator comparison.
|
|
|
|
|
(vector<>::insert(const_iterator, size_type, const _Tp&)): Likewise.
|
|
|
|
|
(vector<>::insert(const_iterator, _InputIterator, _InputIterator)):
|
|
|
|
|
Likewise.
|
|
|
|
|
(vector<>::erase(const_iterator)): Likewise.
|
|
|
|
|
(vector<>::erase(const_iterator, const_iterator)): Likewise.
|
|
|
|
|
|
2018-10-12 01:21:11 +02:00
|
|
|
|
2018-10-12 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-10-12 12:50:15 +02:00
|
|
|
|
Initial commit of Networking TS implementation.
|
|
|
|
|
* include/Makefile.am: Add new headers.
|
|
|
|
|
* include/Makefile.in: Regenerate.
|
|
|
|
|
* include/experimental/bits/net.h: New header for common
|
|
|
|
|
implementation details of Networking TS.
|
|
|
|
|
* include/experimental/buffer: New header.
|
|
|
|
|
* include/experimental/executor: New header.
|
|
|
|
|
* include/experimental/internet: New header.
|
|
|
|
|
* include/experimental/io_context: New header.
|
|
|
|
|
* include/experimental/net: New header.
|
|
|
|
|
* include/experimental/netfwd: New header.
|
|
|
|
|
* include/experimental/socket: New header.
|
|
|
|
|
* include/experimental/timer: New header.
|
|
|
|
|
* testsuite/experimental/net/buffer/arithmetic.cc: New test.
|
|
|
|
|
* testsuite/experimental/net/buffer/const.cc: New test.
|
|
|
|
|
* testsuite/experimental/net/buffer/creation.cc: New test.
|
|
|
|
|
* testsuite/experimental/net/buffer/mutable.cc: New test.
|
|
|
|
|
* testsuite/experimental/net/buffer/size.cc: New test.
|
|
|
|
|
* testsuite/experimental/net/buffer/traits.cc: New test.
|
|
|
|
|
* testsuite/experimental/net/execution_context/use_service.cc: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/experimental/net/headers.cc: New test.
|
|
|
|
|
* testsuite/experimental/net/internet/address/v4/comparisons.cc: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/experimental/net/internet/address/v4/cons.cc: New test.
|
|
|
|
|
* testsuite/experimental/net/internet/address/v4/creation.cc: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/experimental/net/internet/address/v4/members.cc: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/experimental/net/internet/resolver/base.cc: New test.
|
|
|
|
|
* testsuite/experimental/net/internet/resolver/ops/lookup.cc: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/experimental/net/internet/resolver/ops/reverse.cc: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/experimental/net/timer/waitable/cons.cc: New test.
|
|
|
|
|
* testsuite/experimental/net/timer/waitable/dest.cc: New test.
|
|
|
|
|
* testsuite/experimental/net/timer/waitable/ops.cc: New test.
|
|
|
|
|
|
2018-10-12 01:21:11 +02:00
|
|
|
|
PR libstdc++/77691
|
|
|
|
|
* include/experimental/memory_resource (__resource_adaptor_imp): Do
|
|
|
|
|
not allocate sizes smaller than alignment when relying on guaranteed
|
|
|
|
|
alignment.
|
|
|
|
|
* testsuite/experimental/memory_resource/new_delete_resource.cc:
|
|
|
|
|
Adjust expected number of bytes allocated for alignof(max_align_t).
|
|
|
|
|
|
2018-10-11 22:21:57 +02:00
|
|
|
|
2018-10-11 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
2018-10-11 22:47:13 +02:00
|
|
|
|
* include/debug/forward_list
|
|
|
|
|
(forward_list<>::before_begin()): Use C++11 direct initialization.
|
|
|
|
|
(forward_list<>::begin()): Likewise.
|
|
|
|
|
(forward_list<>::end()): Likewise.
|
|
|
|
|
(forward_list<>::cbefore_begin()): Likewise.
|
|
|
|
|
(forward_list<>::cbegin()): Likewise.
|
|
|
|
|
(forward_list<>::cend()): Likewise.
|
|
|
|
|
(forward_list<>::emplace_after<>(const_iterator, _Args&&...)): Likewise.
|
|
|
|
|
(forward_list<>::insert_after(const_iterator, const _Tp&)): Likewise.
|
|
|
|
|
(forward_list<>::insert_after(const_iterator, _Tp&&)): Likewise.
|
|
|
|
|
(forward_list<>::insert_after(const_iterator, size_type, const _Tp&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
(forward_list<>::insert_after(const_iterator, initializer_list<>)):
|
|
|
|
|
Likewise.
|
|
|
|
|
(forward_list<>::erase_after(const_iterator)): Likewise.
|
|
|
|
|
(forward_list<>::erase_after(const_iterator, const_iterator)): Likewise
|
|
|
|
|
and ensure consistent iterator comparison.
|
|
|
|
|
|
2018-10-11 22:21:57 +02:00
|
|
|
|
* include/bits/forward_list.h
|
|
|
|
|
(_Fwd_list_iterator<>::operator==): Replace member function with inline
|
|
|
|
|
friend.
|
|
|
|
|
(_Fwd_list_iterator<>::operator!=): Likewise.
|
|
|
|
|
(_Fwd_list_const_iterator<>::operator==): Likewise.
|
|
|
|
|
(_Fwd_list_const_iterator<>::operator!=): Likewise.
|
|
|
|
|
(operator==(const _Fwd_list_iterator<>&,
|
|
|
|
|
const _Fwd_list_const_iterator<>&)): Remove.
|
|
|
|
|
(operator!=(const _Fwd_list_iterator<>&,
|
|
|
|
|
const _Fwd_list_const_iterator<>&)): Remove.
|
|
|
|
|
(forward_list<>::_Node): Take typedef from base type.
|
|
|
|
|
(forward_list<>::iterator): Likewise.
|
|
|
|
|
(forward_list<>::const_iterator): Likewise.
|
|
|
|
|
|
2018-10-11 13:32:29 +02:00
|
|
|
|
2018-10-11 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-10-11 18:37:23 +02:00
|
|
|
|
PR libstdc++/80538
|
|
|
|
|
* src/c++11/thread.cc (this_thread::__sleep_for)
|
|
|
|
|
[_GLIBCXX_HAVE_SLEEP]: Only call sleep for non-zero values.
|
|
|
|
|
Loop while sleep call is interrupted and until steady_clock
|
|
|
|
|
shows requested duration has elapsed.
|
|
|
|
|
(!_GLIBCXX_HAVE_USLEEP]: Use the _GLIBCXX_HAVE_SLEEP code path, but
|
|
|
|
|
avoiding the usleep call.
|
|
|
|
|
* testsuite/30_threads/this_thread/60421.cc: Test repeated
|
|
|
|
|
signal interruptions.
|
|
|
|
|
|
2018-10-11 13:32:29 +02:00
|
|
|
|
* include/bits/allocator.h
|
|
|
|
|
(operator==(const allocator<_Tp>&, const allocator<_Tp>))
|
|
|
|
|
(operator!=(const allocator<_Tp>&, const allocator<_Tp>)): Replace
|
|
|
|
|
with inline friends.
|
|
|
|
|
* include/ext/debug_allocator.h (operator==, operator!=): Replace
|
|
|
|
|
with inline friend functions that compare to rebound allocators.
|
|
|
|
|
* include/ext/malloc_allocator.h (operator==, operator!=): Likewise.
|
|
|
|
|
* include/ext/new_allocator.h (operator==, operator!=): Likewise.
|
|
|
|
|
* testsuite/ext/debug_allocator/eq.cc: New test.
|
|
|
|
|
* testsuite/ext/ext_pointer/alloc_eq.cc: New test.
|
|
|
|
|
* testsuite/ext/malloc_allocator/eq.cc: New test.
|
|
|
|
|
* testsuite/ext/new_allocator/eq.cc: New test.
|
|
|
|
|
|
2018-10-10 17:39:33 +02:00
|
|
|
|
2018-10-10 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/87544
|
|
|
|
|
* include/bits/stl_vector.h (vector::_S_max_size): Limit size to
|
|
|
|
|
PTRDIFF_MAX / sizeof(value_type).
|
|
|
|
|
* include/ext/malloc_allocator.h (malloc_allocator::max_size):
|
|
|
|
|
Likewise.
|
|
|
|
|
* include/ext/new_allocator.h (new_allocator::max_size): Likewise.
|
|
|
|
|
* testsuite/23_containers/vector/allocator/minimal.cc: Adjust
|
|
|
|
|
expected value for max_size().
|
|
|
|
|
* testsuite/23_containers/vector/capacity/87544.cc: New test.
|
|
|
|
|
|
2018-10-09 22:38:06 +02:00
|
|
|
|
2018-10-09 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/bits/stl_list.h
|
|
|
|
|
(_List_operator<>::operator==): Replace member function with inline
|
|
|
|
|
friend.
|
|
|
|
|
(_List_operator<>::operator!=): Likewise.
|
|
|
|
|
(_List_const_operator<>::operator==): Likewise.
|
|
|
|
|
(_List_const_operator<>::operator!=): Likewise.
|
|
|
|
|
(operator==(const _List_iterator<>&, const _List_const_iterator<>&)):
|
|
|
|
|
Remove.
|
|
|
|
|
(operator!=(const _List_iterator<>&, const _List_const_iterator<>&)):
|
|
|
|
|
Remove.
|
|
|
|
|
|
2018-10-09 15:06:46 +02:00
|
|
|
|
2018-10-09 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/bits/stringfwd.h (string, wstring, u16string, u32string):
|
|
|
|
|
Define typedefs outside of __cxx11 inline namespace.
|
|
|
|
|
* python/libstdcxx/v6/printers.py (register_type_printers): Also
|
|
|
|
|
register printers for typedefs in new location.
|
|
|
|
|
|
2018-10-08 14:07:22 +02:00
|
|
|
|
2018-10-08 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-10-08 14:17:58 +02:00
|
|
|
|
PR libstdc++/87538
|
|
|
|
|
* testsuite/experimental/functional/87538.cc: New test.
|
|
|
|
|
|
2018-10-08 14:07:22 +02:00
|
|
|
|
PR libstdc++/87538
|
|
|
|
|
* include/std/functional (_Not_fn::operator()): Check value of
|
|
|
|
|
__is_nothrow_invocable as well.
|
|
|
|
|
* testsuite/20_util/function_objects/not_fn/87538.cc: New test.
|
|
|
|
|
|
2018-10-08 07:49:12 +02:00
|
|
|
|
2018-10-08 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/debug/list (list<>::cbegin()): Use C++11 direct
|
|
|
|
|
initialization.
|
|
|
|
|
(list<>::cend()): Likewise.
|
|
|
|
|
(list<>::emplace<>(const_iterator, _Args&&...)): Likewise.
|
|
|
|
|
(list<>::insert(const_iterator, initializer_list<>)): Likewise.
|
|
|
|
|
(list<>::insert(const_iterator, size_type, const _Tp&)): Likewise.
|
|
|
|
|
(list<>::erase(const_iterator, const_iterator)): Ensure consistent
|
|
|
|
|
iterator comparisons.
|
|
|
|
|
(list<>::splice(const_iterator, list&&, const_iterator,
|
|
|
|
|
const_iterator)): Likewise.
|
|
|
|
|
|
2018-10-05 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_tree.h
(_Rb_tree_iterator<>::operator==): Make inline friend.
(_Rb_tree_iterator<>::operator!=): Likewise.
(_Rb_tree_const_iterator<>::operator==): Likewise.
(_Rb_tree_const_iterator<>::operator!=): Likewise.
(operator==(const _Rb_tree_iterator<>&,
const _Rb_tree_const_iterator&)): Remove.
(operator!=(const _Rb_tree_iterator<>&,
const _Rb_tree_const_iterator&)): Remove.
(operator==(const _Rb_tree<>&, const _Rb_tree<>&)): Make inline friend.
(operator<(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
(operator!=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise and
deprecate.
(operator>(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
(operator<=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
(operator>=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
* include/debug/map.h (map<>::erase(const_iterator, const_iterator)):
Compare __victim with _Base::cend().
* include/debug/multimap.h
(multimap<>::erase(const_iterator, const_iterator)): Likewise.
* include/debug/set.h (set<>::erase(const_iterator, const_iterator)):
Compare __victim with _Base::cend().
* include/debug/multiset.h
(multiset<>::erase(const_iterator, const_iterator)): Likewise.
From-SVN: r264875
2018-10-05 18:01:39 +02:00
|
|
|
|
2018-10-05 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/bits/stl_tree.h
|
|
|
|
|
(_Rb_tree_iterator<>::operator==): Make inline friend.
|
|
|
|
|
(_Rb_tree_iterator<>::operator!=): Likewise.
|
|
|
|
|
(_Rb_tree_const_iterator<>::operator==): Likewise.
|
|
|
|
|
(_Rb_tree_const_iterator<>::operator!=): Likewise.
|
|
|
|
|
(operator==(const _Rb_tree_iterator<>&,
|
|
|
|
|
const _Rb_tree_const_iterator&)): Remove.
|
|
|
|
|
(operator!=(const _Rb_tree_iterator<>&,
|
|
|
|
|
const _Rb_tree_const_iterator&)): Remove.
|
|
|
|
|
(operator==(const _Rb_tree<>&, const _Rb_tree<>&)): Make inline friend.
|
|
|
|
|
(operator<(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
|
|
|
|
|
(operator!=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise and
|
|
|
|
|
deprecate.
|
|
|
|
|
(operator>(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
|
|
|
|
|
(operator<=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
|
|
|
|
|
(operator>=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
|
|
|
|
|
* include/debug/map.h (map<>::erase(const_iterator, const_iterator)):
|
|
|
|
|
Compare __victim with _Base::cend().
|
|
|
|
|
* include/debug/multimap.h
|
|
|
|
|
(multimap<>::erase(const_iterator, const_iterator)): Likewise.
|
|
|
|
|
* include/debug/set.h (set<>::erase(const_iterator, const_iterator)):
|
|
|
|
|
Compare __victim with _Base::cend().
|
|
|
|
|
* include/debug/multiset.h
|
|
|
|
|
(multiset<>::erase(const_iterator, const_iterator)): Likewise.
|
|
|
|
|
|
2018-10-03 13:27:40 +02:00
|
|
|
|
2018-10-03 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/59439
|
|
|
|
|
* src/c++98/locale.cc (locale::locale(const locale&)): Bypass
|
|
|
|
|
reference count updates for the classic locale.
|
|
|
|
|
(locale::~locale()): Likewise.
|
|
|
|
|
(locale::operator=(const locale&)): Likewise.
|
|
|
|
|
* src/c++98/locale_init.cc (locale::locale()): Likewise.
|
|
|
|
|
(locale::global(const locale&)): Likewise.
|
|
|
|
|
|
2018-10-03 François Dumont <fdumont@gcc.gnu.org>
* include/debug/map.h
(map<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
(map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
(map<>::insert(value_type&&)): Likewise.
(map<>::insert<>(_Pair&&)): Likewise.
(map<>::insert<>(const_iterator, _Pair&&)): Likewise.
(map<>::try_emplace): Likewise.
(map<>::insert_or_assign): Likewise.
(map<>::insert(node_type&&)): Likewise.
(map<>::insert(const_iterator, node_type&&)): Likewise.
(map<>::erase(const_iterator)): Likewise.
(map<>::erase(const_iterator, const_iterator)): Likewise.
* include/debug/multimap.h
(multimap<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
(multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
(multimap<>::insert<>(_Pair&&)): Likewise.
(multimap<>::insert<>(const_iterator, _Pair&&)): Likewise.
(multimap<>::insert(node_type&&)): Likewise.
(multimap<>::insert(const_iterator, node_type&&)): Likewise.
(multimap<>::erase(const_iterator)): Likewise.
(multimap<>::erase(const_iterator, const_iterator)): Likewise.
* include/debug/set.h
(set<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
(set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
(set<>::insert(value_type&&)): Likewise.
(set<>::insert<>(const_iterator, value_type&&)): Likewise.
(set<>::insert(const_iterator, node_type&&)): Likewise.
(set<>::erase(const_iterator)): Likewise.
(set<>::erase(const_iterator, const_iterator)): Likewise.
* include/debug/multiset.h
(multiset<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
(multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
(multiset<>::insert<>(value_type&&)): Likewise.
(multiset<>::insert<>(const_iterator, value_type&&)): Likewise.
(multiset<>::insert(node_type&&)): Likewise.
(multiset<>::insert(const_iterator, node_type&&)): Likewise.
(multiset<>::erase(const_iterator)): Likewise.
(multiset<>::erase(const_iterator, const_iterator)): Likewise.
From-SVN: r264805
2018-10-03 07:50:01 +02:00
|
|
|
|
2018-10-03 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/debug/map.h
|
|
|
|
|
(map<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
|
|
|
|
|
(map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
|
|
|
|
|
(map<>::insert(value_type&&)): Likewise.
|
|
|
|
|
(map<>::insert<>(_Pair&&)): Likewise.
|
|
|
|
|
(map<>::insert<>(const_iterator, _Pair&&)): Likewise.
|
|
|
|
|
(map<>::try_emplace): Likewise.
|
|
|
|
|
(map<>::insert_or_assign): Likewise.
|
|
|
|
|
(map<>::insert(node_type&&)): Likewise.
|
|
|
|
|
(map<>::insert(const_iterator, node_type&&)): Likewise.
|
|
|
|
|
(map<>::erase(const_iterator)): Likewise.
|
|
|
|
|
(map<>::erase(const_iterator, const_iterator)): Likewise.
|
|
|
|
|
* include/debug/multimap.h
|
|
|
|
|
(multimap<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
|
|
|
|
|
(multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
|
|
|
|
|
(multimap<>::insert<>(_Pair&&)): Likewise.
|
|
|
|
|
(multimap<>::insert<>(const_iterator, _Pair&&)): Likewise.
|
|
|
|
|
(multimap<>::insert(node_type&&)): Likewise.
|
|
|
|
|
(multimap<>::insert(const_iterator, node_type&&)): Likewise.
|
|
|
|
|
(multimap<>::erase(const_iterator)): Likewise.
|
|
|
|
|
(multimap<>::erase(const_iterator, const_iterator)): Likewise.
|
|
|
|
|
* include/debug/set.h
|
|
|
|
|
(set<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
|
|
|
|
|
(set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
|
|
|
|
|
(set<>::insert(value_type&&)): Likewise.
|
|
|
|
|
(set<>::insert<>(const_iterator, value_type&&)): Likewise.
|
|
|
|
|
(set<>::insert(const_iterator, node_type&&)): Likewise.
|
|
|
|
|
(set<>::erase(const_iterator)): Likewise.
|
|
|
|
|
(set<>::erase(const_iterator, const_iterator)): Likewise.
|
|
|
|
|
* include/debug/multiset.h
|
|
|
|
|
(multiset<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
|
|
|
|
|
(multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
|
|
|
|
|
(multiset<>::insert<>(value_type&&)): Likewise.
|
|
|
|
|
(multiset<>::insert<>(const_iterator, value_type&&)): Likewise.
|
|
|
|
|
(multiset<>::insert(node_type&&)): Likewise.
|
|
|
|
|
(multiset<>::insert(const_iterator, node_type&&)): Likewise.
|
|
|
|
|
(multiset<>::erase(const_iterator)): Likewise.
|
|
|
|
|
(multiset<>::erase(const_iterator, const_iterator)): Likewise.
|
|
|
|
|
|
2018-10-02 16:59:25 +02:00
|
|
|
|
2018-10-02 Marc Glisse <marc.glisse@inria.fr>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/87258
|
|
|
|
|
* include/bits/stl_bvector.h (vector::begin(), vector::cbegin()):
|
|
|
|
|
Rebuild _M_start with an explicit 0 offset.
|
|
|
|
|
|
2018-10-02 16:00:50 +02:00
|
|
|
|
2018-10-02 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/std/variant (__gen_vtable_impl::__visit_invoke): Call __get
|
|
|
|
|
directly instead of get, as caller ensures correct index is used.
|
|
|
|
|
(holds_alternative, get, get_if): Remove redundant inline specifiers.
|
|
|
|
|
(_VARIANT_RELATION_FUNCTION_TEMPLATE): Likewise.
|
|
|
|
|
|
2018-10-02 14:46:32 +02:00
|
|
|
|
2018-10-02 Joseph Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libstdc++.exp (libstdc++_init): Use
|
|
|
|
|
-fno-show-column in default cxxflags.
|
|
|
|
|
|
2018-10-02 14:35:42 +02:00
|
|
|
|
2018-10-01 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/os/uclibc/os_defines.h (__NO_STRING_INLINES): Delete.
|
|
|
|
|
|
2018-10-01 17:17:15 +02:00
|
|
|
|
2018-10-01 Gerald Pfeifer <gerald@pfeifer.com>
|
|
|
|
|
|
|
|
|
|
* doc/xml/manual/allocator.xml: Adjust link to "Reconsidering
|
|
|
|
|
Custom Memory Allocation".
|
|
|
|
|
|
2018-10-01 16:28:36 +02:00
|
|
|
|
2018-10-01 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* doc/html/*: Regenerate.
|
|
|
|
|
|
2018-09-30 12:53:14 +02:00
|
|
|
|
2018-09-30 Gerald Pfeifer <gerald@pfeifer.com>
|
|
|
|
|
|
2018-09-30 13:41:31 +02:00
|
|
|
|
* doc/xml/manual/messages.xml: Switch link to www.oracle.com
|
|
|
|
|
to https.
|
|
|
|
|
|
|
|
|
|
2018-09-30 Gerald Pfeifer <gerald@pfeifer.com>
|
2018-10-02 14:35:42 +02:00
|
|
|
|
|
2018-09-30 12:53:14 +02:00
|
|
|
|
* doc/xml/manual/policy_data_structures_biblio.xml: Update
|
|
|
|
|
link to Microsoft Component Model Object Technologies.
|
|
|
|
|
|
2018-09-29 13:25:57 +02:00
|
|
|
|
2018-09-29 Gerald Pfeifer <gerald@pfeifer.com>
|
|
|
|
|
|
|
|
|
|
* doc/xml/gnu/fdl-1.3.xml: The Free Software Foundation web
|
|
|
|
|
site now uses https. Also omit the unnecessary trailing slash.
|
|
|
|
|
* doc/xml/gnu/gpl-3.0.xml: Ditto.
|
|
|
|
|
|
2018-09-28 22:26:29 +02:00
|
|
|
|
2018-09-28 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/debug/functions.h
|
|
|
|
|
(__foreign_iterator_aux3(const _Safe_iterator<>&, const _InputeIter&,
|
|
|
|
|
const _InputIter&, __true_type)): Use empty() rather than begin() ==
|
|
|
|
|
end().
|
|
|
|
|
|
2018-09-25 16:59:27 +02:00
|
|
|
|
2018-09-25 Mike Crowe <mac@mcrowe.com>
|
|
|
|
|
|
|
|
|
|
* include/std/condition_variable (condition_variable::wait_for): Use
|
|
|
|
|
steady clock in overload that uses a predicate.
|
|
|
|
|
|
2018-09-25 16:59:16 +02:00
|
|
|
|
2018-09-25 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/87431
|
|
|
|
|
* include/std/variant (_Variant_storage<true, _Types...>::_M_valid):
|
|
|
|
|
Avoid runtime test when all alternatives are scalars and so cannot
|
|
|
|
|
throw during initialization.
|
|
|
|
|
|
2018-09-25 00:01:49 +02:00
|
|
|
|
2018-09-25 Gerald Pfeifer <gerald@pfeifer.com>
|
|
|
|
|
|
|
|
|
|
* doc/xml/manual/codecvt.xml: Move link to "UTF-8 and Unicode FAQ"
|
|
|
|
|
to https.
|
|
|
|
|
|
2018-09-24 13:14:36 +02:00
|
|
|
|
2018-09-24 Gerald Pfeifer <gerald@pfeifer.com>
|
|
|
|
|
|
|
|
|
|
* doc/xml/manual/policy_data_structures_biblio.xml: Update link
|
|
|
|
|
to "Priority Queues and the STL".
|
|
|
|
|
|
2018-09-23 16:57:25 +02:00
|
|
|
|
2018-09-23 Gerald Pfeifer <gerald@pfeifer.com>
|
|
|
|
|
|
|
|
|
|
* doc/xml/manual/using_exceptions.xml: Move boost.orgs link to
|
|
|
|
|
https.
|
|
|
|
|
|
2018-09-21 22:39:07 +02:00
|
|
|
|
2018-09-21 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/87135
|
|
|
|
|
* src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
|
|
|
|
|
Use __builtin_floor to compute _M_next_resize.
|
|
|
|
|
* testsuite/23_containers/unordered_set/hash_policy/71181.cc: Adapt.
|
|
|
|
|
* testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc:
|
|
|
|
|
Adapt.
|
|
|
|
|
|
2018-09-21 17:36:53 +02:00
|
|
|
|
2018-09-21 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Remove.
|
|
|
|
|
* testsuite/26_numerics/headers/cmath/hypot.cc: Restore test for
|
|
|
|
|
long double unconditionally, but use lower tolerance when
|
|
|
|
|
sizeof(long double) == sizeof(double).
|
|
|
|
|
|
2018-09-20 19:09:31 +02:00
|
|
|
|
2018-09-20 Christophe Lyon <christophe.lyon@linaro.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Skip
|
|
|
|
|
on arm*.
|
|
|
|
|
|
2018-09-19 13:20:51 +02:00
|
|
|
|
2018-09-19 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/bits/regex_automaton.tcc (_StateSeq<_TraitsT>::_M_clone()):
|
|
|
|
|
Remove __glibcxx_assert statements and use map::find instead of
|
|
|
|
|
map::operator[].
|
|
|
|
|
|
2018-09-18 22:36:16 +02:00
|
|
|
|
2018-09-18 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/87135
|
|
|
|
|
* src/c++11/hashtable_c++0x.cc:
|
|
|
|
|
(_Prime_rehash_policy::_M_next_bkt): Return a prime no smaller than
|
|
|
|
|
requested size, but not necessarily greater.
|
|
|
|
|
(_Prime_rehash_policy::_M_need_rehash): Rehash only if target size is
|
|
|
|
|
strictly greater than next resize threshold.
|
|
|
|
|
* testsuite/23_containers/unordered_map/modifiers/reserve.cc: Adapt test
|
|
|
|
|
to validate that there is no rehash as long as number of insertion is
|
|
|
|
|
lower or equal to the reserved number of elements.
|
|
|
|
|
|
2018-09-18 18:05:36 +02:00
|
|
|
|
2018-09-18 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/bits/unique_ptr.h (__uniq_ptr_impl): Remove static assertion
|
|
|
|
|
checking invocable condition.
|
|
|
|
|
(unique_ptr::~unique_ptr, unique_ptr::reset): Restore static assertion
|
|
|
|
|
here, where types must be complete. Pass pointer to deleter as an
|
|
|
|
|
rvalue.
|
|
|
|
|
* testsuite/20_util/unique_ptr/requirements/incomplete.cc: New test.
|
|
|
|
|
|
2018-09-13 15:47:14 +02:00
|
|
|
|
2018-09-13 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/std/variant (variant) [__clang__]: Limit workaround to
|
|
|
|
|
Clang 7 and older.
|
|
|
|
|
|
2018-09-11 12:55:49 +02:00
|
|
|
|
2018-09-11 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-09-11 13:50:39 +02:00
|
|
|
|
PR libstdc++/87278
|
|
|
|
|
* include/bits/shared_ptr.h (make_shared): Use remove_cv instead of
|
|
|
|
|
remove_const.
|
|
|
|
|
* testsuite/20_util/shared_ptr/creation/87278.cc: New test.
|
|
|
|
|
|
2018-09-11 12:55:49 +02:00
|
|
|
|
Implement LWG 2905 changes to constrain unique_ptr constructors
|
|
|
|
|
* include/bits/unique_ptr.h (__uniq_ptr_impl): Add assertions to
|
|
|
|
|
check deleter type.
|
|
|
|
|
(unique_ptr::unique_ptr(pointer, const deleter_type&)): Add copy
|
|
|
|
|
constructible constraint.
|
|
|
|
|
(unique_ptr::unique_ptr(pointer, deleter_type&&)): Disable for
|
|
|
|
|
deleters of reference type and add move constructible constraint.
|
|
|
|
|
(unique_ptr::unique_ptr(pointer, remove_reference_t<deleter_type>&&)):
|
|
|
|
|
Disable for deleters of non-reference type. Define as deleted.
|
|
|
|
|
(unique_ptr<T[], D>): Likewise.
|
|
|
|
|
* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Replace dg-error
|
|
|
|
|
directives with unstable line numbers with dg-prune-output.
|
|
|
|
|
* testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/unique_ptr/cons/lwg2905.cc: New test.
|
|
|
|
|
* testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
|
|
|
|
|
Make deleter types invocable.
|
|
|
|
|
|
2018-09-05 17:18:16 +02:00
|
|
|
|
2018-09-05 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* libsupc++/cxxabi.h (__cxa_demangle): Clarify doxygen comment.
|
|
|
|
|
|
2018-09-03 16:25:12 +02:00
|
|
|
|
2018-09-03 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-09-03 16:54:28 +02:00
|
|
|
|
PR libstdc++/78179
|
|
|
|
|
* testsuite/26_numerics/headers/cmath/hypot-long-double.cc: New test
|
|
|
|
|
that runs the long double part of hypot.cc.
|
|
|
|
|
* testsuite/26_numerics/headers/cmath/hypot.cc: Disable long double
|
|
|
|
|
tests unless TEST_HYPOT_LONG_DOUBLE is defined.
|
|
|
|
|
|
2018-09-03 16:25:29 +02:00
|
|
|
|
* include/bits/stl_vector.h (vector::_Temporary_value::_M_ptr):
|
|
|
|
|
Return raw pointer not allocator's pointer type.
|
|
|
|
|
(vector::_Temporary_value::_M_val): Use _M_ptr.
|
|
|
|
|
|
PR libstdc++/87194 fix range insertion into maps and sets
Since C++11 range insertion and construction of maps and sets from a
pair of iterators only requires that the iterator's value_type is
convertible to the container's value_type (previously it had to be the
same).
This fixes the implementation to meet that relaxed requirement, by
defining a pair of overloads that either insert or emplace, depending on
the iterator's value_type. Instead of adding yet another overload of
_M_insert_unique and _M_insert_equal, the overloads taking iterators are
renamed to _M_insert_range_unique and _M_insert_range_equal.
PR libstdc++/87194
* include/bits/stl_map.h
(map::map(initializer_list<value_type>, const Compare&, const Alloc&))
(map::map(initializer_list<value_type>, const Alloc&))
(map::map(InputIterator, InputIterator, const Alloc&))
(map::map(InputIterator, InputIterator))
(map::map(InputIterator, InputIterator, const Compare&, const Alloc&))
(map::insert(InputIterator, InputIterator)):
Call _M_insert_range_unique instead of _M_insert_unique.
* include/bits/stl_multimap.h
(multimap::multimap(initializer_list<value_type>, const C&, const A&))
(multimap::multimap(initializer_list<value_type>, const A&))
(multimap::multimap(InputIterator, InputIterator, const A&))
(multimap::multimap(InputIterator, InputIterator))
(multimap::multimap(InputIterator, InputIterator, const C&, const A&))
(multimap::insert(InputIterator, InputIterator)): Call
_M_insert_range_equal instead of _M_insert_equal.
* include/bits/stl_multiset.h
(multiset::multiset(InputIterator, InputIterator))
(multiset::multiset(InputIterator, InputIterator, const C&, const A&))
(multiset::multiset(initializer_list<value_type>, const C&, const A&))
(multiset::multiset(initializer_list<value_type>, const A&))
(multiset::multiset(InputIterator, InputIterator, const A&))
(multiset::insert(InputIterator, InputIterator)): Call
_M_insert_range_equal instead of _M_insert_equal.
* include/bits/stl_set.h
(set::set(InputIterator, InputIterator))
(set::set(InputIterator, InputIterator, const Compare&, const Alloc&))
(set::set(initializer_list<value_type>, const Compare&, const Alloc&))
(set::set(initializer_list<value_type>, const Alloc&))
(set::set(InputIterator, InputIterator, const Alloc&))
(set::insert(InputIterator, InputIterator)):
Call _M_insert_range_unique instead of _M_insert_unique.
* include/bits/stl_tree.h
[__cplusplus >= 201103L] (_Rb_tree::__same_value_type): New alias
template for SFINAE constraints.
[__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_unique): Pair of
constrained overloads that either insert or emplace, depending on
iterator's value_type.
[__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_equal): Likewise.
[__cplusplus < 201103L] (_Rb_tree::_M_insert_range_unique)
(_Rb_tree::_M_insert_range_equal): New functions replacing range
versions of _M_insert_unique and _M_insert_equal.
(_Rb_tree::_M_insert_unique(_InputIterator, _InputIterator))
(_Rb_tree::_M_insert_equal(_InputIterator, _InputIterator)): Remove.
* testsuite/23_containers/map/modifiers/insert/87194.cc: New test.
* testsuite/23_containers/multimap/modifiers/insert/87194.cc: New test.
* testsuite/23_containers/multiset/modifiers/insert/87194.cc: New test.
* testsuite/23_containers/set/modifiers/insert/87194.cc: New test.
From-SVN: r264060
2018-09-03 16:25:25 +02:00
|
|
|
|
PR libstdc++/87194
|
|
|
|
|
* include/bits/stl_map.h
|
|
|
|
|
(map::map(initializer_list<value_type>, const Compare&, const Alloc&))
|
|
|
|
|
(map::map(initializer_list<value_type>, const Alloc&))
|
|
|
|
|
(map::map(InputIterator, InputIterator, const Alloc&))
|
|
|
|
|
(map::map(InputIterator, InputIterator))
|
|
|
|
|
(map::map(InputIterator, InputIterator, const Compare&, const Alloc&))
|
|
|
|
|
(map::insert(InputIterator, InputIterator)):
|
|
|
|
|
Call _M_insert_range_unique instead of _M_insert_unique.
|
|
|
|
|
* include/bits/stl_multimap.h
|
|
|
|
|
(multimap::multimap(initializer_list<value_type>, const C&, const A&))
|
|
|
|
|
(multimap::multimap(initializer_list<value_type>, const A&))
|
|
|
|
|
(multimap::multimap(InputIterator, InputIterator, const A&))
|
|
|
|
|
(multimap::multimap(InputIterator, InputIterator))
|
|
|
|
|
(multimap::multimap(InputIterator, InputIterator, const C&, const A&))
|
|
|
|
|
(multimap::insert(InputIterator, InputIterator)): Call
|
|
|
|
|
_M_insert_range_equal instead of _M_insert_equal.
|
|
|
|
|
* include/bits/stl_multiset.h
|
|
|
|
|
(multiset::multiset(InputIterator, InputIterator))
|
|
|
|
|
(multiset::multiset(InputIterator, InputIterator, const C&, const A&))
|
|
|
|
|
(multiset::multiset(initializer_list<value_type>, const C&, const A&))
|
|
|
|
|
(multiset::multiset(initializer_list<value_type>, const A&))
|
|
|
|
|
(multiset::multiset(InputIterator, InputIterator, const A&))
|
|
|
|
|
(multiset::insert(InputIterator, InputIterator)): Call
|
|
|
|
|
_M_insert_range_equal instead of _M_insert_equal.
|
|
|
|
|
* include/bits/stl_set.h
|
|
|
|
|
(set::set(InputIterator, InputIterator))
|
|
|
|
|
(set::set(InputIterator, InputIterator, const Compare&, const Alloc&))
|
|
|
|
|
(set::set(initializer_list<value_type>, const Compare&, const Alloc&))
|
|
|
|
|
(set::set(initializer_list<value_type>, const Alloc&))
|
|
|
|
|
(set::set(InputIterator, InputIterator, const Alloc&))
|
|
|
|
|
(set::insert(InputIterator, InputIterator)):
|
|
|
|
|
Call _M_insert_range_unique instead of _M_insert_unique.
|
|
|
|
|
* include/bits/stl_tree.h
|
|
|
|
|
[__cplusplus >= 201103L] (_Rb_tree::__same_value_type): New alias
|
|
|
|
|
template for SFINAE constraints.
|
|
|
|
|
[__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_unique): Pair of
|
|
|
|
|
constrained overloads that either insert or emplace, depending on
|
|
|
|
|
iterator's value_type.
|
|
|
|
|
[__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_equal): Likewise.
|
|
|
|
|
[__cplusplus < 201103L] (_Rb_tree::_M_insert_range_unique)
|
|
|
|
|
(_Rb_tree::_M_insert_range_equal): New functions replacing range
|
|
|
|
|
versions of _M_insert_unique and _M_insert_equal.
|
|
|
|
|
(_Rb_tree::_M_insert_unique(_InputIterator, _InputIterator))
|
|
|
|
|
(_Rb_tree::_M_insert_equal(_InputIterator, _InputIterator)): Remove.
|
|
|
|
|
* testsuite/23_containers/map/modifiers/insert/87194.cc: New test.
|
|
|
|
|
* testsuite/23_containers/multimap/modifiers/insert/87194.cc: New test.
|
|
|
|
|
* testsuite/23_containers/multiset/modifiers/insert/87194.cc: New test.
|
|
|
|
|
* testsuite/23_containers/set/modifiers/insert/87194.cc: New test.
|
|
|
|
|
|
2018-09-03 16:25:12 +02:00
|
|
|
|
PR libstdc++/78595
|
|
|
|
|
* include/bits/stl_map.h (map::insert(_Pair&&))
|
|
|
|
|
(map::insert(const_iterator, _Pair&&)): Do emplace instead of insert.
|
|
|
|
|
* include/bits/stl_multimap.h (multimap::insert(_Pair&&))
|
|
|
|
|
(multimap::insert(const_iterator, _Pair&&)): Likewise.
|
|
|
|
|
* include/bits/unordered_map.h (unordered_map::insert(_Pair&&))
|
|
|
|
|
(unordered_map::insert(const_iterator, _Pair&&))
|
|
|
|
|
(unordered_multimap::insert(_Pair&&))
|
|
|
|
|
(unordered_multimap::insert(const_iterator, _Pair&&)): Likewise.
|
|
|
|
|
* testsuite/23_containers/map/modifiers/insert/78595.cc: New test.
|
|
|
|
|
* testsuite/23_containers/multimap/modifiers/insert/78595.cc: New test.
|
|
|
|
|
* testsuite/23_containers/unordered_map/modifiers/78595.cc: New test.
|
|
|
|
|
* testsuite/23_containers/unordered_multimap/modifiers/78595.cc: New
|
|
|
|
|
test.
|
|
|
|
|
|
2018-09-02 François Dumont <fdumont@gcc.gnu.org>
* include/debug/safe_iterator.h
(_Safe_iterator<_It, _Seq, _Cat>::_Self): New.
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>::_Self):
New.
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
::_OtherSelf): New.
(_GLIBCXX_DEBUG_VERIFY_OPERANDS, _GLIBCXX_DEBUG_VERIFY_EQ_OPERANDS)
(_GLIBCXX_DEBUG_VERIFY_REL_OPERANDS)
(_GLIBCXX_DEBUG_VERIFY_DIST_OPERANDS): Define macros.
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
::operator+(difference_type)): Use latters, inline as friend.
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
::operator-(difference_type)): Likewise.
(operator==(const _Safe_iterator<>&, const _Safe_iterator<>&)):
Likewise.
(operator!=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
Likewise.
(operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
(operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
Likewise.
(operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
(operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
Likewise.
(operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
(operator+(difference_type, const _Safe_iterator<>&)): Likewise.
(operator-(const _Safe_iterator<>&, difference_type)): Likewise.
* include/debug/safe_iterator.tcc
(_Safe_iterator<>::_M_can_advance(difference_type)): Take parameter by
copy.
* include/debug/safe_local_iterator.h
(_Safe_local_iterator<_It, _Seq>::_Self): New.
(_Safe_local_iterator<_It, _Seq>::_OtherSelf): New.
(_GLIBCXX_DEBUG_VERIFY_OPERANDS): Define macro.
(operator==(const _Safe_local_iterator<>&,
const _Safe_local_iterator<>&)): Use latter, inline as friend.
(operator!=(const _Safe_local_iterator<>&,
const _Safe_local_iterator<>&)): Likewise.
* testsuite/util/testsuite_containers.h: Include utility.
(struct forward_members_unordered<_Tp, bool>): Remove 2nd template
parameter.
(forward_members_unordered<>::forward_members_unordered(value_type&)):
Add using namespace std::rel_ops.
Add iterator_concept_checks on local_iterator and const_local_iterator.
Add asserts on comparison between const_local_iterator and
local_iterator.
(struct forward_members_unordered<_Tp, false>): Remove partial
specialization.
* testsuite/23_containers/forward_list/types/1.cc: New.
* testsuite/23_containers/list/types/1.cc: New.
From-SVN: r264039
2018-09-02 12:20:57 +02:00
|
|
|
|
2018-09-02 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/debug/safe_iterator.h
|
|
|
|
|
(_Safe_iterator<_It, _Seq, _Cat>::_Self): New.
|
|
|
|
|
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>::_Self):
|
|
|
|
|
New.
|
|
|
|
|
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
|
|
|
|
|
::_OtherSelf): New.
|
|
|
|
|
(_GLIBCXX_DEBUG_VERIFY_OPERANDS, _GLIBCXX_DEBUG_VERIFY_EQ_OPERANDS)
|
|
|
|
|
(_GLIBCXX_DEBUG_VERIFY_REL_OPERANDS)
|
|
|
|
|
(_GLIBCXX_DEBUG_VERIFY_DIST_OPERANDS): Define macros.
|
|
|
|
|
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
|
|
|
|
|
::operator+(difference_type)): Use latters, inline as friend.
|
|
|
|
|
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
|
|
|
|
|
::operator-(difference_type)): Likewise.
|
|
|
|
|
(operator==(const _Safe_iterator<>&, const _Safe_iterator<>&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
(operator!=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
(operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
|
|
|
|
|
(operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
(operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
|
|
|
|
|
(operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
(operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
|
|
|
|
|
(operator+(difference_type, const _Safe_iterator<>&)): Likewise.
|
|
|
|
|
(operator-(const _Safe_iterator<>&, difference_type)): Likewise.
|
|
|
|
|
* include/debug/safe_iterator.tcc
|
|
|
|
|
(_Safe_iterator<>::_M_can_advance(difference_type)): Take parameter by
|
|
|
|
|
copy.
|
|
|
|
|
* include/debug/safe_local_iterator.h
|
|
|
|
|
(_Safe_local_iterator<_It, _Seq>::_Self): New.
|
|
|
|
|
(_Safe_local_iterator<_It, _Seq>::_OtherSelf): New.
|
|
|
|
|
(_GLIBCXX_DEBUG_VERIFY_OPERANDS): Define macro.
|
|
|
|
|
(operator==(const _Safe_local_iterator<>&,
|
|
|
|
|
const _Safe_local_iterator<>&)): Use latter, inline as friend.
|
|
|
|
|
(operator!=(const _Safe_local_iterator<>&,
|
|
|
|
|
const _Safe_local_iterator<>&)): Likewise.
|
|
|
|
|
* testsuite/util/testsuite_containers.h: Include utility.
|
|
|
|
|
(struct forward_members_unordered<_Tp, bool>): Remove 2nd template
|
|
|
|
|
parameter.
|
|
|
|
|
(forward_members_unordered<>::forward_members_unordered(value_type&)):
|
|
|
|
|
Add using namespace std::rel_ops.
|
|
|
|
|
Add iterator_concept_checks on local_iterator and const_local_iterator.
|
|
|
|
|
Add asserts on comparison between const_local_iterator and
|
|
|
|
|
local_iterator.
|
|
|
|
|
(struct forward_members_unordered<_Tp, false>): Remove partial
|
|
|
|
|
specialization.
|
|
|
|
|
* testsuite/23_containers/forward_list/types/1.cc: New.
|
|
|
|
|
* testsuite/23_containers/list/types/1.cc: New.
|
|
|
|
|
|
2018-09-01 23:27:14 +02:00
|
|
|
|
2018-09-01 Gerald Pfeifer <gerald@pfeifer.com>
|
|
|
|
|
|
|
|
|
|
* doc/xml/manual/profile_mode.xml: Update three ieeexplore.ieee.org
|
|
|
|
|
references.
|
|
|
|
|
|
2018-08-31 21:09:47 +02:00
|
|
|
|
2018-08-31 Sandra Loosemore <sandra@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
|
|
|
|
|
Add dg-require-fileio.
|
|
|
|
|
* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_istream/getline/wchar_t/5.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_istream/ignore/wchar_t/2.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/27_io/objects/wchar_t/10.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/objects/wchar_t/12048-1.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/objects/wchar_t/12048-2.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/objects/wchar_t/12048-3.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/objects/wchar_t/12048-4.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/objects/wchar_t/12048-5.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/string_view/inserters/wchar_t/2.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc: Likewise.
|
|
|
|
|
|
2018-08-30 23:27:44 +02:00
|
|
|
|
2018-08-30 Sandra Loosemore <sandra@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/experimental/propagate_const/observers/1.cc: Make
|
|
|
|
|
dependence on -fdelete-null-pointer-checks explicit.
|
|
|
|
|
|
2018-08-30 14:24:06 +02:00
|
|
|
|
2018-08-30 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-08-30 17:07:35 +02:00
|
|
|
|
* include/bits/hashtable_policy.h (__clp2): Fix calculation for LLP64
|
|
|
|
|
targets where sizeof(size_t) > sizeof(long). Avoid undefined shifts
|
|
|
|
|
of the number of bits in the type.
|
|
|
|
|
* include/std/bit (__ceil2): Avoid undefined shifts.
|
|
|
|
|
* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Test values with
|
|
|
|
|
the most signifiant bit set.
|
|
|
|
|
|
2018-08-30 14:28:53 +02:00
|
|
|
|
* config/abi/pre/gnu.ver: Add missing exports for mingw.
|
|
|
|
|
|
2018-08-30 14:24:06 +02:00
|
|
|
|
* include/ext/pointer.h (_Pointer_adapter): Define operators for
|
|
|
|
|
pointer arithmetic using long long offsets.
|
|
|
|
|
* testsuite/ext/ext_pointer/1.cc: Test pointer arithmetic using
|
|
|
|
|
long long values.
|
|
|
|
|
|
2018-08-29 12:05:55 +02:00
|
|
|
|
2018-08-29 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/31413
|
|
|
|
|
* testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Check D_FMT
|
|
|
|
|
string for alternative format.
|
|
|
|
|
|
2018-08-28 17:33:53 +02:00
|
|
|
|
2018-08-28 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/87116
|
|
|
|
|
* src/filesystem/std-path.cc (path::lexically_normal): When handling
|
|
|
|
|
a dot-dot filename, preserve an empty final component in the iteration
|
|
|
|
|
sequence.
|
|
|
|
|
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use preferred-separator for
|
|
|
|
|
root-directory.
|
|
|
|
|
* testsuite/27_io/filesystem/path/generation/normal.cc: Add new tests
|
|
|
|
|
for more than two adjacent dot-dot filenames.
|
|
|
|
|
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Replace slashes with
|
|
|
|
|
preferred-separator in expected normalized strings.
|
|
|
|
|
|
2018-08-25 11:02:28 +02:00
|
|
|
|
2018-08-25 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/70694
|
|
|
|
|
* configure.host (OPT_LDFLAGS): Don't append
|
|
|
|
|
-fvisibility-inlines-hidden for newer Darwin.
|
|
|
|
|
|
2018-08-24 20:24:42 +02:00
|
|
|
|
2018-08-24 Marc Glisse <marc.glisse@inria.fr>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/86822
|
|
|
|
|
* libsupc++/new (operator new(size_t, nothrow_t), operator
|
|
|
|
|
new[](size_t, nothrow_t), operator new(size_t, align_val_t, nothrow_t),
|
|
|
|
|
operator new[](size_t, align_val_t, nothrow_t)): Add malloc attribute.
|
|
|
|
|
|
2018-08-24 19:43:18 +02:00
|
|
|
|
2018-08-24 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/debug/deque (std::__debug::deque): Declare.
|
|
|
|
|
* include/debug/forward_list (std::__debug::forward_list): Declare.
|
|
|
|
|
* include/debug/list (std::__debug::list): Declare.
|
|
|
|
|
* include/debug/map (std::__debug::map): Declare.
|
|
|
|
|
* include/debug/set (std::__debug::set): Declare.
|
|
|
|
|
* include/debug/unordered_map (std::__debug::unordered_map): Declare.
|
|
|
|
|
* include/debug/unordered_set (std::__debug::unordered_set): Declare.
|
|
|
|
|
* include/debug/vector (std::__debug::vector): Declare.
|
|
|
|
|
* testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: New test.
|
|
|
|
|
* testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/23_containers/list/pmr_typedefs_debug.cc: New test.
|
|
|
|
|
* testsuite/23_containers/map/pmr_typedefs_debug.cc: New test.
|
|
|
|
|
* testsuite/23_containers/multimap/pmr_typedefs_debug.cc: New test.
|
|
|
|
|
* testsuite/23_containers/multiset/pmr_typedefs_debug.cc: New test.
|
|
|
|
|
* testsuite/23_containers/set/pmr_typedefs_debug.cc: New test.
|
|
|
|
|
* testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
|
|
|
|
|
New test.
|
|
|
|
|
* testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
|
|
|
|
|
New test.
|
|
|
|
|
* testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
|
|
|
|
|
Adjust dg-error lineno.
|
|
|
|
|
* testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: New
|
|
|
|
|
test.
|
|
|
|
|
|
2018-08-23 01:43:43 +02:00
|
|
|
|
2018-08-23 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-08-23 21:27:54 +02:00
|
|
|
|
* testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
|
|
|
|
|
Only define when RTTI is enabled.
|
|
|
|
|
|
2018-08-23 17:23:31 +02:00
|
|
|
|
* include/debug/vector (__niter_base): Define for C++98.
|
|
|
|
|
|
2018-08-23 17:10:45 +02:00
|
|
|
|
* testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
|
|
|
|
|
Fix C++98 test to not use C++11 features.
|
|
|
|
|
* testsuite/25_algorithms/fill_n/2.cc: Likewise.
|
|
|
|
|
|
2018-08-23 17:10:35 +02:00
|
|
|
|
* scripts/check_compile: Fix comments.
|
|
|
|
|
|
2018-08-23 13:21:17 +02:00
|
|
|
|
* include/debug/string (insert(__const_iterator, _InIter, _InIter)):
|
|
|
|
|
[!_GLIBCXX_USE_CXX11_ABI]: Replace use of C++11-only cbegin() with
|
|
|
|
|
begin(), for C++98 compatibility.
|
|
|
|
|
|
Fix testsuite failures for __gnu_debug::string with old ABI
The __gnu_debug string (mostly) implements the C++11 API, but when it
wraps the old COW string many of the member functions in the base class
have the wrong parameter types or return types. This makes the
__gnu_debug::string type adapt itself to the base class API. This
actually makes the debug string slightly more conforming than the
underlying string type when using the old ABI.
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
(basic_string::__const_iterator): Change access to protected.
[!_GLIBCXX_USE_CXX11_ABI] (basic_string::__const_iterator): Define
as typedef for iterator.
* include/debug/string (__const_iterator): Use typedef from base.
(insert(const_iterator, _CharT))
(replace(const_iterator, const_iterator, const basic_string&))
(replace(const_iterator, const_iterator, const _CharT*, size_type))
(replace(const_iterator, const_iterator, const CharT*))
(replace(const_iterator, const_iterator, size_type, _CharT))
(replace(const_iterator, const_iterator, _InputIter, _InputIter))
(replace(const_iterator, const_iterator, initializer_list<_CharT>)):
Change const_iterator parameters to __const_iterator.
(insert(iterator, size_type, _CharT)): Add C++98 overload.
(insert(const_iterator, _InputIterator, _InputIterator)): Change
const_iterator parameter to __const_iterator.
[!_GLIBCXX_USE_CXX11_ABI]: Add workaround for incorrect return type
of base's member function.
(insert(const_iterator, size_type, _CharT)) [!_GLIBCXX_USE_CXX11_ABI]:
Likewise.
(insert(const_iterator, initializer_list<_CharT>))
[!_GLIBCXX_USE_CXX11_ABI]: Likewise.
* testsuite/21_strings/basic_string/init-list.cc: Remove effective
target directive.
From-SVN: r263808
2018-08-23 12:51:52 +02:00
|
|
|
|
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
|
|
|
|
|
(basic_string::__const_iterator): Change access to protected.
|
|
|
|
|
[!_GLIBCXX_USE_CXX11_ABI] (basic_string::__const_iterator): Define
|
|
|
|
|
as typedef for iterator.
|
|
|
|
|
* include/debug/string (__const_iterator): Use typedef from base.
|
|
|
|
|
(insert(const_iterator, _CharT))
|
|
|
|
|
(replace(const_iterator, const_iterator, const basic_string&))
|
|
|
|
|
(replace(const_iterator, const_iterator, const _CharT*, size_type))
|
|
|
|
|
(replace(const_iterator, const_iterator, const CharT*))
|
|
|
|
|
(replace(const_iterator, const_iterator, size_type, _CharT))
|
|
|
|
|
(replace(const_iterator, const_iterator, _InputIter, _InputIter))
|
|
|
|
|
(replace(const_iterator, const_iterator, initializer_list<_CharT>)):
|
|
|
|
|
Change const_iterator parameters to __const_iterator.
|
|
|
|
|
(insert(iterator, size_type, _CharT)): Add C++98 overload.
|
|
|
|
|
(insert(const_iterator, _InputIterator, _InputIterator)): Change
|
|
|
|
|
const_iterator parameter to __const_iterator.
|
|
|
|
|
[!_GLIBCXX_USE_CXX11_ABI]: Add workaround for incorrect return type
|
|
|
|
|
of base's member function.
|
|
|
|
|
(insert(const_iterator, size_type, _CharT)) [!_GLIBCXX_USE_CXX11_ABI]:
|
|
|
|
|
Likewise.
|
|
|
|
|
(insert(const_iterator, initializer_list<_CharT>))
|
|
|
|
|
[!_GLIBCXX_USE_CXX11_ABI]: Likewise.
|
|
|
|
|
* testsuite/21_strings/basic_string/init-list.cc: Remove effective
|
|
|
|
|
target directive.
|
|
|
|
|
|
2018-08-23 10:26:22 +02:00
|
|
|
|
* testsuite/20_util/reference_wrapper/lwg2993.cc: Fix C++11 test to
|
|
|
|
|
not use C++14 feature.
|
|
|
|
|
* testsuite/23_containers/list/68222_neg.cc: Likewise.
|
|
|
|
|
|
2018-08-23 10:26:16 +02:00
|
|
|
|
* testsuite/21_strings/basic_string/init-list.cc:
|
|
|
|
|
Require cxx11-abi.
|
|
|
|
|
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2018-08-23 01:43:43 +02:00
|
|
|
|
* testsuite/23_containers/deque/capacity/max_size.cc: Fix test for
|
|
|
|
|
C++98 mode.
|
|
|
|
|
* testsuite/23_containers/deque/modifiers/assign/1.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/list/modifiers/assign/1.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/vector/bool/modifiers/assign/1.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/vector/capacity/max_size.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/vector/modifiers/assign/1.cc: Likewise.
|
|
|
|
|
|
PR libstdc++/78448 limit vector::max_size and deque::max_size
The container requirements imply that max_size() can't exceed the
maximum value of the container's difference_type. Enforce this for
std::vector and std::deque, and add checks to ensure the container
doesn't grow larger than that.
PR libstdc++/78448
* include/bits/deque.tcc (deque::_M_range_initialize): Use
_S_check_init_len to check size.
(deque::_M_push_back_aux, deque::_M_push_front_aux): Throw length
error if size would exceed max_size().
* include/bits/stl_deque.h (_Deque_base::size_type): Remove typedef.
(_Deque_base(_Deque_base&&, const allocator_type&, size_t)): Use
size_t instead of size_type.
(deq(size_type, const allocator_type&)
(deq(size_type, const value_type&, const allocator_type&)
(deque::_M_initialize_dispatch): Use _S_check_init_len to check size.
(deque::max_size): Call _S_max_size.
(deque::_S_check_init_len, deque::_S_max_size): New functions.
* include/bits/stl_vector.h (vector(size_type, const allocator_type&))
(vector(size_type, const value_type&, const allocator_type&))
(vector::_M_initialize_dispatch, vector::_M_range_initialize): Use
_S_check_init_len to check size.
(vector::max_size): Call _S_max_size.
(vector::_M_check_len): Prevent max from being expanded as a
function-like macro.
(vector::_S_check_init_len, vector::_S_max_size): New functions.
* include/bits/vector.tcc (vector::_M_assign_aux): Use
_S_check_init_len to check size.
* testsuite/23_containers/deque/capacity/max_size.cc: New test.
* testsuite/23_containers/vector/capacity/max_size.cc: New test.
From-SVN: r263789
2018-08-23 00:22:40 +02:00
|
|
|
|
2018-08-22 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
PR libstdc++/87061 remove pmr type aliases for COW strings
The pmr aliases for basic_string and match_results are incompatible with
the gcc4-compatible ABI because the Copy-On-Write basic_string class
doesn't support C++11 allocators.
PR libstdc++/87061
* include/experimental/regex [!_GLIBCXX_USE_CXX11_ABI]
(experimental::pmr::match_results, experimental::pmr::cmatch)
(experimental::pmr::smatch, experimental::pmr::wcmatch)
(experimental::pmr::wsmatch): Do not declare for gcc4-compatible ABI,
because COW strings don't support C++11 allocator model.
* include/experimental/string [!_GLIBCXX_USE_CXX11_ABI]
(experimental::pmr::basic_string, experimental::pmr::string)
(experimental::pmr::u16string, experimental::pmr::u32string)
(experimental::pmr::wstring): Likewise.
* include/std/regex [!_GLIBCXX_USE_CXX11_ABI] (pmr::match_results)
(pmr::cmatch, pmr::smatch, pmr::wcmatch, pmr::wsmatch): Likewise.
* include/std/string [!_GLIBCXX_USE_CXX11_ABI] (pmr::basic_string)
(pmr::string, pmr::u16string, pmr::u32string, pmr::wstring): Likewise.
* testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Require
cxx11-abi.
* testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
From-SVN: r263791
2018-08-23 00:54:33 +02:00
|
|
|
|
PR libstdc++/87061
|
|
|
|
|
* include/experimental/regex [!_GLIBCXX_USE_CXX11_ABI]
|
|
|
|
|
(experimental::pmr::match_results, experimental::pmr::cmatch)
|
|
|
|
|
(experimental::pmr::smatch, experimental::pmr::wcmatch)
|
|
|
|
|
(experimental::pmr::wsmatch): Do not declare for gcc4-compatible ABI,
|
|
|
|
|
because COW strings don't support C++11 allocator model.
|
|
|
|
|
* include/experimental/string [!_GLIBCXX_USE_CXX11_ABI]
|
|
|
|
|
(experimental::pmr::basic_string, experimental::pmr::string)
|
|
|
|
|
(experimental::pmr::u16string, experimental::pmr::u32string)
|
|
|
|
|
(experimental::pmr::wstring): Likewise.
|
|
|
|
|
* include/std/regex [!_GLIBCXX_USE_CXX11_ABI] (pmr::match_results)
|
|
|
|
|
(pmr::cmatch, pmr::smatch, pmr::wcmatch, pmr::wsmatch): Likewise.
|
|
|
|
|
* include/std/string [!_GLIBCXX_USE_CXX11_ABI] (pmr::basic_string)
|
|
|
|
|
(pmr::string, pmr::u16string, pmr::u32string, pmr::wstring): Likewise.
|
|
|
|
|
* testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Require
|
|
|
|
|
cxx11-abi.
|
|
|
|
|
* testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
|
|
|
|
|
|
PR libstdc++/78448 limit vector::max_size and deque::max_size
The container requirements imply that max_size() can't exceed the
maximum value of the container's difference_type. Enforce this for
std::vector and std::deque, and add checks to ensure the container
doesn't grow larger than that.
PR libstdc++/78448
* include/bits/deque.tcc (deque::_M_range_initialize): Use
_S_check_init_len to check size.
(deque::_M_push_back_aux, deque::_M_push_front_aux): Throw length
error if size would exceed max_size().
* include/bits/stl_deque.h (_Deque_base::size_type): Remove typedef.
(_Deque_base(_Deque_base&&, const allocator_type&, size_t)): Use
size_t instead of size_type.
(deq(size_type, const allocator_type&)
(deq(size_type, const value_type&, const allocator_type&)
(deque::_M_initialize_dispatch): Use _S_check_init_len to check size.
(deque::max_size): Call _S_max_size.
(deque::_S_check_init_len, deque::_S_max_size): New functions.
* include/bits/stl_vector.h (vector(size_type, const allocator_type&))
(vector(size_type, const value_type&, const allocator_type&))
(vector::_M_initialize_dispatch, vector::_M_range_initialize): Use
_S_check_init_len to check size.
(vector::max_size): Call _S_max_size.
(vector::_M_check_len): Prevent max from being expanded as a
function-like macro.
(vector::_S_check_init_len, vector::_S_max_size): New functions.
* include/bits/vector.tcc (vector::_M_assign_aux): Use
_S_check_init_len to check size.
* testsuite/23_containers/deque/capacity/max_size.cc: New test.
* testsuite/23_containers/vector/capacity/max_size.cc: New test.
From-SVN: r263789
2018-08-23 00:22:40 +02:00
|
|
|
|
PR libstdc++/78448
|
|
|
|
|
* include/bits/deque.tcc (deque::_M_range_initialize): Use
|
|
|
|
|
_S_check_init_len to check size.
|
|
|
|
|
(deque::_M_push_back_aux, deque::_M_push_front_aux): Throw length
|
|
|
|
|
error if size would exceed max_size().
|
|
|
|
|
* include/bits/stl_deque.h (_Deque_base::size_type): Remove typedef.
|
|
|
|
|
(_Deque_base(_Deque_base&&, const allocator_type&, size_t)): Use
|
|
|
|
|
size_t instead of size_type.
|
|
|
|
|
(deq(size_type, const allocator_type&)
|
|
|
|
|
(deq(size_type, const value_type&, const allocator_type&)
|
|
|
|
|
(deque::_M_initialize_dispatch): Use _S_check_init_len to check size.
|
|
|
|
|
(deque::max_size): Call _S_max_size.
|
|
|
|
|
(deque::_S_check_init_len, deque::_S_max_size): New functions.
|
|
|
|
|
* include/bits/stl_vector.h (vector(size_type, const allocator_type&))
|
|
|
|
|
(vector(size_type, const value_type&, const allocator_type&))
|
|
|
|
|
(vector::_M_initialize_dispatch, vector::_M_range_initialize): Use
|
|
|
|
|
_S_check_init_len to check size.
|
|
|
|
|
(vector::max_size): Call _S_max_size.
|
|
|
|
|
(vector::_M_check_len): Prevent max from being expanded as a
|
|
|
|
|
function-like macro.
|
|
|
|
|
(vector::_S_check_init_len, vector::_S_max_size): New functions.
|
|
|
|
|
* include/bits/vector.tcc (vector::_M_assign_aux): Use
|
|
|
|
|
_S_check_init_len to check size.
|
|
|
|
|
* testsuite/23_containers/deque/capacity/max_size.cc: New test.
|
|
|
|
|
* testsuite/23_containers/vector/capacity/max_size.cc: New test.
|
|
|
|
|
|
re PR libstdc++/68222 (_Safe_iterator provides operators the wrapped iterator can't actually support)
2018-08-22 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/68222
* include/debug/safe_iterator.h
(_Safe_iterator<_It, _Sq, _Cat>): Add category template parameter.
(_Safe_iterator<>::_Const_iterator): Remove.
(_Safe_iterator<>::_IsConstant): New.
(_Safe_iterator<>::_OtherIterator): New.
(_Safe_iterator<_It, _Sq, _Cat>::_Safe_iterator<_MutIte>(
const _Safe_iterator<_MutIte, _Sq, _Cat>&)): Add _IsConstant::__value in
__gnu_cxx::__enable_if condition.
(_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_to): New.
(_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_from_begin): New.
(_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_to_end): New.
(_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>): New.
(_Safe_iterator<_It, _Sq, _Cat>::operator--()): Move...
(_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
::operator--()): ...here.
(_Safe_iterator<_It, _Sq, _Cat>::operator--(int)): Move...
(_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
::operator--(int)): ...here.
(_Safe_iterator<_It, _Sq, _Cat>::_M_decrementable()): Move...
(_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
::_M_decrementable()): ...here.
(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>): New.
(_Safe_iterator<_It, _Sq, _Cat>::operator[](const difference_type&)):
Move...
(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
::operator[](const difference_type&)): ...here.
(_Safe_iterator<_It, _Sq, _Cat>::operator+=(const difference_type&)):
Move...
(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
::operator+=(const difference_type&)): ...here.
(_Safe_iterator<_It, _Sq, _Cat>::operator+(const difference_type&)):
Move...
(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
::operator+(const difference_type&)): ...here.
(_Safe_iterator<_It, _Sq, _Cat>::operator-=(const difference_type&)):
Move...
(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
::operator-=(const difference_type&)): ...here.
(_Safe_iterator<_It, _Sq, _Cat>::operator-(const difference_type&)):
Move...
(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
::operator-(const difference_type&)): ...here.
(operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)):
Constraint to random access iterators.
(operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
Likewise.
(operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
(operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
Likewise.
(operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
(operator+(const difference_type&, const _Safe_iterator<>&)): Likewise.
(__check_dereferenceable(const _Safe_iterator<>&)): Remove.
(__get_distance): Remove.
(__get_distance_from_begin): Remove.
(__get_distance_to_end): Remove.
(struct __is_safe_random_iterator<_Safe_iterator<>>): Remove partial
specialization.
(__base(const _Safe_iterator<>&, std::input_iterator_tag)): Remove.
(__base(const _Safe_iterator<>&, std::random_access_iterator_tag)): Remove.
(__base(const _Safe_iterator<>&)): Constraint to random access iterator.
* include/debug/safe_iterator.tcc
(_Safe_iterator<>::_M_get_distance_from_begin()): New.
(_Safe_iterator<>::_M_get_distance_to_end()): New.
(_Safe_iterator<>::_M_get_distance_to(const _Safe_iterator<>&)): New.
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
::_M_valid_range): New.
* include/debug/safe_local_iterator.h
(_Safe_local_iterator<>::_Const_local_iterator): Remove.
(_Safe_local_iterator<>::_IsConstant): New.
(_Safe_local_iterator<>::_OtherIterator): New.
(_Safe_local_iterator<_It, _Cont>::_Safe_local_iterator<_MutIte, _Cont>(
const _Safe_local_iterator<_MutIte, _Seq>&)): Add _IsConstant::__value
in __gnu_cxx::__enable_if condition. If singular compare base iterator
with _MutIte rather than _It.
(_Safe_local_iterator<>::_S_constant): Make constexpr.
(_Safe_local_iterator<>::_M_get_distance_to): New.
(__check_dereferenceable(const _Safe_local_iterator<>&)): Remove.
(__get_distance(const _Safe_local_iterator<>&,
const _Safe_local_iterator<>&, std::input_iterator_tag)): Remove.
(__valid_range(const _Safe_local_iterator<>&,
const _Safe_local_iterator<>&)): New.
* include/debug/safe_local_iterator.tcc
(_Safe_local_iterator<>::_M_get_distance_to): New.
* include/debug/deque (std::__debug::deque<>): Add
::__gnu_debug::_Safe_iterator<> friend declaration.
* include/debug/forward_list (std::__debug::forward_list<>): Likewise.
* include/debug/list (std::__debug::list<>): Likewise.
* include/debug/map.h (std::__debug::map<>): Likewise.
* include/debug/multimap.h (std::__debug::multimap<>): Likewise.
* include/debug/set.h (std::__debug::set<>): Likewise.
* include/debug/multiset.h (std::__debug::multiset<>): Likewise.
* include/debug/string (std::__debug::basic_string<>): Likewise.
* include/debug/unordered_map (std::__debug::unordered_map<>): Likewise
and add ::__gnu_debug::_Safe_local_iterator<> friend declaration.
(std::__debug::unordered_multimap<>): Likewise.
* include/debug/unordered_set (std::__debug::unordered_set<>): Likewise.
(std::__debug::unordered_multiset<>): Likewise.
* include/debug/formatter.h: Adapt.
* include/debug/helper_functions.h
(__gnu_debug::_Safe_local_iterator<>): Add declaration.
(__get_distance<_Ite>(_Ite, _Ite, std::random_access_iterator_tag):
Pass parameter by copy.
(__get_distance<_Ite>(_Ite, _Ite, std::input_iterator_tag): Likewise.
(__get_distance<_Ite>(_Ite, _Ite): Likewise.
(__valid_range_aux<_Integral>): Pass _Integral by copy.
(__valid_range<_InputIterator>): Pass _InputIterator by copy.
(__valid_range<>(const _Safe_iterator<>&,
const _Safe_iterator<>&, typename _Distance_traits<>::__type&)):
Declare.
(__valid_range(const _Safe_local_iterator<>&,
const _Safe_local_iterator<>&, typename _Distance_traits<>::__type&)):
Declare.
(__valid_range<>(const _Safe_iterator<>&, const _Safe_iterator<>&)):
Declare.
(__valid_range(const _Safe_local_iterator<>&, const _Safe_local_iterator<>&)):
Declare.
(__can_advance): Adapt.
(struct __is_safe_random_iterator<>): Remove.
(struct _SIter_base<>): Remove.
* include/debug/functions.h: Include <bits/stl_iterator.h>.
(__check_dereferenceable): Remove.
(__foreign_iterator_aux4, __foreign_iterator_aux3): Adapt.
(__foreign_iterator_aux2, __foreign_iterator_aux): Adapt.
(__foreign_iterator): Adapt.
* include/debug/stl_iterator.h
(__is_safe_random_iterator<std::reverse_iterator<>>): Remove.
(__base(const std::reverse_iterator<_Safe_iterator<_It, _Sq>)):
Constraint for random access iterators.
(__niter_base): Adapt.
* testsuite/util/testsuite_containers.h:
Include <bits/boost_concept_check.h>.
(iterator_concept_checks<_It, _Mutable, _Category>): New.
(citerator<_Cont>::forward_members::forward_members()): Instantiate
latter for container iterator and const_iterator.
* testsuite/23_containers/list/68222_neg.cc: New.
* testsuite/23_containers/vector/cons/destructible_debug_neg.cc: Adapt
line number.
* testsuite/23_containers/unordered_set/debug/debug_functions.cc:
(test01): Remove.
* testsuite/23_containers/vector/debug/debug_functions.cc (test01):
Remove.
From-SVN: r263786
2018-08-22 20:51:25 +02:00
|
|
|
|
2018-08-22 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/68222
|
|
|
|
|
* include/debug/safe_iterator.h
|
|
|
|
|
(_Safe_iterator<_It, _Sq, _Cat>): Add category template parameter.
|
|
|
|
|
(_Safe_iterator<>::_Const_iterator): Remove.
|
|
|
|
|
(_Safe_iterator<>::_IsConstant): New.
|
|
|
|
|
(_Safe_iterator<>::_OtherIterator): New.
|
|
|
|
|
(_Safe_iterator<_It, _Sq, _Cat>::_Safe_iterator<_MutIte>(
|
|
|
|
|
const _Safe_iterator<_MutIte, _Sq, _Cat>&)): Add _IsConstant::__value in
|
|
|
|
|
__gnu_cxx::__enable_if condition.
|
|
|
|
|
(_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_to): New.
|
|
|
|
|
(_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_from_begin): New.
|
|
|
|
|
(_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_to_end): New.
|
|
|
|
|
(_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>): New.
|
|
|
|
|
(_Safe_iterator<_It, _Sq, _Cat>::operator--()): Move...
|
|
|
|
|
(_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
|
|
|
|
|
::operator--()): ...here.
|
|
|
|
|
(_Safe_iterator<_It, _Sq, _Cat>::operator--(int)): Move...
|
|
|
|
|
(_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
|
|
|
|
|
::operator--(int)): ...here.
|
|
|
|
|
(_Safe_iterator<_It, _Sq, _Cat>::_M_decrementable()): Move...
|
|
|
|
|
(_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
|
|
|
|
|
::_M_decrementable()): ...here.
|
|
|
|
|
(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>): New.
|
|
|
|
|
(_Safe_iterator<_It, _Sq, _Cat>::operator[](const difference_type&)):
|
|
|
|
|
Move...
|
|
|
|
|
(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
|
|
|
|
|
::operator[](const difference_type&)): ...here.
|
|
|
|
|
(_Safe_iterator<_It, _Sq, _Cat>::operator+=(const difference_type&)):
|
|
|
|
|
Move...
|
|
|
|
|
(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
|
|
|
|
|
::operator+=(const difference_type&)): ...here.
|
|
|
|
|
(_Safe_iterator<_It, _Sq, _Cat>::operator+(const difference_type&)):
|
|
|
|
|
Move...
|
|
|
|
|
(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
|
|
|
|
|
::operator+(const difference_type&)): ...here.
|
|
|
|
|
(_Safe_iterator<_It, _Sq, _Cat>::operator-=(const difference_type&)):
|
|
|
|
|
Move...
|
|
|
|
|
(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
|
|
|
|
|
::operator-=(const difference_type&)): ...here.
|
|
|
|
|
(_Safe_iterator<_It, _Sq, _Cat>::operator-(const difference_type&)):
|
|
|
|
|
Move...
|
|
|
|
|
(_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
|
|
|
|
|
::operator-(const difference_type&)): ...here.
|
|
|
|
|
(operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)):
|
|
|
|
|
Constraint to random access iterators.
|
|
|
|
|
(operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
(operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
|
|
|
|
|
(operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
(operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
|
|
|
|
|
(operator+(const difference_type&, const _Safe_iterator<>&)): Likewise.
|
|
|
|
|
(__check_dereferenceable(const _Safe_iterator<>&)): Remove.
|
|
|
|
|
(__get_distance): Remove.
|
|
|
|
|
(__get_distance_from_begin): Remove.
|
|
|
|
|
(__get_distance_to_end): Remove.
|
|
|
|
|
(struct __is_safe_random_iterator<_Safe_iterator<>>): Remove partial
|
|
|
|
|
specialization.
|
|
|
|
|
(__base(const _Safe_iterator<>&, std::input_iterator_tag)): Remove.
|
|
|
|
|
(__base(const _Safe_iterator<>&, std::random_access_iterator_tag)): Remove.
|
|
|
|
|
(__base(const _Safe_iterator<>&)): Constraint to random access iterator.
|
|
|
|
|
* include/debug/safe_iterator.tcc
|
|
|
|
|
(_Safe_iterator<>::_M_get_distance_from_begin()): New.
|
|
|
|
|
(_Safe_iterator<>::_M_get_distance_to_end()): New.
|
|
|
|
|
(_Safe_iterator<>::_M_get_distance_to(const _Safe_iterator<>&)): New.
|
|
|
|
|
(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
|
|
|
|
|
::_M_valid_range): New.
|
|
|
|
|
* include/debug/safe_local_iterator.h
|
|
|
|
|
(_Safe_local_iterator<>::_Const_local_iterator): Remove.
|
|
|
|
|
(_Safe_local_iterator<>::_IsConstant): New.
|
|
|
|
|
(_Safe_local_iterator<>::_OtherIterator): New.
|
|
|
|
|
(_Safe_local_iterator<_It, _Cont>::_Safe_local_iterator<_MutIte, _Cont>(
|
|
|
|
|
const _Safe_local_iterator<_MutIte, _Seq>&)): Add _IsConstant::__value
|
|
|
|
|
in __gnu_cxx::__enable_if condition. If singular compare base iterator
|
|
|
|
|
with _MutIte rather than _It.
|
|
|
|
|
(_Safe_local_iterator<>::_S_constant): Make constexpr.
|
|
|
|
|
(_Safe_local_iterator<>::_M_get_distance_to): New.
|
|
|
|
|
(__check_dereferenceable(const _Safe_local_iterator<>&)): Remove.
|
|
|
|
|
(__get_distance(const _Safe_local_iterator<>&,
|
|
|
|
|
const _Safe_local_iterator<>&, std::input_iterator_tag)): Remove.
|
|
|
|
|
(__valid_range(const _Safe_local_iterator<>&,
|
|
|
|
|
const _Safe_local_iterator<>&)): New.
|
|
|
|
|
* include/debug/safe_local_iterator.tcc
|
|
|
|
|
(_Safe_local_iterator<>::_M_get_distance_to): New.
|
|
|
|
|
* include/debug/deque (std::__debug::deque<>): Add
|
|
|
|
|
::__gnu_debug::_Safe_iterator<> friend declaration.
|
|
|
|
|
* include/debug/forward_list (std::__debug::forward_list<>): Likewise.
|
|
|
|
|
* include/debug/list (std::__debug::list<>): Likewise.
|
|
|
|
|
* include/debug/map.h (std::__debug::map<>): Likewise.
|
|
|
|
|
* include/debug/multimap.h (std::__debug::multimap<>): Likewise.
|
|
|
|
|
* include/debug/set.h (std::__debug::set<>): Likewise.
|
|
|
|
|
* include/debug/multiset.h (std::__debug::multiset<>): Likewise.
|
|
|
|
|
* include/debug/string (std::__debug::basic_string<>): Likewise.
|
|
|
|
|
* include/debug/unordered_map (std::__debug::unordered_map<>): Likewise
|
|
|
|
|
and add ::__gnu_debug::_Safe_local_iterator<> friend declaration.
|
|
|
|
|
(std::__debug::unordered_multimap<>): Likewise.
|
|
|
|
|
* include/debug/unordered_set (std::__debug::unordered_set<>): Likewise.
|
|
|
|
|
(std::__debug::unordered_multiset<>): Likewise.
|
|
|
|
|
* include/debug/formatter.h: Adapt.
|
|
|
|
|
* include/debug/helper_functions.h
|
|
|
|
|
(__gnu_debug::_Safe_local_iterator<>): Add declaration.
|
|
|
|
|
(__get_distance<_Ite>(_Ite, _Ite, std::random_access_iterator_tag):
|
|
|
|
|
Pass parameter by copy.
|
|
|
|
|
(__get_distance<_Ite>(_Ite, _Ite, std::input_iterator_tag): Likewise.
|
|
|
|
|
(__get_distance<_Ite>(_Ite, _Ite): Likewise.
|
|
|
|
|
(__valid_range_aux<_Integral>): Pass _Integral by copy.
|
|
|
|
|
(__valid_range<_InputIterator>): Pass _InputIterator by copy.
|
|
|
|
|
(__valid_range<>(const _Safe_iterator<>&,
|
|
|
|
|
const _Safe_iterator<>&, typename _Distance_traits<>::__type&)):
|
|
|
|
|
Declare.
|
|
|
|
|
(__valid_range(const _Safe_local_iterator<>&,
|
|
|
|
|
const _Safe_local_iterator<>&, typename _Distance_traits<>::__type&)):
|
|
|
|
|
Declare.
|
|
|
|
|
(__valid_range<>(const _Safe_iterator<>&, const _Safe_iterator<>&)):
|
|
|
|
|
Declare.
|
|
|
|
|
(__valid_range(const _Safe_local_iterator<>&, const _Safe_local_iterator<>&)):
|
|
|
|
|
Declare.
|
|
|
|
|
(__can_advance): Adapt.
|
|
|
|
|
(struct __is_safe_random_iterator<>): Remove.
|
|
|
|
|
(struct _SIter_base<>): Remove.
|
|
|
|
|
* include/debug/functions.h: Include <bits/stl_iterator.h>.
|
|
|
|
|
(__check_dereferenceable): Remove.
|
|
|
|
|
(__foreign_iterator_aux4, __foreign_iterator_aux3): Adapt.
|
|
|
|
|
(__foreign_iterator_aux2, __foreign_iterator_aux): Adapt.
|
|
|
|
|
(__foreign_iterator): Adapt.
|
|
|
|
|
* include/debug/stl_iterator.h
|
|
|
|
|
(__is_safe_random_iterator<std::reverse_iterator<>>): Remove.
|
|
|
|
|
(__base(const std::reverse_iterator<_Safe_iterator<_It, _Sq>)):
|
|
|
|
|
Constraint for random access iterators.
|
|
|
|
|
(__niter_base): Adapt.
|
|
|
|
|
* testsuite/util/testsuite_containers.h:
|
|
|
|
|
Include <bits/boost_concept_check.h>.
|
|
|
|
|
(iterator_concept_checks<_It, _Mutable, _Category>): New.
|
|
|
|
|
(citerator<_Cont>::forward_members::forward_members()): Instantiate
|
|
|
|
|
latter for container iterator and const_iterator.
|
|
|
|
|
* testsuite/23_containers/list/68222_neg.cc: New.
|
|
|
|
|
* testsuite/23_containers/vector/cons/destructible_debug_neg.cc: Adapt
|
|
|
|
|
line number.
|
|
|
|
|
* testsuite/23_containers/unordered_set/debug/debug_functions.cc:
|
|
|
|
|
(test01): Remove.
|
|
|
|
|
* testsuite/23_containers/vector/debug/debug_functions.cc (test01):
|
|
|
|
|
Remove.
|
|
|
|
|
|
2018-08-22 14:11:17 +02:00
|
|
|
|
2018-08-22 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/77854
|
|
|
|
|
* doc/xml/manual/status_cxx1998.xml: Document size_type and
|
|
|
|
|
difference_type for containers.
|
|
|
|
|
* doc/html/*: Regenerate.
|
|
|
|
|
|
2018-08-21 21:44:41 +02:00
|
|
|
|
2018-08-21 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
P0646R1 Improving the Return Value of Erase-Like Algorithms I
|
|
|
|
|
* include/debug/forward_list (forward_list::__remove_return_type):
|
|
|
|
|
Define typedef as size_type or void, according to __cplusplus value.
|
|
|
|
|
(_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
|
|
|
|
|
empty, according to __cplusplus value.
|
|
|
|
|
(_GLIBCXX20_ONLY): Define macro.
|
|
|
|
|
(forward_list::remove, forward_list::unique): Use typedef and macro
|
|
|
|
|
to change return type and add abi-tag for C++2a. Return number of
|
|
|
|
|
removed elements for C++2a.
|
|
|
|
|
(forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
|
|
|
|
|
typedef to change return type for C++2a. Return number of removed
|
|
|
|
|
elements for C++2a.
|
|
|
|
|
* include/debug/list (list::__remove_return_type): Define typedef as
|
|
|
|
|
size_type or void, according to __cplusplus value.
|
|
|
|
|
(_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
|
|
|
|
|
empty, according to __cplusplus value.
|
|
|
|
|
(_GLIBCXX20_ONLY): Define macro.
|
|
|
|
|
(list::remove, list::unique): Use typedef and macro to change return
|
|
|
|
|
type and add abi-tag for C++2a. Return number of removed elements for
|
|
|
|
|
C++2a.
|
|
|
|
|
(list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use typedef
|
|
|
|
|
to change return type for C++2a. Return number of removed elements for
|
|
|
|
|
C++2a.
|
|
|
|
|
|
2018-08-21 16:03:16 +02:00
|
|
|
|
2018-08-21 David Edelsohn <dje.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/18_support/new_nothrow.cc: XFAIL on AIX.
|
|
|
|
|
|
2018-08-21 11:34:26 +02:00
|
|
|
|
2018-08-21 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/26_numerics/bit/bitops.count/countl_one.cc: Remove
|
|
|
|
|
redundant dg-do directive.
|
|
|
|
|
* testsuite/26_numerics/bit/bitops.count/countl_zero.cc: Likewise.
|
|
|
|
|
* testsuite/26_numerics/bit/bitops.count/countr_one.cc: Likewise.
|
|
|
|
|
* testsuite/26_numerics/bit/bitops.count/countr_zero.cc: Likewise.
|
|
|
|
|
* testsuite/26_numerics/bit/bitops.count/popcount.cc: Likewise.
|
|
|
|
|
|
2018-08-20 14:13:25 +02:00
|
|
|
|
2018-08-20 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
PR libstdc++/86963 Remove use of __tuple_base in std::tuple
The _Tuple_impl base class can be used to disable copy/move assignment,
without requiring an extra base class.
Exception specifications on std::tuple assignment and swap functions can
be defined directly using is_nothrow_swappable, instead of querying the
base classes.
PR libstdc++/86963
* include/std/tuple (_Tuple_impl::operator=): Define as deleted.
(_Tuple_impl::_M_assign): New functions to perform assignment instead
of assignment operators.
(_Tuple_impl::_M_swap): Remove exception specification.
(_Tuple_impl<_Idx, _Head>): Likewise.
(_TC::_NonNestedTuple, _TC::_NotSameTuple): Use __remove_cvref_t.
(__tuple_base): Remove.
(tuple, tuple<_T1, _T2>): Remove inheritance from __tuple_base.
(tuple::operator=, tuple<_T1, _T2>::operator=): Call _M_assign.
(tuple::swap, tuple<_T1, _T2>::swap): Define exception specification
using __is_nothrow_swappable.
(tuple<_T1, _T2>::tuple(_U1&&, _U2&&)): Use __remove_cvref_t.
From-SVN: r263661
2018-08-20 15:53:56 +02:00
|
|
|
|
PR libstdc++/86963
|
|
|
|
|
* include/std/tuple (_Tuple_impl::operator=): Define as deleted.
|
|
|
|
|
(_Tuple_impl::_M_assign): New functions to perform assignment instead
|
|
|
|
|
of assignment operators.
|
|
|
|
|
(_Tuple_impl::_M_swap): Remove exception specification.
|
|
|
|
|
(_Tuple_impl<_Idx, _Head>): Likewise.
|
|
|
|
|
(_TC::_NonNestedTuple, _TC::_NotSameTuple): Use __remove_cvref_t.
|
|
|
|
|
(__tuple_base): Remove.
|
|
|
|
|
(tuple, tuple<_T1, _T2>): Remove inheritance from __tuple_base.
|
|
|
|
|
(tuple::operator=, tuple<_T1, _T2>::operator=): Call _M_assign.
|
|
|
|
|
(tuple::swap, tuple<_T1, _T2>::swap): Define exception specification
|
|
|
|
|
using __is_nothrow_swappable.
|
|
|
|
|
(tuple<_T1, _T2>::tuple(_U1&&, _U2&&)): Use __remove_cvref_t.
|
|
|
|
|
|
2018-08-20 14:13:25 +02:00
|
|
|
|
* include/std/optional (_Optional_payload): Use variable templates
|
|
|
|
|
for conditions in default template arguments and exception
|
|
|
|
|
specifications.
|
|
|
|
|
(optional): Likewise. Adjust indentation.
|
|
|
|
|
(optional::__not_self, optional::__not_tag, optional::_Requires): New
|
|
|
|
|
SFINAE helpers.
|
|
|
|
|
(optional::optional): Use new helpers in constructor constraints.
|
|
|
|
|
* include/std/type_traits (__or_v, __and_v): New variable templates.
|
|
|
|
|
* testsuite/20_util/optional/cons/value_neg.cc: Change dg-error to
|
|
|
|
|
dg-prune-output. Remove unused header.
|
|
|
|
|
|
2018-08-18 22:01:14 +02:00
|
|
|
|
2018-08-18 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/25_algorithms/copy/86658.cc: Use dg-options to define
|
|
|
|
|
_GLIBCXX_DEBUG.
|
|
|
|
|
|
PR libstdc++/86963 Implement LWG 2729 constraints on tuple assignment
PR libstdc++/86963
* include/std/tuple (__tuple_base): New class template with deleted
copy assignment operator.
(tuple, tuple<_T1, _T2>): Derive from __tuple_base<tuple> so that
implicit copy/move assignment operator will be deleted/suppressed.
(tuple::__assignable, tuple<_T1, _T2>::__assignable): New helper
functions for SFINAE constraints on assignment operators.
(tuple::__nothrow_assignable, tuple<_T1, _T2>::__nothrow_assignable):
New helper functions for exception specifications.
(tuple::operator=(const tuple&), tuple::operator=(tuple&&))
(tuple<_T1, _T2>::operator=(const tuple&))
(tuple<_T1, _T2>::operator=(tuple&&)): Change parameter types to
__nonesuch_no_braces when the operator should be defined implicitly.
Use __nothrow_assignable for exception specifications.
(tuple::operator=(const tuple<_UElements...>&))
(tuple::operator=(tuple<_UElements...>&&))
(tuple<_T1, _T2>::operator=(const tuple<_U1, _U2>&))
(tuple<_T1, _T2>::operator=(tuple<_U1, _U2>&&))
(tuple<_T1, _T2>::operator=(const pair<_U1, _U2>&))
(tuple<_T1, _T2>::operator=(pair<_U1, _U2>&&)): Constrain using
__assignable and use __nothrow_assignable for exception
specifications.
* python/libstdcxx/v6/printers.py (is_specialization_of): Accept
gdb.Type as first argument, instead of a string.
(StdTuplePrinter._iterator._is_nonempty_tuple): New method to check
tuple for expected structure.
(StdTuplePrinter._iterator.__init__): Use _is_nonempty_tuple.
* testsuite/20_util/tuple/dr2729.cc: New test.
* testsuite/20_util/tuple/element_access/get_neg.cc: Change dg-error
to dg-prune-output.
From-SVN: r263625
2018-08-17 19:52:49 +02:00
|
|
|
|
2018-08-17 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/86963
|
|
|
|
|
* include/std/tuple (__tuple_base): New class template with deleted
|
|
|
|
|
copy assignment operator.
|
|
|
|
|
(tuple, tuple<_T1, _T2>): Derive from __tuple_base<tuple> so that
|
|
|
|
|
implicit copy/move assignment operator will be deleted/suppressed.
|
|
|
|
|
(tuple::__assignable, tuple<_T1, _T2>::__assignable): New helper
|
|
|
|
|
functions for SFINAE constraints on assignment operators.
|
|
|
|
|
(tuple::__nothrow_assignable, tuple<_T1, _T2>::__nothrow_assignable):
|
|
|
|
|
New helper functions for exception specifications.
|
|
|
|
|
(tuple::operator=(const tuple&), tuple::operator=(tuple&&))
|
|
|
|
|
(tuple<_T1, _T2>::operator=(const tuple&))
|
|
|
|
|
(tuple<_T1, _T2>::operator=(tuple&&)): Change parameter types to
|
|
|
|
|
__nonesuch_no_braces when the operator should be defined implicitly.
|
|
|
|
|
Use __nothrow_assignable for exception specifications.
|
|
|
|
|
(tuple::operator=(const tuple<_UElements...>&))
|
|
|
|
|
(tuple::operator=(tuple<_UElements...>&&))
|
|
|
|
|
(tuple<_T1, _T2>::operator=(const tuple<_U1, _U2>&))
|
|
|
|
|
(tuple<_T1, _T2>::operator=(tuple<_U1, _U2>&&))
|
|
|
|
|
(tuple<_T1, _T2>::operator=(const pair<_U1, _U2>&))
|
|
|
|
|
(tuple<_T1, _T2>::operator=(pair<_U1, _U2>&&)): Constrain using
|
|
|
|
|
__assignable and use __nothrow_assignable for exception
|
|
|
|
|
specifications.
|
|
|
|
|
* python/libstdcxx/v6/printers.py (is_specialization_of): Accept
|
|
|
|
|
gdb.Type as first argument, instead of a string.
|
|
|
|
|
(StdTuplePrinter._iterator._is_nonempty_tuple): New method to check
|
|
|
|
|
tuple for expected structure.
|
|
|
|
|
(StdTuplePrinter._iterator.__init__): Use _is_nonempty_tuple.
|
|
|
|
|
* testsuite/20_util/tuple/dr2729.cc: New test.
|
|
|
|
|
* testsuite/20_util/tuple/element_access/get_neg.cc: Change dg-error
|
|
|
|
|
to dg-prune-output.
|
|
|
|
|
|
2018-08-16 17:56:21 +02:00
|
|
|
|
2018-08-16 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-08-16 19:16:33 +02:00
|
|
|
|
* include/tr1/legendre_function.tcc (__sph_legendre): Avoid warning
|
|
|
|
|
about signed/unsigned comparison.
|
|
|
|
|
|
2018-08-16 18:56:40 +02:00
|
|
|
|
* include/std/ostream (basic_ostream::sentry::~sentry): Suppress
|
|
|
|
|
deprecation warnings for using uncaught_exception().
|
|
|
|
|
|
2018-08-16 17:56:21 +02:00
|
|
|
|
PR libstdc++/86447
|
|
|
|
|
* src/c++11/cow-stdexcept.cc [_GLIBCXX_FULLY_DYNAMIC_STRING]
|
|
|
|
|
(logic_error::logic_error(logic_error&&))
|
|
|
|
|
(logic_error::operator=(logic_error&&))
|
|
|
|
|
(runtime_error::runtime_error(runtime_error&&))
|
|
|
|
|
(runtime_error::operator=(runtime_error&&)): Copy strings instead of
|
|
|
|
|
moving, to avoid allocating empty reps for moved-from strings.
|
|
|
|
|
|
2018-08-15 11:56:33 +02:00
|
|
|
|
2018-08-15 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-08-15 21:46:25 +02:00
|
|
|
|
* include/experimental/regex: Remove begin/end macros for namespace.
|
|
|
|
|
* include/experimental/string: Likewise.
|
|
|
|
|
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc:
|
|
|
|
|
New test.
|
|
|
|
|
* testsuite/experimental/polymorphic_allocator/
|
|
|
|
|
pmr_typedefs_forward_list.cc: New test.
|
|
|
|
|
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc:
|
|
|
|
|
New test.
|
|
|
|
|
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc:
|
|
|
|
|
New test.
|
|
|
|
|
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
|
|
|
|
|
New test.
|
|
|
|
|
* testsuite/experimental/polymorphic_allocator/
|
|
|
|
|
pmr_typedefs_multimap.cc: New test.
|
|
|
|
|
* testsuite/experimental/polymorphic_allocator/
|
|
|
|
|
pmr_typedefs_multiset.cc: New test.
|
|
|
|
|
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc:
|
|
|
|
|
New test.
|
|
|
|
|
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
|
|
|
|
|
New test.
|
|
|
|
|
* testsuite/experimental/polymorphic_allocator/
|
|
|
|
|
pmr_typedefs_unordered_map.cc: New test.
|
|
|
|
|
* testsuite/experimental/polymorphic_allocator/
|
|
|
|
|
pmr_typedefs_unordered_multimap.cc: New test.
|
|
|
|
|
* testsuite/experimental/polymorphic_allocator/
|
|
|
|
|
pmr_typedefs_unordered_multiset.cc: New test.
|
|
|
|
|
* testsuite/experimental/polymorphic_allocator/
|
|
|
|
|
pmr_typedefs_unordered_set.cc: New test.
|
|
|
|
|
* testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc:
|
|
|
|
|
New test.
|
|
|
|
|
|
2018-08-15 21:20:02 +02:00
|
|
|
|
* include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
|
|
|
|
|
calls to __uses_allocator_construct_impl and __use_alloc.
|
|
|
|
|
* include/experimental/memory_resource
|
|
|
|
|
(polymorphic_allocator::_M_construct): Remove.
|
|
|
|
|
(polymorphic_allocator::construct): Call __uses_allocator_construct.
|
|
|
|
|
Qualify calls to __use_alloc.
|
|
|
|
|
* include/std/memory_resource (polymorphic_allocator::construct): Fix
|
|
|
|
|
type in SFINAE constraint. Use constexpr if instead of tag dispatching
|
|
|
|
|
to _S_construct overloads.
|
|
|
|
|
(polymorphic_allocator::construct(pair<T1, T2>*, ...)): Fix order of
|
|
|
|
|
arguments to _S_construct_p.
|
|
|
|
|
(polymorphic_allocator::_S_construct): Remove.
|
|
|
|
|
(polymorphic_allocator::_S_construct_p): Return allocators by value
|
|
|
|
|
not by reference.
|
|
|
|
|
* include/std/scoped_allocator (scoped_allocator_adaptor::construct):
|
|
|
|
|
Qualify calls to __use_alloc.
|
|
|
|
|
* testsuite/20_util/polymorphic_allocator/construct_pair.cc: New test,
|
|
|
|
|
copied from testsuite/20_util/scoped_allocator/construct_pair.cc.
|
|
|
|
|
* testsuite/experimental/polymorphic_allocator/1.cc: New test.
|
|
|
|
|
* testsuite/experimental/polymorphic_allocator/construct_pair.cc:
|
|
|
|
|
New test.
|
|
|
|
|
|
2018-08-15 11:56:33 +02:00
|
|
|
|
* src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS]
|
|
|
|
|
(atomic_mem_res): Add unsynchronized definition for single-threaded.
|
|
|
|
|
|
2018-08-14 14:09:57 +02:00
|
|
|
|
2018-08-14 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-08-14 22:19:20 +02:00
|
|
|
|
PR libstdc++/86954
|
|
|
|
|
* include/bits/stl_tempbuf.h (return_temporary_buffer): Use
|
|
|
|
|
non-placement delete.
|
|
|
|
|
|
2018-08-14 15:55:21 +02:00
|
|
|
|
* include/std/chrono (__check_overflow): Simplify definition.
|
|
|
|
|
(_Checked_integral_constant): Remove.
|
|
|
|
|
|
2018-08-14 15:13:37 +02:00
|
|
|
|
PR libstdc++/86846
|
|
|
|
|
* src/c++17/default_resource.h: New file, defining default_res.
|
|
|
|
|
* src/c++17/memory_resource.cc [ATOMIC_POINTER_LOCK_FREE != 2]
|
|
|
|
|
(atomic_mem_res): Define alternative for atomic<memory_resource*>
|
|
|
|
|
using a mutex instead of atomics.
|
|
|
|
|
|
2018-08-14 14:09:57 +02:00
|
|
|
|
PR libstdc++/85343
|
|
|
|
|
* config/abi/pre/gnu.ver: Export new symbol.
|
|
|
|
|
* doc/xml/manual/abi.xml: Document new versions.
|
|
|
|
|
* include/bits/fstream.tcc (basic_filebuf<C, T>::underflow)
|
|
|
|
|
(basic_filebuf<C, T>::xsgetn): Pass errno to __throw_ios_failure.
|
|
|
|
|
* include/bits/functexcept.h (__throw_ios_failure(const char*, int)):
|
|
|
|
|
Declare new overload.
|
|
|
|
|
* src/c++11/cxx11-ios_failure.cc (__ios_failure): Add new constructor
|
|
|
|
|
and static member function.
|
|
|
|
|
(__throw_ios_failure(const char*, int)): Define.
|
|
|
|
|
* src/c++98/ios_failure.cc [!_GLIBCXX_USE_DUAL_ABI]
|
|
|
|
|
(__throw_ios_failure(const char*, int)): Define.
|
|
|
|
|
|
2018-08-14 13:23:50 +02:00
|
|
|
|
2018-08-14 Jeremy Sawicki <jeremy-gcc@sawicki.us>
|
|
|
|
|
|
|
|
|
|
* include/ext/rope (_Rope_iterator_base(const _Rope_iterator_base&))
|
|
|
|
|
(_Rope_const_iterator::operator=(const _Rope_const_iterator&))
|
|
|
|
|
(_Rope_iterator::operator=(const _Rope_iterator&)): Ensure
|
|
|
|
|
copied/assigned rope iterators don't retain pointers to the iterator
|
|
|
|
|
they were copied/assigned from.
|
|
|
|
|
* testsuite/ext/rope/7.cc: New.
|
|
|
|
|
|
2018-08-13 20:54:21 +02:00
|
|
|
|
2018-08-13 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-08-13 20:54:43 +02:00
|
|
|
|
PR libstdc++/45093
|
|
|
|
|
* include/bits/stl_tree.h (_Rb_tree::_M_destroy_node(_Link_type)):
|
|
|
|
|
Combine definitions to avoid --detect-odr-violations warning.
|
|
|
|
|
|
2018-08-13 20:54:38 +02:00
|
|
|
|
* libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Use
|
|
|
|
|
__is_pow2 to check for valid alignment. Avoid branching when rounding
|
|
|
|
|
size to multiple of alignment.
|
|
|
|
|
|
2018-08-13 20:54:34 +02:00
|
|
|
|
* include/Makefile.am: Install <bit> and <version> for freestanding.
|
|
|
|
|
* include/Makefile.in: Regenerate.
|
|
|
|
|
* testsuite/17_intro/freestanding.cc: Check for <bit> and <version>.
|
|
|
|
|
|
2018-08-13 20:54:21 +02:00
|
|
|
|
Revert
|
|
|
|
|
2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
PR target/85904
|
|
|
|
|
* configure.ac: Define HAVE_ALIGNED_ALLOC if building for
|
|
|
|
|
Newlib.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2018-08-10 22:20:27 +02:00
|
|
|
|
2018-08-10 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/68210
|
|
|
|
|
* doc/xml/manual/intro.xml: Document LWG 206 change.
|
|
|
|
|
* libsupc++/del_op.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
|
|
|
|
|
* libsupc++/del_opa.cc: Likewise.
|
|
|
|
|
* libsupc++/del_opant.cc: Likewise.
|
|
|
|
|
* libsupc++/del_opnt.cc: Likewise. Call operator delete(ptr) instead
|
|
|
|
|
of free(ptr).
|
|
|
|
|
* libsupc++/del_ops.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
|
|
|
|
|
* libsupc++/del_opsa.cc: Likewise.
|
|
|
|
|
* libsupc++/del_opva.cc: Likewise.
|
|
|
|
|
* libsupc++/del_opvant.cc: Likewise.
|
|
|
|
|
* libsupc++/del_opvnt.cc: Likewise. Call operator delete[](ptr)
|
|
|
|
|
instead of operator delete(ptr).
|
|
|
|
|
* libsupc++/del_opvs.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
|
|
|
|
|
* libsupc++/del_opvsa.cc: Likewise.
|
|
|
|
|
* libsupc++/new_op.cc: Use __builtin_expect in check for zero size.
|
|
|
|
|
* libsupc++/new_opa.cc: Use nullptr instead of literal 0.
|
|
|
|
|
* libsupc++/new_opant.cc: Likewise. Replace _GLIBCXX_USE_NOEXCEPT
|
|
|
|
|
with noexcept.
|
|
|
|
|
* libsupc++/new_opnt.cc: Likewise. Call operator new(sz) instead of
|
|
|
|
|
malloc(sz).
|
|
|
|
|
* libsupc++/new_opvant.cc: Use nullptr and noexcept.
|
|
|
|
|
* libsupc++/new_opvnt.cc: Likewise. Call operator new[](sz) instead of
|
|
|
|
|
operator new(sz, nothrow).
|
|
|
|
|
* testsuite/18_support/new_nothrow.cc: New test.
|
|
|
|
|
|
2018-08-10 13:40:40 +02:00
|
|
|
|
2018-08-10 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* libsupc++/new_op.cc (new): Remove __builtin_expect as malloc
|
2018-08-10 21:04:01 +02:00
|
|
|
|
predictor can handle that.
|
2018-08-10 13:40:40 +02:00
|
|
|
|
* libsupc++/new_opa.cc: Likewise.
|
|
|
|
|
* libsupc++/new_opnt.cc (new): Likewise.
|
|
|
|
|
|
2018-08-10 08:27:35 +02:00
|
|
|
|
2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
PR target/85904
|
|
|
|
|
* configure.ac: Define HAVE_ALIGNED_ALLOC if building for
|
|
|
|
|
Newlib.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2018-08-10 01:25:53 +02:00
|
|
|
|
2018-08-10 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/std/deque (std::pmr::deque): Declare alias.
|
|
|
|
|
* include/std/forward_list (std::pmr::forward_list): Likewise.
|
|
|
|
|
* include/std/list (std::pmr::list): Likewise.
|
|
|
|
|
* include/std/map (std::pmr::map, std::pmr::multimap): Likewise.
|
|
|
|
|
* include/std/regex (std::pmr::match_results, std::pmr::cmatch)
|
|
|
|
|
(std::pmr::smatch, std::pmr::wcmatch, std::pmr::wsmatch): Likewise.
|
|
|
|
|
* include/std/set (std::pmr::set, std::pmr::multiset): Likewise.
|
|
|
|
|
* include/std/string (std::pmr::basic_string, std::pmr::string)
|
|
|
|
|
(std::pmr::u16string, std::pmr::u32string, std::pmr::wstring):
|
|
|
|
|
Likewise.
|
|
|
|
|
* include/std/unordered_map (std::pmr::unordered_map)
|
|
|
|
|
(std::pmr::unordered_multimap): Likewise.
|
|
|
|
|
* include/std/unordered_set (std::pmr::unordered_set)
|
|
|
|
|
(std::pmr::unordered_multiset): Likewise.
|
|
|
|
|
* include/std/vector (std::pmr::vector): Likewise.
|
|
|
|
|
* testsuite/21_strings/basic_string/types/pmr_typedefs.cc: New test.
|
|
|
|
|
* testsuite/23_containers/deque/types/pmr_typedefs.cc: New test.
|
|
|
|
|
* testsuite/23_containers/forward_list/pmr_typedefs.cc: New test.
|
|
|
|
|
* testsuite/23_containers/list/pmr_typedefs.cc: New test.
|
|
|
|
|
* testsuite/23_containers/map/pmr_typedefs.cc: New test.
|
|
|
|
|
* testsuite/23_containers/multimap/pmr_typedefs.cc: New test.
|
|
|
|
|
* testsuite/23_containers/multiset/pmr_typedefs.cc: New test.
|
|
|
|
|
* testsuite/23_containers/set/pmr_typedefs.cc: New test.
|
|
|
|
|
* testsuite/23_containers/unordered_map/pmr_typedefs.cc: New test.
|
|
|
|
|
* testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/23_containers/unordered_set/pmr_typedefs.cc: New test.
|
|
|
|
|
* testsuite/23_containers/vector/pmr_typedefs.cc: New test.
|
|
|
|
|
* testsuite/28_regex/match_results/pmr_typedefs.cc: New test.
|
|
|
|
|
|
2018-08-08 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_algo.h
(__rotate(_Ite, _Ite, _Ite, forward_iterator_tag))
(__rotate(_Ite, _Ite, _Ite, bidirectional_iterator_tag))
(__rotate(_Ite, _Ite, _Ite, random_access_iterator_tag)): Move code duplication...
(rotate(_Ite, _Ite, _Ite)): ...here.
(__stable_partition_adaptive(_FIt, _FIt, _Pred, _Dist, _Pointer, _Dist)):
Simplify rotate call.
(__rotate_adaptive(_BIt1, _BIt1, _BIt1, _Dist, _Dist, _Bit2, _Dist)):
Likewise.
(__merge_without_buffer(_BIt, _BIt, _BIt, _Dist, _Dist, _Comp)):
Likewise.
From-SVN: r263433
2018-08-08 22:28:21 +02:00
|
|
|
|
2018-08-08 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/bits/stl_algo.h
|
|
|
|
|
(__rotate(_Ite, _Ite, _Ite, forward_iterator_tag))
|
|
|
|
|
(__rotate(_Ite, _Ite, _Ite, bidirectional_iterator_tag))
|
2018-08-10 21:04:01 +02:00
|
|
|
|
(__rotate(_Ite, _Ite, _Ite, random_access_iterator_tag)): Move code
|
|
|
|
|
duplication...
|
2018-08-08 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_algo.h
(__rotate(_Ite, _Ite, _Ite, forward_iterator_tag))
(__rotate(_Ite, _Ite, _Ite, bidirectional_iterator_tag))
(__rotate(_Ite, _Ite, _Ite, random_access_iterator_tag)): Move code duplication...
(rotate(_Ite, _Ite, _Ite)): ...here.
(__stable_partition_adaptive(_FIt, _FIt, _Pred, _Dist, _Pointer, _Dist)):
Simplify rotate call.
(__rotate_adaptive(_BIt1, _BIt1, _BIt1, _Dist, _Dist, _Bit2, _Dist)):
Likewise.
(__merge_without_buffer(_BIt, _BIt, _BIt, _Dist, _Dist, _Comp)):
Likewise.
From-SVN: r263433
2018-08-08 22:28:21 +02:00
|
|
|
|
(rotate(_Ite, _Ite, _Ite)): ...here.
|
|
|
|
|
(__stable_partition_adaptive(_FIt, _FIt, _Pred, _Dist, _Pointer, _Dist)):
|
|
|
|
|
Simplify rotate call.
|
|
|
|
|
(__rotate_adaptive(_BIt1, _BIt1, _BIt1, _Dist, _Dist, _Bit2, _Dist)):
|
|
|
|
|
Likewise.
|
|
|
|
|
(__merge_without_buffer(_BIt, _BIt, _BIt, _Dist, _Dist, _Comp)):
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2018-08-08 15:09:19 +02:00
|
|
|
|
2018-08-08 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-08-08 17:16:43 +02:00
|
|
|
|
* libsupc++/new_opa.cc (aligned_alloc): Declare inside namespace to
|
|
|
|
|
avoid clashing with an ::aligned_alloc function that was not detected
|
|
|
|
|
by configure.
|
|
|
|
|
|
2018-08-08 15:37:24 +02:00
|
|
|
|
* doc/xml/manual/using.xml: Fix markup for empty table entry.
|
|
|
|
|
* doc/html/*: Regenerate.
|
|
|
|
|
|
2018-08-08 15:29:25 +02:00
|
|
|
|
* doc/xml/manual/using.xml: Add missing header to table and fix typo.
|
|
|
|
|
* doc/html/*: Regenerate.
|
|
|
|
|
|
2018-08-08 15:09:19 +02:00
|
|
|
|
PR libstdc++/86597
|
|
|
|
|
* include/bits/fs_dir.h (directory_entry::_M_file_type(error_code&)):
|
|
|
|
|
Clear error_code when cached type is used.
|
|
|
|
|
* testsuite/27_io/filesystem/directory_entry/86597.cc: New test.
|
|
|
|
|
|
2018-08-07 13:31:16 +02:00
|
|
|
|
2018-08-07 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-08-07 21:13:26 +02:00
|
|
|
|
PR libstdc++/86874
|
|
|
|
|
* include/std/variant (_Copy_ctor_base::_M_destructive_move): Define
|
|
|
|
|
here instead of in _Move_assign_base.
|
|
|
|
|
(_Copy_ctor_base<true, _Types...>::_M_destructive_move): Define.
|
|
|
|
|
(_Copy_assign_base::operator=): Use _M_destructive_move when changing
|
|
|
|
|
the contained value to another alternative.
|
|
|
|
|
(_Move_assign_base::operator=): Likewise.
|
|
|
|
|
(_Move_assign_base::_M_destructive_move): Remove.
|
|
|
|
|
* testsuite/20_util/variant/86874.cc: New test.
|
|
|
|
|
|
2018-08-07 18:10:29 +02:00
|
|
|
|
PR libstdc++/86861
|
|
|
|
|
* libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc):
|
|
|
|
|
Replace macro with inline function.
|
|
|
|
|
[__sun]: Increase alignment to meet memalign precondition.
|
|
|
|
|
[!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN]
|
|
|
|
|
(aligned_alloc): Move check for valid alignment to operator new.
|
|
|
|
|
Remove redundant check for non-zero size, it's enforced by the caller.
|
|
|
|
|
(operator new): Move check for valid alignment here. Use
|
|
|
|
|
__builtin_expect on check for zero size.
|
|
|
|
|
|
2018-08-07 13:31:16 +02:00
|
|
|
|
* config/abi/pre/gnu.ver: Export monotonic_buffer_resource members.
|
|
|
|
|
* include/std/memory_resource (monotonic_buffer_resource::release):
|
|
|
|
|
Call _M_release_buffers to free buffers.
|
|
|
|
|
(monotonic_buffer_resource::do_allocate): Call _M_new_buffer to
|
|
|
|
|
allocate a new buffer from upstream.
|
|
|
|
|
(monotonic_buffer_resource::_M_new_buffer): Declare.
|
|
|
|
|
(monotonic_buffer_resource::_M_release_buffers): Declare.
|
|
|
|
|
(monotonic_buffer_resource::_Chunk): Replace definition with
|
|
|
|
|
declaration as opaque type.
|
|
|
|
|
* src/c++17/memory_resource.cc (monotonic_buffer_resource::_Chunk):
|
|
|
|
|
Define.
|
|
|
|
|
(monotonic_buffer_resource::_M_new_buffer): Define.
|
|
|
|
|
(monotonic_buffer_resource::_M_release_buffers): Define.
|
|
|
|
|
|
2018-08-05 17:33:58 +02:00
|
|
|
|
2018-08-05 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/bits/stl_iterator.h: Fix comment.
|
|
|
|
|
|
2018-08-03 14:53:34 +02:00
|
|
|
|
2018-08-03 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* src/c++11/system_error.cc
|
|
|
|
|
(system_error_category::default_error_condition): Add workaround for
|
|
|
|
|
ENOTEMPTY and EEXIST having the same value on AIX.
|
|
|
|
|
* testsuite/19_diagnostics/error_category/system_category.cc: Add
|
|
|
|
|
extra testcases for EDOM, EILSEQ, ERANGE, EEXIST and ENOTEMPTY.
|
|
|
|
|
|
2018-08-01 21:52:46 +02:00
|
|
|
|
2018-08-01 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* configure.ac: Add -D_GLIBCXX_ASSERTIONS to default DEBUG_FLAGS.
|
|
|
|
|
* src/c++11/futex.cc: Use __glibcxx_assert instead of
|
|
|
|
|
_GLIBCXX_DEBUG_ASSERT.
|
|
|
|
|
|
2018-08-01 17:39:57 +02:00
|
|
|
|
2018-08-01 Mike Crowe <mac@mcrowe.com>
|
|
|
|
|
|
|
|
|
|
* include/std/condition_variable (wait_for): Use steady_clock.
|
|
|
|
|
|
2018-08-01 17:39:45 +02:00
|
|
|
|
2018-08-01 Mike Crowe <mac@mcrowe.com>
|
|
|
|
|
|
|
|
|
|
* include/std/condition_variable (wait_until): Only report timeout
|
|
|
|
|
if we really have timed out when measured against the
|
|
|
|
|
caller-supplied clock.
|
|
|
|
|
* testsuite/30_threads/condition_variable/members/2.cc: Add test
|
|
|
|
|
case to confirm above behaviour.
|
|
|
|
|
|
2018-08-01 15:57:05 +02:00
|
|
|
|
2018-08-01 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/60555
|
|
|
|
|
* src/c++11/system_error.cc
|
|
|
|
|
(system_error_category::default_error_condition): New override to
|
|
|
|
|
check for POSIX errno values.
|
|
|
|
|
* testsuite/19_diagnostics/error_category/generic_category.cc: New
|
|
|
|
|
* testsuite/19_diagnostics/error_category/system_category.cc: New
|
|
|
|
|
test.
|
|
|
|
|
|
2018-07-31 16:55:36 +02:00
|
|
|
|
2018-07-31 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-08-01 00:31:20 +02:00
|
|
|
|
PR libstdc++/86751
|
|
|
|
|
* include/bits/stl_pair.h (__pair_base): New class with deleted copy
|
|
|
|
|
assignment operator.
|
|
|
|
|
(pair): Derive from __pair_base.
|
|
|
|
|
(pair::operator=): Remove deleted overload.
|
|
|
|
|
* python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer
|
|
|
|
|
so that new base class isn't shown in GDB.
|
|
|
|
|
* testsuite/20_util/pair/86751.cc: New test.
|
|
|
|
|
* testsuite/20_util/pair/ref_assign.cc: New test.
|
|
|
|
|
|
2018-08-01 00:31:14 +02:00
|
|
|
|
* include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
|
|
|
|
|
(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Move definitions here.
|
|
|
|
|
(_GLIBCXX_HAVE_BUILTIN_LAUNDER): Likewise. Use !__is_identifier
|
|
|
|
|
instead of __has_builtin.
|
|
|
|
|
* include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
|
|
|
|
|
(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Remove definitions from here.
|
|
|
|
|
* include/std/version [!_GLIBCXX_HAS_GTHREADS]
|
|
|
|
|
(__cpp_lib_shared_timed_mutex, __cpp_lib_scoped_lock)
|
|
|
|
|
(__cpp_lib_shared_mutex): Don't define when Gthreads not in use.
|
|
|
|
|
[!_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP]
|
|
|
|
|
(__cpp_lib_has_unique_object_representations): Don't define when
|
|
|
|
|
builtin not available.
|
|
|
|
|
[!_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE] (__cpp_lib_is_aggregate):
|
|
|
|
|
Likewise.
|
|
|
|
|
[!_GLIBCXX_HAVE_BUILTIN_LAUNDER] (__cpp_lib_launder): Likewise.
|
|
|
|
|
* libsupc++/new (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Remove definition
|
|
|
|
|
from here.
|
|
|
|
|
|
2018-07-31 17:02:32 +02:00
|
|
|
|
* doc/xml/manual/test.xml: Improve documentation on writing tests for
|
|
|
|
|
newer standards.
|
|
|
|
|
* doc/xml/manual/using.xml: Document all headers for C++11 and later.
|
|
|
|
|
* doc/html/*: Regenerate.
|
|
|
|
|
|
2018-07-31 16:55:36 +02:00
|
|
|
|
* include/ext/pointer.h [__cplusplus >= 201103L]
|
|
|
|
|
(_Pointer_adapter::operator bool): Add explicit conversion operator
|
|
|
|
|
to replace safe bool idiom.
|
|
|
|
|
|
2018-07-30 19:12:44 +02:00
|
|
|
|
2018-07-30 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-07-30 19:13:05 +02:00
|
|
|
|
PR libstdc++/86734
|
|
|
|
|
* include/bits/stl_iterator.h (reverse_iterator::operator->): Call
|
|
|
|
|
_S_to_pointer (LWG 1052, LWG 2118).
|
|
|
|
|
(reverse_iterator::_S_to_pointer): Define overloaded helper functions.
|
|
|
|
|
* testsuite/24_iterators/reverse_iterator/dr1052.cc: New test.
|
|
|
|
|
* testsuite/24_iterators/reverse_iterator/dr2188.cc: New test.
|
|
|
|
|
|
2018-07-30 19:12:44 +02:00
|
|
|
|
* libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add
|
|
|
|
|
workaround for aligned_alloc bug on AIX.
|
|
|
|
|
* testsuite/18_support/new_aligned.cc: New test.
|
|
|
|
|
|
2018-07-26 23:23:12 +02:00
|
|
|
|
2018-07-26 Marek Polacek <polacek@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/30_threads/condition_variable_any/cond.cc: New.
|
|
|
|
|
|
2018-07-26 18:36:50 +02:00
|
|
|
|
2018-07-26 Marek Polacek <polacek@redhat.com>
|
|
|
|
|
|
|
|
|
|
* src/c++98/locale_init.cc: Fix #ifdef condition.
|
|
|
|
|
|
Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1
By adding fallback definitions of std::intmax_t and std::uintmax_t it's
possible to define <ratio> without _GLIBCXX_USE_C99_STDINT_TR1. This in
turn allows most of <chrono> to be defined, which removes the dependency
on _GLIBCXX_USE_C99_STDINT_TR1 for all of the C++11 concurrency features.
The compiler defines __INTMAX_TYPE__ and __UINTMAX_TYPE__
unconditionally so it should be safe to rely on them.
* include/bits/atomic_futex.h [!_GLIBCXX_USE_C99_STDINT_TR1]
(__atomic_futex_unsigned_base): Remove dependency on
_GLIBCXX_USE_C99_STDINT_TR1 macro.
* include/bits/unique_lock.h [!_GLIBCXX_USE_C99_STDINT_TR1]
(unique_lock): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1.
* include/c_global/cstdint [!_GLIBCXX_USE_C99_STDINT_TR1] (intmax_t)
(uintmax_t): Define using predefined macros.
* include/std/chrono [!_GLIBCXX_USE_C99_STDINT_TR1] (duration)
(time_point, system_clock, high_resolution_clock, steady_clock): Remove
dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro.
(nanoseconds, microseconds, milliseconds, seconds, minutes, hours):
[!_GLIBCXX_USE_C99_STDINT_TR1]: Define using __INT64_TYPE__ or
long long when <stdint.h> is not usable.
* include/std/condition_variable [!_GLIBCXX_USE_C99_STDINT_TR1]
(condition_variable, condition_variable_any): Remove dependency on
_GLIBCXX_USE_C99_STDINT_TR1.
* include/std/future [!_GLIBCXX_USE_C99_STDINT_TR1] (future, promise)
(packaged_task, async): Likewise.
* include/std/mutex [!_GLIBCXX_USE_C99_STDINT_TR1] (recursive_mutex)
(timed_mutex, recursive_timed_mutex, try_lock, lock, scoped_lock)
(once_flag, call_once): Likewise.
* include/std/ratio [!_GLIBCXX_USE_C99_STDINT_TR1] (ratio): Likewise.
* include/std/shared_mutex [!_GLIBCXX_USE_C99_STDINT_TR1]
(shared_mutex, shared_timed_mutex, shared_lock): Likewise.
* include/std/thread [!_GLIBCXX_USE_C99_STDINT_TR1] (thread)
(this_thread::get_id, this_thread::yield, this_thread::sleep_for)
(this_thread::sleep_until): Likewise.
* src/c++11/chrono.cc: Remove dependency on
_GLIBCXX_USE_C99_STDINT_TR1 macro.
* src/c++11/condition_variable.cc: Likewise.
* src/c++11/futex.cc: Likewise.
* src/c++11/future.cc: Likewise.
* src/c++11/mutex.cc: Likewise.
* src/c++11/thread.cc: Likewise.
* testsuite/20_util/duration/literals/range_neg.cc: Adjust dg-error.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
From-SVN: r263001
2018-07-26 16:01:55 +02:00
|
|
|
|
2018-07-26 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-07-26 16:03:28 +02:00
|
|
|
|
* testsuite/18_support/aligned_alloc/aligned_alloc.cc: Add
|
|
|
|
|
dg-require-cstdint directive.
|
|
|
|
|
* testsuite/20_util/allocator/overaligned.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/any/cons/aligned.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/monotonic_buffer_resource/allocate.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/monotonic_buffer_resource/deallocate.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/list/modifiers/insert/25288.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/set/allocator/move_assign.cc: Likewise.
|
|
|
|
|
* testsuite/25_algorithms/make_heap/complexity.cc: Likewise.
|
|
|
|
|
* testsuite/25_algorithms/pop_heap/complexity.cc: Require cstdint and
|
|
|
|
|
random_device effective-target.
|
|
|
|
|
* testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
|
|
|
|
|
* testsuite/25_algorithms/sample/1.cc: Require cstdint.
|
|
|
|
|
* testsuite/25_algorithms/sample/2.cc: Likewise.
|
|
|
|
|
* testsuite/25_algorithms/sort_heap/complexity.cc: Require cstdint
|
|
|
|
|
and random_device.
|
|
|
|
|
* testsuite/26_numerics/headers/random/types_std_c++0x.cc: Require
|
|
|
|
|
cstdint.
|
|
|
|
|
* testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/discard_block_engine/requirements/
|
|
|
|
|
constexpr_data.cc: Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/discard_block_engine/requirements/
|
|
|
|
|
constexpr_functions.cc: Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/independent_bits_engine/requirements/
|
|
|
|
|
constexpr_functions.cc: Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/linear_congruential_engine/requirements/
|
|
|
|
|
constexpr_data.cc: Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/linear_congruential_engine/requirements/
|
|
|
|
|
constexpr_functions.cc: Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/mersenne_twister_engine/requirements/
|
|
|
|
|
constexpr_data.cc: Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/mersenne_twister_engine/requirements/
|
|
|
|
|
constexpr_functions.cc: Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/seed_seq/cons/65631.cc: Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/shuffle_order_engine/requirements/
|
|
|
|
|
constexpr_data.cc: Add dg-require-cstdint directive.
|
|
|
|
|
* testsuite/26_numerics/random/shuffle_order_engine/requirements/
|
|
|
|
|
constexpr_functions.cc: Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
|
|
|
|
|
constexpr_data.cc: Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
|
|
|
|
|
constexpr_functions.cc: Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/uniform_real_distribution/operators/
|
|
|
|
|
64351.cc: Likewise.
|
|
|
|
|
* testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/algorithm/sample-2.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/algorithm/sample.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/algorithm/search.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/algorithm/shuffle.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/any/cons/aligned.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/memory_resource/new_delete_resource.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/memory_resource/resource_adaptor.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/random/randint.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/source_location/1.cc: Likewise.
|
|
|
|
|
* testsuite/ext/bitmap_allocator/overaligned.cc: Likewise.
|
|
|
|
|
* testsuite/ext/malloc_allocator/overaligned.cc: Likewise.
|
|
|
|
|
* testsuite/ext/mt_allocator/overaligned.cc: Likewise.
|
|
|
|
|
* testsuite/ext/new_allocator/overaligned.cc: Likewise.
|
|
|
|
|
* testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
|
|
|
|
|
* testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
|
|
|
|
|
* testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
|
|
|
|
|
* testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
|
|
|
|
|
* testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
|
|
|
|
|
* testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
|
|
|
|
|
* testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
|
|
|
|
|
* testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
|
|
|
|
|
* testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
|
|
|
|
|
* testsuite/ext/pool_allocator/overaligned.cc: Likewise.
|
|
|
|
|
* testsuite/ext/throw_allocator/check_allocate_max_size.cc: Likewise.
|
|
|
|
|
* testsuite/ext/throw_allocator/check_deallocate_null.cc: Likewise.
|
|
|
|
|
* testsuite/ext/throw_allocator/check_delete.cc: Likewise.
|
|
|
|
|
* testsuite/ext/throw_allocator/check_new.cc: Likewise.
|
|
|
|
|
* testsuite/ext/throw_allocator/deallocate_global.cc: Likewise.
|
|
|
|
|
* testsuite/ext/throw_allocator/deallocate_local.cc: Likewise.
|
|
|
|
|
* testsuite/ext/throw_allocator/explicit_instantiation.cc: Likewise.
|
|
|
|
|
* testsuite/ext/throw_allocator/variadic_construct.cc: Likewise.
|
|
|
|
|
* testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Likewise.
|
|
|
|
|
|
2018-07-26 16:03:01 +02:00
|
|
|
|
* testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_mutex/requirements/standard_layout.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_mutex/requirements/typedefs.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_timed_mutex/dest/
|
|
|
|
|
destructor_locked.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_timed_mutex/native_handle/
|
|
|
|
|
typesizes.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/scoped_lock/requirements/
|
|
|
|
|
explicit_instantiation.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_future/cons/assign.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_future/cons/copy.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_future/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_future/cons/move.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_future/cons/move_assign.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_future/members/45133.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_future/members/get.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_future/members/get2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_future/members/valid.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_future/members/wait.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_future/requirements/
|
|
|
|
|
explicit_instantiation.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_lock/requirements/
|
|
|
|
|
explicit_instantiation.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_lock/requirements/typedefs.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_mutex/cons/assign_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_timed_mutex/requirements/
|
|
|
|
|
standard_layout.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/this_thread/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/this_thread/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/this_thread/3.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/this_thread/4.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/this_thread/58038.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/70503.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/84532.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/adl.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/cons/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/cons/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/cons/3.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/cons/4.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/cons/49668.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/cons/5.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/cons/6.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/cons/7.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/cons/8.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/cons/84535.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/cons/9.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/cons/assign_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/cons/copy_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/cons/lwg2097.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/cons/moveable.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/cons/terminate.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/id/operators.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/members/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/members/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/members/3.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/members/4.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/members/5.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/members/hardware_concurrency.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/thread/swap/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/requirements/
|
|
|
|
|
standard_layout.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/requirements/typedefs.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/try_lock/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/try_lock/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/try_lock/3.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/try_lock/4.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/unique_lock/requirements/
|
|
|
|
|
explicit_instantiation.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/unique_lock/requirements/typedefs.cc: Likewise.
|
|
|
|
|
|
2018-07-26 16:02:42 +02:00
|
|
|
|
* testsuite/30_threads/async/42819.cc: Remove dg-require-cstdint
|
|
|
|
|
directive.
|
|
|
|
|
* testsuite/30_threads/async/49668.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/async/54297.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/async/84532.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/async/any.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/async/async.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/async/except.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/async/forced_unwind.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/async/launch.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/async/lwg2021.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/async/sync.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/call_once/39909.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/call_once/49668.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/call_once/60497.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/call_once/call_once1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/call_once/constexpr.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/call_once/dr2442.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/call_once/once_flag.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable/54185.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable/cons/assign_neg.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable/cons/copy_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable/members/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable/members/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable/members/3.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable/members/68519.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable/requirements/
|
|
|
|
|
standard_layout.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable/requirements/typedefs.cc:
|
|
|
|
|
* Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable_any/cons/assign_neg.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable_any/cons/copy_neg.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/future/cons/assign_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/future/cons/constexpr.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/future/cons/copy_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/future/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/future/cons/move.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/future/cons/move_assign.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/future/members/45133.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/future/members/get.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/future/members/get2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/future/members/share.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/future/members/valid.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/future/members/wait.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/future/members/wait_for.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/future/members/wait_until.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/future/requirements/explicit_instantiation.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/headers/condition_variable/types_std_c++0x.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/headers/mutex/types_std_c++0x.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/headers/thread/std_c++0x_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/headers/thread/types_std_c++0x.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/lock/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/lock/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/lock/3.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/lock/4.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/lock_guard/requirements/
|
|
|
|
|
explicit_instantiation.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/lock_guard/requirements/typedefs.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/mutex/cons/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/mutex/cons/assign_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/mutex/cons/constexpr.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/mutex/cons/copy_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/mutex/lock/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/mutex/requirements/standard_layout.cc::
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/mutex/requirements/typedefs.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/mutex/unlock/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/mutex/unlock/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/once_flag/cons/constexpr.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/49668.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/60564.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/cons/alloc2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/cons/alloc_min.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/cons/assign_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/cons/copy_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/requirements/
|
|
|
|
|
explicit_instantiation.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/packaged_task/uses_allocator.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/60966.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/69106.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/cons/1.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/cons/alloc.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/cons/alloc2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/cons/alloc_min.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/cons/assign_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/cons/copy_neg.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/cons/move.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/members/at_thread_exit2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/members/get_future.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/members/get_future2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/members/set_exception.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/members/set_value.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/members/set_value3.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/members/swap.cc: Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/requirements/explicit_instantiation.cc:
|
|
|
|
|
* Likewise.
|
|
|
|
|
* testsuite/30_threads/promise/uses_allocator.cc: Likewise.
|
|
|
|
|
|
2018-07-26 16:02:26 +02:00
|
|
|
|
* testsuite/18_support/numeric_limits/char16_32_t.cc: Qualify names
|
|
|
|
|
from namespace std.
|
|
|
|
|
* testsuite/20_util/align/2.cc: Remove dg-require-cstdint directive.
|
|
|
|
|
* testsuite/20_util/duration/arithmetic/1.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/duration/arithmetic/2.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/duration/arithmetic/dr2020.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/duration/arithmetic/dr934-1.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/duration/arithmetic/dr934-2.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/duration/comparison_operators/1.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/duration/cons/1.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/duration/cons/1_neg.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/duration/cons/2.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/duration/cons/54025.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/duration/cons/dr974_neg.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/duration/requirements/explicit_instantiation/
|
|
|
|
|
explicit_instantiation.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/make_signed/requirements/typedefs-4.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/ratio/comparisons/comp1.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/ratio/comparisons/comp2.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/ratio/comparisons/comp3.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/ratio/cons/cons1.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/ratio/operations/45866.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/ratio/operations/47913.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/ratio/operations/53840.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/ratio/operations/ops1.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/system_clock/1.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/time_point/1.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/time_point/2.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/time_point/3.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/time_point/requirements/explicit_instantiation/
|
|
|
|
|
explicit_instantiation.cc: Likewise.
|
|
|
|
|
* testsuite/21_strings/basic_string/requirements/
|
|
|
|
|
explicit_instantiation/char16_t/1.cc: Likewise.
|
|
|
|
|
* testsuite/21_strings/basic_string/requirements/
|
|
|
|
|
explicit_instantiation/char32_t/1.cc: Likewise.
|
|
|
|
|
* testsuite/21_strings/basic_string_view/requirements/
|
|
|
|
|
explicit_instantiation/char16_t/1.cc: Likewise.
|
|
|
|
|
* testsuite/21_strings/basic_string_view/requirements/
|
|
|
|
|
explicit_instantiation/char32_t/1.cc: Likewise.
|
|
|
|
|
* testsuite/21_strings/char_traits/requirements/
|
|
|
|
|
explicit_instantiation/char16_t/1.cc: Likewise.
|
|
|
|
|
* testsuite/21_strings/char_traits/requirements/
|
|
|
|
|
explicit_instantiation/char32_t/1.cc: Likewise.
|
|
|
|
|
* testsuite/21_strings/headers/string/types_std_c++0x.cc: Likewise.
|
|
|
|
|
* testsuite/22_locale/codecvt/char16_t.cc: Likewise.
|
|
|
|
|
* testsuite/22_locale/codecvt/char32_t.cc: Likewise.
|
|
|
|
|
* testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/22_locale/codecvt/utf8.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/vector/bool/72847.cc: Likewise.
|
|
|
|
|
* testsuite/23_containers/vector/debug/multithreaded_swap.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/string_view/requirements/
|
|
|
|
|
explicit_instantiation/char16_t/1.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/string_view/requirements/
|
|
|
|
|
explicit_instantiation/char32_t/1.cc: Likewise.
|
|
|
|
|
* testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/
|
|
|
|
|
1.cc: Likewise.
|
|
|
|
|
* testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/
|
|
|
|
|
1.cc: Likewise.
|
|
|
|
|
|
2018-07-26 16:02:11 +02:00
|
|
|
|
* include/ext/throw_allocator.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
|
|
|
|
(random_condition, throw_value_random, throw_allocator_random)
|
|
|
|
|
(std::hash<throw_value_random>): Do not define when <tr1/random> is
|
|
|
|
|
not usable.
|
|
|
|
|
* src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_C99_STDINT_TR1]: Do not
|
|
|
|
|
define transactional memory support when <stdint.h> is not usable.
|
|
|
|
|
|
2018-07-26 16:02:05 +02:00
|
|
|
|
* include/bits/hashtable_policy.h (__detail::__clp2): Use faster
|
|
|
|
|
implementation that doesn't depend on <stdint.h> types.
|
|
|
|
|
* include/std/memory (align) [!_GLIBCXX_USE_C99_STDINT_TR1]: Use
|
|
|
|
|
std::size_t when std::uintptr_t is not usable.
|
|
|
|
|
[!_GLIBCXX_USE_C99_STDINT_TR1] (pointer_safety, declare_reachable)
|
|
|
|
|
(undeclare_reachable, declare_no_pointers, undeclare_no_pointers):
|
|
|
|
|
Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
|
|
|
|
|
|
Remove char16_t and char32_t dependency on <stdint.h>
The char16_t and char32_t types are automatically defined by the
compiler and do not depend on support in <stdint.h>. The char_traits
specializations depend on uint_leastNN_t but can be made to work anyway
by using the predefined macros, or as a last resort make_unsigned.
* include/bits/basic_string.h [!_GLIBCXX_USE_C99_STDINT_TR1]
(hash<u16string>, hash<u32string>): Remove dependency on
_GLIBCXX_USE_C99_STDINT_TR1.
* include/bits/char_traits.h [!_GLIBCXX_USE_C99_STDINT_TR1]
(char_traits<char16_t>, char_traits<char32_t>): Remove dependency on
_GLIBCXX_USE_C99_STDINT_TR1. Use __UINT_LEAST16_TYPE__ and
__UINT_LEAST32_TYPE__ or make_unsigned when <stdint.h> is not usable.
* include/bits/codecvt.h [!_GLIBCXX_USE_C99_STDINT_TR1]
(codecvt<char16_t, char, mbstate_t>)
(codecvt<char32_t, char, mbstate_t>)
(codecvt_byname<char16_t, char, mbstate_t>)
(codecvt_byname<char32_t, char, mbstate_t>): Remove dependency
on _GLIBCXX_USE_C99_STDINT_TR1.
* include/bits/locale_facets.h [!_GLIBCXX_USE_C99_STDINT_TR1]
(_GLIBCXX_NUM_UNICODE_FACETS): Likewise.
* include/bits/stringfwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
(char_traits<char16_t>, char_traits<char32_t>)
(basic_string<char16_t>, basic_string<char32_t>): Remove dependency
on _GLIBCXX_USE_C99_STDINT_TR1.
* include/experimental/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
(u16string_view, u32string_view, hash<u16string_view>)
(hash<u32string_view>, operator""sv(const char16_t, size_t))
(operator""sv(const char32_t, size_t)): Likewise.
* include/ext/vstring.h [!_GLIBCXX_USE_C99_STDINT_TR1]
(hash<__u16vstring>, hash<__u32vstring>): Likewise.
* include/ext/vstring_fwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
(__u16vstring, __u16sso_string, __u16rc_string, __u32vstring)
(__u32sso_string, __u32rc_string): Likewise.
* include/std/codecvt [!_GLIBCXX_USE_C99_STDINT_TR1] (codecvt_mode)
(codecvt_utf8, codecvt_utf16, codecvt_utf8_utf16): Likewise.
* include/std/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
(u16string_view, u32string_view, hash<u16string_view>)
(hash<u32string_view>, operator""sv(const char16_t, size_t))
(operator""sv(const char32_t, size_t)): Likewise.
* src/c++11/codecvt.cc: Likewise.
* src/c++98/locale_init.cc: Likewise.
* src/c++98/localename.cc: Likewise.
From-SVN: r263002
2018-07-26 16:02:01 +02:00
|
|
|
|
* include/bits/basic_string.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
|
|
|
|
(hash<u16string>, hash<u32string>): Remove dependency on
|
|
|
|
|
_GLIBCXX_USE_C99_STDINT_TR1.
|
|
|
|
|
* include/bits/char_traits.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
|
|
|
|
(char_traits<char16_t>, char_traits<char32_t>): Remove dependency on
|
|
|
|
|
_GLIBCXX_USE_C99_STDINT_TR1. Use __UINT_LEAST16_TYPE__ and
|
|
|
|
|
__UINT_LEAST32_TYPE__ or make_unsigned when <stdint.h> is not usable.
|
|
|
|
|
* include/bits/codecvt.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
|
|
|
|
(codecvt<char16_t, char, mbstate_t>)
|
|
|
|
|
(codecvt<char32_t, char, mbstate_t>)
|
|
|
|
|
(codecvt_byname<char16_t, char, mbstate_t>)
|
|
|
|
|
(codecvt_byname<char32_t, char, mbstate_t>): Remove dependency
|
|
|
|
|
on _GLIBCXX_USE_C99_STDINT_TR1.
|
|
|
|
|
* include/bits/locale_facets.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
|
|
|
|
(_GLIBCXX_NUM_UNICODE_FACETS): Likewise.
|
|
|
|
|
* include/bits/stringfwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
|
|
|
|
(char_traits<char16_t>, char_traits<char32_t>)
|
|
|
|
|
(basic_string<char16_t>, basic_string<char32_t>): Remove dependency
|
|
|
|
|
on _GLIBCXX_USE_C99_STDINT_TR1.
|
|
|
|
|
* include/experimental/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
|
|
|
|
|
(u16string_view, u32string_view, hash<u16string_view>)
|
|
|
|
|
(hash<u32string_view>, operator""sv(const char16_t, size_t))
|
|
|
|
|
(operator""sv(const char32_t, size_t)): Likewise.
|
|
|
|
|
* include/ext/vstring.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
|
|
|
|
(hash<__u16vstring>, hash<__u32vstring>): Likewise.
|
|
|
|
|
* include/ext/vstring_fwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
|
|
|
|
(__u16vstring, __u16sso_string, __u16rc_string, __u32vstring)
|
|
|
|
|
(__u32sso_string, __u32rc_string): Likewise.
|
|
|
|
|
* include/std/codecvt [!_GLIBCXX_USE_C99_STDINT_TR1] (codecvt_mode)
|
|
|
|
|
(codecvt_utf8, codecvt_utf16, codecvt_utf8_utf16): Likewise.
|
|
|
|
|
* include/std/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
|
|
|
|
|
(u16string_view, u32string_view, hash<u16string_view>)
|
|
|
|
|
(hash<u32string_view>, operator""sv(const char16_t, size_t))
|
|
|
|
|
(operator""sv(const char32_t, size_t)): Likewise.
|
|
|
|
|
* src/c++11/codecvt.cc: Likewise.
|
|
|
|
|
* src/c++98/locale_init.cc: Likewise.
|
|
|
|
|
* src/c++98/localename.cc: Likewise.
|
|
|
|
|
|
Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1
By adding fallback definitions of std::intmax_t and std::uintmax_t it's
possible to define <ratio> without _GLIBCXX_USE_C99_STDINT_TR1. This in
turn allows most of <chrono> to be defined, which removes the dependency
on _GLIBCXX_USE_C99_STDINT_TR1 for all of the C++11 concurrency features.
The compiler defines __INTMAX_TYPE__ and __UINTMAX_TYPE__
unconditionally so it should be safe to rely on them.
* include/bits/atomic_futex.h [!_GLIBCXX_USE_C99_STDINT_TR1]
(__atomic_futex_unsigned_base): Remove dependency on
_GLIBCXX_USE_C99_STDINT_TR1 macro.
* include/bits/unique_lock.h [!_GLIBCXX_USE_C99_STDINT_TR1]
(unique_lock): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1.
* include/c_global/cstdint [!_GLIBCXX_USE_C99_STDINT_TR1] (intmax_t)
(uintmax_t): Define using predefined macros.
* include/std/chrono [!_GLIBCXX_USE_C99_STDINT_TR1] (duration)
(time_point, system_clock, high_resolution_clock, steady_clock): Remove
dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro.
(nanoseconds, microseconds, milliseconds, seconds, minutes, hours):
[!_GLIBCXX_USE_C99_STDINT_TR1]: Define using __INT64_TYPE__ or
long long when <stdint.h> is not usable.
* include/std/condition_variable [!_GLIBCXX_USE_C99_STDINT_TR1]
(condition_variable, condition_variable_any): Remove dependency on
_GLIBCXX_USE_C99_STDINT_TR1.
* include/std/future [!_GLIBCXX_USE_C99_STDINT_TR1] (future, promise)
(packaged_task, async): Likewise.
* include/std/mutex [!_GLIBCXX_USE_C99_STDINT_TR1] (recursive_mutex)
(timed_mutex, recursive_timed_mutex, try_lock, lock, scoped_lock)
(once_flag, call_once): Likewise.
* include/std/ratio [!_GLIBCXX_USE_C99_STDINT_TR1] (ratio): Likewise.
* include/std/shared_mutex [!_GLIBCXX_USE_C99_STDINT_TR1]
(shared_mutex, shared_timed_mutex, shared_lock): Likewise.
* include/std/thread [!_GLIBCXX_USE_C99_STDINT_TR1] (thread)
(this_thread::get_id, this_thread::yield, this_thread::sleep_for)
(this_thread::sleep_until): Likewise.
* src/c++11/chrono.cc: Remove dependency on
_GLIBCXX_USE_C99_STDINT_TR1 macro.
* src/c++11/condition_variable.cc: Likewise.
* src/c++11/futex.cc: Likewise.
* src/c++11/future.cc: Likewise.
* src/c++11/mutex.cc: Likewise.
* src/c++11/thread.cc: Likewise.
* testsuite/20_util/duration/literals/range_neg.cc: Adjust dg-error.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
From-SVN: r263001
2018-07-26 16:01:55 +02:00
|
|
|
|
* include/bits/atomic_futex.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
|
|
|
|
(__atomic_futex_unsigned_base): Remove dependency on
|
|
|
|
|
_GLIBCXX_USE_C99_STDINT_TR1 macro.
|
|
|
|
|
* include/bits/unique_lock.h [!_GLIBCXX_USE_C99_STDINT_TR1]
|
|
|
|
|
(unique_lock): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1.
|
|
|
|
|
* include/c_global/cstdint [!_GLIBCXX_USE_C99_STDINT_TR1] (intmax_t)
|
|
|
|
|
(uintmax_t): Define using predefined macros.
|
|
|
|
|
* include/std/chrono [!_GLIBCXX_USE_C99_STDINT_TR1] (duration)
|
|
|
|
|
(time_point, system_clock, high_resolution_clock, steady_clock): Remove
|
|
|
|
|
dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro.
|
|
|
|
|
(nanoseconds, microseconds, milliseconds, seconds, minutes, hours):
|
|
|
|
|
[!_GLIBCXX_USE_C99_STDINT_TR1]: Define using __INT64_TYPE__ or
|
|
|
|
|
long long when <stdint.h> is not usable.
|
|
|
|
|
* include/std/condition_variable [!_GLIBCXX_USE_C99_STDINT_TR1]
|
|
|
|
|
(condition_variable, condition_variable_any): Remove dependency on
|
|
|
|
|
_GLIBCXX_USE_C99_STDINT_TR1.
|
|
|
|
|
* include/std/future [!_GLIBCXX_USE_C99_STDINT_TR1] (future, promise)
|
|
|
|
|
(packaged_task, async): Likewise.
|
|
|
|
|
* include/std/mutex [!_GLIBCXX_USE_C99_STDINT_TR1] (recursive_mutex)
|
|
|
|
|
(timed_mutex, recursive_timed_mutex, try_lock, lock, scoped_lock)
|
|
|
|
|
(once_flag, call_once): Likewise.
|
|
|
|
|
* include/std/ratio [!_GLIBCXX_USE_C99_STDINT_TR1] (ratio): Likewise.
|
|
|
|
|
* include/std/shared_mutex [!_GLIBCXX_USE_C99_STDINT_TR1]
|
|
|
|
|
(shared_mutex, shared_timed_mutex, shared_lock): Likewise.
|
|
|
|
|
* include/std/thread [!_GLIBCXX_USE_C99_STDINT_TR1] (thread)
|
|
|
|
|
(this_thread::get_id, this_thread::yield, this_thread::sleep_for)
|
|
|
|
|
(this_thread::sleep_until): Likewise.
|
|
|
|
|
* src/c++11/chrono.cc: Remove dependency on
|
|
|
|
|
_GLIBCXX_USE_C99_STDINT_TR1 macro.
|
|
|
|
|
* src/c++11/condition_variable.cc: Likewise.
|
|
|
|
|
* src/c++11/futex.cc: Likewise.
|
|
|
|
|
* src/c++11/future.cc: Likewise.
|
|
|
|
|
* src/c++11/mutex.cc: Likewise.
|
|
|
|
|
* src/c++11/thread.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/duration/literals/range_neg.cc: Adjust dg-error.
|
|
|
|
|
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
|
|
|
|
|
|
2018-07-26 14:36:21 +02:00
|
|
|
|
2018-07-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/77691
|
|
|
|
|
* testsuite/experimental/memory_resource/new_delete_resource.cc:
|
|
|
|
|
xfail execution on 32-bit Solaris/x86.
|
|
|
|
|
|
2018-07-26 14:01:14 +02:00
|
|
|
|
2018-07-26 Marc Glisse <marc.glisse@inria.fr>
|
|
|
|
|
|
|
|
|
|
* include/bits/stl_vector.h (_Vector_impl_data::_M_copy_data): New.
|
|
|
|
|
(_Vector_impl_data::_M_swap_data): Use _M_copy_data.
|
|
|
|
|
(vector::_M_move_assign): Reorder the swaps.
|
|
|
|
|
|
2018-07-26 01:38:17 +02:00
|
|
|
|
2018-07-26 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/86676
|
|
|
|
|
* testsuite/20_util/monotonic_buffer_resource/release.cc: Request
|
|
|
|
|
same alignment for post-release allocation.
|
|
|
|
|
|
2018-07-25 12:40:12 +02:00
|
|
|
|
2018-07-25 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-07-25 22:23:07 +02:00
|
|
|
|
PR libstdc++/86676
|
|
|
|
|
* testsuite/20_util/monotonic_buffer_resource/release.cc: Allow for
|
|
|
|
|
buffer being misaligned and so returned pointer not being at start.
|
|
|
|
|
|
2018-07-25 19:24:49 +02:00
|
|
|
|
* include/experimental/memory_resource: Include <cstddef> header.
|
|
|
|
|
|
2018-07-25 13:01:39 +02:00
|
|
|
|
* acinclude.m4 (glibcxx_SUBDIRS): Add src/c++17.
|
|
|
|
|
* src/Makefile.am: Add comment.
|
|
|
|
|
* src/c++17/Makefile.in: Regenerate.
|
|
|
|
|
|
2018-07-25 12:40:12 +02:00
|
|
|
|
* include/Makefile.am: Add new <bits/unique_lock.h> header.
|
|
|
|
|
* include/Makefile.in: Regenerate.
|
|
|
|
|
* include/bits/std_mutex.h [!_GLIBCXX_USE_C99_STDINT_TR1] (mutex)
|
|
|
|
|
(lock_guard): Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
|
|
|
|
|
(unique_lock): Move definition to ...
|
|
|
|
|
* include/bits/unique_lock.h: New header.
|
|
|
|
|
[!_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock): Define unconditionally.
|
|
|
|
|
[_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock(mutex_type&, time_point))
|
|
|
|
|
(unique_lock(mutex_type&, duration), unique_lock::try_lock_until)
|
|
|
|
|
(unique_lock::try_lock_for): Define only when <chrono> is usable.
|
|
|
|
|
* include/std/condition_variable: Include <bits/unique_lock.h>.
|
|
|
|
|
* include/std/mutex: Likewise.
|
|
|
|
|
|
2018-07-24 15:03:11 +02:00
|
|
|
|
2018-07-24 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
Add initial version of C++17 <memory_resource> header
This is missing the synchronized_pool_resource and
unsynchronized_pool_resource classes but is otherwise complete.
This is a new implementation, not based on the existing code in
<experimental/memory_resource>, but memory_resource and
polymorphic_allocator ended up looking almost the same anyway.
The constant_init kluge in src/c++17/memory_resource.cc is apparently
due to Richard Smith and ensures that the objects are constructed during
constant initialiation phase and not destroyed (because the
constant_init destructor doesn't destroy the union member and the
storage is not reused).
* config/abi/pre/gnu.ver: Export new symbols.
* configure: Regenerate.
* include/Makefile.am: Add new <memory_resource> header.
* include/Makefile.in: Regenerate.
* include/precompiled/stdc++.h: Include <memory_resource> for C++17.
* include/std/memory_resource: New header.
(memory_resource, polymorphic_allocator, new_delete_resource)
(null_memory_resource, set_default_resource, get_default_resource)
(pool_options, monotonic_buffer_resource): Define.
* src/Makefile.am: Add c++17 directory.
* src/Makefile.in: Regenerate.
* src/c++11/Makefile.am: Fix comment.
* src/c++17/Makefile.am: Add makefile for new sub-directory.
* src/c++17/Makefile.in: Generate.
* src/c++17/memory_resource.cc: New.
(newdel_res_t, null_res_t, constant_init, newdel_res, null_res)
(default_res, new_delete_resource, null_memory_resource)
(set_default_resource, get_default_resource): Define.
* testsuite/20_util/memory_resource/1.cc: New test.
* testsuite/20_util/memory_resource/2.cc: New test.
* testsuite/20_util/monotonic_buffer_resource/1.cc: New test.
* testsuite/20_util/monotonic_buffer_resource/allocate.cc: New test.
* testsuite/20_util/monotonic_buffer_resource/deallocate.cc: New test.
* testsuite/20_util/monotonic_buffer_resource/release.cc: New test.
* testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
New test.
* testsuite/20_util/polymorphic_allocator/1.cc: New test.
* testsuite/20_util/polymorphic_allocator/resource.cc: New test.
* testsuite/20_util/polymorphic_allocator/select.cc: New test.
* testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
Define concrete memory resource for testing.
(__gnu_test::default_resource_mgr): Define RAII helper for changing
default resource.
From-SVN: r262953
2018-07-24 23:09:55 +02:00
|
|
|
|
* config/abi/pre/gnu.ver: Export new symbols.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* include/Makefile.am: Add new <memory_resource> header.
|
|
|
|
|
* include/Makefile.in: Regenerate.
|
|
|
|
|
* include/precompiled/stdc++.h: Include <memory_resource> for C++17.
|
|
|
|
|
* include/std/memory_resource: New header.
|
|
|
|
|
(memory_resource, polymorphic_allocator, new_delete_resource)
|
|
|
|
|
(null_memory_resource, set_default_resource, get_default_resource)
|
|
|
|
|
(pool_options, monotonic_buffer_resource): Define.
|
|
|
|
|
* src/Makefile.am: Add c++17 directory.
|
|
|
|
|
* src/Makefile.in: Regenerate.
|
|
|
|
|
* src/c++11/Makefile.am: Fix comment.
|
|
|
|
|
* src/c++17/Makefile.am: Add makefile for new sub-directory.
|
|
|
|
|
* src/c++17/Makefile.in: Generate.
|
|
|
|
|
* src/c++17/memory_resource.cc: New.
|
|
|
|
|
(newdel_res_t, null_res_t, constant_init, newdel_res, null_res)
|
|
|
|
|
(default_res, new_delete_resource, null_memory_resource)
|
|
|
|
|
(set_default_resource, get_default_resource): Define.
|
|
|
|
|
* testsuite/20_util/memory_resource/1.cc: New test.
|
|
|
|
|
* testsuite/20_util/memory_resource/2.cc: New test.
|
|
|
|
|
* testsuite/20_util/monotonic_buffer_resource/1.cc: New test.
|
|
|
|
|
* testsuite/20_util/monotonic_buffer_resource/allocate.cc: New test.
|
|
|
|
|
* testsuite/20_util/monotonic_buffer_resource/deallocate.cc: New test.
|
|
|
|
|
* testsuite/20_util/monotonic_buffer_resource/release.cc: New test.
|
|
|
|
|
* testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
|
|
|
|
|
New test.
|
|
|
|
|
* testsuite/20_util/polymorphic_allocator/1.cc: New test.
|
|
|
|
|
* testsuite/20_util/polymorphic_allocator/resource.cc: New test.
|
|
|
|
|
* testsuite/20_util/polymorphic_allocator/select.cc: New test.
|
|
|
|
|
* testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
|
|
|
|
|
Define concrete memory resource for testing.
|
|
|
|
|
(__gnu_test::default_resource_mgr): Define RAII helper for changing
|
|
|
|
|
default resource.
|
|
|
|
|
|
2018-07-24 22:49:10 +02:00
|
|
|
|
PR libstdc++/86658
|
|
|
|
|
* include/bits/stl_algobase.h (__niter_wrap<_Iterator>): Pass unused
|
|
|
|
|
parameter by reference, to avoid copying invalid iterators.
|
|
|
|
|
* testsuite/25_algorithms/copy/86658.cc: New test.
|
|
|
|
|
|
2018-07-24 15:51:50 +02:00
|
|
|
|
* include/std/bit (__countl_zero, __countr_zero, __popcount): Use
|
|
|
|
|
local variables for number of digits instead of type aliases.
|
|
|
|
|
(__log2p1): Remove redundant branch also checked in __countl_zero.
|
|
|
|
|
|
2018-07-24 15:03:25 +02:00
|
|
|
|
* include/bits/uses_allocator.h (__is_erased_or_convertible): Reorder
|
|
|
|
|
conditions. Add comments.
|
|
|
|
|
* testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error line.
|
|
|
|
|
* testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
|
|
|
|
|
|
|
|
|
|
* include/bits/uses_allocator.h (__is_erased_or_convertible): Remove.
|
|
|
|
|
(__uses_allocator_helper): Check conditions directly instead of
|
|
|
|
|
using __is_erased_or_convertible.
|
|
|
|
|
|
2018-07-24 15:03:20 +02:00
|
|
|
|
* include/experimental/memory_resource: Adjust comments and
|
|
|
|
|
whitespace.
|
|
|
|
|
(__resource_adaptor_imp): Add second template parameter for type of
|
|
|
|
|
memory resource base class.
|
|
|
|
|
(memory_resource): Define default constructor, destructor, copy
|
|
|
|
|
constructor and copy assignment operator as defaulted.
|
|
|
|
|
|
2018-07-24 15:03:11 +02:00
|
|
|
|
PR libstdc++/70966
|
|
|
|
|
* include/experimental/memory_resource (__get_default_resource): Use
|
|
|
|
|
placement new to create an object with dynamic storage duration.
|
|
|
|
|
|
2018-07-23 21:40:28 +02:00
|
|
|
|
2018-07-23 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/70940
|
|
|
|
|
* include/experimental/memory_resource
|
|
|
|
|
(__resource_adaptor_common::_AlignMgr::_M_unadjust): Add assertion.
|
|
|
|
|
(__resource_adaptor_common::__guaranteed_alignment): New helper to
|
|
|
|
|
give maximum alignment an allocator guarantees. Specialize for known
|
|
|
|
|
allocators using new and malloc.
|
|
|
|
|
(__resource_adaptor_imp::do_allocate): Use __guaranteed_alignment.
|
|
|
|
|
(__resource_adaptor_imp::do_deallocate): Likewise.
|
|
|
|
|
* testsuite/experimental/memory_resource/new_delete_resource.cc:
|
|
|
|
|
Check that new and delete are called with expected sizes.
|
|
|
|
|
|
2018-07-20 13:52:54 +02:00
|
|
|
|
2018-07-20 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/86595
|
|
|
|
|
* include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add
|
|
|
|
|
noexcept.
|
|
|
|
|
|
2018-07-20 13:24:55 +02:00
|
|
|
|
2018-07-20 Fangrui Song <maskray@google.com>
|
|
|
|
|
|
|
|
|
|
* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use
|
|
|
|
|
_GLIBCXX_VISIBILITY(default).
|
|
|
|
|
|
2018-07-20 13:24:38 +02:00
|
|
|
|
2018-07-20 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/86603
|
|
|
|
|
* include/std/version: Move __cpp_lib_list_remove_return_type macro.
|
|
|
|
|
|
2018-07-19 21:12:37 +02:00
|
|
|
|
2018-07-19 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/std/type_traits (__is_member_object_pointer_helper): Use
|
|
|
|
|
__not_<is_function<_Tp>>::type instead of integral_constant.
|
|
|
|
|
(__is_member_function_pointer_helper): Likewise for
|
|
|
|
|
is_function<_Tp>::type.
|
|
|
|
|
(is_compund): Likewise for __not_<is_fundamental<_Tp>>::type.
|
|
|
|
|
(__do_is_nt_destructible_impl): Use __bool_constant and reindent.
|
|
|
|
|
(is_trivially_constructible): Remove redundant use of
|
|
|
|
|
is_constructible.
|
|
|
|
|
(__is_trivially_copy_assignable_impl): Remove redundant use of
|
|
|
|
|
is_copy_assignable.
|
|
|
|
|
(__is_trivially_move_assignable_impl): Remove redundant use of
|
|
|
|
|
is_move_assignable.
|
|
|
|
|
(is_trivially_destructible): Use __bool_constant.
|
|
|
|
|
* testsuite/20_util/is_trivially_assignable/value.cc: Add some more
|
|
|
|
|
tests for scalar types.
|
|
|
|
|
|
2018-07-19 20:58:09 +02:00
|
|
|
|
2018-07-19 Glen Joseph Fernandes <glenjofe@gmail.com>
|
|
|
|
|
|
|
|
|
|
* include/bits/stl_algobase.h (__copy_move_a): Used
|
|
|
|
|
__is_trivially_copyable.
|
|
|
|
|
(__copy_move_backward_a): Likewise.
|
|
|
|
|
* testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
|
|
|
|
|
New test.
|
|
|
|
|
|
2018-07-17 15:16:51 +02:00
|
|
|
|
2018-07-17 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-07-17 15:18:47 +02:00
|
|
|
|
PR libstdc++/86450
|
|
|
|
|
* acinclude.m4 (GLIBCXX_CHECK_COMPILER_FEATURES): Don't define WERROR.
|
|
|
|
|
(GLIBCXX_EXPORT_FLAGS): Use -Wabi=2 instead of -Wabi.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* configure.ac: Change GLIBCXX_ENABLE_WERROR default to "no".
|
|
|
|
|
* doc/Makefile.in: Regenerate.
|
|
|
|
|
* fragment.am: Set WERROR_FLAG to -Werror instead of $(WERROR).
|
|
|
|
|
* include/Makefile.in: Regenerate.
|
|
|
|
|
* libsupc++/Makefile.in: Regenerate.
|
|
|
|
|
* po/Makefile.in: Regenerate.
|
|
|
|
|
* python/Makefile.in: Regenerate.
|
|
|
|
|
* src/Makefile.in: Regenerate.
|
|
|
|
|
* src/c++11/Makefile.in: Regenerate.
|
|
|
|
|
* src/c++11/debug.cc: Use diagnostic pragmas to suppress warnings
|
|
|
|
|
from -Wabi=2 that don't affect exported symbols.
|
|
|
|
|
* src/c++98/Makefile.in: Regenerate.
|
|
|
|
|
* src/filesystem/Makefile.in: Regenerate.
|
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
|
2018-07-17 15:16:51 +02:00
|
|
|
|
* src/c++11/compatibility-thread-c++0x.cc [_GLIBCXX_SHARED]
|
|
|
|
|
(_Async_state_common::_M_join): Simplify use of std::call_once and
|
|
|
|
|
corresponding explicit instantiation.
|
|
|
|
|
(_Maybe_wrap_member_pointer, _Bind_simple, _Bind_simple_helper)
|
|
|
|
|
(__bind_simple): Remove definitions and explicit instantiation that
|
|
|
|
|
are not required by exported symbols.
|
|
|
|
|
|
2018-07-16 19:13:41 +02:00
|
|
|
|
2018-07-16 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-07-16 19:42:20 +02:00
|
|
|
|
* scripts/create_testsuite_files: Fix typo in comment.
|
|
|
|
|
|
2018-07-16 19:13:41 +02:00
|
|
|
|
PR libstdc++/86537
|
|
|
|
|
* include/bits/shared_ptr.h (less<shared_ptr<_Tp>>): Remove
|
|
|
|
|
non-standard partial specialization.
|
|
|
|
|
* include/bits/shared_ptr_base.h (_Sp_less): Remove class definition.
|
|
|
|
|
(less<__shared_ptr<_Tp, _Lp>): Remove partial specialization.
|
|
|
|
|
* testsuite/20_util/shared_ptr/comparison/86537.cc: New test.
|
|
|
|
|
|
2018-07-16 09:58:01 +02:00
|
|
|
|
2018-07-16 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
|
|
|
|
|
* config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update.
|
|
|
|
|
* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
|
|
|
|
|
|
2018-07-06 19:02:33 +02:00
|
|
|
|
2018-07-06 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/debug/functions.h (__gnu_debug::__check_string): Move...
|
|
|
|
|
* include/debug/string (__gnu_debug::__check_string): ... here.
|
|
|
|
|
(_GLIBCXX_DEBUG_VERIFY_STR_COND_AT): New.
|
|
|
|
|
(__glibcxx_check_string_n_constructor): New.
|
|
|
|
|
(__gnu_debug::basic_string<>(const _CharT*, size_type, const _Alloc&)):
|
|
|
|
|
Use latter.
|
|
|
|
|
(__glibcxx_check_string_constructor): New.
|
|
|
|
|
(__gnu_debug::basic_string<>(const _CharT*, const _Alloc&)):
|
|
|
|
|
Use latter.
|
|
|
|
|
* testsuite/21_strings/basic_string/debug/1_neg.cc: New.
|
|
|
|
|
* testsuite/21_strings/basic_string/debug/2_neg.cc: New.
|
|
|
|
|
|
2018-07-06 12:20:38 +02:00
|
|
|
|
2018-07-06 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-07-06 16:16:13 +02:00
|
|
|
|
PR libstdc++/84928 use std::move in <numeric> algorithms
|
|
|
|
|
* include/bits/stl_numeric.h (_GLIBCXX_MOVE_IF_20): Define macro to
|
|
|
|
|
conditionally move, according to __cplusplus value.
|
|
|
|
|
(accumulate, inner_product, partial_sum, adjacent_difference): Use
|
|
|
|
|
_GLIBCXX_MOVE_IF_20.
|
|
|
|
|
* testsuite/26_numerics/accumulate/lwg2055.cc: New test.
|
|
|
|
|
* testsuite/26_numerics/adjacent_difference/lwg2055.cc: New test.
|
|
|
|
|
* testsuite/26_numerics/inner_product/lwg2055.cc: New test.
|
|
|
|
|
* testsuite/26_numerics/partial_sum/lwg2055.cc: New test.
|
|
|
|
|
|
2018-07-06 14:52:41 +02:00
|
|
|
|
* config/abi/pre/gnu.ver: Use wildcards to combine related patterns.
|
|
|
|
|
|
2018-07-06 14:39:02 +02:00
|
|
|
|
P0935R0 Eradicating unnecessarily explicit default constructors
|
|
|
|
|
* config/abi/pre/gnu.ver: Tighten existing patterns and export new
|
|
|
|
|
default constructor symbols.
|
|
|
|
|
* include/std/sstream (basic_stringbuf, basic_istringstream)
|
|
|
|
|
(basic_ostringstream, basic_stringstream): Remove default arguments
|
|
|
|
|
from explicit constructors taking ios_base::openmode and add separate
|
|
|
|
|
non-explicit default constructors.
|
|
|
|
|
* testsuite/27_io/basic_istringstream/cons/default.cc: New.
|
|
|
|
|
* testsuite/27_io/basic_ostringstream/cons/default.cc: New.
|
|
|
|
|
* testsuite/27_io/basic_stringstream/cons/default.cc: New.
|
|
|
|
|
* testsuite/27_io/basic_stringbuf/cons/char/default.cc: New.
|
|
|
|
|
* testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: New.
|
|
|
|
|
|
2018-07-06 12:20:38 +02:00
|
|
|
|
* include/std/variant (__accepted_index): Use void_t.
|
|
|
|
|
|
2018-07-05 17:56:06 +02:00
|
|
|
|
2018-07-05 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-07-05 23:29:51 +02:00
|
|
|
|
PR libstdc++/85831
|
|
|
|
|
* config/abi/pre/gnu.ver: Export move constructors and move
|
|
|
|
|
assignment operators for std::logic_error and std::runtime_error.
|
|
|
|
|
* include/std/stdexcept: Use _GLIBCXX_NOTHROW instead of
|
|
|
|
|
_GLIBCXX_USE_NOEXCEPT.
|
|
|
|
|
(logic_error, runtime_error): Declare move constructors and move
|
|
|
|
|
assignment operators. When not declared already, define copy
|
|
|
|
|
constructors and copy assignment operators as explicit-defaulted.
|
|
|
|
|
(domain_error, invalid_argument, length_error, out_of_range)
|
|
|
|
|
(overflow_error, underflow_error): Define move constructors and move
|
|
|
|
|
assignment operators as explicitly-defaulted.
|
|
|
|
|
* libsupc++/exception.h (exception): Likewise.
|
|
|
|
|
* src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Define
|
|
|
|
|
move constructors and move assignment operators as defaulted.
|
|
|
|
|
* testsuite/19_diagnostics/stdexcept.cc: Check that constructors and
|
|
|
|
|
assignment operators are defined.
|
|
|
|
|
|
2018-07-05 19:03:14 +02:00
|
|
|
|
* testsuite/21_strings/basic_string/cons/char/deduction.cc: XFAIL for
|
|
|
|
|
COW strings.
|
|
|
|
|
* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/21_strings/basic_string/requirements/
|
|
|
|
|
explicit_instantiation/debug.cc: Likewise.
|
|
|
|
|
|
2018-07-05 19:03:05 +02:00
|
|
|
|
PR libstdc++/58265
|
|
|
|
|
* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
|
|
|
|
|
(basic_string::assign(basic_string&&)): Add conditional noexcept
|
|
|
|
|
depending on the allocator's is_always_equal property (LWG 2063).
|
|
|
|
|
* testsuite/21_strings/basic_string/modifiers/assign/char/
|
|
|
|
|
move_assign.cc: Check for non-throwing exception specification.
|
|
|
|
|
* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
|
|
|
|
|
move_assign.cc: Likewise.
|
|
|
|
|
|
2018-07-05 17:56:06 +02:00
|
|
|
|
PR libstdc++/58265
|
|
|
|
|
* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
|
|
|
|
|
[_GLIBCXX_FULLY_DYNAMIC_STRING==0] (basic_string::basic_string()):
|
|
|
|
|
Add GLIBCXX_NOEXCEPT.
|
|
|
|
|
(basic_string::operator=(basic_string&&)): Add _GLIBCXX_NOEXCEPT_IF
|
|
|
|
|
to depend on the allocator's is_always_equal property (LWG 2063).
|
|
|
|
|
(basic_string::swap(basic_string&)): Likewise.
|
|
|
|
|
* include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]
|
|
|
|
|
(basic_string::swap(basic_string&)): Likewise.
|
|
|
|
|
* testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
|
|
|
|
|
Check is_nothrow_move_assignable.
|
|
|
|
|
* testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
|
|
|
|
|
Check is_nothrow_move_assignable.
|
|
|
|
|
* testsuite/21_strings/basic_string/cons/char/
|
|
|
|
|
noexcept_move_construct.cc: Likewise.
|
|
|
|
|
* testsuite/21_strings/basic_string/cons/wchar_t/
|
|
|
|
|
noexcept_move_construct.cc: Likewise.
|
|
|
|
|
|
2018-07-04 20:16:26 +02:00
|
|
|
|
2018-07-04 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
P0646R1 Improving the Return Value of Erase-Like Algorithms I
In C++2a the remove, remove_if and unique members of std::list and
std::forward_list have been changed to return the number of elements
removed. This is an ABI change for the remove members and the
non-template unique members, so an abi-tag is used to give those symbols
new mangled names in C++2a mode. For the function templates the return
type is part of the mangled name so no abi-tag is needed.
* include/bits/forward_list.h (__cpp_lib_list_remove_return_type):
Define.
(forward_list::__remove_return_type): Define typedef as size_type or
void, according to __cplusplus value.
(_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
empty, according to __cplusplus value.
(forward_list::remove, forward_list::unique): Use typedef and macro
to change return type and add abi-tag for C++2a.
(forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
typedef to change return type for C++2a.
* include/bits/forward_list.tcc (_GLIBCXX20_ONLY): Define macro.
(forward_list::remove, forward_list::remove_if<Pred>)
(forward_list::unique<BinPred>): Return number of removed elements
for C++2a.
* include/bits/list.tcc (_GLIBCXX20_ONLY): Define macro.
(list::remove, list::unique, list::remove_if<Predicate>)
(list::unique<BinaryPredicate>): Return number of removed elements
for C++2a.
* include/bits/stl_list.h (__cpp_lib_list_remove_return_type): Define.
(list::__remove_return_type): Define typedef as size_type or
void, according to __cplusplus value.
(_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
empty, according to __cplusplus value.
(list::remove, list::unique): Use typedef and macro to change return
type and add abi-tag for C++2a.
(list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use
typedef to change return type for C++2a.
* include/std/version (__cpp_lib_list_remove_return_type): Define.
* testsuite/23_containers/forward_list/operations/
remove_cxx20_return.cc: New.
* testsuite/23_containers/forward_list/operations/
unique_cxx20_return.cc: New.
From-SVN: r262423
2018-07-04 22:15:01 +02:00
|
|
|
|
P0646R1 Improving the Return Value of Erase-Like Algorithms I
|
|
|
|
|
* include/bits/forward_list.h (__cpp_lib_list_remove_return_type):
|
|
|
|
|
Define.
|
|
|
|
|
(forward_list::__remove_return_type): Define typedef as size_type or
|
|
|
|
|
void, according to __cplusplus value.
|
|
|
|
|
(_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
|
|
|
|
|
empty, according to __cplusplus value.
|
|
|
|
|
(forward_list::remove, forward_list::unique): Use typedef and macro
|
|
|
|
|
to change return type and add abi-tag for C++2a.
|
|
|
|
|
(forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
|
|
|
|
|
typedef to change return type for C++2a.
|
|
|
|
|
* include/bits/forward_list.tcc (_GLIBCXX20_ONLY): Define macro.
|
|
|
|
|
(forward_list::remove, forward_list::remove_if<Pred>)
|
|
|
|
|
(forward_list::unique<BinPred>): Return number of removed elements
|
|
|
|
|
for C++2a.
|
|
|
|
|
* include/bits/list.tcc (_GLIBCXX20_ONLY): Define macro.
|
|
|
|
|
(list::remove, list::unique, list::remove_if<Predicate>)
|
|
|
|
|
(list::unique<BinaryPredicate>): Return number of removed elements
|
|
|
|
|
for C++2a.
|
|
|
|
|
* include/bits/stl_list.h (__cpp_lib_list_remove_return_type): Define.
|
|
|
|
|
(list::__remove_return_type): Define typedef as size_type or
|
|
|
|
|
void, according to __cplusplus value.
|
|
|
|
|
(_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
|
|
|
|
|
empty, according to __cplusplus value.
|
|
|
|
|
(list::remove, list::unique): Use typedef and macro to change return
|
|
|
|
|
type and add abi-tag for C++2a.
|
|
|
|
|
(list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use
|
|
|
|
|
typedef to change return type for C++2a.
|
|
|
|
|
* include/std/version (__cpp_lib_list_remove_return_type): Define.
|
|
|
|
|
* testsuite/23_containers/forward_list/operations/
|
|
|
|
|
remove_cxx20_return.cc: New.
|
|
|
|
|
* testsuite/23_containers/forward_list/operations/
|
|
|
|
|
unique_cxx20_return.cc: New.
|
|
|
|
|
|
2018-07-04 20:16:26 +02:00
|
|
|
|
P0458R2 Checking for Existence of an Element in Associative Containers
|
|
|
|
|
* include/bits/stl_map.h (map::contains): Add for C++2a.
|
|
|
|
|
* include/bits/stl_multimap.h (multimap::contains): Likewise.
|
|
|
|
|
* include/bits/stl_multiset.h (multiset::contains): Likewise.
|
|
|
|
|
* include/bits/stl_set.h (set::contains): Likewise.
|
|
|
|
|
* include/bits/stl_tree.h (__has_is_transparent_t): Define alias.
|
|
|
|
|
(_Rb_tree::_M_find_tr, _Rb_tree::_M_count_tr)
|
|
|
|
|
(_Rb_tree::_M_lower_bound_tr, _Rb_tree::_M_upper_bound_tr)
|
|
|
|
|
(_Rb_tree::_M_equal_range_tr): Use __has_is_transparent_t.
|
|
|
|
|
* include/bits/unordered_map.h (unordered_map::contains)
|
|
|
|
|
(unordered_multimap::contains): Add for C++2a.
|
|
|
|
|
* include/bits/unordered_set.h (unordered_set::contains)
|
|
|
|
|
(unordered_multiset::contains): Likewise.
|
|
|
|
|
* testsuite/23_containers/map/operations/contains.cc: New.
|
|
|
|
|
* testsuite/23_containers/multimap/operations/contains.cc: New.
|
|
|
|
|
* testsuite/23_containers/multiset/operations/contains.cc: New.
|
|
|
|
|
* testsuite/23_containers/set/operations/contains.cc: New.
|
|
|
|
|
* testsuite/23_containers/unordered_map/operations/contains.cc: New.
|
|
|
|
|
* testsuite/23_containers/unordered_multimap/operations/contains.cc:
|
|
|
|
|
New.
|
|
|
|
|
* testsuite/23_containers/unordered_multiset/operations/contains.cc:
|
|
|
|
|
New.
|
|
|
|
|
* testsuite/23_containers/unordered_set/operations/contains.cc: New.
|
|
|
|
|
|
2018-07-05 06:57:52 +02:00
|
|
|
|
2018-07-04 François Dumont <fdumont@gcc.gnu.org>
|
2018-07-04 20:13:11 +02:00
|
|
|
|
|
2018-07-05 06:57:52 +02:00
|
|
|
|
PR libstdc++/86272
|
2018-07-04 20:13:11 +02:00
|
|
|
|
* include/debug/string
|
|
|
|
|
(__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)):
|
|
|
|
|
Use __glibcxx_check_insert_range.
|
|
|
|
|
* 21_strings/basic_string/cons/char/1.cc: Adapt test to use
|
|
|
|
|
__gnu_debug::string when _GLIBCXX_DEBUG.
|
|
|
|
|
* 21_strings/basic_string/init-list.cc: Likewise.
|
|
|
|
|
* 21_strings/basic_string/modifiers/insert/char/1.cc: Likewise.
|
|
|
|
|
* 21_strings/basic_string/modifiers/insert/char/2.cc: Likewise.
|
|
|
|
|
* 21_strings/basic_string/modifiers/insert/char/83328.cc: Likewise.
|
|
|
|
|
* 21_strings/basic_string/types/1.cc: Likewise.
|
|
|
|
|
|
2018-07-04 18:56:21 +02:00
|
|
|
|
2018-07-04 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/25_algorithms/make_heap/complexity.cc: Require effective
|
|
|
|
|
target for std::random_device.
|
|
|
|
|
* testsuite/26_numerics/random/random_device/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/algorithm/sample-2.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/algorithm/shuffle.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/random/randint.cc: Likewise.
|
|
|
|
|
* testsuite/lib/libstdc++.exp
|
|
|
|
|
(check_effective_target_random_device): New proc.
|
|
|
|
|
|
2018-07-04 16:31:56 +02:00
|
|
|
|
2018-07-04 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/std/bit (__rotl, __rotr): Fix for non-power of two sizes.
|
|
|
|
|
|
2018-07-04 10:07:23 +02:00
|
|
|
|
2018-07-04 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-07-04 11:03:18 +02:00
|
|
|
|
PR libstdc++/86398
|
|
|
|
|
* include/std/type_traits (is_trivially_constructible): Check
|
|
|
|
|
is_constructible before __is_trivially_constructible.
|
|
|
|
|
* testsuite/20_util/is_trivially_constructible/value.cc: Add more
|
|
|
|
|
tests, including negative cases.
|
|
|
|
|
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use
|
|
|
|
|
zero for dg-error lineno.
|
|
|
|
|
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2018-07-04 10:07:23 +02:00
|
|
|
|
* include/std/bit (__rotl, __rotr): Avoid branch.
|
|
|
|
|
(_If_is_unsigned_integer): Use remove_cv_t.
|
|
|
|
|
* testsuite/26_numerics/bit/bitops.count/popcount.cc: New.
|
|
|
|
|
|
2018-07-03 23:04:37 +02:00
|
|
|
|
2018-07-03 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
P0556R3 Integral power-of-2 operations, P0553R2 Bit operations
P0553R2 is not in the C++2a working draft yet, but is likely to be
approved soon. Neither proposal supports std::byte but this adds
overloads of each function for std::byte, assuming that will also get
added.
* include/Makefile.am: Add new header.
* include/Makefile.in: Regenerate.
* include/precompiled/stdc++.h: Include new header.
* include/std/bit: New header.
(__rotl, __rotr, __countl_zero, __countl_one, __countr_zero)
(__countr_one, __popcount, __ispow2, __ceil2, __floor2, __log2p1):
Define for C++14.
[!__STRICT_ANSI__] (rotl, rotr, countl_zero, countl_one, countr_zero)
(countr_one, popcount): Define for C++2a. Also overload for std::byte.
(ispow2, ceil2, floor2, log2p1): Define for C++2a.
[!__STRICT_ANSI__] (ispow2, ceil2, floor2, log2p1): Overload for
std::byte.
* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: New.
* testsuite/26_numerics/bit/bit.pow.two/floor2.cc: New.
* testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: New.
* testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: New.
* testsuite/26_numerics/bit/bitops.rot/rotl.cc: New.
* testsuite/26_numerics/bit/bitops.rot/rotr.cc: New.
* testsuite/26_numerics/bit/bitops.count/countl_one.cc: New.
* testsuite/26_numerics/bit/bitops.count/countl_zero.cc: New.
* testsuite/26_numerics/bit/bitops.count/countr_one.cc: New.
* testsuite/26_numerics/bit/bitops.count/countr_zero.cc: New.
From-SVN: r262360
2018-07-03 23:04:45 +02:00
|
|
|
|
P0556R3 Integral power-of-2 operations, P0553R2 Bit operations
|
|
|
|
|
* include/Makefile.am: Add new header.
|
|
|
|
|
* include/Makefile.in: Regenerate.
|
|
|
|
|
* include/precompiled/stdc++.h: Include new header.
|
|
|
|
|
* include/std/bit: New header.
|
|
|
|
|
(__rotl, __rotr, __countl_zero, __countl_one, __countr_zero)
|
|
|
|
|
(__countr_one, __popcount, __ispow2, __ceil2, __floor2, __log2p1):
|
|
|
|
|
Define for C++14.
|
|
|
|
|
[!__STRICT_ANSI__] (rotl, rotr, countl_zero, countl_one, countr_zero)
|
|
|
|
|
(countr_one, popcount): Define for C++2a. Also overload for std::byte.
|
|
|
|
|
(ispow2, ceil2, floor2, log2p1): Define for C++2a.
|
|
|
|
|
[!__STRICT_ANSI__] (ispow2, ceil2, floor2, log2p1): Overload for
|
|
|
|
|
std::byte.
|
|
|
|
|
* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: New.
|
|
|
|
|
* testsuite/26_numerics/bit/bit.pow.two/floor2.cc: New.
|
|
|
|
|
* testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: New.
|
|
|
|
|
* testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: New.
|
|
|
|
|
* testsuite/26_numerics/bit/bitops.rot/rotl.cc: New.
|
|
|
|
|
* testsuite/26_numerics/bit/bitops.rot/rotr.cc: New.
|
|
|
|
|
* testsuite/26_numerics/bit/bitops.count/countl_one.cc: New.
|
|
|
|
|
* testsuite/26_numerics/bit/bitops.count/countl_zero.cc: New.
|
|
|
|
|
* testsuite/26_numerics/bit/bitops.count/countr_one.cc: New.
|
|
|
|
|
* testsuite/26_numerics/bit/bitops.count/countr_zero.cc: New.
|
|
|
|
|
|
2018-07-03 23:04:37 +02:00
|
|
|
|
* include/bits/alloc_traits.h: Remove redundant preprocessor
|
|
|
|
|
condition.
|
|
|
|
|
|
stl_algobase.h (__niter_wrap): New.
2018-07-03 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_algobase.h (__niter_wrap): New.
(__copy_move_a2(_II, _II, _OI)): Use latter.
(__copy_move_backward_a2(_BI1, _BI1, _BI2)): Likewise.
(fill_n(_OI, _Size, const _Tp&)): Likewise.
(equal(_II1, _II1, _II2)): Use __glibcxx_requires_can_increment.
* include/debug/stl_iterator.h
(std::__niter_base(const __gnu_cxx::_Safe_iterator<
__gnu_cxx::__normal_iterator<>, _Sequence>&)): New declaration.
* include/debug/vector (__niter_base(const __gnu_cxx::_Safe_iterator<
__gnu_cxx::__normal_iterator<>, _Sequence>&)): New.
From-SVN: r262349
2018-07-03 17:50:12 +02:00
|
|
|
|
2018-07-03 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/bits/stl_algobase.h (__niter_wrap): New.
|
|
|
|
|
(__copy_move_a2(_II, _II, _OI)): Use latter.
|
|
|
|
|
(__copy_move_backward_a2(_BI1, _BI1, _BI2)): Likewise.
|
|
|
|
|
(fill_n(_OI, _Size, const _Tp&)): Likewise.
|
|
|
|
|
(equal(_II1, _II1, _II2)): Use __glibcxx_requires_can_increment.
|
|
|
|
|
* include/debug/stl_iterator.h
|
|
|
|
|
(std::__niter_base(const __gnu_cxx::_Safe_iterator<
|
|
|
|
|
__gnu_cxx::__normal_iterator<>, _Sequence>&)): New declaration.
|
|
|
|
|
* include/debug/vector (__niter_base(const __gnu_cxx::_Safe_iterator<
|
|
|
|
|
__gnu_cxx::__normal_iterator<>, _Sequence>&)): New.
|
|
|
|
|
|
2018-07-02 22:31:11 +02:00
|
|
|
|
2018-07-02 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-07-03 00:09:25 +02:00
|
|
|
|
P0758R1 Implicit conversion traits
|
|
|
|
|
* include/std/type_traits [__cplusplus > 201703]
|
|
|
|
|
(__is_convertible_helper::__is_nothrow_type): Define new member.
|
|
|
|
|
(__is_convertible_helper<_From, _To, false>::__test_aux1): Add
|
|
|
|
|
noexcept.
|
|
|
|
|
(__is_convertible_helper<_From, _To, false>::__test_nothrow)
|
|
|
|
|
(__is_convertible_helper<_From, _To, false>::__is_nothrow_type): Add
|
|
|
|
|
new members.
|
|
|
|
|
(is_nothrow_convertible, is_nothrow_convertible_v): Define for C++2a.
|
|
|
|
|
* testsuite/20_util/is_nothrow_convertible/value.cc: New.
|
|
|
|
|
* testsuite/20_util/is_nothrow_convertible/requirements/
|
|
|
|
|
explicit_instantiation.cc: New.
|
|
|
|
|
* testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
|
|
|
|
|
New.
|
|
|
|
|
|
2018-07-02 23:05:08 +02:00
|
|
|
|
P0887R1 The identity metafunction
|
|
|
|
|
* include/std/type_traits (type_identity, type_identity_t): Define
|
|
|
|
|
for C++2a.
|
|
|
|
|
* testsuite/20_util/type_identity/requirements/alias_decl.cc: New.
|
|
|
|
|
* testsuite/20_util/type_identity/requirements/
|
|
|
|
|
explicit_instantiation.cc:New.
|
|
|
|
|
* testsuite/20_util/type_identity/requirements/typedefs.cc: New.
|
|
|
|
|
|
2018-07-02 22:31:11 +02:00
|
|
|
|
* include/bits/regex.h (sub_match::operator string_type): Call str().
|
|
|
|
|
(sub_match::compare): Use _M_str() instead of str().
|
|
|
|
|
(sub_match::_M_compare): New public function.
|
|
|
|
|
(sub_match::__string_view): New helper type.
|
|
|
|
|
(sub_match::_M_str): New overloaded functions to avoid creating a
|
|
|
|
|
string_type object when not needed.
|
|
|
|
|
(operator==, operator!=, operator<, operator>, operator<=, operator>=):
|
|
|
|
|
Use sub_match::_M_compare instead of creating string_type objects.
|
|
|
|
|
Fix Doxygen comments.
|
|
|
|
|
* include/bits/regex_compiler.h (__has_contiguous_iter): Remove.
|
|
|
|
|
(__is_contiguous_normal_iter): Rename to __is_contiguous_iter and
|
|
|
|
|
simplify.
|
|
|
|
|
(__enable_if_contiguous_iter, __disable_if_contiguous_iter): Use
|
|
|
|
|
__enable_if_t.
|
|
|
|
|
* include/std/type_traits (__enable_if_t): Define for C++11.
|
|
|
|
|
* testsuite/28_regex/sub_match/compare.cc: New.
|
|
|
|
|
* testsuite/util/testsuite_iterators.h (remove_cv): Add transformation
|
|
|
|
|
trait.
|
|
|
|
|
(input_iterator_wrapper): Use remove_cv for value_type argument of
|
|
|
|
|
std::iterator base class.
|
|
|
|
|
|
2018-06-29 11:54:07 +02:00
|
|
|
|
2018-06-29 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc:
|
|
|
|
|
Add whitespace to dejagnu directive.
|
|
|
|
|
* testsuite/23_containers/array/element_access/at_neg.cc: Likewise.
|
|
|
|
|
|
stl_vector.h (struct _Vector_base<>::_Vector_impl_data): New.
2018-06-27 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_vector.h
(struct _Vector_base<>::_Vector_impl_data): New.
(struct _Vector_base<>::_Vector_impl): Inherit from latter.
(_Vector_base<>::_Vector_impl::_M_swap_data): Move...
(_Vector_base<>::_Vector_impl_data::_M_swap_data): ...here.
(_Vector_base<>::_Vector_impl()): Add noexcept qualification.
(_Vector_base<>::_Vector_impl(_Vector_impl&&)): New.
(_Vector_base<>::_Vector_impl(_Tp_alloc_type&&, _Vector_impl&&)): New.
(_Vector_base(const allocator_type&, _Vector_base&&)): New, use latter.
(_Vector_base()): Default.
(_Vector_base(_Vector_base&&)): Default.
(_Vector_base(size_t)) [_GLIBCXX_INLINE_VERSION]: Delete.
(_Vector_base(_Tp_alloc_type&&)) [_GLIBCXX_INLINE_VERSION]: Delete.
(_Vector_base::_M_create_storage(size_t)): Make protected.
(vector()): Default.
(vector(vector&&)): Default.
(vector(vector&&, const allocator_type&, true_type)): New.
(vector(vector&&, const allocator_type&, false_type)): New.
(vector(vector&&, const allocator_type&)): Use latters.
(vector(_InputIte, _InputIte, const allocator_type&)): Call
_M_range_initialize directly.
* include/debug/vector
(vector(vector&&, const allocator_type&)): Add noexcept qualification.
* testsuite/23_containers/vector/allocator/default_init.cc: New.
* testsuite/23_containers/vector/cons/noexcept_move_construct.cc: Add
static assertions.
From-SVN: r262194
2018-06-27 22:23:20 +02:00
|
|
|
|
2018-06-27 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/bits/stl_vector.h
|
|
|
|
|
(struct _Vector_base<>::_Vector_impl_data): New.
|
|
|
|
|
(struct _Vector_base<>::_Vector_impl): Inherit from latter.
|
|
|
|
|
(_Vector_base<>::_Vector_impl::_M_swap_data): Move...
|
|
|
|
|
(_Vector_base<>::_Vector_impl_data::_M_swap_data): ...here.
|
|
|
|
|
(_Vector_base<>::_Vector_impl()): Add noexcept qualification.
|
|
|
|
|
(_Vector_base<>::_Vector_impl(_Vector_impl&&)): New.
|
|
|
|
|
(_Vector_base<>::_Vector_impl(_Tp_alloc_type&&, _Vector_impl&&)): New.
|
|
|
|
|
(_Vector_base(const allocator_type&, _Vector_base&&)): New, use latter.
|
|
|
|
|
(_Vector_base()): Default.
|
|
|
|
|
(_Vector_base(_Vector_base&&)): Default.
|
|
|
|
|
(_Vector_base(size_t)) [_GLIBCXX_INLINE_VERSION]: Delete.
|
|
|
|
|
(_Vector_base(_Tp_alloc_type&&)) [_GLIBCXX_INLINE_VERSION]: Delete.
|
|
|
|
|
(_Vector_base::_M_create_storage(size_t)): Make protected.
|
|
|
|
|
(vector()): Default.
|
|
|
|
|
(vector(vector&&)): Default.
|
|
|
|
|
(vector(vector&&, const allocator_type&, true_type)): New.
|
|
|
|
|
(vector(vector&&, const allocator_type&, false_type)): New.
|
|
|
|
|
(vector(vector&&, const allocator_type&)): Use latters.
|
|
|
|
|
(vector(_InputIte, _InputIte, const allocator_type&)): Call
|
|
|
|
|
_M_range_initialize directly.
|
|
|
|
|
* include/debug/vector
|
|
|
|
|
(vector(vector&&, const allocator_type&)): Add noexcept qualification.
|
|
|
|
|
* testsuite/23_containers/vector/allocator/default_init.cc: New.
|
|
|
|
|
* testsuite/23_containers/vector/cons/noexcept_move_construct.cc: Add
|
|
|
|
|
static assertions.
|
|
|
|
|
|
2018-06-27 02:11:53 +02:00
|
|
|
|
2018-06-27 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-06-27 12:30:52 +02:00
|
|
|
|
* include/bits/cpp_type_traits.h [__cplusplus >= 201703]
|
|
|
|
|
(__is_byte<byte>): Define specialization for std::byte.
|
|
|
|
|
|
2018-06-27 02:11:53 +02:00
|
|
|
|
PR libstdc++/86138
|
|
|
|
|
* include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0]
|
|
|
|
|
Declare explicit instantiations of COW empty reps and I/O functions.
|
|
|
|
|
|
2018-06-26 21:17:08 +02:00
|
|
|
|
2018-06-26 David Edelsohn <dje.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/experimental/algorithm/sample-2.cc: Add TLS DejaGNU
|
|
|
|
|
directives.
|
|
|
|
|
* testsuite/experimental/algorithm/shuffle.cc: Likewise.
|
|
|
|
|
|
2018-06-26 14:24:47 +02:00
|
|
|
|
2018-06-26 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/bits/regex.tcc (regex_iterator::operator==): Add missing
|
|
|
|
|
noexcept.
|
|
|
|
|
|
2018-06-25 18:23:49 +02:00
|
|
|
|
2018-06-25 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-06-25 23:03:49 +02:00
|
|
|
|
PR libstdc++/86112
|
|
|
|
|
* python/libstdcxx/v6/printers.py (add_one_template_type_printer):
|
|
|
|
|
Replace dict comprehension.
|
|
|
|
|
|
2018-06-25 22:36:51 +02:00
|
|
|
|
PR libstdc++/81092
|
|
|
|
|
* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
|
|
|
|
|
|
2018-06-25 18:46:33 +02:00
|
|
|
|
PR libstdc++/86292
|
|
|
|
|
* include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
|
|
|
|
|
Add try-catch block.
|
|
|
|
|
* testsuite/23_containers/vector/cons/86292.cc: New.
|
|
|
|
|
|
2018-06-25 18:42:28 +02:00
|
|
|
|
* doc/xml/manual/status_cxx2017.xml: Document N4531 status.
|
|
|
|
|
|
2018-06-25 18:23:49 +02:00
|
|
|
|
* include/experimental/algorithm (sample, shuffle): Add new overloads
|
|
|
|
|
using per-thread random number engine.
|
|
|
|
|
* testsuite/experimental/algorithm/sample.cc: Simpify and reduce
|
|
|
|
|
dependencies by using __gnu_test::test_container.
|
|
|
|
|
* testsuite/experimental/algorithm/sample-2.cc: New.
|
|
|
|
|
* testsuite/experimental/algorithm/shuffle.cc: New.
|
|
|
|
|
|
2018-06-22 01:29:01 +02:00
|
|
|
|
2018-06-22 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-06-22 16:19:12 +02:00
|
|
|
|
* config/abi/pre/gnu.ver: Fix __cxx11::basic_string patterns for
|
|
|
|
|
different size_t mangling on 32-bit targets.
|
|
|
|
|
|
2018-06-22 15:05:20 +02:00
|
|
|
|
PR libstdc++/86280
|
|
|
|
|
* include/experimental/memory_resource
|
|
|
|
|
(__resource_adaptor_common::_AlignMgr::_M_token_size): Use type large
|
|
|
|
|
enough for result of left shift.
|
|
|
|
|
|
2018-06-22 01:29:01 +02:00
|
|
|
|
PR libstdc++/86138
|
|
|
|
|
* include/bits/basic_string.tcc:
|
|
|
|
|
[__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
|
|
|
|
|
(basic_string<char>::_Rep::_S_empty_rep_storage)
|
|
|
|
|
(basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
|
|
|
|
|
instantiation declarations.
|
|
|
|
|
[__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
|
|
|
|
|
explicit instantiation declarations.
|
|
|
|
|
* testsuite/21_strings/basic_string/cons/char/86138.cc: New.
|
|
|
|
|
* testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.
|
|
|
|
|
|
2018-06-21 16:01:11 +02:00
|
|
|
|
2018-06-21 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
PR libstdc++/83328 add correct basic_string::insert for initializer_list
The SSO basic_string has a non-standard insert(iterator, initializer_list)
overload, from a C++0x draft. This adds the correct overload, while also
preserving the old one so that the old symbol is still exported from the
library.
The COW basic_string doesn't have any of the C++11 changes to the insert
overloads (they all still have non-const iterator parameters and the
ones that should return an iterator still return void). This doesn't
make any change to the COW string.
PR libstdc++/83328
* acinclude.m4 (libtool_VERSION): Bump to 6:26:0.
* config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 and export new symbol.
* configure: Regenerate.
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
(basic_string::insert(const_iterator, initializer_list<C>)): Add.
[_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
(basic_string::insert(iterator, initializer_list<C>)): Suppress
definition.
* include/debug/string (basic_string::insert(iterator, C)): Change
first parameter to const_iterator.
(basic_string::insert(iterator, size_type, C)): Likewise. Change
return type to iterator.
(basic_string::insert(iterator, InputIterator, InputIterator)):
Likewise.
(basic_string::insert(iterator, initializer_list<C>)): Change first
parameter to const_iterator and return type to iterator.
* src/c++11/string-inst.cc: Extend comment.
* testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc:
New.
* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc:
New.
* testsuite/util/testsuite_abi.cc: Add new symbol version.
From-SVN: r261866
2018-06-22 00:01:25 +02:00
|
|
|
|
PR libstdc++/83328
|
|
|
|
|
* acinclude.m4 (libtool_VERSION): Bump to 6:26:0.
|
|
|
|
|
* config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 and export new symbol.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
|
|
|
|
|
(basic_string::insert(const_iterator, initializer_list<C>)): Add.
|
|
|
|
|
[_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
|
|
|
|
|
(basic_string::insert(iterator, initializer_list<C>)): Suppress
|
|
|
|
|
definition.
|
|
|
|
|
* include/debug/string (basic_string::insert(iterator, C)): Change
|
|
|
|
|
first parameter to const_iterator.
|
|
|
|
|
(basic_string::insert(iterator, size_type, C)): Likewise. Change
|
|
|
|
|
return type to iterator.
|
|
|
|
|
(basic_string::insert(iterator, InputIterator, InputIterator)):
|
|
|
|
|
Likewise.
|
|
|
|
|
(basic_string::insert(iterator, initializer_list<C>)): Change first
|
|
|
|
|
parameter to const_iterator and return type to iterator.
|
|
|
|
|
* src/c++11/string-inst.cc: Extend comment.
|
|
|
|
|
* testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc:
|
|
|
|
|
New.
|
|
|
|
|
* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc:
|
|
|
|
|
New.
|
|
|
|
|
* testsuite/util/testsuite_abi.cc: Add new symbol version.
|
|
|
|
|
|
2018-06-21 22:57:07 +02:00
|
|
|
|
* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
|
|
|
|
|
|
2018-06-21 18:24:00 +02:00
|
|
|
|
PR libstdc++/70940
|
|
|
|
|
* include/experimental/memory_resource
|
|
|
|
|
(__resource_adaptor_imp::do_deallocate): Add missing return.
|
|
|
|
|
* testsuite/experimental/memory_resource/new_delete_resource.cc: New.
|
|
|
|
|
* testsuite/experimental/memory_resource/resource_adaptor.cc: Test
|
|
|
|
|
resource_adaptor with std::allocator, __gnu_cxx::new_allocator and
|
|
|
|
|
__gnu_cxx::malloc_allocator.
|
|
|
|
|
|
2018-06-21 16:01:11 +02:00
|
|
|
|
PR libstdc++/70940
|
|
|
|
|
* include/experimental/memory_resource (__resource_adaptor_common):
|
|
|
|
|
New base class.
|
|
|
|
|
(__resource_adaptor_common::_AlignMgr): Helper for obtaining aligned
|
|
|
|
|
pointer from unaligned, and vice versa.
|
|
|
|
|
(__resource_adaptor_imp::do_allocate): Use _AlignMgr to adjust
|
|
|
|
|
allocated pointer to meet alignment request.
|
|
|
|
|
(__resource_adaptor_imp::do_deallocate): Use _AlignMgr to retrieve
|
|
|
|
|
original pointer for deallocation.
|
|
|
|
|
(__resource_adaptor_imp::do_is_equal): Reformat.
|
|
|
|
|
(__resource_adaptor_imp::_S_aligned_size): Remove.
|
|
|
|
|
(__resource_adaptor_imp::_S_supported): Remove.
|
|
|
|
|
(new_delete_resource): Use __gnu_cxx::new_allocator.
|
|
|
|
|
* testsuite/experimental/memory_resource/resource_adaptor.cc: Test
|
|
|
|
|
extended alignments and use debug_allocator to check for matching
|
|
|
|
|
allocate/deallocate pairs.
|
|
|
|
|
|
2018-06-21 07:36:48 +02:00
|
|
|
|
2018-06-21 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
2018-06-22 07:23:47 +02:00
|
|
|
|
* include/debug/safe_iterator.h
|
2018-06-21 07:36:48 +02:00
|
|
|
|
(_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)):
|
2018-06-22 07:23:47 +02:00
|
|
|
|
Compare __x base iterator with a value-initialized iterator of the
|
2018-06-21 07:36:48 +02:00
|
|
|
|
same type.
|
|
|
|
|
|
2018-06-20 17:54:57 +02:00
|
|
|
|
2018-06-20 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-06-20 21:34:53 +02:00
|
|
|
|
PR libstdc++/70966
|
|
|
|
|
* include/experimental/memory_resource (__resource_adaptor_imp): Add
|
|
|
|
|
static assertions to enforce requirements on pointer types.
|
|
|
|
|
(__resource_adaptor_imp::get_allocator()): Add noexcept.
|
|
|
|
|
(new_delete_resource, null_memory_resource): Return address of an
|
|
|
|
|
object with dynamic storage duration.
|
|
|
|
|
(__null_memory_resource): Remove.
|
|
|
|
|
* testsuite/experimental/memory_resource/70966.cc: New.
|
|
|
|
|
|
2018-06-20 17:54:57 +02:00
|
|
|
|
* testsuite/20_util/duration/arithmetic/dr3050.cc: Add new test
|
|
|
|
|
missed from recent commit.
|
|
|
|
|
|
2018-06-19 19:19:16 +02:00
|
|
|
|
2018-06-19 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/std/utility: Remove unused <exception> header.
|
|
|
|
|
|
2018-06-18 20:02:24 +02:00
|
|
|
|
2018-06-18 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-06-18 22:17:44 +02:00
|
|
|
|
LWG 2975 ensure construct(pair<T,U>*, ...) used to construct pairs
|
|
|
|
|
* include/std/scoped_allocator (__not_pair): Define SFINAE helper.
|
|
|
|
|
(construct(_Tp*, _Args&&...)): Remove from overload set when _Tp is
|
|
|
|
|
a specialization of std::pair.
|
|
|
|
|
* testsuite/20_util/scoped_allocator/construct_pair.cc: Ensure
|
|
|
|
|
pair elements are constructed correctly.
|
|
|
|
|
|
2018-06-18 20:59:44 +02:00
|
|
|
|
LWG 2989 hide path iostream operators from normal lookup
|
|
|
|
|
* include/bits/fs_path.h (operator<<, operator>>): Define inline as
|
|
|
|
|
friends.
|
|
|
|
|
* testsuite/27_io/filesystem/path/io/dr2989.cc: New.
|
|
|
|
|
|
2018-06-18 20:02:24 +02:00
|
|
|
|
LWG 3050 Fix cv-qualification of convertibility constraints
|
|
|
|
|
* include/std/chrono (duration, operator*, operator/, operator%): Use
|
|
|
|
|
const-qualified type as source type in is_convertible constraints.
|
|
|
|
|
* testsuite/20_util/duration/arithmetic/dr3050.cc: New.
|
|
|
|
|
* testsuite/20_util/duration/cons/dr3050.cc: New.
|
|
|
|
|
* testsuite/20_util/duration/literals/range.cc: Rename to...
|
|
|
|
|
* testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
|
|
|
|
|
dg-error lineno.
|
|
|
|
|
|
2018-06-18 19:28:53 +02:00
|
|
|
|
2018-06-18 Maya Rashish <coypu@sdf.org>
|
|
|
|
|
|
|
|
|
|
* crossconfig.m4: Handle OpenBSD just like NetBSD.
|
|
|
|
|
* configure: Rebuilt.
|
|
|
|
|
|
2018-06-18 17:47:07 +02:00
|
|
|
|
2018-06-18 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-06-18 18:42:11 +02:00
|
|
|
|
P0754R2 <version> header
|
|
|
|
|
* include/Makefile.am: Add new header.
|
|
|
|
|
* include/Makefile.in: Regenerate.
|
|
|
|
|
* include/bits/c++config: Change doxygen comment to suggest <version>
|
|
|
|
|
instead of <iosfwd>.
|
|
|
|
|
* include/precompiled/stdc++.h: Include <cwchar> and <cwctype>
|
|
|
|
|
unconditionally. Add C++17 and C++20 headers.
|
|
|
|
|
* include/std/version: New header.
|
|
|
|
|
* testsuite/17_intro/headers/c++2017/all_attributes.cc: New.
|
|
|
|
|
* testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: New.
|
|
|
|
|
* testsuite/17_intro/headers/c++2017/all_no_rtti.cc: New.
|
|
|
|
|
* testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: New.
|
|
|
|
|
* testsuite/17_intro/headers/c++2017/operator_names.cc: New.
|
|
|
|
|
* testsuite/17_intro/headers/c++2017/stdc++.cc: New.
|
|
|
|
|
* testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
|
|
|
|
|
New.
|
|
|
|
|
* testsuite/17_intro/headers/c++2020/all_attributes.cc: New.
|
|
|
|
|
* testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: New.
|
|
|
|
|
* testsuite/17_intro/headers/c++2020/all_no_rtti.cc: New.
|
|
|
|
|
* testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: New.
|
|
|
|
|
* testsuite/17_intro/headers/c++2020/operator_names.cc: New.
|
|
|
|
|
* testsuite/17_intro/headers/c++2020/stdc++.cc: New.
|
|
|
|
|
* testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc:
|
|
|
|
|
New.
|
|
|
|
|
* testsuite/18_support/headers/version/macros.cc: New.
|
|
|
|
|
* testsuite/18_support/headers/version/macros.cc: New.
|
|
|
|
|
|
2018-06-18 18:01:24 +02:00
|
|
|
|
* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Only check when
|
|
|
|
|
enable_libstdcxx_filesystem_ts = yes. Check for link, readlink and
|
|
|
|
|
symlink.
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* configure.ac: Remove AC_CHECK_FUNCS for link, readlink and symlink.
|
|
|
|
|
|
2018-06-18 17:47:07 +02:00
|
|
|
|
LWG 3035. std::allocator's constructors should be constexpr
|
|
|
|
|
* include/bits/allocator.h (allocator): Add constexpr to constructors
|
|
|
|
|
for C++2a. Replace dynamic exception specifications with NOTHROW
|
|
|
|
|
macro.
|
|
|
|
|
(allocator, operator==, operator!=): Replace USE_NOEXCEPT macro with
|
|
|
|
|
NOTHROW.
|
|
|
|
|
* include/bits/c++config (_GLIBCXX20_CONSTEXPR): Define.
|
|
|
|
|
* include/ext/malloc_allocator.h (malloc_allocator): Add constexpr
|
|
|
|
|
to constructors for C++2a.
|
|
|
|
|
* include/ext/new_allocator.h (new_allocator): Likewise.
|
|
|
|
|
|
2018-06-16 01:47:33 +02:00
|
|
|
|
2018-06-16 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
LWG 3076 basic_string CTAD ambiguity
|
|
|
|
|
* doc/xml/manual/intro.xml: Document LWG 3076 change.
|
|
|
|
|
* include/bits/basic_string.h
|
|
|
|
|
[__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
|
|
|
|
|
(basic_string(const _CharT*, const _Alloc&)): Turn into a function
|
|
|
|
|
template constrained by _RequireAllocator.
|
|
|
|
|
(basic_string(size_type, _CharT, const _Alloc&)): Likewise.
|
|
|
|
|
* src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS):
|
|
|
|
|
Define.
|
|
|
|
|
* testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
|
|
|
|
|
deduction
|
|
|
|
|
* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2018-06-15 02:19:07 +02:00
|
|
|
|
2018-06-15 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-06-15 20:47:29 +02:00
|
|
|
|
PR libstdc++/86169
|
|
|
|
|
* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
|
|
|
|
|
(basic_string::data()): Unshare string.
|
|
|
|
|
* testsuite/21_strings/basic_string/operations/data/char/86169.cc:
|
|
|
|
|
New.
|
|
|
|
|
|
Decorate string_view members with nonnull attribute
The C++ committee has confirmed that passing a null pointer to the
unary basic_string_view constructor is undefined. This removes the check
from our implementation, and adds the nonnull attribute to warn when the
compiler can detect undefined input.
* include/std/string_view (basic_string_view(const CharT*)): Remove
check for null pointer and add nonnull attribute.
(compare(const CharT*), compare(size_type, size_type, const CharT*))
(find(const CharT*, size_type), rfind(const CharT*, size_type))
(find_first_of(const CharT*, size_type))
(find_last_of(const CharT*, size_type))
(find_first_not_of(const CharT*, size_type))
(find_last_not_of(const CharT*, size_type)): Add nonnull attribute.
* testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: New.
* testsuite/21_strings/basic_string_view/operations/compare/char/
nonnull.cc: New.
* testsuite/21_strings/basic_string_view/operations/find/char/
nonnull.cc: New.
* testsuite/21_strings/basic_string_view/operations/rfind/char/
nonnull.cc: New.
From-SVN: r261638
2018-06-15 18:47:55 +02:00
|
|
|
|
* include/std/string_view (basic_string_view(const CharT*)): Remove
|
|
|
|
|
check for null pointer and add nonnull attribute.
|
|
|
|
|
(compare(const CharT*), compare(size_type, size_type, const CharT*))
|
|
|
|
|
(find(const CharT*, size_type), rfind(const CharT*, size_type))
|
|
|
|
|
(find_first_of(const CharT*, size_type))
|
|
|
|
|
(find_last_of(const CharT*, size_type))
|
|
|
|
|
(find_first_not_of(const CharT*, size_type))
|
|
|
|
|
(find_last_not_of(const CharT*, size_type)): Add nonnull attribute.
|
|
|
|
|
* testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: New.
|
|
|
|
|
* testsuite/21_strings/basic_string_view/operations/compare/char/
|
|
|
|
|
nonnull.cc: New.
|
|
|
|
|
* testsuite/21_strings/basic_string_view/operations/find/char/
|
|
|
|
|
nonnull.cc: New.
|
|
|
|
|
* testsuite/21_strings/basic_string_view/operations/rfind/char/
|
|
|
|
|
nonnull.cc: New.
|
|
|
|
|
|
2018-06-15 18:11:12 +02:00
|
|
|
|
PR libstdc++/86168
|
|
|
|
|
* include/bits/random.h (random_device(const string&)): Remove
|
|
|
|
|
default argument.
|
|
|
|
|
|
2018-06-15 17:47:56 +02:00
|
|
|
|
* include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
|
|
|
|
|
define for C++17 and above.
|
|
|
|
|
|
2018-06-15 16:19:47 +02:00
|
|
|
|
LWG 2993 reference_wrapper<T> conversion from T&&
|
|
|
|
|
* doc/xml/manual/intro.xml: Document LWG 2993 change.
|
|
|
|
|
* include/bits/refwrap.h (reference_wrapper(_Tp&)): Remove.
|
|
|
|
|
(reference_wrapper(_Tp&&)): Remove.
|
|
|
|
|
(reference_wrapper<_Up>(_Up&&)): Define new constructor as constrained
|
|
|
|
|
template.
|
|
|
|
|
(reference_wrapper): Add deduction guide.
|
|
|
|
|
* testsuite/20_util/reference_wrapper/deduction.cc: New.
|
|
|
|
|
* testsuite/20_util/reference_wrapper/lwg2993.cc: New.
|
|
|
|
|
|
2018-06-15 02:19:07 +02:00
|
|
|
|
LWG 3039 Unnecessary decay in thread and packaged_task
|
|
|
|
|
* include/std/future (__constrain_pkgdtask): Replace with ...
|
|
|
|
|
(packaged_task::__not_same): New alias template, using
|
|
|
|
|
__remove_cvref_t instead of decay.
|
|
|
|
|
* include/std/thread (thread::__not_same): Add comment.
|
|
|
|
|
|
2018-06-14 15:32:53 +02:00
|
|
|
|
2018-06-14 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-06-14 22:27:04 +02:00
|
|
|
|
LWG 3075 basic_string needs deduction guides from basic_string_view
|
|
|
|
|
* testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
|
|
|
|
|
deduction from string views.
|
|
|
|
|
* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2018-06-14 21:36:54 +02:00
|
|
|
|
LWG 3074 make scalar types non-deduced in valarray non-member functions
|
|
|
|
|
* include/bits/valarray_after.h (_DEFINE_EXPR_BINARY_FUNCTION): Change
|
|
|
|
|
scalar parameters to be a non-deduced context.
|
|
|
|
|
* include/std/valarray (_DEFINE_BINARY_OPERATOR): Likewise. Adjust
|
|
|
|
|
whitespace.
|
|
|
|
|
* testsuite/26_numerics/valarray/operators.cc: Test scalar operands.
|
|
|
|
|
* testsuite/26_numerics/valarray/transcend.cc: New.
|
|
|
|
|
|
2018-06-14 21:02:40 +02:00
|
|
|
|
* include/std/tuple (__cpp_lib_tuple_element_t, tuple_element_t):
|
|
|
|
|
Move back to <utility>.
|
|
|
|
|
* include/std/utility (__cpp_lib_tuple_element_t. tuple_element_t):
|
|
|
|
|
Restore to here.
|
|
|
|
|
|
2018-06-14 16:12:24 +02:00
|
|
|
|
P0935R0 Eradicating unnecessarily explicit default constructors
|
|
|
|
|
* include/backward/strstream (strstreambuf): Add non-explicit default
|
|
|
|
|
constructor.
|
|
|
|
|
* include/bits/locale_conv.h (wbuffer_convert, wstring_convert):
|
|
|
|
|
Likewise.
|
|
|
|
|
* include/bits/regex.h (match_results): Likewise.
|
|
|
|
|
* testsuite/22_locale/conversions/buffer/1.cc: Test for non-explicit
|
|
|
|
|
default constructor.
|
|
|
|
|
* testsuite/22_locale/conversions/string/1.cc: Likewise.
|
|
|
|
|
* testsuite/28_regex/match_results/ctors/char/default.cc: Likewise.
|
|
|
|
|
* testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
|
|
|
|
|
|
2018-06-14 16:01:29 +02:00
|
|
|
|
* include/std/tuple (__cpp_lib_tuple_element_t): Move feature test
|
|
|
|
|
macro from <utility> and change type to long.
|
|
|
|
|
* include/std/utility (__cpp_lib_tuple_element_t): Remove.
|
|
|
|
|
* testsuite/20_util/tuple/tuple_element_t.cc: Check for feature test
|
|
|
|
|
macro.
|
|
|
|
|
|
2018-06-14 15:32:53 +02:00
|
|
|
|
P0935R0 Eradicating unnecessarily explicit default constructors
|
|
|
|
|
* include/bits/random.h (uniform_real_distribution::param_type)
|
|
|
|
|
(normal_distribution::param_type, lognormal_distribution::param_type)
|
|
|
|
|
(gamma_distribution::param_type, chi_squared_distribution::param_type)
|
|
|
|
|
(cauchy_distribution::param_type, fisher_f_distribution::param_type)
|
|
|
|
|
(student_t_distribution::param_type)
|
|
|
|
|
(bernoulli_distribution::param_type)
|
|
|
|
|
(binomial_distribution::param_type)
|
|
|
|
|
(geometric_distribution::param_type)
|
|
|
|
|
(negative_binomial_distribution::param_type)
|
|
|
|
|
(poisson_distribution::param_type)
|
|
|
|
|
(exponential_distribution::param_type)
|
|
|
|
|
(weibull_distribution::param_type)
|
|
|
|
|
(extreme_value_distribution::param_type): Add non-explicit default
|
|
|
|
|
constructors. Remove default argument for first parameter of explicit
|
|
|
|
|
constructors.
|
|
|
|
|
* include/bits/uniform_int_dist.h
|
|
|
|
|
(uniform_int_distribution::param_type): Likewise.
|
|
|
|
|
* include/ext/random
|
|
|
|
|
(beta_distribution::param_type, rice_distribution::param_type)
|
|
|
|
|
(nakagami_distribution::param_type, pareto_distribution::param_type)
|
|
|
|
|
(k_distribution::param_type, arcsine_distribution::param_type)
|
|
|
|
|
(hoyt_distribution::param_type, triangular_distribution::param_type)
|
|
|
|
|
(von_mises_distribution::param_type)
|
|
|
|
|
(hypergeometric_distribution::param_type)
|
|
|
|
|
(logistic_distribution::param_type)
|
|
|
|
|
(uniform_inside_sphere_distribution::param_type): Likewise.
|
|
|
|
|
(uniform_on_sphere_distribution::param_type): Make default constructor
|
|
|
|
|
non-explicit.
|
|
|
|
|
* testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
|
|
|
|
|
Test param_type for non-explicit default constructor.
|
|
|
|
|
* testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/normal_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/ext/random/normal_mv_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/ext/random/triangular_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/ext/random/von_mises_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2018-06-14 11:26:51 +02:00
|
|
|
|
2018-06-14 Daniel Trebbien <dtrebbien@gmail.com>
|
|
|
|
|
Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/83982
|
|
|
|
|
* include/bits/vector.tcc (vector::_M_default_append(size_type)):
|
|
|
|
|
Default-construct new elements before moving existing ones.
|
|
|
|
|
* testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
|
|
|
|
|
New.
|
|
|
|
|
|
2018-06-13 17:14:48 +02:00
|
|
|
|
2018-06-13 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/86127
|
|
|
|
|
* include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
|
|
|
|
|
unused typedef.
|
|
|
|
|
(_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
|
|
|
|
|
Use node allocator to create and destroy elements.
|
|
|
|
|
(forward_list::_Tp_alloc_type): Remove unused typedef.
|
|
|
|
|
(forward_list::_Alloc_traits): Use allocator_traits instead of
|
|
|
|
|
__gnu_cxx::__alloc_traits.
|
|
|
|
|
|
2018-06-13 08:10:03 +02:00
|
|
|
|
2018-06-13 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
2018-06-13 22:27:26 +02:00
|
|
|
|
* include/debug/helper_functions.h
|
|
|
|
|
(__gnu_debug::_Safe_iterator<>): Add declaration.
|
|
|
|
|
(__can_advance(_Ite, _Size)): New.
|
|
|
|
|
(__can_advance(const _Safe_iterator<>&, _Size)): Overload declaration.
|
|
|
|
|
* include/debug/functions.h
|
|
|
|
|
(__gnu_debug::_Safe_iterator<>): Remove declaration.
|
|
|
|
|
* include/debug/stl_iterator.h
|
|
|
|
|
(__can_advance(const _Safe_iterator<>&)): New definition.
|
|
|
|
|
* include/debug/stl_iterator.h
|
|
|
|
|
(__can_advance(const std::reverse_iterator<>&, _Size)): New.
|
|
|
|
|
(__can_advance(const std::move_iterator<>&, _Size)): New.
|
|
|
|
|
* include/debug/macros.h (__glibcxx_check_can_increment): New.
|
|
|
|
|
* include/debug/debug.h (__glibcxx_requires_can_increment): New.
|
|
|
|
|
* include/bits/stl_algobase.h (fill_n): Use latter.
|
|
|
|
|
* testsuite/25_algorithms/fill_n/2.cc: New.
|
|
|
|
|
* testsuite/25_algorithms/fill_n/debug/1_neg.cc: New.
|
|
|
|
|
* testsuite/25_algorithms/fill_n/debug/2_neg.cc: New.
|
|
|
|
|
* testsuite/25_algorithms/fill_n/debug/3_neg.cc: New.
|
|
|
|
|
* testsuite/25_algorithms/fill_n/debug/4_neg.cc: New.
|
|
|
|
|
|
2018-06-13 08:10:03 +02:00
|
|
|
|
* include/debug/debug.h (__glibcxx_requires_can_increment_range): New.
|
|
|
|
|
(__glibcxx_requires_can_decrement_range): New.
|
|
|
|
|
|
2018-06-12 22:18:35 +02:00
|
|
|
|
2018-06-12 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/debug/macros.h (__glibcxx_check_can_increment_range): New.
|
|
|
|
|
(__glibcxx_check_can_decrement_range): New.
|
|
|
|
|
* include/bits/stl_algobase.h (std::copy(_II, _II, _OI)): Use
|
|
|
|
|
__glibcxx_requires_can_increment_range.
|
|
|
|
|
(std::move(_II, _II, _OI)): Likewise.
|
|
|
|
|
(std::copy_backward(_BI, _BI, _BI2)): Use
|
|
|
|
|
__glibcxx_requires_can_decrement_range.
|
|
|
|
|
(std::move_backward(_BI, _BI, _BI2)): Likewise.
|
|
|
|
|
* testsuite/25_algorithms/copy_backward/debug/1_neg.cc: New.
|
|
|
|
|
* testsuite/25_algorithms/copy_backward/debug/2_neg.cc: New.
|
|
|
|
|
* testsuite/25_algorithms/copy_backward/debug/3_neg.cc: New.
|
|
|
|
|
* testsuite/25_algorithms/equal/debug/1_neg.cc: New.
|
|
|
|
|
* testsuite/25_algorithms/equal/debug/2_neg.cc: New.
|
|
|
|
|
* testsuite/25_algorithms/equal/debug/3_neg.cc: New.
|
|
|
|
|
|
P0935R0 Eradicating unnecessarily explicit default constructors
Explicit default constructors are problematic, so this change removes
them from <random> and <ext/random>, as per P0935R0.
* include/bits/random.h (linear_congruential_engine)
(mersenne_twister_engine, subtract_with_carry_engine, random_device)
(uniform_real_distribution, normal_distribution)
(lognormal_distribution, gamma_distribution, chi_squared_distribution)
(cauchy_distribution, fisher_f_distribution, student_t_distribution)
(bernoulli_distribution, binomial_distribution,geometric_distribution)
(negative_binomial_distribution, exponential_distribution)
(weibull_distribution, extreme_value_distribution): Add non-explicit
default constructors. Remove default argument for first parameter of
explicit constructors.
(piecewise_constant_distribution, piecewise_linear_distribution):
Make default constructor non-explicit.
* include/bits/uniform_int_dist.h (uniform_int_distribution): Add
non-explicit default constructors. Remove default argument for first
parameter of explicit constructor.
(simd_fast_mersenne_twister_engine, beta_distribution)
(rice_distribution, nakagami_distribution, pareto_distribution)
(k_distribution, arcsine_distribution, hoyt_distribution)
(triangular_distribution, von_mises_distribution)
(hypergeometric_distribution, logistic_distribution)
(uniform_inside_sphere_distribution): Likewise.
(uniform_on_sphere_distribution): Make default constructor
non-explicit.
* testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
Test for non-explicit default constructor. Fix references to standard.
* testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/normal_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
Likewise.
* testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
* testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
* testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
* testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
Likewise.
* testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
* testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
* testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
* testsuite/ext/random/normal_mv_distribution/cons/default.cc:
Likewise.
* testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
* testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
* testsuite/ext/random/triangular_distribution/cons/default.cc:
Likewise.
* testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
Likewise.
* testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
Likewise.
* testsuite/ext/random/von_mises_distribution/cons/default.cc:
Likewise.
* testsuite/util/testsuite_common_types.h
(implicitly_default_constructible): New helper.
From-SVN: r261522
2018-06-12 21:10:55 +02:00
|
|
|
|
2018-06-12 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
P0935R0 Eradicating unnecessarily explicit default constructors
|
|
|
|
|
* include/bits/random.h (linear_congruential_engine)
|
|
|
|
|
(mersenne_twister_engine, subtract_with_carry_engine, random_device)
|
|
|
|
|
(uniform_real_distribution, normal_distribution)
|
|
|
|
|
(lognormal_distribution, gamma_distribution, chi_squared_distribution)
|
|
|
|
|
(cauchy_distribution, fisher_f_distribution, student_t_distribution)
|
|
|
|
|
(bernoulli_distribution, binomial_distribution,geometric_distribution)
|
|
|
|
|
(negative_binomial_distribution, exponential_distribution)
|
|
|
|
|
(weibull_distribution, extreme_value_distribution): Add non-explicit
|
|
|
|
|
default constructors. Remove default argument for first parameter of
|
|
|
|
|
explicit constructors.
|
|
|
|
|
(piecewise_constant_distribution, piecewise_linear_distribution):
|
|
|
|
|
Make default constructor non-explicit.
|
|
|
|
|
* include/bits/uniform_int_dist.h (uniform_int_distribution): Add
|
|
|
|
|
non-explicit default constructors. Remove default argument for first
|
|
|
|
|
parameter of explicit constructor.
|
2018-06-14 12:59:14 +02:00
|
|
|
|
* include/ext/random
|
P0935R0 Eradicating unnecessarily explicit default constructors
Explicit default constructors are problematic, so this change removes
them from <random> and <ext/random>, as per P0935R0.
* include/bits/random.h (linear_congruential_engine)
(mersenne_twister_engine, subtract_with_carry_engine, random_device)
(uniform_real_distribution, normal_distribution)
(lognormal_distribution, gamma_distribution, chi_squared_distribution)
(cauchy_distribution, fisher_f_distribution, student_t_distribution)
(bernoulli_distribution, binomial_distribution,geometric_distribution)
(negative_binomial_distribution, exponential_distribution)
(weibull_distribution, extreme_value_distribution): Add non-explicit
default constructors. Remove default argument for first parameter of
explicit constructors.
(piecewise_constant_distribution, piecewise_linear_distribution):
Make default constructor non-explicit.
* include/bits/uniform_int_dist.h (uniform_int_distribution): Add
non-explicit default constructors. Remove default argument for first
parameter of explicit constructor.
(simd_fast_mersenne_twister_engine, beta_distribution)
(rice_distribution, nakagami_distribution, pareto_distribution)
(k_distribution, arcsine_distribution, hoyt_distribution)
(triangular_distribution, von_mises_distribution)
(hypergeometric_distribution, logistic_distribution)
(uniform_inside_sphere_distribution): Likewise.
(uniform_on_sphere_distribution): Make default constructor
non-explicit.
* testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
Test for non-explicit default constructor. Fix references to standard.
* testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/normal_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
Likewise.
* testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
* testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
* testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
* testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
Likewise.
* testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
* testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
* testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
* testsuite/ext/random/normal_mv_distribution/cons/default.cc:
Likewise.
* testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
* testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
* testsuite/ext/random/triangular_distribution/cons/default.cc:
Likewise.
* testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
Likewise.
* testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
Likewise.
* testsuite/ext/random/von_mises_distribution/cons/default.cc:
Likewise.
* testsuite/util/testsuite_common_types.h
(implicitly_default_constructible): New helper.
From-SVN: r261522
2018-06-12 21:10:55 +02:00
|
|
|
|
(simd_fast_mersenne_twister_engine, beta_distribution)
|
|
|
|
|
(rice_distribution, nakagami_distribution, pareto_distribution)
|
|
|
|
|
(k_distribution, arcsine_distribution, hoyt_distribution)
|
|
|
|
|
(triangular_distribution, von_mises_distribution)
|
|
|
|
|
(hypergeometric_distribution, logistic_distribution)
|
|
|
|
|
(uniform_inside_sphere_distribution): Likewise.
|
|
|
|
|
(uniform_on_sphere_distribution): Make default constructor
|
|
|
|
|
non-explicit.
|
|
|
|
|
* testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
|
|
|
|
|
Test for non-explicit default constructor. Fix references to standard.
|
|
|
|
|
* testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/normal_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/ext/random/normal_mv_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
|
|
|
|
|
* testsuite/ext/random/triangular_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/ext/random/von_mises_distribution/cons/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/util/testsuite_common_types.h
|
|
|
|
|
(implicitly_default_constructible): New helper.
|
|
|
|
|
|
2018-06-08 18:43:14 +02:00
|
|
|
|
2018-06-08 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/bits/ios_base.h (ios::Init::Init(const Init&))
|
|
|
|
|
(ios::Init::operator=): Define as defaulted.
|
|
|
|
|
* include/bits/stl_bvector.h (_Bit_reference(const _Bit_reference&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
* include/bits/stream_iterator.h (istream_iterator::operator=)
|
|
|
|
|
(ostream_iterator::operator=): Likewise.
|
|
|
|
|
* include/bits/streambuf_iterator.h (istreambuf_iterator::operator=)
|
|
|
|
|
Likewise.
|
|
|
|
|
* include/std/bitset (bitset::reference::reference(const reference&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
* include/std/complex (complex<float>::complex(const complex&))
|
|
|
|
|
(complex<double>::complex(const complex&))
|
|
|
|
|
(complex<long double>::complex(const complex&)): Likewise.
|
|
|
|
|
|
2018-06-07 10:56:45 +02:00
|
|
|
|
2018-06-07 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/bits/regex.h (sub_match): Add noexcept to default
|
|
|
|
|
constructor and length observer.
|
|
|
|
|
(match_results): Add noexcept to default constructor and observers
|
|
|
|
|
with no preconditions. Define destructor as defaulted.
|
|
|
|
|
(operator==, operator!=, swap): Add noexcept.
|
|
|
|
|
(regex_iterator): Add default member initializers and define default
|
|
|
|
|
constructor and destructor as defaulted. Add noexcept to equality
|
|
|
|
|
and dereference operators.
|
|
|
|
|
|
2018-06-07 07:44:53 +02:00
|
|
|
|
2018-06-07 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* src/c++11/debug.cc
|
|
|
|
|
(_Safe_iterator_base::_M_detach()): Reset state only if needed.
|
|
|
|
|
(_Safe_iterator_base::_M_detach_single()): Likewise.
|
|
|
|
|
(_Safe_local_iterator_base::_M_detach()): Reset state only if needed.
|
|
|
|
|
(_Safe_local_iterator_base::_M_detach_single()): Likewise.
|
|
|
|
|
|
2018-06-06 21:39:27 +02:00
|
|
|
|
2018-06-06 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/bits/shared_ptr_base.h (__shared_count): Remove redundant
|
|
|
|
|
move of const value.
|
|
|
|
|
|
2018-06-06 19:55:39 +02:00
|
|
|
|
2018-06-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/86068
|
|
|
|
|
* include/bits/c++config: Check __cpp_transactional_memory >= 201500L
|
|
|
|
|
rather than __cpp_transactional_memory >= 201505L.
|
|
|
|
|
|
2018-06-06 08:05:07 +02:00
|
|
|
|
2018-06-06 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/86008
|
|
|
|
|
* include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>):
|
|
|
|
|
Define new partial specialization.
|
|
|
|
|
* include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define
|
|
|
|
|
new overload.
|
|
|
|
|
(operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use
|
|
|
|
|
value not reference for iteration.
|
|
|
|
|
* testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust
|
|
|
|
|
comment.
|
|
|
|
|
* testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test.
|
|
|
|
|
* testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust
|
|
|
|
|
comment.
|
|
|
|
|
|
2018-06-05 09:37:30 +02:00
|
|
|
|
2018-06-05 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-06-05 09:37:36 +02:00
|
|
|
|
* include/std/type_traits: Fix comment typos.
|
|
|
|
|
|
2018-06-05 09:37:30 +02:00
|
|
|
|
* testsuite/27_io/filesystem/operations/read_symlink.cc: XFAIL for
|
|
|
|
|
mingw* targets.
|
|
|
|
|
* testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/read_symlink.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2018-06-05 07:47:44 +02:00
|
|
|
|
2018-06-05 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/bits/stl_tempbuf.h
|
|
|
|
|
(_Temporary_buffer(_FwdIte, _FwdIte)): Delete, replaced by...
|
|
|
|
|
(_Temporary_buffer(_FwdIte, size_type)): ...this, new.
|
|
|
|
|
* include/ext/memory (temporary_buffer<>(_FwdIte, _FwdIte)): Adapt.
|
|
|
|
|
* include/bits/stl_algo.h (__stable_partition): Adapt.
|
|
|
|
|
(__inplace_merge): Adapt.
|
|
|
|
|
(__stable_sort): Adapt.
|
|
|
|
|
|
2018-06-04 18:07:35 +02:00
|
|
|
|
2018-06-04 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-06-04 23:38:42 +02:00
|
|
|
|
PR libstdc++/85930
|
|
|
|
|
* include/bits/shared_ptr_base.h [!__cpp_rtti]: Include <typeinfo>
|
|
|
|
|
unconditionally. Remove redundant declaration.
|
|
|
|
|
[!__cpp_rtti] (_Sp_make_shared_tag::_S_ti): Fix location of
|
|
|
|
|
alignment-specifier.
|
|
|
|
|
|
2018-06-04 18:07:55 +02:00
|
|
|
|
* include/bits/postypes.h (fpos): Define special members as defaulted.
|
|
|
|
|
|
2018-06-04 18:07:35 +02:00
|
|
|
|
PR libstdc++/85930
|
|
|
|
|
* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Align
|
|
|
|
|
the static variable correctly.
|
|
|
|
|
|
PR libstdc++/78870 support std::filesystem on Windows
PR libstdc++/78870 support std::filesystem on Windows
* config.h.in: Regenerate.
* configure: Regenerate.
* configure.ac: Check for link, readlink and symlink.
* include/bits/fs_path.h (path::operator/=(const path&)): Move
definition out of class body.
(path::is_absolute(), path::_M_append(path)): Likewise.
(operator<<(basic_ostream, const path&)): Use std::quoted directly.
(operator>>(basic_istream, path&)): Likewise.
(u8path): Reorder definitions and fix Windows implementation.
(path::is_absolute()): Define inline and fix for Windows.
[!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
Define POSIX version inline.
(path::_M_append(path)): Define inline.
* include/experimental/bits/fs_path.h (path::is_absolute()): Move
definition out of class body.
(operator<<(basic_ostream, const path&)): Fix type of delimiter and
escape characters.
(operator>>(basic_istream, path&)): Likewise.
(path::is_absolute()): Define inline and fix for Windows.
* src/filesystem/dir-common.h (__gnu_posix): New namespace.
(__gnu_posix::char_type, __gnu_posix::DIR, __gnu_posix::dirent)
(__gnu_posix::opendir, __gnu_posix::readdir, __gnu_posix::closedir):
Define as adaptors for Windows functions/types or as
using-declarations for POSIX functions/types.
(_Dir_base, get_file_type): Qualify names to use declarations from
__gnu_posix namespace.
(_Dir_base::is_dor_or_dotdot): New helper functions.
* src/filesystem/dir.cc (_Dir, recursive_directory_iterator): Qualify
names to use declarations from __gnu_posix namespace.
* src/filesystem/ops-common.h (__gnu_posix): New nested namespace.
(__gnu_posix::open, __gnu_posix::close, __gnu_posix::stat_type)
(__gnu_posix::stat, __gnu_posix::lstat, __gnu_posix::mode_t)
(__gnu_posix::chmod, __gnu_posix::mkdir, __gnu_posix::getcwd)
(__gnu_posix::chdir, __gnu_posix::utimbuf, __gnu_posix::utime)
(__gnu_posix::rename, __gnu_posix::truncate, __gnu_posix::char_type):
Define as adaptors for Windows functions/types or as
using-declarations for POSIX functions/types.
(stat_type, do_copy_file): Qualify names to use declarations from
__gnu_posix namespace.
(do_space): Declare new function.
(make_file_type): Only use S_ISLNK if defined.
* src/filesystem/ops.cc (char_ptr, filesystem::canonical): Use
path::value_type not char.
(filesystem::copy, create_dir, filesystem::create_directory): Qualify
names to use declarations from __gnu_posix namespace.
(filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
add implementation for Windows.
(filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
(filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
[!_PC_PATH_MAX]: Don't use pathconf.
[PATH_MAX]: Use if defined.
(filesystem::current_path(const path&, error_code&))
(filesystem::equivalent, do_stat, filesystem::hard_link_count)
(filesystem::last_write_time, filesystem::permissions): Use names
from __gnu_posix.
(filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
(filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
implementation for Windows.
(filesystem::rename, filesystem::resize_file): Use names from
__gnu_posix.
(filesystem::space): Use do_space.
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Get absolute path to directory.
(filesystem::status, filesystem::symlink_status): Use names from
__gnu_posix.
(filesystem::temp_directory_path): Add implementation for Windows.
* src/filesystem/path.cc (dot): Define constant.
(path::replace_extension): Use dot.
(path::_M_find_extension): Likewise. Use path::string_type not
std::string.
(path::_M_split_cmpts): Use dot.
(filesystem_error::_M_get_what): Use u8string() not native().
* src/filesystem/std-dir.cc (_Dir, recursive_directory_iterator):
Qualify names to use declarations from __gnu_posix namespace.
* src/filesystem/std-ops.cc (filesystem::absolute(const path&)): Use
correct error_code.
(filesystem::absolute(const path&, error_code&)): Add implementation
for Windows.
(char_ptr, filesystem::canonical): Use path::value_type not char.
(do_copy_file): Use names from __gnu_posix.
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Do not use fchmod, fchmodat or
sendfile.
(filesystem::copy, create_dir, filesystem::create_directory): Qualify
names to use declarations from __gnu_posix namespace.
(filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
add implementation for Windows.
(filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
(filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
[!_PC_PATH_MAX]: Don't use pathconf.
[PATH_MAX]: Use if defined.
(filesystem::current_path(const path&, error_code&))
(filesystem::equivalent, do_stat, filesystem::hard_link_count)
(filesystem::last_write_time, filesystem::permissions): Use names
from __gnu_posix.
(filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
(filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
implementation for Windows.
(filesystem::rename, filesystem::resize_file): Use names from
__gnu_posix.
(do_space): Define.
(filesystem::space): Use do_space.
(filesystem::status, filesystem::symlink_status): Use names from
__gnu_posix.
(filesystem::temp_directory_path): Add implementation for Windows.
* src/filesystem/std-path.cc
[_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
Define for Windows.
(dot): Define constant.
(path::replace_extension, is_dot): Use dot.
(path::lexically_normal): Check _M_type instead of calling
non-existent function.
(path::_M_find_extension): Use dot. Use path::string_type not
std::string.
(path::_M_split_cmpts): Use dot.
(filesystem_error::_M_get_what): Use u8string() not native().
* testsuite/27_io/filesystem/iterators/directory_iterator.cc: Do not
use symlinks.
* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
Likewise.
* testsuite/27_io/filesystem/operations/absolute.cc: Use
__gnu_test::root_path() instead of "/" and add Windows-specific tests.
* testsuite/27_io/filesystem/operations/canonical.cc: Use
path::string() to get narrow string, not path::native().
* testsuite/27_io/filesystem/operations/copy.cc: Construct fstreams
with std::filesystem::path not std::basic_string.
* testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
* testsuite/27_io/filesystem/operations/exists.cc: Use
__gnu_test::root_path() instead of "/".
* testsuite/27_io/filesystem/operations/is_empty.cc: Construct
fstreams with std::filesystem::path not std::basic_string.
* testsuite/27_io/filesystem/operations/last_write_time.cc: Use
path::string() to get narrow string.
* testsuite/27_io/filesystem/operations/space.cc: Check results for
errors, expect sensible values otherwise.
* testsuite/27_io/filesystem/operations/temp_directory_path.cc: Add
helpers for adjusting the environment on Windows.
* testsuite/27_io/filesystem/path/append/path.cc: Test
Windows-specific behaviour.
* testsuite/27_io/filesystem/path/construct/format.cc: Fix creation
of path::string_type objects.
* testsuite/27_io/filesystem/path/construct/locale.cc: Compare native
string to wide string on Windows.
* testsuite/27_io/filesystem/path/decompose/root_directory.cc: Allow
for backslash as root-directory.
* testsuite/27_io/filesystem/path/decompose/stem.cc: Use
path::string() to get narrow string.
* testsuite/27_io/filesystem/path/itr/traversal.cc: Test Windows-style
paths.
* testsuite/27_io/filesystem/path/native/string.cc: Use string_type
not std::string.
* testsuite/27_io/filesystem/path/query/is_absolute.cc: Adjust for
different definintion of absolute paths on Windows.
* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
Do not use symlinks.
* testsuite/experimental/filesystem/operations/absolute.cc: Test
Windows behaviour.
* testsuite/experimental/filesystem/operations/copy.cc: Construct
fstreams with NTCTS not std::basic_string.
* testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
* testsuite/experimental/filesystem/operations/exists.cc: Use
__gnu_test::root_path() instead of "/".
* testsuite/experimental/filesystem/operations/is_empty.cc: Construct
fstreams with NTCTS not std::basic_string.
* testsuite/experimental/filesystem/operations/last_write_time.cc:
Use path::string() to get narrow string.
* testsuite/experimental/filesystem/operations/space.cc: Use
__gnu_test::root_path() instead of "/".
* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
Add helpers for adjusting the environment on Windows.
* testsuite/experimental/filesystem/path/append/path.cc: Use
path::string() to get narrow strings for comparisons.
* testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
* testsuite/experimental/filesystem/path/decompose/root_directory.cc:
Likewise.
* testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
* testsuite/experimental/filesystem/path/native/string.cc: Use
string_type not std::string.
* testsuite/experimental/filesystem/path/query/is_absolute.cc:
Adjust for different definintion of absolute paths on Windows.
* testsuite/util/testsuite_fs.h (__gnu_test::root_path()): New
function.
(__gnu_test::scoped_file): Construct fstreams with NTCTS not
std::basic_string.
From-SVN: r261034
2018-05-31 21:20:24 +02:00
|
|
|
|
2018-05-24 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/78870 support std::filesystem on Windows
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* configure.ac: Check for link, readlink and symlink.
|
|
|
|
|
* include/bits/fs_path.h (path::operator/=(const path&)): Move
|
|
|
|
|
definition out of class body.
|
|
|
|
|
(path::is_absolute(), path::_M_append(path)): Likewise.
|
|
|
|
|
(operator<<(basic_ostream, const path&)): Use std::quoted directly.
|
|
|
|
|
(operator>>(basic_istream, path&)): Likewise.
|
|
|
|
|
(u8path): Reorder definitions and fix Windows implementation.
|
|
|
|
|
(path::is_absolute()): Define inline and fix for Windows.
|
|
|
|
|
[!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
|
|
|
|
|
Define POSIX version inline.
|
|
|
|
|
(path::_M_append(path)): Define inline.
|
|
|
|
|
* include/experimental/bits/fs_path.h (path::is_absolute()): Move
|
|
|
|
|
definition out of class body.
|
|
|
|
|
(operator<<(basic_ostream, const path&)): Fix type of delimiter and
|
|
|
|
|
escape characters.
|
|
|
|
|
(operator>>(basic_istream, path&)): Likewise.
|
|
|
|
|
(path::is_absolute()): Define inline and fix for Windows.
|
|
|
|
|
* src/filesystem/dir-common.h (__gnu_posix): New namespace.
|
|
|
|
|
(__gnu_posix::char_type, __gnu_posix::DIR, __gnu_posix::dirent)
|
|
|
|
|
(__gnu_posix::opendir, __gnu_posix::readdir, __gnu_posix::closedir):
|
|
|
|
|
Define as adaptors for Windows functions/types or as
|
|
|
|
|
using-declarations for POSIX functions/types.
|
|
|
|
|
(_Dir_base, get_file_type): Qualify names to use declarations from
|
|
|
|
|
__gnu_posix namespace.
|
|
|
|
|
(_Dir_base::is_dor_or_dotdot): New helper functions.
|
|
|
|
|
* src/filesystem/dir.cc (_Dir, recursive_directory_iterator): Qualify
|
|
|
|
|
names to use declarations from __gnu_posix namespace.
|
|
|
|
|
* src/filesystem/ops-common.h (__gnu_posix): New nested namespace.
|
|
|
|
|
(__gnu_posix::open, __gnu_posix::close, __gnu_posix::stat_type)
|
|
|
|
|
(__gnu_posix::stat, __gnu_posix::lstat, __gnu_posix::mode_t)
|
|
|
|
|
(__gnu_posix::chmod, __gnu_posix::mkdir, __gnu_posix::getcwd)
|
|
|
|
|
(__gnu_posix::chdir, __gnu_posix::utimbuf, __gnu_posix::utime)
|
|
|
|
|
(__gnu_posix::rename, __gnu_posix::truncate, __gnu_posix::char_type):
|
|
|
|
|
Define as adaptors for Windows functions/types or as
|
|
|
|
|
using-declarations for POSIX functions/types.
|
|
|
|
|
(stat_type, do_copy_file): Qualify names to use declarations from
|
|
|
|
|
__gnu_posix namespace.
|
|
|
|
|
(do_space): Declare new function.
|
|
|
|
|
(make_file_type): Only use S_ISLNK if defined.
|
|
|
|
|
* src/filesystem/ops.cc (char_ptr, filesystem::canonical): Use
|
|
|
|
|
path::value_type not char.
|
|
|
|
|
(filesystem::copy, create_dir, filesystem::create_directory): Qualify
|
|
|
|
|
names to use declarations from __gnu_posix namespace.
|
|
|
|
|
(filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
|
|
|
|
|
add implementation for Windows.
|
|
|
|
|
(filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
|
|
|
|
|
(filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
|
|
|
|
|
[!_PC_PATH_MAX]: Don't use pathconf.
|
|
|
|
|
[PATH_MAX]: Use if defined.
|
|
|
|
|
(filesystem::current_path(const path&, error_code&))
|
|
|
|
|
(filesystem::equivalent, do_stat, filesystem::hard_link_count)
|
|
|
|
|
(filesystem::last_write_time, filesystem::permissions): Use names
|
|
|
|
|
from __gnu_posix.
|
|
|
|
|
(filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
|
|
|
|
|
(filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
|
|
|
|
|
implementation for Windows.
|
|
|
|
|
(filesystem::rename, filesystem::resize_file): Use names from
|
|
|
|
|
__gnu_posix.
|
|
|
|
|
(filesystem::space): Use do_space.
|
|
|
|
|
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Get absolute path to directory.
|
|
|
|
|
(filesystem::status, filesystem::symlink_status): Use names from
|
|
|
|
|
__gnu_posix.
|
|
|
|
|
(filesystem::temp_directory_path): Add implementation for Windows.
|
|
|
|
|
* src/filesystem/path.cc (dot): Define constant.
|
|
|
|
|
(path::replace_extension): Use dot.
|
|
|
|
|
(path::_M_find_extension): Likewise. Use path::string_type not
|
|
|
|
|
std::string.
|
|
|
|
|
(path::_M_split_cmpts): Use dot.
|
|
|
|
|
(filesystem_error::_M_get_what): Use u8string() not native().
|
|
|
|
|
* src/filesystem/std-dir.cc (_Dir, recursive_directory_iterator):
|
|
|
|
|
Qualify names to use declarations from __gnu_posix namespace.
|
|
|
|
|
* src/filesystem/std-ops.cc (filesystem::absolute(const path&)): Use
|
|
|
|
|
correct error_code.
|
|
|
|
|
(filesystem::absolute(const path&, error_code&)): Add implementation
|
|
|
|
|
for Windows.
|
|
|
|
|
(char_ptr, filesystem::canonical): Use path::value_type not char.
|
|
|
|
|
(do_copy_file): Use names from __gnu_posix.
|
|
|
|
|
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Do not use fchmod, fchmodat or
|
|
|
|
|
sendfile.
|
|
|
|
|
(filesystem::copy, create_dir, filesystem::create_directory): Qualify
|
|
|
|
|
names to use declarations from __gnu_posix namespace.
|
|
|
|
|
(filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
|
|
|
|
|
add implementation for Windows.
|
|
|
|
|
(filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
|
|
|
|
|
(filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
|
|
|
|
|
[!_PC_PATH_MAX]: Don't use pathconf.
|
|
|
|
|
[PATH_MAX]: Use if defined.
|
|
|
|
|
(filesystem::current_path(const path&, error_code&))
|
|
|
|
|
(filesystem::equivalent, do_stat, filesystem::hard_link_count)
|
|
|
|
|
(filesystem::last_write_time, filesystem::permissions): Use names
|
|
|
|
|
from __gnu_posix.
|
|
|
|
|
(filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
|
|
|
|
|
(filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
|
|
|
|
|
implementation for Windows.
|
|
|
|
|
(filesystem::rename, filesystem::resize_file): Use names from
|
|
|
|
|
__gnu_posix.
|
|
|
|
|
(do_space): Define.
|
|
|
|
|
(filesystem::space): Use do_space.
|
|
|
|
|
(filesystem::status, filesystem::symlink_status): Use names from
|
|
|
|
|
__gnu_posix.
|
|
|
|
|
(filesystem::temp_directory_path): Add implementation for Windows.
|
|
|
|
|
* src/filesystem/std-path.cc
|
|
|
|
|
[_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
|
|
|
|
|
Define for Windows.
|
|
|
|
|
(dot): Define constant.
|
|
|
|
|
(path::replace_extension, is_dot): Use dot.
|
|
|
|
|
(path::lexically_normal): Check _M_type instead of calling
|
|
|
|
|
non-existent function.
|
|
|
|
|
(path::_M_find_extension): Use dot. Use path::string_type not
|
|
|
|
|
std::string.
|
|
|
|
|
(path::_M_split_cmpts): Use dot.
|
|
|
|
|
(filesystem_error::_M_get_what): Use u8string() not native().
|
|
|
|
|
* testsuite/27_io/filesystem/iterators/directory_iterator.cc: Do not
|
|
|
|
|
use symlinks.
|
|
|
|
|
* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/operations/absolute.cc: Use
|
|
|
|
|
__gnu_test::root_path() instead of "/" and add Windows-specific tests.
|
|
|
|
|
* testsuite/27_io/filesystem/operations/canonical.cc: Use
|
|
|
|
|
path::string() to get narrow string, not path::native().
|
|
|
|
|
* testsuite/27_io/filesystem/operations/copy.cc: Construct fstreams
|
|
|
|
|
with std::filesystem::path not std::basic_string.
|
|
|
|
|
* testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/operations/exists.cc: Use
|
|
|
|
|
__gnu_test::root_path() instead of "/".
|
|
|
|
|
* testsuite/27_io/filesystem/operations/is_empty.cc: Construct
|
|
|
|
|
fstreams with std::filesystem::path not std::basic_string.
|
|
|
|
|
* testsuite/27_io/filesystem/operations/last_write_time.cc: Use
|
|
|
|
|
path::string() to get narrow string.
|
|
|
|
|
* testsuite/27_io/filesystem/operations/space.cc: Check results for
|
|
|
|
|
errors, expect sensible values otherwise.
|
|
|
|
|
* testsuite/27_io/filesystem/operations/temp_directory_path.cc: Add
|
|
|
|
|
helpers for adjusting the environment on Windows.
|
|
|
|
|
* testsuite/27_io/filesystem/path/append/path.cc: Test
|
|
|
|
|
Windows-specific behaviour.
|
|
|
|
|
* testsuite/27_io/filesystem/path/construct/format.cc: Fix creation
|
|
|
|
|
of path::string_type objects.
|
|
|
|
|
* testsuite/27_io/filesystem/path/construct/locale.cc: Compare native
|
|
|
|
|
string to wide string on Windows.
|
|
|
|
|
* testsuite/27_io/filesystem/path/decompose/root_directory.cc: Allow
|
|
|
|
|
for backslash as root-directory.
|
|
|
|
|
* testsuite/27_io/filesystem/path/decompose/stem.cc: Use
|
|
|
|
|
path::string() to get narrow string.
|
|
|
|
|
* testsuite/27_io/filesystem/path/itr/traversal.cc: Test Windows-style
|
|
|
|
|
paths.
|
|
|
|
|
* testsuite/27_io/filesystem/path/native/string.cc: Use string_type
|
|
|
|
|
not std::string.
|
|
|
|
|
* testsuite/27_io/filesystem/path/query/is_absolute.cc: Adjust for
|
|
|
|
|
different definintion of absolute paths on Windows.
|
|
|
|
|
* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
|
|
|
|
|
Do not use symlinks.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/absolute.cc: Test
|
|
|
|
|
Windows behaviour.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/copy.cc: Construct
|
|
|
|
|
fstreams with NTCTS not std::basic_string.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/exists.cc: Use
|
|
|
|
|
__gnu_test::root_path() instead of "/".
|
|
|
|
|
* testsuite/experimental/filesystem/operations/is_empty.cc: Construct
|
|
|
|
|
fstreams with NTCTS not std::basic_string.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/last_write_time.cc:
|
|
|
|
|
Use path::string() to get narrow string.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/space.cc: Use
|
|
|
|
|
__gnu_test::root_path() instead of "/".
|
|
|
|
|
* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
|
|
|
|
|
Add helpers for adjusting the environment on Windows.
|
|
|
|
|
* testsuite/experimental/filesystem/path/append/path.cc: Use
|
|
|
|
|
path::string() to get narrow strings for comparisons.
|
|
|
|
|
* testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/decompose/root_directory.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/native/string.cc: Use
|
|
|
|
|
string_type not std::string.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/is_absolute.cc:
|
|
|
|
|
Adjust for different definintion of absolute paths on Windows.
|
|
|
|
|
* testsuite/util/testsuite_fs.h (__gnu_test::root_path()): New
|
|
|
|
|
function.
|
|
|
|
|
(__gnu_test::scoped_file): Construct fstreams with NTCTS not
|
|
|
|
|
std::basic_string.
|
|
|
|
|
|
PR libstdc++/85951 for make_signed/make_unsigned for character types
Because the wide character types are neither signed integer types nor
unsigned integer types they need to be transformed to an integral type
of the correct size and the lowest rank (which is not necessarily the
underlying type). Reuse the helpers for enumeration types to select the
correct integer.
The refactoring of __make_unsigned_selector and __make_signed_selector
slightly reduces the number of template instantiations and so reduces
memory usage.
PR libstdc++/85951
* include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
uint_least16_t and uint_least32_t.
(__make_unsigned<wchar_t>): Define unconditionally.
(__make_unsigned_selector<_Tp, true, false>): Remove intermediate
typedefs.
(__make_unsigned_selector_base): New type to provide helper templates.
(__make_unsigned_selector<_Tp, false, true>): Reimplement using
__make_unsigned_selector_base helpers.
(__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
(__make_signed_selector<_Tp, true, false>): Remove intermediate
typedefs.
(__make_signed<wchar_t>, __make_signed<char16_t>)
(__make_signed<char32_t>)): Define unconditionally.
* testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
wchar_t, char16_t and char32_t are transformed correctly.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
dg-error lineno.
* testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
wchar_t, char16_t and char32_t are transformed correctly.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
dg-error lineno.
From-SVN: r261023
2018-05-31 14:18:19 +02:00
|
|
|
|
2018-05-31 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/85951
|
|
|
|
|
* include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
|
|
|
|
|
uint_least16_t and uint_least32_t.
|
|
|
|
|
(__make_unsigned<wchar_t>): Define unconditionally.
|
|
|
|
|
(__make_unsigned_selector<_Tp, true, false>): Remove intermediate
|
|
|
|
|
typedefs.
|
|
|
|
|
(__make_unsigned_selector_base): New type to provide helper templates.
|
|
|
|
|
(__make_unsigned_selector<_Tp, false, true>): Reimplement using
|
|
|
|
|
__make_unsigned_selector_base helpers.
|
|
|
|
|
(__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
|
|
|
|
|
(__make_signed_selector<_Tp, true, false>): Remove intermediate
|
|
|
|
|
typedefs.
|
|
|
|
|
(__make_signed<wchar_t>, __make_signed<char16_t>)
|
|
|
|
|
(__make_signed<char32_t>)): Define unconditionally.
|
|
|
|
|
* testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
|
|
|
|
|
wchar_t, char16_t and char32_t are transformed correctly.
|
|
|
|
|
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
|
|
|
|
|
dg-error lineno.
|
|
|
|
|
* testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
|
|
|
|
|
wchar_t, char16_t and char32_t are transformed correctly.
|
|
|
|
|
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
|
|
|
|
|
dg-error lineno.
|
|
|
|
|
|
2018-05-29 19:21:31 +02:00
|
|
|
|
2018-05-29 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/std/variant (__erased_dtor): Qualify call to __get.
|
|
|
|
|
|
stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
2018-05-27 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
(_Rb_tree(const allocator_type&)): Use latter.
* include/bits/stl_map.h (map(const allocator_type&)): Likewise.
(map(initializer_list<value_type>, const allocator_type&)): Likewise.
(map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
* include/bits/stl_multimap.h
(multimap(const allocator_type&)): Likewise.
(multimap(initializer_list<value_type>, const allocator_type&)):
Likewise.
(multimap(_InputIterator, _InputIterator, const allocator_type&)):
Likewise.
* include/bits/stl_set.h (set(const allocator_type&)): Likewise.
(set(initializer_list<value_type>, const allocator_type&)): Likewise.
(set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
* include/bits/stl_multiset.h
(multiset(const allocator_type&)): Likewise.
(multiset(initializer_list<value_type>, const allocator_type&)):
Likewise.
(multiset(_InputIterator, _InputIterator, const allocator_type&)):
Likewise.
From-SVN: r260806
2018-05-27 19:06:40 +02:00
|
|
|
|
2018-05-27 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
|
|
|
|
|
(_Rb_tree(const allocator_type&)): Use latter.
|
|
|
|
|
* include/bits/stl_map.h (map(const allocator_type&)): Likewise.
|
|
|
|
|
(map(initializer_list<value_type>, const allocator_type&)): Likewise.
|
|
|
|
|
(map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
|
|
|
|
|
* include/bits/stl_multimap.h
|
|
|
|
|
(multimap(const allocator_type&)): Likewise.
|
|
|
|
|
(multimap(initializer_list<value_type>, const allocator_type&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
(multimap(_InputIterator, _InputIterator, const allocator_type&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
* include/bits/stl_set.h (set(const allocator_type&)): Likewise.
|
|
|
|
|
(set(initializer_list<value_type>, const allocator_type&)): Likewise.
|
|
|
|
|
(set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
|
|
|
|
|
* include/bits/stl_multiset.h
|
|
|
|
|
(multiset(const allocator_type&)): Likewise.
|
|
|
|
|
(multiset(initializer_list<value_type>, const allocator_type&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
(multiset(_InputIterator, _InputIterator, const allocator_type&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2018-05-25 18:40:55 +02:00
|
|
|
|
2018-05-25 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/85768
|
|
|
|
|
* src/c++11/debug.cc: Remove backtrace usage.
|
|
|
|
|
|
2018-05-24 19:31:13 +02:00
|
|
|
|
2018-05-24 Maya Rashish <coypu@sdf.org>
|
|
|
|
|
|
|
|
|
|
PR target/85904
|
|
|
|
|
* crossconfig.m4: Test for aligned_alloc on netbsd.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
Implement P0558R2 changes to std::atomic
The restrictions forbidding arithmetic on atomic pointer types are only
enabled for C++17 and later, retaining the GNU extension for older
standards. The new nested typedefs and changes to prevent scalar
parameters participating in template argument deduction are enabled
unconditionally.
PR libstdc++/69769
PR libstdc++/85886
* include/bits/atomic_base.h (__atomic_base::value_type)
(__atomic_base::difference_type): Add new typedefs.
* include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type)
(atomic<T*>::value_type, atomic<T*>::difference_type): Likewise.
(atomic<T*>::operator++, atomic<T*>::operator--)
(atomic<T*>::operator+=, atomic<T*>::operator-=)
(atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion
to enforce C++17 requirement on pointer arithmetic.
(__atomic_val_t, __atomic_diff_t): New alias templates.
(atomic_init, atomic_store_explicit, atomic_exchange_explicit)
(atomic_compare_exchange_weak_explicit)
(atomic_compare_exchange_strong_explicit, atomic_store)
(atomic_exchange, atomic_compare_exchange_weak)
(atomic_compare_exchange_strong): Use __atomic_val_t to make
scalar parameters be non-deduced contexts.
(atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
(atomic_fetch_add, atomic_fetch_sub): Change first parameter to be
atomic instead of __atomic_base, and use __atomic_diff_t for scalar
parameters.
(atomic_fetch_and_explicit, atomic_fetch_or_explicit)
(atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or)
(atomic_fetch_xor): Use __atomic_val_t for scalar parameters.
(atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
(atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic
address types.
* testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
* testsuite/29_atomics/atomic/69769.cc: New test.
* testsuite/29_atomics/atomic/nonmembers.cc: New test.
* testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
Disable test for C++17 and later.
* testsuite/29_atomics/atomic/requirements/typedefs.cc: New test.
* testsuite/29_atomics/atomic_integral/nonmembers.cc: New test.
* testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New
test.
From-SVN: r260676
2018-05-24 17:28:26 +02:00
|
|
|
|
2018-05-24 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/69769
|
|
|
|
|
PR libstdc++/85886
|
|
|
|
|
* include/bits/atomic_base.h (__atomic_base::value_type)
|
|
|
|
|
(__atomic_base::difference_type): Add new typedefs.
|
|
|
|
|
* include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type)
|
|
|
|
|
(atomic<T*>::value_type, atomic<T*>::difference_type): Likewise.
|
|
|
|
|
(atomic<T*>::operator++, atomic<T*>::operator--)
|
|
|
|
|
(atomic<T*>::operator+=, atomic<T*>::operator-=)
|
|
|
|
|
(atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion
|
|
|
|
|
to enforce C++17 requirement on pointer arithmetic.
|
|
|
|
|
(__atomic_val_t, __atomic_diff_t): New alias templates.
|
|
|
|
|
(atomic_init, atomic_store_explicit, atomic_exchange_explicit)
|
|
|
|
|
(atomic_compare_exchange_weak_explicit)
|
|
|
|
|
(atomic_compare_exchange_strong_explicit, atomic_store)
|
|
|
|
|
(atomic_exchange, atomic_compare_exchange_weak)
|
|
|
|
|
(atomic_compare_exchange_strong): Use __atomic_val_t to make
|
|
|
|
|
scalar parameters be non-deduced contexts.
|
|
|
|
|
(atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
|
|
|
|
|
(atomic_fetch_add, atomic_fetch_sub): Change first parameter to be
|
|
|
|
|
atomic instead of __atomic_base, and use __atomic_diff_t for scalar
|
|
|
|
|
parameters.
|
|
|
|
|
(atomic_fetch_and_explicit, atomic_fetch_or_explicit)
|
|
|
|
|
(atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or)
|
|
|
|
|
(atomic_fetch_xor): Use __atomic_val_t for scalar parameters.
|
|
|
|
|
(atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
|
|
|
|
|
(atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic
|
|
|
|
|
address types.
|
|
|
|
|
* testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
|
|
|
|
|
* testsuite/29_atomics/atomic/69769.cc: New test.
|
|
|
|
|
* testsuite/29_atomics/atomic/nonmembers.cc: New test.
|
|
|
|
|
* testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
|
|
|
|
|
Disable test for C++17 and later.
|
|
|
|
|
* testsuite/29_atomics/atomic/requirements/typedefs.cc: New test.
|
|
|
|
|
* testsuite/29_atomics/atomic_integral/nonmembers.cc: New test.
|
|
|
|
|
* testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New
|
|
|
|
|
test.
|
|
|
|
|
|
2018-05-23 18:11:06 +02:00
|
|
|
|
2018-05-23 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-05-24 00:48:51 +02:00
|
|
|
|
* include/bits/fs_path.h (path::__is_encoded_char): Change from class
|
|
|
|
|
template to alias template.
|
|
|
|
|
(path::__value_type_is_char): Use remove_const_t.
|
|
|
|
|
(path:_S_string_from_iter): New helper function.
|
|
|
|
|
(path::_S_convert(InputIter, __null_terminated))
|
|
|
|
|
(path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
|
|
|
|
|
Use _S_string_from_iter.
|
|
|
|
|
(path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing
|
|
|
|
|
rep for COW strings.
|
|
|
|
|
* include/experimental/bits/fs_path.h (path::__is_encoded_char):
|
|
|
|
|
Change from class template to alias template.
|
|
|
|
|
(path::__value_type_is_char): Use remove_const.
|
|
|
|
|
(path:_S_string_from_iter): New helper function.
|
|
|
|
|
(path::_S_convert(InputIter, __null_terminated))
|
|
|
|
|
(path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
|
|
|
|
|
Use _S_string_from_iter.
|
|
|
|
|
* testsuite/27_io/filesystem/path/append/source.cc: Test appending
|
|
|
|
|
wide strings.
|
|
|
|
|
* testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact
|
|
|
|
|
string equality, not path equivalence.
|
|
|
|
|
* testsuite/27_io/filesystem/path/construct/format.cc: Check
|
|
|
|
|
construction from std::string and std::wstring and input iterators.
|
|
|
|
|
* testsuite/27_io/filesystem/path/construct/locale.cc: Check
|
|
|
|
|
construction from iterators.
|
|
|
|
|
* testsuite/experimental/filesystem/path/concat/strings.cc: Check for
|
|
|
|
|
exact string equality, not path equivalence.
|
|
|
|
|
* testsuite/experimental/filesystem/path/construct/locale.cc: Check
|
|
|
|
|
construction from iterators.
|
|
|
|
|
|
2018-05-23 18:11:06 +02:00
|
|
|
|
* include/bits/fs_path.h (path::_M_type): Change default member
|
|
|
|
|
initializer to _Filename.
|
|
|
|
|
(path::begin): Create past-the-end iterator for empty path.
|
|
|
|
|
* src/filesystem/std-path.cc (path::remove_filename()): Remove
|
|
|
|
|
debugging check.
|
|
|
|
|
(path::has_relative_path()): Return false for empty filenames.
|
|
|
|
|
(path::_M_split_cmpts): Set _M_type to _Filename for empty paths.
|
|
|
|
|
Fix offset of empty final component.
|
|
|
|
|
* testsuite/27_io/filesystem/path/itr/components.cc: New.
|
|
|
|
|
* testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs.
|
|
|
|
|
|
Add support for opening file streams from wide character strings
C++17 added new overloads to <fstream> class templates to support
opening files from wide character strings "on systems where
filesystem::path::value_type is not char". This patch adds those
overloads conditional on _wfopen being available, and enables them for
pre-C++17 modes as well.
Add support for opening file streams from wide character strings.
* config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
(__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
Define new overload.
* config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
(__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
Declare new overload.
* configure.ac: Check for _wfopen.
* crossconfig.m4: Likewise.
* configure: Regenerate.
* config.h.in: Regenerate.
* include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
(basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
Define new overload.
* include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
(basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
Declare new overload.
[_GLIBCXX_HAVE__WFOPEN]
(basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
(basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
(basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
(basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
(basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
(basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
new overloads.
* testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
* testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
* testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
* testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
* testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
* testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
* testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
From-SVN: r260479
2018-05-21 19:18:35 +02:00
|
|
|
|
2018-05-21 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
Add support for opening file streams from wide character strings.
|
|
|
|
|
* config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
|
|
|
|
|
(__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
|
|
|
|
|
Define new overload.
|
|
|
|
|
* config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
|
|
|
|
|
(__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
|
|
|
|
|
Declare new overload.
|
|
|
|
|
* configure.ac: Check for _wfopen.
|
|
|
|
|
* crossconfig.m4: Likewise.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
* include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
|
|
|
|
|
(basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
|
|
|
|
|
Define new overload.
|
|
|
|
|
* include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
|
|
|
|
|
(basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
|
|
|
|
|
Declare new overload.
|
|
|
|
|
[_GLIBCXX_HAVE__WFOPEN]
|
|
|
|
|
(basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
|
|
|
|
|
(basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
|
|
|
|
|
(basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
|
|
|
|
|
(basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
|
|
|
|
|
(basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
|
|
|
|
|
(basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
|
|
|
|
|
new overloads.
|
|
|
|
|
* testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
|
|
|
|
|
* testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
|
|
|
|
|
* testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
|
|
|
|
|
* testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
|
|
|
|
|
* testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
|
|
|
|
|
* testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
|
|
|
|
|
* testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
|
|
|
|
|
|
2018-05-21 18:51:47 +02:00
|
|
|
|
2018-05-21 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/85845
|
|
|
|
|
* include/bits/stl_tree.h
|
|
|
|
|
(_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
|
|
|
|
|
qualification.
|
|
|
|
|
|
2018-05-21 01:50:08 +02:00
|
|
|
|
2018-05-21 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-05-21 14:52:44 +02:00
|
|
|
|
* src/filesystem/std-ops.cc (absolute): Report an error for empty
|
|
|
|
|
paths.
|
|
|
|
|
(weakly_canonical(const path&)): Do not call canonical on empty path.
|
|
|
|
|
(weakly_canonical(const path&, error_code&)): Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
|
|
|
|
|
|
2018-05-21 14:27:00 +02:00
|
|
|
|
PR libstdc++/85818
|
|
|
|
|
* testsuite/experimental/filesystem/path/preferred_separator.cc: Add
|
|
|
|
|
dg-require-filesystem-ts.
|
|
|
|
|
|
2018-05-21 01:50:08 +02:00
|
|
|
|
PR libstdc++/85843
|
|
|
|
|
* src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
|
|
|
|
|
initialize base class to avoid warnings.
|
|
|
|
|
|
2018-05-19 04:03:42 +02:00
|
|
|
|
2018-05-19 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
|
|
|
|
|
[__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
|
|
|
|
|
little_endian element in bitmask.
|
|
|
|
|
* testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
|
|
|
|
|
* testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
|
|
|
|
|
|
2018-05-18 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_tree.h
(_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
(_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
(_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
(_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
* include/debug/map.h
(map(map&&, const_allocator_type&)): Add noexcept qualitication.
* include/debug/multimap.h
(multimap(multimap&&, const_allocator_type&)): Likewise.
* include/debug/set.h
(set(set&&, const_allocator_type&)): Likewise.
* include/debug/multiset.h
(multiset(multiset&&, const_allocator_type&)): Likewise.
* testsuite/23_containers/map/cons/noexcept_default_construct.cc:
Add checks.
* testsuite/23_containers/map/cons/noexcept_move_construct.cc:
Add checks.
* testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
Add checks.
* testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
Add checks.
* testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
Add checks.
* testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
Add checks.
* testsuite/23_containers/set/cons/noexcept_default_construct.cc:
Add checks.
* testsuite/23_containers/set/cons/noexcept_move_construct.cc:
Add checks.
From-SVN: r260382
2018-05-18 22:49:49 +02:00
|
|
|
|
2018-05-18 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/bits/stl_tree.h
|
|
|
|
|
(_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
|
|
|
|
|
(_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
|
|
|
|
|
(_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
|
|
|
|
|
(_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
|
|
|
|
|
* include/debug/map.h
|
|
|
|
|
(map(map&&, const_allocator_type&)): Add noexcept qualitication.
|
|
|
|
|
* include/debug/multimap.h
|
|
|
|
|
(multimap(multimap&&, const_allocator_type&)): Likewise.
|
|
|
|
|
* include/debug/set.h
|
|
|
|
|
(set(set&&, const_allocator_type&)): Likewise.
|
|
|
|
|
* include/debug/multiset.h
|
|
|
|
|
(multiset(multiset&&, const_allocator_type&)): Likewise.
|
|
|
|
|
* testsuite/23_containers/map/cons/noexcept_default_construct.cc:
|
|
|
|
|
Add checks.
|
|
|
|
|
* testsuite/23_containers/map/cons/noexcept_move_construct.cc:
|
|
|
|
|
Add checks.
|
|
|
|
|
* testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
|
|
|
|
|
Add checks.
|
|
|
|
|
* testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
|
|
|
|
|
Add checks.
|
|
|
|
|
* testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
|
|
|
|
|
Add checks.
|
|
|
|
|
* testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
|
|
|
|
|
Add checks.
|
|
|
|
|
* testsuite/23_containers/set/cons/noexcept_default_construct.cc:
|
|
|
|
|
Add checks.
|
|
|
|
|
* testsuite/23_containers/set/cons/noexcept_move_construct.cc:
|
|
|
|
|
Add checks.
|
|
|
|
|
|
2018-05-18 22:02:14 +02:00
|
|
|
|
2018-05-18 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/bits/stl_deque.h (_Deque_iterator): Constrain constructor
|
|
|
|
|
for conversion to const_iterator. Add defaulted copy ops.
|
|
|
|
|
* libsupc++/new (bad_alloc): Add defaulted copy ops.
|
|
|
|
|
* libsupc++/exception.h (exception): Add defaulted copy ops.
|
|
|
|
|
* include/std/system_error (system_error): Add defaulted copy ops.
|
|
|
|
|
* include/std/stdexcept (domain_error, invalid_argument)
|
|
|
|
|
(length_error, out_of_range, range_error, overflow_error)
|
|
|
|
|
(underflow_error): Add defaulted copy ops.
|
|
|
|
|
* include/bits/stl_iterator.h (reverse_iterator): Add defaulted
|
|
|
|
|
copy assignment.
|
|
|
|
|
* include/bits/allocator.h (allocator): Add defaulted copy assignment.
|
|
|
|
|
* include/ext/throw_allocator.h (condition_base): Add defaulted
|
|
|
|
|
default and copy ctor and copy assignment.
|
|
|
|
|
|
2018-05-18 18:14:04 +02:00
|
|
|
|
2018-05-18 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/85098
|
|
|
|
|
* include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
|
|
|
|
|
(basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
|
|
|
|
|
(basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
|
|
|
|
|
(basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
|
|
|
|
|
definitions.
|
|
|
|
|
* include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
|
|
|
|
|
whitespace.
|
|
|
|
|
* include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
|
|
|
|
|
braces around body of do-while.
|
|
|
|
|
* testsuite/28_regex/basic_regex/85098.cc: New
|
|
|
|
|
|
2018-05-17 17:03:29 +02:00
|
|
|
|
2018-05-17 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-05-17 17:36:25 +02:00
|
|
|
|
PR libstdc++/85818
|
|
|
|
|
* src/filesystem/path.cc (path::preferred_separator): Add used
|
|
|
|
|
attribute.
|
|
|
|
|
* testsuite/experimental/filesystem/path/preferred_separator.cc: New.
|
|
|
|
|
|
2018-05-17 17:03:29 +02:00
|
|
|
|
PR libstdc++/85812
|
|
|
|
|
* libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
|
|
|
|
|
* libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
|
|
|
|
|
Refactor to separate non-throwing and throwing implementations.
|
|
|
|
|
[__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
|
|
|
|
|
if constructing the object throws.
|
|
|
|
|
|
2018-05-15 14:06:57 +02:00
|
|
|
|
2018-05-15 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-05-15 17:36:46 +02:00
|
|
|
|
PR libstdc++/85749
|
|
|
|
|
* include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
|
|
|
|
|
(linear_congruential_engine, mersenne_twister_engine)
|
|
|
|
|
(subtract_with_carry_engine, discard_block_engine)
|
|
|
|
|
(independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
|
|
|
|
|
constrain function templates taking seed sequences.
|
|
|
|
|
* include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
|
|
|
|
|
(mersenne_twister_engine::seed(_Sseq&))
|
|
|
|
|
(subtract_with_carry_engine::seed(_Sseq&)): Change return types to
|
|
|
|
|
match declarations.
|
|
|
|
|
* include/ext/random (simd_fast_mersenne_twister_engine): Use
|
|
|
|
|
__is_seed_seq to constrain function templates taking seed sequences.
|
|
|
|
|
* include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
|
|
|
|
|
Change return type to match declaration.
|
|
|
|
|
* testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
|
|
|
|
|
New.
|
|
|
|
|
* testsuite/26_numerics/random/independent_bits_engine/cons/
|
|
|
|
|
seed_seq2.cc: New.
|
|
|
|
|
* testsuite/26_numerics/random/linear_congruential_engine/cons/
|
|
|
|
|
seed_seq2.cc: New.
|
|
|
|
|
* testsuite/26_numerics/random/mersenne_twister_engine/cons/
|
|
|
|
|
seed_seq2.cc: New.
|
|
|
|
|
* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
|
|
|
|
|
* testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
|
|
|
|
|
New.
|
|
|
|
|
* testsuite/26_numerics/random/subtract_with_carry_engine/cons/
|
|
|
|
|
seed_seq2.cc: New.
|
|
|
|
|
* testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
|
|
|
|
|
seed_seq2.cc: New.
|
|
|
|
|
|
2018-05-15 15:50:49 +02:00
|
|
|
|
PR libstdc++/83891
|
|
|
|
|
* include/bits/fs_path.h (path::is_absolute()): Use same definition
|
|
|
|
|
for all operating systems.
|
|
|
|
|
* include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
|
|
|
|
|
* testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
|
|
|
|
|
|
2018-05-15 14:43:44 +02:00
|
|
|
|
* testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
|
|
|
|
|
unused <vector> header.
|
|
|
|
|
* testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/path/query/has_relative_path.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/path/query/has_root_directory.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/decompose/extension.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/has_extension.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/has_filename.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/has_parent_path.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/has_relative_path.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/has_root_directory.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/has_root_name.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/has_root_path.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/is_relative.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2018-05-15 14:07:09 +02:00
|
|
|
|
PR libstdc++/84159
|
|
|
|
|
* include/bits/fs_path.h (path::operator/=, path::append): Construct
|
|
|
|
|
temporary path before calling _M_append.
|
|
|
|
|
(path::_M_append): Change parameter to path and implement C++17
|
|
|
|
|
semantics.
|
|
|
|
|
* testsuite/27_io/filesystem/path/append/path.cc: Add helper function
|
|
|
|
|
and more examples from the standard.
|
|
|
|
|
* testsuite/27_io/filesystem/path/append/source.cc: New.
|
|
|
|
|
* testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
|
|
|
|
|
* testsuite/27_io/filesystem/path/nonmember/append.cc: New.
|
|
|
|
|
|
2018-05-15 14:06:57 +02:00
|
|
|
|
* include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
|
|
|
|
|
__invoke to prevent ADL.
|
|
|
|
|
|
2018-05-14 16:27:54 +02:00
|
|
|
|
2018-05-14 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-05-14 20:57:45 +02:00
|
|
|
|
PR libstdc++/81256
|
|
|
|
|
* include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
|
|
|
|
|
exceptions from _M_terminate_output().
|
|
|
|
|
* include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
|
|
|
|
|
exceptions from close().
|
|
|
|
|
* testsuite/27_io/basic_filebuf/close/81256.cc: New.
|
|
|
|
|
|
2018-05-14 17:35:12 +02:00
|
|
|
|
* include/bits/valarray_array.h (__valarray_get_memory): Remove.
|
|
|
|
|
(__valarray_get_storage): Call operator new directly. Remove ignored
|
|
|
|
|
top-level restrict qualifier and add malloc attribute instead.
|
|
|
|
|
(_Array<_Tp>::_Array(size_t)): Remove unused constructor.
|
|
|
|
|
|
2018-05-14 17:35:06 +02:00
|
|
|
|
PR libstdc++/67554
|
|
|
|
|
* include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
|
|
|
|
|
(_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
|
|
|
|
|
|
2018-05-14 16:27:54 +02:00
|
|
|
|
PR libstdc++/82966
|
|
|
|
|
* include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
|
|
|
|
|
instead of type.
|
|
|
|
|
* testsuite/23_containers/set/modifiers/node_swap.cc: New.
|
|
|
|
|
|
2018-05-13 12:36:12 +02:00
|
|
|
|
2018-05-13 Ville Voutilainen <ville.voutilainen@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/80165
|
|
|
|
|
* testsuite/20_util/variant/80165.cc: New.
|
|
|
|
|
|
2018-05-10 21:13:42 +02:00
|
|
|
|
2018-05-10 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
|
|
|
|
|
* doc/xml/manual/debug_mode.xml: Add array and forward_list to list
|
|
|
|
|
of C++11 containers with Debug Mode support.
|
|
|
|
|
* doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
|
|
|
|
|
* doc/html/*: Regenerate.
|
|
|
|
|
|
2018-05-10 21:12:23 +02:00
|
|
|
|
2018-05-10 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/bits/regex_compiler.h (_S_cache_size): Change from
|
|
|
|
|
function to variable.
|
|
|
|
|
|
2018-05-10 15:59:52 +02:00
|
|
|
|
2018-05-10 Edward Smith-Rowland <3dw4rd@verizon.net>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
|
|
|
|
|
* include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
|
|
|
|
|
argument defaulted to +1. Doxy comments on same.
|
|
|
|
|
* testsuite/special_functions/02_assoc_legendre/
|
2018-05-11 03:44:05 +02:00
|
|
|
|
check_value.cc: Regen.
|
2018-05-10 15:59:52 +02:00
|
|
|
|
* testsuite/tr1/5_numerical_facilities/special_functions/
|
2018-05-11 03:44:05 +02:00
|
|
|
|
02_assoc_legendre/check_value.cc: Regen.
|
2018-05-10 15:59:52 +02:00
|
|
|
|
|
2018-05-10 14:35:45 +02:00
|
|
|
|
2018-05-10 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/85729
|
|
|
|
|
* include/bits/c++config.h (__replacement_assert): Add linkage
|
|
|
|
|
specification.
|
|
|
|
|
* include/bits/std_abs.h: Add comment to closing brace of block.
|
|
|
|
|
* include/c_global/cstddef: Add linkage specification.
|
|
|
|
|
* include/c_global/cstring: Likewise.
|
|
|
|
|
* include/c_global/cwchar: Likewise.
|
|
|
|
|
|
safe_iterator.h (_Safe_iterator<>::_M_constant()): Rename in...
2018-05-09 François Dumont <fdumont@gcc.gnu.org>
* include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
Rename in...
(_Safe_iterator<>::_S_constant()): ...that.
* include/debug/safe_local_iterator.h
(_Safe_local_iterator<>::_M_constant()): Rename in...
(_Safe_local_iterator<>::_S_constant()): ...that.
* include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
(_Iterator_state::__rbegin): New.
(_Iterator_state::__rmiddle): New.
(_Iterator_state::__rend): New.
(_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
_Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
iterator type.
(_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
_Is_iterator)): Likewise.
(_Parameter::_S_reverse_state(_Iterator_state)): New.
(_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
_Is_iterator)): New.
(_Parameter(std::reverse_iterator<> const&, const char*,
_Is_iterator)): New.
(_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
const char*, _Is_iterator)): New.
(_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
New.
(_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
_Is_iterator)): New.
* testsuite/24_iterators/move_iterator/debug_neg.cc: New.
* testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
* testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
From-SVN: r260093
2018-05-09 22:04:46 +02:00
|
|
|
|
2018-05-09 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
|
|
|
|
|
Rename in...
|
|
|
|
|
(_Safe_iterator<>::_S_constant()): ...that.
|
|
|
|
|
* include/debug/safe_local_iterator.h
|
|
|
|
|
(_Safe_local_iterator<>::_M_constant()): Rename in...
|
|
|
|
|
(_Safe_local_iterator<>::_S_constant()): ...that.
|
|
|
|
|
* include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
|
|
|
|
|
(_Iterator_state::__rbegin): New.
|
|
|
|
|
(_Iterator_state::__rmiddle): New.
|
|
|
|
|
(_Iterator_state::__rend): New.
|
|
|
|
|
(_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
|
|
|
|
|
_Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
|
|
|
|
|
iterator type.
|
|
|
|
|
(_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
|
|
|
|
|
_Is_iterator)): Likewise.
|
|
|
|
|
(_Parameter::_S_reverse_state(_Iterator_state)): New.
|
2018-05-10 21:13:42 +02:00
|
|
|
|
(_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
|
safe_iterator.h (_Safe_iterator<>::_M_constant()): Rename in...
2018-05-09 François Dumont <fdumont@gcc.gnu.org>
* include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
Rename in...
(_Safe_iterator<>::_S_constant()): ...that.
* include/debug/safe_local_iterator.h
(_Safe_local_iterator<>::_M_constant()): Rename in...
(_Safe_local_iterator<>::_S_constant()): ...that.
* include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
(_Iterator_state::__rbegin): New.
(_Iterator_state::__rmiddle): New.
(_Iterator_state::__rend): New.
(_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
_Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
iterator type.
(_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
_Is_iterator)): Likewise.
(_Parameter::_S_reverse_state(_Iterator_state)): New.
(_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
_Is_iterator)): New.
(_Parameter(std::reverse_iterator<> const&, const char*,
_Is_iterator)): New.
(_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
const char*, _Is_iterator)): New.
(_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
New.
(_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
_Is_iterator)): New.
* testsuite/24_iterators/move_iterator/debug_neg.cc: New.
* testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
* testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
From-SVN: r260093
2018-05-09 22:04:46 +02:00
|
|
|
|
_Is_iterator)): New.
|
|
|
|
|
(_Parameter(std::reverse_iterator<> const&, const char*,
|
|
|
|
|
_Is_iterator)): New.
|
|
|
|
|
(_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
|
|
|
|
|
const char*, _Is_iterator)): New.
|
|
|
|
|
(_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
|
|
|
|
|
New.
|
|
|
|
|
(_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
|
|
|
|
|
_Is_iterator)): New.
|
|
|
|
|
* testsuite/24_iterators/move_iterator/debug_neg.cc: New.
|
|
|
|
|
* testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
|
|
|
|
|
* testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
|
|
|
|
|
|
2018-05-09 15:28:11 +02:00
|
|
|
|
2018-05-09 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/bits/std_function.h (_Base_manager::_M_get_pointer):
|
|
|
|
|
Use constexpr if in C++17 mode.
|
|
|
|
|
(_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
|
|
|
|
|
Copy from const object.
|
|
|
|
|
* testsuite/20_util/function/cons/non_copyconstructible.cc: New.
|
|
|
|
|
|
2018-05-08 21:41:02 +02:00
|
|
|
|
2018-05-08 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
2018-05-08 22:00:52 +02:00
|
|
|
|
* src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
|
|
|
|
|
[_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
|
|
|
|
|
backtrace.
|
|
|
|
|
|
macros.h (__glibcxx_check_valid_range_at): New.
2018-05-08 François Dumont <fdumont@gcc.gnu.org>
* include/debug/macros.h (__glibcxx_check_valid_range_at): New.
* include/debug/functions.h (__check_valid_range): Use latter.
* include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
use latter.
* include/debug/deque
(deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
* include/debug/forward_list
(forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
Likewise.
* include/debug/list
(list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
* include/debug/list
(list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
* include/debug/map.h
(map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
(map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
Likewise.
* include/debug/multimap.h
(multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
(multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
const _Alloc&)): Likewise.
* include/debug/set.h
(set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
(set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
Likewise.
* include/debug/multiset.h
(multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
(multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
const _Alloc&)): Likewise.
* include/debug/string
(basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
Likewise.
* include/debug/unordered_map
(unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
Likewise.
(unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
const _Alloc&)): Likewise.
* include/debug/unordered_set
(unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
Likewise.
(unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
const _Alloc&)): Likewise.
* include/debug/vector
(vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
From-SVN: r260053
2018-05-08 21:46:59 +02:00
|
|
|
|
* include/debug/macros.h (__glibcxx_check_valid_range_at): New.
|
|
|
|
|
* include/debug/functions.h (__check_valid_range): Use latter.
|
|
|
|
|
* include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
|
|
|
|
|
use latter.
|
|
|
|
|
* include/debug/deque
|
|
|
|
|
(deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
|
|
|
|
|
* include/debug/forward_list
|
|
|
|
|
(forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
* include/debug/list
|
|
|
|
|
(list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
|
|
|
|
|
* include/debug/list
|
|
|
|
|
(list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
|
|
|
|
|
* include/debug/map.h
|
|
|
|
|
(map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
|
|
|
|
|
(map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
* include/debug/multimap.h
|
|
|
|
|
(multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
|
|
|
|
|
(multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
|
|
|
|
|
const _Alloc&)): Likewise.
|
|
|
|
|
* include/debug/set.h
|
|
|
|
|
(set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
|
|
|
|
|
(set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
* include/debug/multiset.h
|
|
|
|
|
(multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
|
|
|
|
|
(multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
|
|
|
|
|
const _Alloc&)): Likewise.
|
|
|
|
|
* include/debug/string
|
|
|
|
|
(basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
* include/debug/unordered_map
|
|
|
|
|
(unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
(unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
|
|
|
|
|
const _Alloc&)): Likewise.
|
|
|
|
|
* include/debug/unordered_set
|
|
|
|
|
(unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
(unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
|
|
|
|
|
const _Alloc&)): Likewise.
|
|
|
|
|
* include/debug/vector
|
|
|
|
|
(vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
|
|
|
|
|
|
2018-05-08 21:41:02 +02:00
|
|
|
|
* include/debug/formatter.h (_Error_formatter::_M_function): New.
|
|
|
|
|
(_Error_formatter(const char*, unsigned int)): Adapt.
|
|
|
|
|
(_Error_formatter::_M_at): Rename in...
|
|
|
|
|
(_Error_formatter::_S_at): ...that and adapt.
|
|
|
|
|
* include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New.
|
|
|
|
|
(_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt.
|
|
|
|
|
* src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function
|
|
|
|
|
when available.
|
|
|
|
|
|
2018-05-08 15:05:04 +02:00
|
|
|
|
2018-05-08 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-05-08 18:21:35 +02:00
|
|
|
|
* include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
|
|
|
|
|
Use normal std::vector even in Debug Mode.
|
|
|
|
|
|
2018-05-08 15:05:04 +02:00
|
|
|
|
PR libstdc++/85672
|
|
|
|
|
* include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
|
|
|
|
|
to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
|
|
|
|
|
* include/Makefile.in: Regenerate.
|
|
|
|
|
* include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
|
|
|
|
|
within conditional block.
|
|
|
|
|
|
2018-05-07 19:26:28 +02:00
|
|
|
|
2018-05-07 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-05-07 21:17:16 +02:00
|
|
|
|
* doc/xml/manual/using.xml (table.cmd_options): Document that the
|
|
|
|
|
C++17 Filesystem implementation also needs -lstdc++fs.
|
|
|
|
|
|
2018-05-07 19:26:28 +02:00
|
|
|
|
PR libstdc++/85671
|
|
|
|
|
* include/bits/fs_path.h (operator/): Permit copy elision.
|
|
|
|
|
* include/experimental/bits/fs_path.h (operator/): Likewise.
|
|
|
|
|
|
2018-05-07 18:17:32 +02:00
|
|
|
|
2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net>
|
|
|
|
|
|
|
|
|
|
Moar PR libstdc++/80506
|
|
|
|
|
* include/bits/random.tcc (gamma_distribution::__generate_impl()):
|
|
|
|
|
Fix magic number used in loop condition.
|
|
|
|
|
|
PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
Add missing noexcept keyword to default constructor of each
_Optional_payload specialization.
PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
* include/std/optional (_Optional_payload): Add noexcept to default
constructor. Re-indent.
(_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
constructor for copying disengaged payloads.
(_Optional_payload<_Tp, true, false, true>): Likewise.
(_Optional_payload<_Tp, true, true, false>): Likewise.
(_Optional_payload<_Tp, true, false, false>): Likewise.
* testsuite/20_util/optional/cons/85642.cc: New.
* testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
From-SVN: r259928
2018-05-04 10:57:23 +02:00
|
|
|
|
2018-05-04 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
|
|
|
|
|
* include/std/optional (_Optional_payload): Add noexcept to default
|
|
|
|
|
constructor. Re-indent.
|
|
|
|
|
(_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
|
|
|
|
|
constructor for copying disengaged payloads.
|
|
|
|
|
(_Optional_payload<_Tp, true, false, true>): Likewise.
|
|
|
|
|
(_Optional_payload<_Tp, true, true, false>): Likewise.
|
|
|
|
|
(_Optional_payload<_Tp, true, false, false>): Likewise.
|
|
|
|
|
* testsuite/20_util/optional/cons/85642.cc: New.
|
|
|
|
|
* testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
|
|
|
|
|
|
2018-05-03 14:40:10 +02:00
|
|
|
|
2018-05-03 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-05-04 00:58:43 +02:00
|
|
|
|
PR libstdc++/82644
|
|
|
|
|
* include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
|
|
|
|
|
inline definitions instead of using-declarations.
|
|
|
|
|
[__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
|
|
|
|
|
* testsuite/tr1/5_numerical_facilities/special_functions/
|
|
|
|
|
07_conf_hyperg/compile_cxx17.cc: New.
|
|
|
|
|
* testsuite/tr1/5_numerical_facilities/special_functions/
|
|
|
|
|
17_hyperg/compile_cxx17.cc: New.
|
|
|
|
|
|
2018-05-03 20:58:04 +02:00
|
|
|
|
PR libstdc++/84769
|
|
|
|
|
* include/std/variant (visit): Qualify std::get call.
|
|
|
|
|
|
2018-05-03 20:58:00 +02:00
|
|
|
|
PR libstdc++/85632 use uintmax_t for arithmetic
|
|
|
|
|
* src/filesystem/ops.cc (experimental::filesystem::space): Perform
|
|
|
|
|
arithmetic in result type.
|
|
|
|
|
* src/filesystem/std-ops.cc (filesystem::space): Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/operations/space.cc: Check total capacity
|
|
|
|
|
is greater than free space.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/space.cc: New.
|
|
|
|
|
|
2018-05-03 17:12:19 +02:00
|
|
|
|
* testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
|
|
|
|
|
* testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
|
|
|
|
|
New.
|
|
|
|
|
* testsuite/20_util/remove_cvref/value.cc: New.
|
|
|
|
|
* testsuite/20_util/remove_cvref/value_ext.cc: New.
|
|
|
|
|
|
PR libstdc++/84087 add default arguments to basic_string members (LWG 2268)
This change was a DR against C++11 and so should have been implemented
years ago.
PR libstdc++/84087 LWG DR 2268 basic_string default arguments
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
(append(const basic_string&, size_type, size_type)
(assign(const basic_string&, size_type, size_type)
(insert(size_type, const basic_string&, size_type, size_type)
(replace(size_type,size_type,const basic_string&,size_type,size_type)
(compare(size_type,size_type,constbasic_string&,size_type,size_type)):
Add default arguments (LWG 2268).
[_GLIBCXX_USE_CXX11_ABI=0]
(append(const basic_string&, size_type, size_type)
(assign(const basic_string&, size_type, size_type)
(insert(size_type, const basic_string&, size_type, size_type)
(replace(size_type,size_type,const basic_string&,size_type,size_type)
(compare(size_type,size_type,constbasic_string&,size_type,size_type)):
Likewise.
* testsuite/21_strings/basic_string/dr2268.cc: New test.
From-SVN: r259895
2018-05-03 17:01:20 +02:00
|
|
|
|
PR libstdc++/84087 LWG DR 2268 basic_string default arguments
|
|
|
|
|
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
|
|
|
|
|
(append(const basic_string&, size_type, size_type)
|
|
|
|
|
(assign(const basic_string&, size_type, size_type)
|
|
|
|
|
(insert(size_type, const basic_string&, size_type, size_type)
|
|
|
|
|
(replace(size_type,size_type,const basic_string&,size_type,size_type)
|
|
|
|
|
(compare(size_type,size_type,constbasic_string&,size_type,size_type)):
|
|
|
|
|
Add default arguments (LWG 2268).
|
|
|
|
|
[_GLIBCXX_USE_CXX11_ABI=0]
|
|
|
|
|
(append(const basic_string&, size_type, size_type)
|
|
|
|
|
(assign(const basic_string&, size_type, size_type)
|
|
|
|
|
(insert(size_type, const basic_string&, size_type, size_type)
|
|
|
|
|
(replace(size_type,size_type,const basic_string&,size_type,size_type)
|
|
|
|
|
(compare(size_type,size_type,constbasic_string&,size_type,size_type)):
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/21_strings/basic_string/dr2268.cc: New test.
|
|
|
|
|
|
2018-05-03 16:08:36 +02:00
|
|
|
|
PR libstdc++/84535
|
|
|
|
|
* include/std/thread (thread::__not_same): New SFINAE helper.
|
|
|
|
|
(thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
|
|
|
|
|
first argument is not a std::thread. Add static assertion to check
|
|
|
|
|
INVOKE expression is valid.
|
|
|
|
|
(thread::thread(thread&), thread::thread(const thread&&)): Remove.
|
|
|
|
|
(thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
|
|
|
|
|
__invoke_result for return types and remove exception specifications.
|
|
|
|
|
* testsuite/30_threads/thread/cons/84535.cc: New.
|
|
|
|
|
|
2018-05-03 14:40:15 +02:00
|
|
|
|
* include/std/future (__async_result_of): Use __invoke_result instead
|
|
|
|
|
of result_of.
|
|
|
|
|
|
2018-05-03 14:40:10 +02:00
|
|
|
|
* include/std/any (any_cast): Use __remove_cvref_t.
|
|
|
|
|
* include/std/tuple (__make_tuple): Likewise.
|
|
|
|
|
* include/std/type_traits (__remove_cvref_t): Define.
|
|
|
|
|
(__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
|
|
|
|
|
[__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
|
|
|
|
|
* include/std/variant (__erased_hash): Use __remove_cvref_t.
|
|
|
|
|
|
2018-05-02 21:51:33 +02:00
|
|
|
|
2018-05-02 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
|
|
|
|
|
ensure overloaded comma not used.
|
|
|
|
|
* include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
|
|
|
|
|
* include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
|
|
|
|
|
* include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
|
|
|
|
|
* testsuite/23_containers/deque/modifiers/assign/1.cc: New.
|
|
|
|
|
* testsuite/23_containers/list/modifiers/assign/1.cc: New.
|
|
|
|
|
* testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
|
|
|
|
|
* testsuite/23_containers/vector/modifiers/assign/1.cc: New.
|
|
|
|
|
|
2018-05-02 18:25:44 +02:00
|
|
|
|
2018-05-02 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-05-02 21:04:55 +02:00
|
|
|
|
PR libstdc++/68197
|
|
|
|
|
* include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
|
|
|
|
|
indices to unsigned.
|
|
|
|
|
* src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
|
|
|
|
|
as failure. Refactor error handling.
|
|
|
|
|
* testsuite/27_io/ios_base/storage/68197.cc: New.
|
|
|
|
|
|
PR libstdc++/83860 avoid dangling references in valarray closure types
Store nested closures by value not by reference, to prevent holding
invalid references to temporaries that have been destroyed. This
changes the layout of the closure types, so change their linkage names,
but moving them to a different namespace.
PR libstdc++/57997
PR libstdc++/83860
* include/bits/gslice_array.h (gslice_array): Define default
constructor as deleted, as per C++11 standard.
* include/bits/mask_array.h (mask_array): Likewise.
* include/bits/slice_array.h (slice_array): Likewise.
* include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
to namespace __detail.
(_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
members.
* include/bits/valarray_before.h (_ValArrayRef): New helper for type
of data members in closure objects.
(_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
(_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
__detail.
(_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
(_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
(_SBase::_M_expr): Use _ValArrayRef for type of data members.
* include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
(_ValFunClos, _RefFunClos): Move to namespace __detail and add
using-declarations to namespace std.
* testsuite/26_numerics/valarray/83860.cc: New.
From-SVN: r259844
2018-05-02 18:41:46 +02:00
|
|
|
|
PR libstdc++/57997
|
|
|
|
|
PR libstdc++/83860
|
|
|
|
|
* include/bits/gslice_array.h (gslice_array): Define default
|
|
|
|
|
constructor as deleted, as per C++11 standard.
|
|
|
|
|
* include/bits/mask_array.h (mask_array): Likewise.
|
|
|
|
|
* include/bits/slice_array.h (slice_array): Likewise.
|
|
|
|
|
* include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
|
|
|
|
|
to namespace __detail.
|
|
|
|
|
(_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
|
|
|
|
|
members.
|
|
|
|
|
* include/bits/valarray_before.h (_ValArrayRef): New helper for type
|
|
|
|
|
of data members in closure objects.
|
|
|
|
|
(_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
|
|
|
|
|
(_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
|
|
|
|
|
__detail.
|
|
|
|
|
(_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
|
|
|
|
|
(_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
|
|
|
|
|
(_SBase::_M_expr): Use _ValArrayRef for type of data members.
|
|
|
|
|
* include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
|
|
|
|
|
(_ValFunClos, _RefFunClos): Move to namespace __detail and add
|
|
|
|
|
using-declarations to namespace std.
|
|
|
|
|
* testsuite/26_numerics/valarray/83860.cc: New.
|
|
|
|
|
|
2018-05-02 18:27:01 +02:00
|
|
|
|
* testsuite/backward/strstream_move.cc: Remove duplicate function
|
|
|
|
|
call.
|
|
|
|
|
|
2018-05-02 18:25:44 +02:00
|
|
|
|
PR libstdc++/69608
|
|
|
|
|
* include/backward/strstream (strstreambuf): Define move constructor
|
|
|
|
|
and move assignment operator.
|
|
|
|
|
(istrstream, ostrstream, strstream): Likewise.
|
|
|
|
|
* testsuite/backward/strstream_move.cc: New.
|
|
|
|
|
|
2018-05-02 00:47:33 +02:00
|
|
|
|
2018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/84654
|
|
|
|
|
* acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
|
|
|
|
|
* config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
|
|
|
|
|
based on ENABLE_FLOAT128.
|
|
|
|
|
* include/Makefile.in: Regenerate.
|
|
|
|
|
* include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
|
|
|
|
|
[!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
|
|
|
|
|
_GLIBCXX_USE_FLOAT128.
|
|
|
|
|
|
2018-04-24 18:45:26 +02:00
|
|
|
|
2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
|
2018-04-19 09:45:51 +02:00
|
|
|
|
2018-04-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
|
2018-04-18 14:14:58 +02:00
|
|
|
|
2018-04-18 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/85442
|
|
|
|
|
* src/c++11/Makefile.am: Don't generate debuginfo again for
|
|
|
|
|
cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
|
|
|
|
|
* src/c++11/Makefile.in: Regenerate.
|
|
|
|
|
|
2018-04-18 13:15:38 +02:00
|
|
|
|
2018-04-18 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/84442
|
|
|
|
|
* testsuite/30_threads/thread/cons/terminate.cc
|
|
|
|
|
[!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
|
|
|
|
|
|
2018-04-18 11:46:58 +02:00
|
|
|
|
2018-04-18 David Malcolm <dmalcolm@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR jit/85384
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2018-04-16 10:24:40 +02:00
|
|
|
|
2018-04-16 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/experimental/filesystem/file_status/1.cc: Add
|
|
|
|
|
-DUSE_FILESYSTEM_TS to dg-options.
|
|
|
|
|
* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/iterators/
|
|
|
|
|
recursive_directory_iterator.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/copy.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/create_directories.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/create_directory.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/create_symlink.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/current_path.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/exists.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/last_write_time.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/permissions.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/read_symlink.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/remove.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/status.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/append/path.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/construct/default.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/construct/string_view.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/decompose/extension.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/decompose/filename.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/decompose/parent_path.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/decompose/relative_path.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/decompose/root_directory.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/decompose/root_name.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/decompose/root_path.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/generic/generic_string.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/native/string.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/has_extension.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/has_filename.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/has_parent_path.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/has_relative_path.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/has_root_directory.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/has_root_name.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/has_root_path.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
|
|
|
|
|
* testsuite/experimental/filesystem/path/query/is_relative.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2018-04-13 12:06:21 +02:00
|
|
|
|
2018-04-13 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-04-13 12:55:29 +02:00
|
|
|
|
* src/c++11/Makefile.am: Fix sed command.
|
|
|
|
|
* src/c++11/Makefile.in: Regenerate.
|
|
|
|
|
|
2018-04-13 12:06:21 +02:00
|
|
|
|
* src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
|
|
|
|
|
handle mangled names starting with double underscores on darwin.
|
|
|
|
|
* src/c++11/Makefile.in: Regenerate.
|
|
|
|
|
|
2018-04-12 18:06:03 +02:00
|
|
|
|
2018-04-12 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-04-12 22:55:02 +02:00
|
|
|
|
* src/c++11/Makefile.am: Fix comment.
|
|
|
|
|
* src/c++11/Makefile.in: Regenerate.
|
|
|
|
|
* src/c++11/cxx11-ios_failure.cc: Fix comment.
|
|
|
|
|
* src/c++98/ios_failure.cc: Likewise.
|
|
|
|
|
|
2018-04-12 18:06:03 +02:00
|
|
|
|
* src/c++11/ios.cc: Remove redundant macro definition.
|
|
|
|
|
|
2018-04-11 02:21:35 +02:00
|
|
|
|
2018-04-11 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* doc/xml/manual/abi.xml: Document header locations in recent
|
|
|
|
|
releases.
|
|
|
|
|
* doc/xml/manual/evolution.xml: Add API changes since GCC 5.
|
|
|
|
|
* doc/xml/manual/spine.xml: Update copyright years.
|
|
|
|
|
* doc/xml/manual/strings.xml: Adjust tolower example to avoid
|
|
|
|
|
undefined behaviour.
|
|
|
|
|
* doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
|
|
|
|
|
* doc/html/*: Regenerate.
|
|
|
|
|
|
2018-04-10 16:36:09 +02:00
|
|
|
|
2018-04-10 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-04-10 17:49:26 +02:00
|
|
|
|
* doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
|
|
|
|
|
* doc/xml/manual/backwards_compatibility.xml: Likewise.
|
|
|
|
|
* doc/xml/manual/containers.xml: Likewise.
|
|
|
|
|
* doc/xml/manual/debug_mode.xml: Likewise.
|
|
|
|
|
* doc/xml/manual/extensions.xml: Likewise.
|
|
|
|
|
* doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
|
|
|
|
|
* doc/xml/manual/using.xml: Likewise.
|
|
|
|
|
* doc/xml/manual/utilities.xml: Likewise.
|
|
|
|
|
|
2018-04-10 16:36:09 +02:00
|
|
|
|
PR libstdc++/85222
|
|
|
|
|
* src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
|
|
|
|
|
cxx11-ios_failure.cc to rewrite type info for __ios_failure.
|
|
|
|
|
* src/c++11/Makefile.in: Regenerate.
|
|
|
|
|
* src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
|
|
|
|
|
New types.
|
|
|
|
|
[_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
|
|
|
|
|
* src/c++11/ios.cc (__throw_ios_failure): Remove definition.
|
|
|
|
|
* src/c++98/ios_failure.cc (__construct_ios_failure)
|
|
|
|
|
(__destroy_ios_failure, is_ios_failure_handler): New functions.
|
|
|
|
|
[!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
|
|
|
|
|
* testsuite/27_io/ios_base/failure/dual_abi.cc: New.
|
|
|
|
|
* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
|
|
|
|
|
handler types, to always catch std::ios_base::failure.
|
|
|
|
|
* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_istream/extractors_arithmetic/char/
|
|
|
|
|
exceptions_failbit.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
|
|
|
|
|
exceptions_failbit.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_istream/extractors_other/char/
|
|
|
|
|
exceptions_null.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_istream/extractors_other/wchar_t/
|
|
|
|
|
exceptions_null.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_ostream/inserters_other/char/
|
|
|
|
|
exceptions_null.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
|
|
|
|
|
exceptions_null.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/ios_base/storage/2.cc: Likewise.
|
|
|
|
|
|
2018-04-05 18:59:13 +02:00
|
|
|
|
2018-04-05 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
|
|
|
|
|
__get calls to avoid ADL and avoid ambiguity due to Clang bug.
|
|
|
|
|
|
2018-04-04 01:03:07 +02:00
|
|
|
|
2018-04-03 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/85183
|
|
|
|
|
* include/std/variant (_Move_assign_base::operator=): Fix incorrect
|
|
|
|
|
value categories.
|
|
|
|
|
* testsuite/20_util/variant/85183.cc: New.
|
|
|
|
|
|
2018-03-26 15:09:10 +02:00
|
|
|
|
2018-03-26 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* include/std/variant (__get): Qualify calls to avoid ADL.
|
|
|
|
|
(__select_index): Adjust whitespace.
|
|
|
|
|
(variant): Add using-declaration to workaround Clang bug.
|
|
|
|
|
|
2018-03-22 15:23:27 +01:00
|
|
|
|
2018-03-22 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/85040
|
|
|
|
|
* include/bits/stl_function.h (greater::__not_overloaded)
|
|
|
|
|
(less::__not_overloaded, greater_equal::__not_overloaded)
|
|
|
|
|
(less_equal::__not_overloaded): Fix ambiguous specializations.
|
|
|
|
|
* testsuite/20_util/function_objects/comparisons_pointer.cc: Add
|
2018-04-05 18:59:13 +02:00
|
|
|
|
tests for type with overloaded operators.
|
2018-03-22 15:23:27 +01:00
|
|
|
|
|
2018-03-22 14:33:29 +01:00
|
|
|
|
2018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/77691
|
|
|
|
|
* testsuite/experimental/memory_resource/resource_adaptor.cc:
|
|
|
|
|
xfail execution on 32-bit Solaris/x86.
|
|
|
|
|
|
2018-03-21 13:32:14 +01:00
|
|
|
|
2018-03-21 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/20_util/function_objects/comparisons_pointer.cc: Use
|
|
|
|
|
VERIFY instead of assert.
|
|
|
|
|
* testsuite/20_util/hash/84998.cc: New test.
|
|
|
|
|
* testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
|
|
|
|
|
copy of test adjusted for Debug Mode.
|
|
|
|
|
* testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
|
|
|
|
|
test in Debug Mode.
|
|
|
|
|
|
2018-03-20 22:45:14 +01:00
|
|
|
|
2018-03-20 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/84998
|
|
|
|
|
* include/bits/stl_bvector.h: Fix std::hash friend declaration.
|
|
|
|
|
* include/std/bitset: Likewise.
|
|
|
|
|
* include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
|
|
|
|
|
declaration.
|
|
|
|
|
* include/bits/stl_multimap.h (std::multimap<>): Likewise.
|
|
|
|
|
* include/bits/stl_multiset.h (std::multiset<>): Likewise.
|
|
|
|
|
* include/bits/stl_set.h (std::set<>): Likewise.
|
|
|
|
|
* include/bits/unordered_map.h (std::unordered_map<>): Fix
|
|
|
|
|
_Hash_merge_helper friend declaration.
|
|
|
|
|
(std::unordered_multimap<>): Likewise.
|
|
|
|
|
* include/bits/unordered_set.h (std::unordered_set<>): Likewise.
|
|
|
|
|
(std::unordered_multiset<>): Likewise.
|
|
|
|
|
|
2018-03-19 00:38:23 +01:00
|
|
|
|
2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
|
|
|
|
|
|
2018-03-19 00:52:00 +01:00
|
|
|
|
* doc/xml/api.xml: www.fsf.org has moved to https. Also omit
|
|
|
|
|
trailing slash for domain level link.
|
|
|
|
|
* doc/xml/faq.xml: Ditto.
|
|
|
|
|
* doc/xml/manual/appendix_free.xml (software): Ditto.
|
|
|
|
|
* doc/xml/manual/intro.xml: Ditto.
|
|
|
|
|
* doc/xml/manual/spine.xml: Ditto.
|
|
|
|
|
* doc/xml/spine.xml: Ditto.
|
|
|
|
|
|
2018-03-20 22:45:14 +01:00
|
|
|
|
2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
|
|
|
|
|
|
2018-03-19 00:38:23 +01:00
|
|
|
|
* doc/xml/manual/documentation_hacking.xml: Adjust link to
|
|
|
|
|
docbook.org.
|
|
|
|
|
|
2018-03-17 14:44:16 +01:00
|
|
|
|
2018-03-17 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
|
|
|
|
|
to compile as C++98.
|
|
|
|
|
|
PR libstdc++/78420 Make std::less etc. yield total order for pointers
In order for std::less<T*> etc. to meet the total order requirements of
[comparisons] p2 we need to cast unrelated pointers to uintptr_t before
comparing them. Those casts aren't allowed in constant expressions, so
only cast when __builtin_constant_p says the result of the comparison is
not a compile-time constant (because the arguments are not constants, or
the result of the comparison is unspecified). When the result is
constant just compare the pointers directly without casting.
This ensures that the function can be called in constant expressions
with suitable arguments, but still yields a total order even for
otherwise unspecified pointer comparisons.
For std::less<void> etc. add new overloads for pointers, which use
std::less<common_type_t<T*,U*>> directly. Also change the generic
overloads to detect when the comparison would call a built-in relational
operator with pointer operands, and dispatch that case to the
corresponding specialization for void pointers.
PR libstdc++/78420
* include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
(greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
to ensure total order for pointers.
(greater<void>, less<void>, greater_equal<void>, less_equal<void>):
Add operator() overloads for pointer arguments and make generic
overloads dispatch to new _S_cmp functions when comparisons would
use built-in operators for pointers.
* testsuite/20_util/function_objects/comparisons_pointer.cc: New.
From-SVN: r258540
2018-03-15 00:02:01 +01:00
|
|
|
|
2018-03-14 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/78420
|
|
|
|
|
* include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
|
|
|
|
|
(greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
|
|
|
|
|
to ensure total order for pointers.
|
|
|
|
|
(greater<void>, less<void>, greater_equal<void>, less_equal<void>):
|
|
|
|
|
Add operator() overloads for pointer arguments and make generic
|
|
|
|
|
overloads dispatch to new _S_cmp functions when comparisons would
|
|
|
|
|
use built-in operators for pointers.
|
|
|
|
|
* testsuite/20_util/function_objects/comparisons_pointer.cc: New.
|
|
|
|
|
|
2018-03-12 23:52:16 +01:00
|
|
|
|
2018-03-12 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/84773
|
|
|
|
|
PR libstdc++/83662
|
|
|
|
|
* crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
|
|
|
|
|
(aligned_alloc): Add using-declaration.
|
|
|
|
|
* testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
|
|
|
|
|
|
2018-03-09 06:56:07 +01:00
|
|
|
|
2018-03-09 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
|
|
|
|
|
Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
|
|
|
|
|
registration.
|
|
|
|
|
|
2018-03-09 02:09:58 +01:00
|
|
|
|
2018-03-09 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-03-09 02:10:02 +01:00
|
|
|
|
PR libstdc++/84769
|
|
|
|
|
* include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
|
|
|
|
|
Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
|
|
|
|
|
|
2018-03-09 02:09:58 +01:00
|
|
|
|
src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
|
|
|
|
|
src/filesystem/std-ops.cc (create_dir): Likewise.
|
|
|
|
|
|
2018-03-08 07:26:15 +01:00
|
|
|
|
2018-03-08 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
|
|
|
|
|
(StdListIteratorPrinter): Inherit from latter.
|
|
|
|
|
(StdFwdListIteratorPrinter): New, inherit from latter.
|
|
|
|
|
(StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
|
|
|
|
|
when iterator has no associated container.
|
|
|
|
|
(build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
|
|
|
|
|
__gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
|
|
|
|
|
registrations.
|
|
|
|
|
* testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
|
|
|
|
|
* testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
|
|
|
|
|
|
2018-03-06 22:43:03 +01:00
|
|
|
|
2018-03-06 Ville Voutilainen <ville.voutilainen@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/84601
|
|
|
|
|
* include/std/optional (_Optional_payload): Split into multiple
|
|
|
|
|
specializations that can handle different cases of trivial or
|
|
|
|
|
non-trivial assignment operators.
|
|
|
|
|
* testsuite/20_util/optional/84601.cc: New.
|
|
|
|
|
* testsuite/20_util/optional/cons/value_neg.cc: Adjust.
|
|
|
|
|
|
2018-03-02 21:38:50 +01:00
|
|
|
|
2018-03-02 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/84671
|
|
|
|
|
* include/bits/parse_numbers.h (_Number_help): Add partial
|
|
|
|
|
specialization to handle digit separators. Adjust partial
|
|
|
|
|
specialization for recursion temrination to require _Pow == 1ULL.
|
|
|
|
|
* testsuite/20_util/duration/literals/84671.cc: New
|
|
|
|
|
|
2018-02-27 12:33:30 +01:00
|
|
|
|
2018-02-27 Ville Voutilainen <ville.voutilainen@gmail.com>
|
|
|
|
|
|
|
|
|
|
Implement the missing bits of LWG 2769
|
|
|
|
|
* include/std/any (any_cast(const any&)): Add static_assert.
|
|
|
|
|
(any_cast(any&)): Likewise.
|
|
|
|
|
(any_cast(any&&)): Likewise, and remove the handling
|
|
|
|
|
for copyable-but-not-movable type.
|
|
|
|
|
* testsuite/20_util/any/misc/any_cast.cc: Adjust.
|
|
|
|
|
* testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
|
|
|
|
|
add new tests.
|
|
|
|
|
|
2018-02-24 00:23:43 +01:00
|
|
|
|
2018-02-23 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/84532
|
|
|
|
|
* include/std/thread (thread::__make_invoker): Construct tuple
|
|
|
|
|
directly instead of using make_tuple.
|
|
|
|
|
* testsuite/30_threads/async/84532.cc: New.
|
|
|
|
|
* testsuite/30_threads/thread/84532.cc: New.
|
|
|
|
|
|
2018-02-20 21:51:44 +01:00
|
|
|
|
2018-02-20 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
|
|
|
|
|
(template<> __aligned_buffer): Define as __aligned_membuf alias.
|
|
|
|
|
|
2018-02-19 17:25:49 +01:00
|
|
|
|
2018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
|
|
|
|
|
|
|
|
|
|
PR target/84148
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2018-02-15 21:56:41 +01:00
|
|
|
|
2018-02-15 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/81797
|
|
|
|
|
* configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
|
|
|
|
|
defined.
|
|
|
|
|
* include/Makefile.in: Regenerate.
|
|
|
|
|
|
2018-01-29 13:33:32 +01:00
|
|
|
|
2018-01-29 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-01-29 15:07:27 +01:00
|
|
|
|
PR libstdc++/83833
|
|
|
|
|
* testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
|
|
|
|
|
Add -ffloat-store to options for m68k and ia32.
|
|
|
|
|
|
2018-01-29 13:37:17 +01:00
|
|
|
|
* doc/xml/faq.xml: Update copyright years.
|
|
|
|
|
* doc/html/*: Regenerate.
|
|
|
|
|
|
2018-01-29 13:33:32 +01:00
|
|
|
|
PR libstdc++/83658
|
|
|
|
|
* include/std/any (any::__do_emplace): Only set _M_manager after
|
|
|
|
|
constructing the contained object.
|
|
|
|
|
* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
|
|
|
|
|
* testsuite/20_util/any/modifiers/83658.cc: New test.
|
|
|
|
|
|
2018-01-25 16:24:39 +01:00
|
|
|
|
2018-01-25 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/81076
|
|
|
|
|
* include/c_global/cstddef (__byte_operand): Define primary template.
|
|
|
|
|
* testsuite/18_support/byte/81076.cc: New test.
|
|
|
|
|
|
2018-01-19 11:17:34 +01:00
|
|
|
|
2018-01-19 Christophe Lyon <christophe.lyon@linaro.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
|
2018-01-25 16:24:39 +01:00
|
|
|
|
dg-options and dg-add-options order.
|
2018-01-19 11:17:34 +01:00
|
|
|
|
* testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
|
|
|
|
|
* testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
|
|
|
|
|
* testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/special_functions/02_assoc_legendre/check_nan.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/special_functions/03_beta/check_nan.cc: Likewise.
|
|
|
|
|
* testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/special_functions/10_cyl_neumann/check_nan.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
|
|
|
|
|
* testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
|
|
|
|
|
* testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
|
|
|
|
|
* testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
|
|
|
|
|
* testsuite/special_functions/14_expint/check_nan.cc: Likewise.
|
|
|
|
|
* testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
|
|
|
|
|
* testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
|
|
|
|
|
* testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
|
|
|
|
|
* testsuite/special_functions/18_riemann_zeta/check_nan.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/special_functions/19_sph_bessel/check_nan.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/special_functions/20_sph_legendre/check_nan.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/special_functions/21_sph_neumann/check_nan.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2018-01-18 20:52:16 +01:00
|
|
|
|
2018-01-18 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac (AC_CHECK_HEADERS): Add linux/types.h. Conditionally
|
|
|
|
|
include linux/types.h when checking linux/random.h header.
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
* configure: Ditto.
|
|
|
|
|
* src/c++11/random.cc: Conditionally include linux/types.h.
|
|
|
|
|
|
2018-01-16 21:40:09 +01:00
|
|
|
|
2018-01-16 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
|
|
|
|
|
|
2018-01-16 13:43:08 +01:00
|
|
|
|
2018-01-16 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/83834
|
|
|
|
|
* config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
|
|
|
|
|
pattern with exact match for std::cerr.
|
|
|
|
|
|
2018-01-15 16:02:01 +01:00
|
|
|
|
2018-01-15 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-01-15 20:58:22 +01:00
|
|
|
|
PR libstdc++/83833
|
|
|
|
|
* include/bits/random.h (chi_squared_distribution::param): Update
|
|
|
|
|
gamma distribution parameter.
|
|
|
|
|
* testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
|
|
|
|
|
test.
|
|
|
|
|
|
2018-01-15 16:02:01 +01:00
|
|
|
|
PR libstdc++/83830
|
|
|
|
|
* include/std/type_traits (has_unique_object_representations_v): Add
|
|
|
|
|
variable template.
|
|
|
|
|
* testsuite/20_util/has_unique_object_representations/value.cc: Check
|
|
|
|
|
variable template.
|
|
|
|
|
|
2018-01-15 12:32:24 +01:00
|
|
|
|
2018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com>
|
|
|
|
|
|
|
|
|
|
Make optional conditionally
|
|
|
|
|
trivially_{copy,move}_{constructible,assignable}
|
|
|
|
|
* include/std/optional (_Optional_payload): Fix the comment in
|
|
|
|
|
the class head and turn into a primary and one specialization.
|
|
|
|
|
(_Optional_payload::_M_engaged): Strike the NSDMI.
|
|
|
|
|
(_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
|
|
|
|
|
New.
|
|
|
|
|
(_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
|
|
|
|
|
Likewise.
|
|
|
|
|
(_Optional_payload<_Tp, false>::_M_get): Likewise.
|
|
|
|
|
(_Optional_payload<_Tp, false>::_M_reset): Likewise.
|
|
|
|
|
(_Optional_base_impl): Likewise.
|
|
|
|
|
(_Optional_base): Turn into a primary and three specializations.
|
|
|
|
|
(optional(nullopt)): Change the base init.
|
|
|
|
|
* testsuite/20_util/optional/assignment/8.cc: New.
|
|
|
|
|
* testsuite/20_util/optional/cons/trivial.cc: Likewise.
|
|
|
|
|
* testsuite/20_util/optional/cons/value_neg.cc: Adjust.
|
|
|
|
|
|
2018-01-15 12:13:53 +01:00
|
|
|
|
2018-01-15 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/80276
|
|
|
|
|
* python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
|
|
|
|
|
(get_template_arg_list): New.
|
|
|
|
|
(StdVariantPrinter._template_args): Remove, use get_template_arg_list
|
|
|
|
|
instead.
|
|
|
|
|
(TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
|
|
|
|
|
of strings and regular expressions.
|
|
|
|
|
(add_one_template_type_printer): Adapt to new TemplateTypePrinter.
|
|
|
|
|
(FilteringTypePrinter): Add docstring. Match using startswith. Use
|
|
|
|
|
strip_inline_namespaces instead of strip_versioned_namespace.
|
|
|
|
|
(add_one_type_printer): Prepend namespace to match argument.
|
|
|
|
|
(register_type_printers): Add type printers for char16_t and char32_t
|
|
|
|
|
string types and for types using cxx11 ABI. Update calls to
|
|
|
|
|
add_one_template_type_printer to provide default argument dicts.
|
|
|
|
|
* testsuite/libstdc++-prettyprinters/80276.cc: New test.
|
|
|
|
|
* testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
|
|
|
|
|
basic_string<unsigned char> and basic_string<signed char>.
|
|
|
|
|
* testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
|
|
|
|
|
to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
|
|
|
|
|
|
2018-01-14 18:32:20 +01:00
|
|
|
|
2018-01-14 Andreas Schwab <schwab@linux-m68k.org>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/81092
|
|
|
|
|
* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
|
|
|
|
|
|
2018-01-14 01:48:30 +01:00
|
|
|
|
2018-01-13 Tim Shen <timshen@google.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/83601
|
|
|
|
|
* include/bits/regex.tcc (regex_replace): Fix escaping in sed.
|
|
|
|
|
* testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
|
|
|
|
|
* testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
|
|
|
|
|
|
2018-01-12 10:52:53 +01:00
|
|
|
|
2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/64054
|
|
|
|
|
* testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
|
|
|
|
|
Remove dg-xfail-run-if.
|
|
|
|
|
|
2018-01-10 François Dumont <fdumont@gcc.gnu.org>
* include/bits/forward_list.h
(_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
(_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
(_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
(_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
(_Fwd_list_impl()): Add noexcept qualification.
(_Fwd_list_impl(const _Node_alloc_type&)): Delete.
(_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
(_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
(_Fwd_list_base()): Default.
(_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
(_Fwd_list_base(_Fwd_list_base&&)): Default.
(forward_list<>()): Default.
(forward_list<>(forward_list&&)): Default.
(forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
(forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
(forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
* include/bits/forward_list.tcc
(_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
_M_impl._M_head move assignment.
(forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
* testsuite/23_containers/forward_list/allocator/default_init.cc: New.
From-SVN: r256439
2018-01-10 17:59:02 +01:00
|
|
|
|
2018-01-10 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* include/bits/forward_list.h
|
|
|
|
|
(_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
|
|
|
|
|
(_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
|
|
|
|
|
(_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
|
|
|
|
|
(_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
|
|
|
|
|
(_Fwd_list_impl()): Add noexcept qualification.
|
|
|
|
|
(_Fwd_list_impl(const _Node_alloc_type&)): Delete.
|
|
|
|
|
(_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
|
|
|
|
|
(_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
|
|
|
|
|
(_Fwd_list_base()): Default.
|
|
|
|
|
(_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
|
|
|
|
|
(_Fwd_list_base(_Fwd_list_base&&)): Default.
|
|
|
|
|
(forward_list<>()): Default.
|
|
|
|
|
(forward_list<>(forward_list&&)): Default.
|
|
|
|
|
(forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
|
|
|
|
|
(forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
|
|
|
|
|
(forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
|
|
|
|
|
* include/bits/forward_list.tcc
|
|
|
|
|
(_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
|
|
|
|
|
_M_impl._M_head move assignment.
|
|
|
|
|
(forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
|
|
|
|
|
* testsuite/23_containers/forward_list/allocator/default_init.cc: New.
|
|
|
|
|
|
2018-01-09 22:46:13 +01:00
|
|
|
|
2018-01-09 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/80276
|
|
|
|
|
* python/libstdcxx/v6/printers.py (SharedPointerPrinter)
|
|
|
|
|
(UniquePointerPrinter): Print correct template argument, not type of
|
|
|
|
|
the pointer.
|
|
|
|
|
(TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
|
|
|
|
|
a type.
|
|
|
|
|
* testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
|
|
|
|
|
array type.
|
|
|
|
|
* testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
|
|
|
|
|
weak_ptr of array types.
|
|
|
|
|
|
re PR libstdc++/83709 (Inserting duplicates into an unordered associative containers causes the container to invalidate iterators)
2018-01-09 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/83709
* include/bits/hashtable_policy.h
(__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
__first != __last.
(_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
(_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
Add false_type parameter.
(_Insert_base::insert): Adapt.
* include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
Adapt.
(_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
Add __n_elt parameter, defaulted to 1.
(_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
policy _M_need_rehash.
(_Hashtable::_M_merge_unique): Pass target number of elements to add to
produce only 1 rehash if necessary.
* testsuite/23_containers/unordered_map/insert/83709.cc: New.
* testsuite/23_containers/unordered_set/insert/83709.cc: New.
From-SVN: r256396
2018-01-09 22:05:10 +01:00
|
|
|
|
2018-01-09 François Dumont <fdumont@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/83709
|
|
|
|
|
* include/bits/hashtable_policy.h
|
|
|
|
|
(__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
|
|
|
|
|
__first != __last.
|
|
|
|
|
(_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
|
|
|
|
|
(_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
|
|
|
|
|
Add false_type parameter.
|
|
|
|
|
(_Insert_base::insert): Adapt.
|
|
|
|
|
* include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
|
|
|
|
|
Adapt.
|
|
|
|
|
(_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
|
|
|
|
|
Add __n_elt parameter, defaulted to 1.
|
|
|
|
|
(_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
|
|
|
|
|
policy _M_need_rehash.
|
|
|
|
|
(_Hashtable::_M_merge_unique): Pass target number of elements to add to
|
|
|
|
|
produce only 1 rehash if necessary.
|
|
|
|
|
* testsuite/23_containers/unordered_map/insert/83709.cc: New.
|
|
|
|
|
* testsuite/23_containers/unordered_set/insert/83709.cc: New.
|
|
|
|
|
|
2018-01-15 12:13:49 +01:00
|
|
|
|
2018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr>
|
|
|
|
|
Jonathan Wakely <jwakely@redhat.com>
|
2018-01-09 19:49:57 +01:00
|
|
|
|
|
|
|
|
|
PR libstdc++/59253 (partial)
|
|
|
|
|
* python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
|
|
|
|
|
type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
|
|
|
|
|
(SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
|
|
|
|
|
children.
|
|
|
|
|
* testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
|
|
|
|
|
of unique_ptr printer.
|
|
|
|
|
* testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
|
|
|
|
|
output of shared_ptr printer.
|
|
|
|
|
|
2018-01-05 19:02:18 +01:00
|
|
|
|
2018-01-05 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-01-06 00:51:22 +01:00
|
|
|
|
PR libstdc++/83626
|
|
|
|
|
* src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
|
|
|
|
|
unnecessary symlink_status call.
|
|
|
|
|
(remove_all(const path&, error_code&)): Use filesystem::remove.
|
|
|
|
|
* src/filesystem/std-ops.cc: Likewise.
|
|
|
|
|
|
2018-01-05 22:43:56 +01:00
|
|
|
|
PR libstdc++/83279
|
|
|
|
|
* src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with
|
|
|
|
|
sendfile.
|
|
|
|
|
|
2018-01-05 19:02:18 +01:00
|
|
|
|
PR libstdc++/83626
|
|
|
|
|
* src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
|
|
|
|
|
report an error for ENOENT.
|
|
|
|
|
(remove_all(const path&)): Fix type of result variable.
|
|
|
|
|
(remove_all(const path&, error_code&)): Use non-throwing increment
|
|
|
|
|
for directory iterator. Call POSIX remove directly to avoid redundant
|
|
|
|
|
calls to symlink_status. Do not report errors for ENOENT.
|
|
|
|
|
* src/filesystem/std-ops.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
|
|
|
|
|
overload.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/remove_all.cc:
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2018-01-04 11:21:29 +01:00
|
|
|
|
2018-01-04 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2018-01-04 23:58:59 +01:00
|
|
|
|
PR libstdc++/83626
|
|
|
|
|
* src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
|
|
|
|
|
redundant call to ec.clear().
|
|
|
|
|
(remove_all(const path&, error_code&))): Do not return an error for
|
|
|
|
|
non-existent paths.
|
|
|
|
|
* src/filesystem/std-ops.cc: Likewise.
|
|
|
|
|
* testsuite/27_io/filesystem/operations/remove.cc: New test.
|
|
|
|
|
* testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
|
|
|
|
|
results for non-existent paths.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/remove.cc: New test.
|
|
|
|
|
* testsuite/experimental/filesystem/operations/remove_all.cc: Fix
|
|
|
|
|
expected results for non-existent paths.
|
|
|
|
|
|
2018-01-04 14:46:22 +01:00
|
|
|
|
* include/bits/fs_ops.h (exists(const path&, error_code&))): Only
|
|
|
|
|
check status_known once.
|
|
|
|
|
* include/experimental/bits/fs_ops.h: Likewise.
|
|
|
|
|
|
2018-01-04 11:21:29 +01:00
|
|
|
|
PR libstdc++/83607
|
|
|
|
|
* include/std/functional (__is_byte_like): New trait.
|
|
|
|
|
(__is_std_equal_to): Remove.
|
|
|
|
|
(__boyer_moore_base_t): Use __is_byte_like instead of
|
|
|
|
|
__is_std_equal_to.
|
|
|
|
|
* include/experimental/functional (__is_std_equal_to): Remove.
|
|
|
|
|
(__boyer_moore_base_t): Use __is_byte_like instead of
|
|
|
|
|
__is_std_equal_to.
|
|
|
|
|
* testsuite/20_util/function_objects/83607.cc: New test.
|
|
|
|
|
|
2018-01-03 21:33:10 +01:00
|
|
|
|
2018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com>
|
|
|
|
|
|
|
|
|
|
Protect optional's deduction guide with the feature macro
|
|
|
|
|
* include/std/optional: Use the feature macro.
|
|
|
|
|
|
2018-01-03 11:03:58 +01:00
|
|
|
|
2018-01-03 Jakub Jelinek <jakub@redhat.com>
|
2015-01-05 13:33:28 +01:00
|
|
|
|
|
|
|
|
|
Update copyright years.
|
2015-01-02 17:50:45 +01:00
|
|
|
|
|
2018-01-03 11:03:58 +01:00
|
|
|
|
Copyright (C) 2018 Free Software Foundation, Inc.
|
2015-01-02 17:50:45 +01:00
|
|
|
|
|
|
|
|
|
Copying and distribution of this file, with or without modification,
|
|
|
|
|
are permitted in any medium without royalty provided the copyright
|
|
|
|
|
notice and this notice are preserved.
|